:root{--bg:#050a06;--bg-panel:#07110a;--bg-raised:#0a1a0e;--phosphor:#3f6;--phosphor-dim:#1f9c43;--phosphor-faint:#0f4d22;--phosphor-bright:#b8ffcc;--amber:#fc3;--red:#ff5c5c;--border:#1d7a39;--glow:0 0 6px #33ff668c, 0 0 1px #33ff66e6;--glow-strong:0 0 10px #3f6c, 0 0 2px #b8ffcc;--font-mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", "Courier New", monospace;--fs:15px;--radius:4px;--gutter:16px;--column:820px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--phosphor);font-family:var(--font-mono);font-size:var(--fs);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;line-height:1.5}body{min-height:100dvh;overflow-x:hidden}a{color:var(--phosphor-bright)}button,input{font-family:inherit;font-size:inherit}::selection{background:var(--phosphor);color:var(--bg)}.crt{min-height:100dvh;text-shadow:var(--glow);flex-direction:column;display:flex;position:relative}.crt:before{content:"";pointer-events:none;z-index:50;mix-blend-mode:multiply;opacity:.9;background:repeating-linear-gradient(#0000 0 2px,#00000038 3px 4px);position:fixed;inset:0}.crt:after{content:"";pointer-events:none;z-index:51;background:radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}.crt.crt--flicker .crt-inner{animation:6s step-end infinite flicker}@keyframes flicker{0%,to{opacity:1}7%{opacity:.97}8%{opacity:1}31%{opacity:.985}32%{opacity:1}63%{opacity:.96}64%{opacity:1}88%{opacity:.99}89%{opacity:1}}.crt.crt--off:before,.crt.crt--off:after{display:none}.crt.crt--off{text-shadow:none}.crt--large{--fs:17px}@media (prefers-reduced-motion:reduce){.crt .crt-inner,.cursor-blink,.boot{animation:none!important}}.crt-inner{flex-direction:column;flex:1;height:100dvh;min-height:0;display:flex;overflow:hidden}.crt-inner--scroll{height:auto;min-height:100dvh;overflow:visible}.topbar{padding:8px var(--gutter);border-bottom:1px solid var(--border);background:var(--bg-panel);z-index:10;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar__brand{flex-direction:column;gap:4px;min-width:0;display:flex}.logo{width:186px;max-width:100%;height:auto;display:block}.topbar__status{letter-spacing:.1em;text-transform:uppercase;color:var(--phosphor-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.topbar__room{color:var(--phosphor)}.topbar__sep{margin:0 6px}.topbar__key{color:var(--amber);text-shadow:0 0 6px #ffcc3380}.nav{flex-shrink:0;gap:6px;display:flex}.btn{background:var(--bg-raised);color:var(--phosphor);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;text-shadow:inherit;min-width:44px;min-height:34px;padding:5px 11px;font-size:.78rem;position:relative}.btn:hover,.btn:focus-visible{border-color:var(--phosphor);color:var(--phosphor-bright);box-shadow:0 0 0 1px var(--phosphor-faint), var(--glow);outline:none}.btn[aria-pressed=true],.btn[aria-checked=true]{background:var(--phosphor-faint);color:var(--phosphor-bright)}.btn--danger:hover,.btn--danger:focus-visible{border-color:var(--red);color:var(--red)}.btn--link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.badge{background:var(--phosphor);min-width:1.4em;color:var(--bg);text-align:center;text-shadow:none;border-radius:10px;margin-left:6px;padding:0 4px;font-size:.7rem;line-height:1.4em;display:inline-block}.stage{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.transcript{padding:14px var(--gutter) 10px;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.transcript__inner{max-width:var(--column);margin:0 auto}.entry{white-space:pre-wrap;word-break:break-word;margin:0 0 10px}.entry--player{color:var(--phosphor-bright);margin-top:16px}.entry--player:before{content:"> ";color:var(--phosphor-dim)}.entry--system{color:var(--phosphor-dim);font-size:.9em}.entry--scene,.entry--speech{color:var(--phosphor)}.entry__speaker{color:var(--amber);text-shadow:0 0 6px #ffcc3380;letter-spacing:.04em;font-weight:700}.entry--event{color:var(--phosphor-bright);text-shadow:var(--glow-strong);border-left:2px solid var(--phosphor);letter-spacing:.03em;padding-left:10px}.entry--hint{color:var(--phosphor-dim);font-style:italic}.entry--thinking{color:var(--phosphor-dim)}.entry--art{margin:8px 0 14px}.art{border:1px solid var(--phosphor-faint);border-radius:var(--radius);background:#000;width:min(100%,560px,50.6667dvh);margin:0;overflow:hidden;box-shadow:0 0 14px #33ff661f}.art--character{width:min(100%,440px,45.3333dvh)}.art__img{width:100%;height:auto;display:block}.art__caption{letter-spacing:.14em;text-transform:uppercase;color:var(--amber);text-shadow:0 0 6px #ffcc3373;border-top:1px solid var(--phosphor-faint);padding:4px 8px;font-size:.72rem}.roomart{white-space:pre;color:var(--phosphor);text-shadow:var(--glow);margin:0;font-size:.72rem;line-height:1.15;overflow-x:auto}.cursor-blink{background:var(--phosphor);vertical-align:text-bottom;width:.6em;height:1em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.command{padding:10px var(--gutter);padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--bg-panel);align-items:center;gap:8px;display:flex;position:sticky;bottom:0}.command__prompt{color:var(--phosphor-bright);text-shadow:var(--glow-strong);font-weight:700}.command__input{border:none;border-bottom:1px solid var(--phosphor-faint);color:var(--phosphor-bright);caret-color:var(--phosphor);background:0 0;outline:none;flex:1;min-width:0;padding:8px 4px;font-size:16px}.command__input:focus{border-bottom-color:var(--phosphor)}.command__input::placeholder{color:var(--phosphor-faint)}.command__send{display:none}.command-wrap{background:var(--bg-panel);flex:none}.command__queued{padding:0 var(--gutter) 6px;color:var(--phosphor-dim);overflow-wrap:anywhere;margin:0;font-size:.78rem}.command__queued-text{color:var(--phosphor)}@media (min-width:900px){.command__queued{max-width:var(--column);margin:0 auto}.command{justify-content:center}.command__input{max-width:calc(var(--column) - 40px)}}.map{width:100%;height:auto;display:block}.map__room{fill:var(--bg-raised);stroke:var(--border);stroke-width:1.2px}.map__room--visited{stroke:var(--phosphor)}.map__room--current{fill:var(--phosphor-faint);stroke:var(--phosphor-bright);stroke-width:2px;filter:drop-shadow(0 0 4px #33ff66b3)}.map__room--unknown{stroke-dasharray:3 3;stroke:var(--phosphor-dim)}.map__label{fill:var(--phosphor);font-family:var(--font-mono);text-anchor:middle;letter-spacing:.04em;font-size:9px}.map__label--dim{fill:var(--phosphor-dim)}.map__label--bright{fill:var(--phosphor-bright);font-weight:700}.map__edge{stroke:var(--border);stroke-width:1.5px}.map__edge--unknown{stroke-dasharray:2 3;stroke:var(--phosphor-faint)}.map__you{fill:var(--amber)}.overlay{z-index:100;padding:var(--gutter);background:#020603db;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay__box{background:var(--bg-panel);border:1px solid var(--phosphor);border-radius:var(--radius);width:min(680px,100%);max-height:calc(100dvh - 32px);padding:14px 16px 18px;overflow-y:auto;box-shadow:0 0 24px #33ff6640}.overlay__head{letter-spacing:.14em;color:var(--phosphor-bright);text-shadow:var(--glow-strong);justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.overlay__box p{margin:0 0 10px}.overlay__box ul{margin:0 0 10px;padding-left:18px}.overlay__box li{margin:4px 0}.kbd{border:1px solid var(--border);color:var(--phosphor-bright);border-radius:3px;padding:0 6px;font-size:.9em;display:inline-block}.settings{flex-direction:column;display:flex}.settings__row{border-bottom:1px dashed var(--phosphor-faint);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.settings__row:last-child{border-bottom:none}.settings__row--stack{align-items:flex-start}.settings__row b{color:var(--phosphor-bright)}.settings__row .notice{margin-top:2px}.settings__confirm{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.jukebox{grid-template-columns:90px 1fr;gap:14px;display:grid}.jukebox__record{border:2px solid var(--phosphor);background:radial-gradient(circle, var(--bg) 0 8px, var(--phosphor-faint) 9px 12px, var(--bg) 13px 16px, var(--bg-raised) 17px 100%);width:90px;height:90px;box-shadow:var(--glow);border-radius:50%;position:relative}.jukebox__record--spinning{animation:2.4s linear infinite spin}@media (prefers-reduced-motion:reduce){.jukebox__record--spinning{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.jukebox__record:after{content:"";background:var(--phosphor-dim);width:2px;height:20px;position:absolute;top:12px;left:50%}.jukebox__now{color:var(--phosphor-bright);margin-bottom:4px}.jukebox__controls{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.jukebox__volume{width:110px;accent-color:var(--phosphor)}.tracklist{border-top:1px solid var(--border);margin:8px 0 0;padding:0;list-style:none}.tracklist li{border-bottom:1px dashed var(--phosphor-faint);cursor:pointer;justify-content:space-between;gap:8px;padding:6px 4px;display:flex}.tracklist li[aria-current=true]{color:var(--phosphor-bright);background:var(--bg-raised)}.tracklist li:hover{color:var(--phosphor-bright)}.tag{border:1px solid var(--phosphor-dim);color:var(--phosphor-dim);white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;border-radius:3px;padding:0 5px;font-size:.7rem}.tag--amber{border-color:var(--amber);color:var(--amber)}.notice{color:var(--phosphor-dim);margin-top:8px;font-size:.85em}.inv-list{margin:0;padding:0;list-style:none}.inv-list li{border-bottom:1px dashed var(--phosphor-faint);padding:6px 0}.inv-list b{color:var(--phosphor-bright)}.boot{min-height:60vh;color:var(--phosphor-dim);justify-content:center;align-items:center;animation:1s ease-in bootfade;display:flex}@keyframes bootfade{0%{opacity:0}to{opacity:1}}.workshop{max-width:760px;padding:24px var(--gutter) 48px;margin:0 auto}.workshop h1{letter-spacing:.14em;color:var(--phosphor-bright);text-shadow:var(--glow-strong);font-size:1.2rem}.workshop pre{color:var(--phosphor);font-size:.78rem;line-height:1.15;overflow-x:auto}.workshop .status{border:1px solid var(--border);border-radius:var(--radius);margin:12px 0;padding:10px 12px}.workshop .status--unlocked{border-color:var(--phosphor);color:var(--phosphor-bright)}.workshop .status--locked{border-color:var(--red);color:var(--red);text-shadow:0 0 6px #ff5c5c80}.workshop code{color:var(--phosphor-bright);font-size:.85em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:720px){.topbar{padding:6px var(--gutter) 6px;flex-direction:column;align-items:stretch;gap:6px}.topbar__brand{flex-direction:row;justify-content:space-between;align-items:baseline;gap:10px}.logo{width:140px}.topbar__status{flex-shrink:1;min-width:0;font-size:.62rem}.nav{gap:4px;width:100%}.nav .btn{letter-spacing:.02em;white-space:nowrap;flex:1 1 0;min-width:0;padding:6px 2px;font-size:.64rem}.badge{margin-left:3px;font-size:.6rem}.transcript{padding:10px var(--gutter) 6px}.roomart{font-size:.5rem;line-height:1.1}.jukebox{grid-template-columns:1fr}.settings__row{flex-wrap:wrap}}@media (max-width:400px){:root{--fs:14px}.logo{width:120px}.topbar__status{display:none}}.crt--splash{background:#000}.splash{min-height:100dvh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:#000;justify-content:center;align-items:center;display:flex}.splash__frame{aspect-ratio:1672/941;width:min(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px), (100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * 1672 / 941);--l:var(--btn-l);--t:var(--btn-t);--w:var(--btn-w);--h:var(--btn-h);position:relative}.splash__img{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.splash__enter{left:var(--l);top:var(--t);width:var(--w);height:var(--h);cursor:pointer;background:0 0;border:0;border-radius:1.2vmin;margin:0;padding:0;transition:box-shadow .15s,background-color .15s;position:absolute}.splash__enter:hover{background:#b8ffcc14;box-shadow:0 0 22px #33ff668c}.splash__enter:focus-visible{outline:3px solid var(--phosphor-bright);outline-offset:4px;box-shadow:0 0 26px #33ff66b3}.splash__enter:active{background:#b8ffcc29}@media (max-aspect-ratio:1){.splash__frame{aspect-ratio:1024/1536;width:min(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px), (100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) * 1024 / 1536);--l:var(--btn-l-m);--t:var(--btn-t-m);--w:var(--btn-w-m);--h:var(--btn-h-m)}}@media (prefers-reduced-motion:reduce){.splash__enter{transition:none}}.entry--pending{height:0;margin:0;overflow:hidden}.cursor-type{background:var(--phosphor);vertical-align:text-bottom;opacity:.85;width:.55em;height:1em;margin-left:1px;display:inline-block}.transcript--revealing{cursor:pointer}.reveal-hint{letter-spacing:.08em;text-transform:uppercase;color:var(--phosphor-faint);-webkit-user-select:none;user-select:none;margin:2px 0 0;font-size:.68rem}.segmented{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.segmented .btn{min-width:72px}.stage__main{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.artpanel{display:none}@media (min-width:1100px){:root{--column:700px}.stage{flex-direction:row}.stage__main{flex:56%}.artpanel{border-left:1px solid var(--phosphor-faint);background:radial-gradient(#33ff660d,#0000 70%);flex:0 44%;justify-content:center;align-items:center;max-width:760px;min-height:0;padding:20px 24px;display:flex;overflow:hidden}.transcript .entry--art{display:none}.art--panel,.art--panel.art--character{width:min(100%,133.333dvh - 266.667px);animation:.26s ease-out art-in}}@keyframes art-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.art--panel{animation:none}}.entry .sr-only{-webkit-user-select:none;user-select:none}.nowplaying{padding:0 var(--gutter) calc(6px + env(safe-area-inset-bottom,0px));background:var(--bg-panel);color:var(--phosphor-dim);justify-content:flex-end;align-items:center;gap:6px;min-width:0;font-size:.72rem;display:flex}.nowplaying__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.btn--tiny{min-width:32px;padding:2px 6px;font-size:.75rem}.music-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.volume{align-items:center;gap:8px;display:inline-flex}.volume input[type=range]{accent-color:var(--phosphor);width:140px}.tracklist__pick{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:2.4em 1fr auto;align-items:start;gap:8px;padding:6px 4px;display:grid}.tracklist__pick:hover,.tracklist__pick:focus-visible{background:var(--bg-raised);outline:1px solid var(--phosphor-faint)}.tracklist__slot{color:var(--amber)}.tracklist__note{color:var(--phosphor-dim);font-size:.72rem;font-style:italic;display:block}.jukebox--empty .jukebox__now{color:var(--amber)}.settings{gap:14px}.settings__group{border:1px solid var(--phosphor-faint);border-radius:var(--radius);background:#0a1a0e73;padding:4px 12px 6px}.settings__heading{letter-spacing:.22em;color:var(--amber);text-shadow:0 0 6px #fc36;margin:8px 0 2px;font-size:.72rem;font-weight:700}.setting{border-bottom:1px dashed var(--phosphor-faint);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:10px 0;display:grid}.settings__group>.setting:last-of-type{border-bottom:none}.setting--wide{grid-template-columns:1fr}.setting__label b{color:var(--phosphor-bright)}.setting__label .notice{margin-top:2px}.setting__control{flex-direction:column;gap:8px;min-width:0;display:flex}.setting:not(.setting--wide) .setting__control{align-items:flex-end}.segmented--full{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;margin:0;display:grid}.segmented--full .btn{text-align:center;white-space:normal;flex-direction:column;justify-content:center;align-items:center;min-height:44px;line-height:1.2;display:flex}.btn__sub{letter-spacing:.06em;opacity:.75;margin-top:2px;font-size:.62rem;display:block}.transport{flex-wrap:wrap;gap:6px;display:flex}.transport .btn{flex:110px;min-height:40px}.volume--full{grid-template-columns:auto 1fr 3.2em;align-items:center;gap:10px;width:100%;display:grid}.volume--full input[type=range]{width:100%;min-height:32px}.volume__pct{text-align:right;color:var(--phosphor-dim);font-size:.8rem}.nowstatus{border:1px solid var(--phosphor-faint);border-radius:var(--radius);background:#000;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:6px 0 2px;padding:8px 10px;display:flex}.nowstatus__label{letter-spacing:.16em;text-transform:uppercase;color:var(--phosphor-dim);font-size:.68rem}.nowstatus__value{color:var(--phosphor-bright);overflow-wrap:anywhere;min-width:0}.nowstatus__value--jukebox{color:var(--amber)}.nowstatus__value--none{color:var(--phosphor-dim)}.overlay__box{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.jukebox__main{min-width:0}.jukebox__artist{color:var(--phosphor-dim);font-size:.75rem;display:block}.jukebox .volume input[type=range]{width:160px}.tracklist{max-height:min(46dvh,420px);overflow-y:auto}@media (max-width:520px){.setting{grid-template-columns:1fr}.setting:not(.setting--wide) .setting__control{align-items:flex-start}.settings__group{padding:2px 10px 4px}.overlay{align-items:flex-start;padding:8px}.overlay__box{max-height:calc(100dvh - 16px)}.jukebox .volume input[type=range]{width:100%}.segmented--full{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}.setting .btn,.jukebox__controls .btn{min-height:42px}}.transcript{position:relative}
