:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#05030a;--fg:#e8e6f0;--accent:#ff2d78;--cold:#54f0ff}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);letter-spacing:.03em;margin:0;font-family:Courier New,ui-monospace,SFMono-Regular,monospace}#app{z-index:1;background:0 0;grid-template-rows:1fr auto;height:100%;display:grid;position:relative}#scene{z-index:0;background:var(--bg);position:fixed;inset:0;overflow:hidden}#scene canvas{width:100%;height:100%;display:block}#hud{z-index:5;pointer-events:none;position:fixed;inset:0}#transcript{scrollbar-width:thin;scrollbar-color:transparent transparent;background:linear-gradient(90deg,#0000,#05030ab8 12% 88%,#0000);justify-self:center;width:100%;max-width:72ch;padding:1rem 1.25rem;line-height:1.55;transition:scrollbar-color .3s;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 1.5rem calc(100% - 1rem),#0000);mask-image:linear-gradient(#0000,#000 1.5rem calc(100% - 1rem),#0000)}#transcript.scroll-active{scrollbar-color:#241a38 transparent}#transcript::-webkit-scrollbar{width:6px}#transcript::-webkit-scrollbar-track{background:0 0}#transcript::-webkit-scrollbar-thumb{background-color:#241a3800;border-radius:3px;transition:background-color .3s}#transcript.scroll-active::-webkit-scrollbar-thumb{background-color:#241a38e6}#transcript.scroll-active::-webkit-scrollbar-thumb:hover{background-color:var(--accent)}#transcript .line{margin:0 0 .15rem}.line-blank{line-height:.9}.line-room-title{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;text-shadow:0 0 8px var(--accent);font-weight:700;margin-top:.6rem!important}.line-error{color:#ff6a7e}.line-meta{color:#6fb9c4;font-style:italic}.line-intro{color:#cfc9e8;font-style:italic}.line-echo{color:#5d5875}.line-enter{animation:.2s ease-out both line-enter}@keyframes line-enter{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.transcript-jump{color:var(--cold);font:inherit;letter-spacing:.08em;cursor:pointer;z-index:10;background:#150f22ee;border:1px solid #241a38;border-radius:999px;padding:.35rem .9rem;font-size:.8rem;transition:border-color .15s,color .15s;position:fixed;bottom:3.25rem;left:50%;transform:translate(-50%);box-shadow:0 0 12px #000000b0}.transcript-jump:hover,.transcript-jump:focus-visible{border-color:var(--accent);color:var(--accent)}.transcript-jump[hidden]{display:none}@media (prefers-reduced-motion:reduce){.line-enter{animation:none}.transcript-jump{transition:none}}#input-row{background:#05030ac4;border-top:1px solid #241a38;gap:.5rem;padding:.5rem 1.25rem .75rem;display:flex}#input-row .prompt{color:var(--accent);text-shadow:0 0 8px var(--accent)}#map-corner{pointer-events:none;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}#mini-map{pointer-events:auto;cursor:pointer;z-index:5;touch-action:none;background:#05030acc;border:1px solid #241a38;border-radius:4px;max-width:190px;max-height:150px;padding:4px;position:relative;overflow:hidden}#mini-map:hover{border-color:var(--accent)}#mini-map:empty,#mini-map:empty~.map-hint{display:none}.map-hint{color:#5d5875;letter-spacing:.06em;text-align:right;-webkit-user-select:none;user-select:none;font-size:.68rem;transition:opacity .15s}#mini-map.mini-map-peeking~.map-hint{visibility:hidden;opacity:0}#mini-map.mini-map-peeking{border-color:var(--accent);cursor:default;z-index:20;background:#0a0714f2;width:min(640px,90vw);max-width:none;height:min(480px,78vh);max-height:none;margin:auto;padding:14px;transition:transform .35s ease-out,background-color .35s ease-out,border-color .35s ease-out;position:fixed;inset:0}#hud .mini-map-dim{z-index:15;opacity:0;pointer-events:none;background:#000;transition:opacity .35s ease-out;position:fixed;inset:0}#mini-map.mini-map-peeking~.mini-map-dim{opacity:.4}#mini-map.mini-map-pinned~.mini-map-dim{pointer-events:auto;cursor:pointer}#mini-map.mini-map-pinned{cursor:pointer}.mini-map-title{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;text-shadow:0 0 8px var(--accent);opacity:0;pointer-events:none;font-size:.78rem;transition:opacity .14s ease-out;position:absolute;top:10px;left:14px}#mini-map.mini-map-peeking .mini-map-title{opacity:1;transition-delay:.21s}.mini-map-detail-surface{opacity:0;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:reduce){#mini-map.mini-map-peeking,#hud .mini-map-dim,.mini-map-detail-surface,.mini-map-title,.map-hint{transition:none}}.game-map .map-room-box{fill:#120c20;stroke:#8a84a8;stroke-width:1.5px}.game-map .map-room-current .map-room-box{stroke:var(--accent);stroke-width:2.5px;fill:#2a1040}.game-map .map-room-unknown{stroke-dasharray:3 3}.game-map .map-room-mark{fill:#8a84a8;text-anchor:middle;dominant-baseline:middle;font-size:12px}.game-map .map-edge{stroke:#8a84a8;stroke-width:1.5px}.game-map .map-edge-known{stroke-dasharray:4 3;opacity:.7}.game-map .map-stub{stroke:#4a4462;stroke-width:1.2px;stroke-dasharray:2 3}.game-map .map-glyph{fill:#a9b8d8;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-size:11px}.game-map .map-stub-glyph{fill:#5d5875;font-size:10px}.game-map .map-door{stroke:#8a84a8;stroke-width:1px;fill:var(--bg)}.game-map .map-door-locked{fill:#5a1626}.game-map .map-door-open{fill:#164a44}.game-map .map-label{fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:4px;font-family:Courier New,ui-monospace,monospace;font-size:12px}.game-map polyline{fill:none}.game-map .map-edge-cross{stroke:#54f0ff;stroke-dasharray:2 4;opacity:.6}.game-map .map-badge{fill:#54f0ff;dominant-baseline:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-size:9px}.game-map .map-ghosts{pointer-events:none}.game-map .map-ghost{opacity:.3}.game-map .map-ghost-box{fill:none;stroke:#4a4462;stroke-width:1px;stroke-dasharray:2 2}.game-map .map-ghost-above .map-ghost-box{stroke:#54f0ff}.game-map .map-ghost-below .map-ghost-box{stroke:#7a5aa0}.game-map .map-rooms>g,.game-map .map-ghosts>g{transition:transform .3s}.game-map .map-room-inner,.game-map .map-ghost-inner{transition:transform .3s,opacity .3s}.game-map .map-room-enter .map-room-inner,.game-map .map-ghost-enter .map-ghost-inner{opacity:0;transform:scale(.6)}.game-map .map-exit{opacity:0;transition:opacity .3s}.game-map .map-edge-enter line,.game-map .map-edge-enter polyline{stroke-dasharray:240;stroke-dashoffset:240px;animation:.35s forwards map-edge-draw}@keyframes map-edge-draw{to{stroke-dashoffset:0}}@keyframes map-level-fade{0%{opacity:.15}to{opacity:1}}.game-map.map-levelshift .map-rooms,.game-map.map-levelshift .map-edges,.game-map.map-levelshift .map-ghosts{animation:.3s map-level-fade}@media (prefers-reduced-motion:reduce){.game-map .map-rooms>g,.game-map .map-ghosts>g,.game-map .map-room-inner,.game-map .map-ghost-inner,.game-map .map-exit{transition:none}.game-map .map-room-enter .map-room-inner,.game-map .map-ghost-enter .map-ghost-inner{opacity:1;transform:none}.game-map .map-edge-enter line,.game-map .map-edge-enter polyline{stroke-dashoffset:0;stroke-dasharray:none;animation:none}.game-map.map-levelshift .map-rooms,.game-map.map-levelshift .map-edges,.game-map.map-levelshift .map-ghosts{animation:none}}#cmd{color:var(--fg);font:inherit;background:0 0;border:none;outline:none;flex:1}
