:root{--bg:#0c121c;--panel:#151e2e;--edge:#2b3a52;--text:#e8eff7;--muted:#93a3b8;--accent:#ffb347;--accent2:#ff7a59;--good:#7fd1a0;--water:#5ec8f5;--font:"Helvetica","Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);grid-template-columns:310px 1fr;height:100vh;display:grid;overflow:hidden}aside{border-right:1px solid var(--edge);background:linear-gradient(#0e1523,#0c121c);flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid var(--edge);padding:22px 20px 16px}.brand h1{letter-spacing:.2px;margin:0;font-size:19px}.brand p{color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin:5px 0 0;font-size:11.5px}nav{flex:1;padding:10px 10px 20px;overflow-y:auto}.group{letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);padding:14px 12px 5px;font-size:10.5px;font-weight:700}.group.ero{color:var(--accent2)}.group.dep{color:var(--good)}.item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:9px;align-items:flex-start;gap:11px;margin:2px 0;padding:9px 11px;font-family:inherit;font-size:13.5px;line-height:1.35;transition:background .13s,border-color .13s;display:flex}.item:hover{background:#182233}.item.active{border-color:var(--accent);background:#1b2740}.item .n{color:var(--accent);letter-spacing:.5px;flex:none;min-width:22px;padding-top:1px;font-size:11px;font-weight:700}.item.done .n{color:#6e9160}.item.todo{opacity:.45;cursor:default}.item.todo .n{color:var(--muted)}main{flex-direction:column;min-width:0;min-height:0;display:flex}header{border-bottom:1px solid var(--edge);flex-wrap:wrap;align-items:baseline;gap:14px;padding:14px 26px 10px;display:flex}header .kicker{color:var(--accent);letter-spacing:1.1px;font-size:11.5px;font-weight:700}header h2{margin:0;font-size:22px;font-weight:700}.locator{border-bottom:1px solid var(--edge);background:#0a0f18;padding:9px 26px 8px}.locator svg{width:100%;height:52px;display:block}.locator .lbl{fill:var(--muted);letter-spacing:1px;text-transform:uppercase;font-size:9.5px}:root{--reserved:470px}body.zen{--reserved:250px;grid-template-columns:1fr}body.zen aside,body.zen .notes{display:none}.stagewrap{flex:1;min-height:0;padding:16px 26px 0;overflow-y:auto}.stageshell{width:100%;max-width:calc((100vh - var(--reserved)) * 1.777);border:1px solid var(--edge);background:#000;border-radius:12px;min-width:min(100%,520px);margin:0 auto;overflow:hidden}.canvasbox{aspect-ratio:16/9;background:var(--bg);width:100%;position:relative}.canvasbox canvas{width:100%;height:100%;display:block}.stageshell:fullscreen,.stageshell.maxed{background:#000;border:0;border-radius:0;flex-direction:column;width:100vw;max-width:none;height:100vh;display:flex}.stageshell.maxed{z-index:50;margin:0;position:fixed;inset:0}.stageshell:fullscreen .canvasbox,.stageshell.maxed .canvasbox{aspect-ratio:auto;background:#000;flex:1;min-height:0}.stageshell:fullscreen .canvasbox canvas,.stageshell.maxed .canvasbox canvas{object-fit:contain;width:100%;height:100%}.stageshell:fullscreen .scrub,.stageshell.maxed .scrub{z-index:2;opacity:0;background:linear-gradient(#0c121c00,#0c121ceb 45%);border-top:0;padding:26px 20px 12px;transition:opacity .18s;position:absolute;bottom:0;left:0;right:0}.stageshell:fullscreen:hover .scrub,.stageshell:fullscreen .scrub:focus-within,.stageshell.maxed:hover .scrub,.stageshell.maxed .scrub:focus-within{opacity:1}.canvasbox.loading:after{content:"building scene…";color:var(--muted);letter-spacing:.8px;place-items:center;font-size:12.5px;display:grid;position:absolute;inset:0}.canvasbox.error:after{content:"this scene failed to build — see the console";color:var(--accent2);letter-spacing:.4px;place-items:center;font-size:12.5px;display:grid;position:absolute;inset:0}.canvasbox.todo:after{content:"not ported yet";color:var(--muted);letter-spacing:.8px;place-items:center;font-size:12.5px;display:grid;position:absolute;inset:0}.scrub{border-top:1px solid var(--edge);background:#0e1523;align-items:center;gap:12px;padding:8px 12px;display:flex}.scrub input[type=range]{accent-color:var(--accent);cursor:pointer;flex:1;min-width:0}.scrub .time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11.5px}.notes{background:var(--panel);border:1px solid var(--edge);border-radius:12px;width:100%;min-width:min(100%,520px);max-width:calc(177.7vh - 835.19px);margin:16px auto 22px;padding:16px 20px}.notes h3{letter-spacing:1.1px;text-transform:uppercase;color:var(--accent);margin:0 0 10px;font-size:11.5px}.notes ul{columns:2;column-gap:34px;margin:0;padding-left:18px}.notes li{color:#d3deea;break-inside:avoid;margin:0 0 7px;font-size:13.5px;line-height:1.5}.notes li b{color:var(--text)}@media (width<=1150px){.notes ul{columns:1}}footer{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:center;gap:12px;padding:11px 26px;display:flex}button.ctl{color:var(--text);border:1px solid var(--edge);cursor:pointer;background:#1b2740;border-radius:8px;padding:7px 14px;font-family:inherit;font-size:13px;transition:border-color .13s,background .13s}button.ctl:hover:not(:disabled){border-color:var(--accent);background:#22314f}button.ctl:disabled{opacity:.35;cursor:default}button.ctl.icon{min-width:34px;padding:6px 11px;font-size:12px}.spacer{flex:1}.hint{color:var(--muted);font-size:12px}.hint kbd{border:1px solid var(--edge);color:var(--text);background:#1b2740;border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:11px}label.toggle{color:var(--muted);cursor:pointer;align-items:center;gap:7px;font-size:12.5px;display:flex}label.toggle input{accent-color:var(--accent);cursor:pointer}@media (width<=820px){body{grid-template-rows:auto 1fr;grid-template-columns:1fr;overflow:auto}aside{border-right:0;border-bottom:1px solid var(--edge);max-height:38vh}.stageshell,.notes{max-width:100%}.locator{display:none}}
