:root{--bg: rgba(28, 24, 20, .86);--bg2: rgba(48, 40, 32, .9);--ink: #e9dfcc;--dim: #b3a58c;--gold: #e0b04a;--bad: #ff7a66;--warn: #f0c46a;--good: #9ad27a;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#111;color:var(--ink)}#view{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;font-size:13px}#ui>*{pointer-events:auto}button{font:inherit;color:var(--ink);background:var(--bg2);border:1px solid #6a5a44;border-radius:3px;padding:3px 8px;cursor:pointer}button:hover{border-color:var(--gold)}button.on{background:var(--gold);color:#221a10;border-color:var(--gold)}button.tiny{padding:1px 6px;font-size:11px}h3{margin:10px 0 5px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #5a4a36;padding-bottom:3px}.small{color:var(--dim);font-size:12px;margin:3px 0}.bad{color:var(--bad)}.warn{color:var(--warn)}.good{color:var(--good)}.low{color:var(--bad)}.topbar{position:absolute;top:0;left:0;right:0;height:40px;background:var(--bg);display:flex;align-items:center;gap:14px;padding:0 12px;border-bottom:1px solid #5a4a36}.topbar .title{font-weight:700;letter-spacing:.2em;color:var(--gold)}.topbar .date{min-width:240px}.daybar{height:3px;background:#4a3d2f;margin-top:2px;border-radius:2px}.daybar .fill{height:100%;background:var(--gold);border-radius:2px}.topbar .money{font-weight:700;min-width:90px}.topbar .stock{display:flex;gap:10px;color:var(--dim)}.topbar .speed,.topbar .overlay,.topbar .vantage,.topbar .sys{display:flex;gap:3px;align-items:center}.topbar .sys{margin-left:auto}.topbar .lbl{color:var(--dim);margin-right:3px}.panel{position:absolute;background:var(--bg);border:1px solid #5a4a36;padding:8px 10px;overflow-y:auto}.panel.left{top:48px;left:8px;width:250px;bottom:150px}.panel.right{top:48px;right:8px;width:330px;bottom:150px}.panel.bottom{left:8px;right:8px;bottom:8px;height:134px;display:flex;gap:12px}.help{position:absolute;left:266px;bottom:150px;color:var(--dim);font-size:11px;background:#00000059;padding:4px 8px;border-radius:3px;line-height:1.5}.help span{color:var(--ink);border:1px solid #6a5a44;padding:0 3px;border-radius:2px}.tools{display:grid;grid-template-columns:1fr 1fr;gap:4px}.menu{display:flex;flex-direction:column;gap:3px}.menu button{display:grid;grid-template-columns:1fr auto;gap:0 6px;text-align:left;padding:4px 8px}.menu .lead{grid-column:1;grid-row:1;letter-spacing:.04em}.menu .chev{grid-column:2;grid-row:1 / 3;align-self:center;color:var(--dim);font-size:16px}.menu .sub{grid-column:1;grid-row:2;font-size:11px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu button:hover .sub{color:var(--ink)}.menu button.here{border-color:var(--gold)}.menu button.here .lead{color:var(--gold)}.crumb{display:flex;align-items:center;gap:8px;margin:10px 0 5px;border-bottom:1px solid #5a4a36;padding-bottom:3px}.crumb .where{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}.lift{display:flex;align-items:center;gap:4px;margin-top:6px}.lift .lbl{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.lift .v{flex:1;text-align:center;font-size:12px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lift .v.on{color:var(--gold);font-weight:700}.palette{display:flex;flex-direction:column;gap:2px}.palette .mat{display:flex;align-items:center;gap:6px;text-align:left;padding:2px 6px}.palette .swatch{width:14px;height:14px;border:1px solid #000;flex:none}.palette .name{flex:1}.palette .meta{font-size:10px;color:var(--dim)}.palette .mat.on .meta{color:#4a3a20}.matinfo{margin-top:6px;font-size:12px;color:var(--dim)}.matinfo b{color:var(--ink)}.matinfo .stats{margin-top:4px;font-size:11px}.mortar{display:flex;flex-direction:column;gap:3px}.mortar button{text-align:left;font-size:11px}.tabs{display:flex;gap:3px;margin-bottom:4px}.tabs button{flex:1}.blurb{color:var(--dim);font-style:italic;margin-bottom:6px}ul.goals,ul.blocked{margin:4px 0;padding-left:18px}ul.goals li.done{color:var(--good);text-decoration:line-through}ul.blocked li{color:var(--warn)}.grid{display:grid;grid-template-columns:auto auto;gap:2px 10px;font-size:12px}.grid .k{color:var(--dim)}.worker{display:grid;grid-template-columns:1fr auto auto auto auto;gap:8px;align-items:center;font-size:12px;padding:2px 0;border-bottom:1px dotted #4a3d2f}.worker.pool{grid-template-columns:1fr auto auto auto auto}.worker .skill{color:var(--gold);letter-spacing:-1px}.worker .wage,.worker .kind{color:var(--dim)}.worker .status.busy{color:var(--good)}.worker .status.idle{color:var(--dim);font-style:italic;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kind{font-weight:700;margin-top:6px}.warn{margin:6px 0}.supply{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:4px 0;border-bottom:1px dotted #4a3d2f;font-size:12px}.supply .name{font-weight:700}.supply .qty{text-align:right;color:var(--gold)}.supply .src{grid-column:1 / 3;color:var(--dim);font-size:11px}.supply button{grid-column:auto}.ledger{display:grid;grid-template-columns:52px 1fr auto;gap:8px;font-size:12px;border-bottom:1px dotted #4a3d2f;padding:1px 0}.ledger.out .a{color:var(--bad)}.ledger.in .a{color:var(--good)}.ledger .d{color:var(--dim)}.log{flex:1;overflow:hidden;font-size:12px}.log .entry{padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log .entry.link{cursor:pointer;text-decoration:underline dotted}.log .entry.warn{color:var(--warn)}.log .entry.bad{color:var(--bad);font-weight:700}.log .entry.good{color:var(--good)}.inspect{width:330px;font-size:12px;border-left:1px solid #5a4a36;padding-left:12px}.carts{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.pile{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:3px 0;border-bottom:1px dotted #4a3d2f;font-size:12px}.pile .name{font-weight:700}.pile .small{grid-column:1 / 2}.pile button{grid-row:1 / 3}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;padding-top:clamp(16px,7vh,80px);background:#0b0907;animation:splash-in .7s ease both}.splash.out{animation:splash-out .4s ease both;pointer-events:none}@keyframes splash-in{0%{opacity:0}to{opacity:1}}@keyframes splash-out{0%{opacity:1}to{opacity:0}}.splash .sky{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(100% 62% at 50% 100%,#f0be609e,#b86c2c52 38%,#0000 70%),linear-gradient(#080b13,#171821 34%,#3d2a1a 70%,#6b4020)}.splash .front{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto}.splash .card{position:relative;width:min(560px,calc(100% - 32px));padding:26px 30px 20px;text-align:center;background:#100c09d1;border:1px solid #6a5a44;border-radius:4px;box-shadow:0 18px 60px #000000b3;animation:splash-rise .7s .12s ease both}@keyframes splash-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.splash .eyebrow{color:var(--dim);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.splash h1{margin:6px 0 0;font-size:46px;font-weight:400;letter-spacing:.3em;color:var(--gold);text-indent:.3em}.splash .rule{height:1px;margin:12px auto 14px;width:70%;background:linear-gradient(90deg,transparent,#6a5a44,transparent)}.splash .blurb{margin:0 0 18px;color:var(--dim);font-size:13px;line-height:1.6}.splash .choices{display:flex;flex-direction:column;gap:8px}.splash .scenarios{display:flex;flex-direction:column;gap:8px;margin-top:10px}.splash .scenario-label{color:var(--dim);font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px}.splash button.big{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 14px;background:#302820b3}.splash button.big .lead{font-size:16px;letter-spacing:.06em}.splash button.big .sub{font-size:11px;color:var(--dim)}.splash button.big:hover,.splash button.big:focus-visible{background:#4a3d2fd9;border-color:var(--gold);outline:none}.splash button.big.primary{border-color:var(--gold)}.splash button.big.primary .lead{color:var(--gold)}.splash button.big:hover .sub,.splash button.big:focus-visible .sub{color:var(--ink)}.splash .keys{margin-top:14px;color:var(--dim);font-size:11px}.splash .keys span{color:var(--ink);border:1px solid #6a5a44;padding:0 3px;border-radius:2px}.carving{margin-top:6px}.carvemats{display:flex;flex-wrap:wrap;gap:3px}.carvemats .carvemat{display:flex;align-items:center;gap:4px;padding:2px 5px;font-size:11px}.carvemats .swatch{width:10px;height:10px;border:1px solid #000;flex:none}.carvemats .meta{color:var(--dim)}.carvemats .carvemat.on .meta{color:#4a3a20}.catname{margin:6px 0 2px;font-size:11px;color:var(--dim);font-style:italic}.subjects{display:flex;flex-direction:column;gap:2px}.subjects .subject{display:flex;justify-content:space-between;gap:6px;text-align:left;padding:2px 6px;font-size:11px}.subjects .subject .meta{color:var(--dim);white-space:nowrap}.subjects .subject.on .meta{color:#4a3a20}.subjects .subject.beyond .name{color:var(--warn)}.subjects .subject.on.beyond .name{color:#6a3a10}.carvedlist{display:flex;flex-direction:column;gap:1px;font-size:12px}.carvedrow{display:grid;grid-template-columns:28px 1fr auto;gap:6px;border-bottom:1px dotted #4a3d2f}.carvedrow .n{color:var(--gold);text-align:right}.carvedrow .g{color:var(--dim)}.carvedrow.over .t{color:var(--dim);font-style:italic}.inspect .subj{color:var(--gold)}
