:root{color-scheme:dark;--bg:#091222;--panel:#111e32f5;--line:#314660;--text:#ecf6ff;--muted:#adc1d6;--cyan:#79f5dc;--orange:#ffd59b;--purple:#d1b1ff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;min-height:44px;border:1px solid var(--line);background:#15273d;border-radius:10px;padding:8px 14px}button:hover{background:#253b55}button:disabled{cursor:default;opacity:.65}a{color:var(--cyan)}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}
#arena{position:relative;height:100svh;min-height:560px;overflow:hidden}#view,#scene{position:absolute;inset:0;width:100%;height:100%;display:block}#scene{touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#07102280,transparent 38%,transparent 65%,#071022dd)}
.topbar{position:absolute;top:0;left:0;right:0;min-height:64px;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:10px 22px;z-index:3;background:linear-gradient(#091222,transparent)}.topbar a{font-size:.85rem;text-decoration:none}.brand{font-size:.8rem;letter-spacing:.14em;color:var(--muted)}.brand strong{color:var(--cyan)}.tools{display:flex;gap:8px}.tools button{font-size:.8rem;background:#101f32cc;padding:6px 10px;min-height:38px}
.brief{position:absolute;top:76px;left:22px;width:min(650px,calc(100% - 44px));padding:17px 20px 12px;border:1px solid #39546bbb;border-radius:16px;background:var(--panel);box-shadow:0 10px 45px #0003;z-index:3}.brief-top{display:flex;justify-content:space-between;gap:14px;font-size:.7rem;letter-spacing:.09em;font-weight:700;color:var(--cyan)}.brief-top #counter{color:var(--muted)}.route{display:flex;gap:4px;margin:12px 0}.route span{height:3px;flex:1;background:#344861;border-radius:3px}.route span.current{background:var(--purple)}.route span.done{background:var(--cyan)}.brief h1{font-size:clamp(1.02rem,2vw,1.35rem);line-height:1.4;letter-spacing:0;margin:0}.brief-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:7px;font-size:.76rem;color:var(--muted)}.brief-bottom button{border:0;background:transparent;color:var(--cyan);padding:5px 0;min-height:35px}
#crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border:1px solid #c9f5f999;border-radius:50%;pointer-events:none;z-index:2;transition:transform .12s}#crosshair::after,#crosshair::before{content:"";position:absolute;background:var(--cyan)}#crosshair::after{height:1px;width:30px;top:10px;left:-5px}#crosshair::before{width:1px;height:30px;left:10px;top:-5px}#crosshair.hot{border-color:var(--cyan);transform:scale(1.2)}#aim-label{position:absolute;top:calc(50% + 26px);left:50%;transform:translateX(-50%);font-size:.75rem;color:var(--cyan);pointer-events:none;text-shadow:0 2px 5px #000;z-index:2}
.feedback{position:absolute;z-index:5;left:50%;bottom:125px;transform:translateX(-50%);width:min(600px,calc(100% - 36px));padding:17px 20px;background:#15243bf5;border:1px solid #47786f;border-radius:16px;box-shadow:0 10px 35px #0005}.feedback-tag{font-size:.72rem;letter-spacing:.1em;font-weight:750;color:var(--cyan);margin-bottom:7px}.feedback.hint{border-color:#756441}.feedback.hint .feedback-tag{color:var(--orange)}.feedback p{margin:0 0 12px}.feedback-actions{display:flex;flex-wrap:wrap;gap:8px}.feedback-actions button{font-size:.85rem}
.primary{background:var(--cyan);color:#09241f;border:0;font-weight:750}.primary:hover{background:#b5fff0}.secondary{background:#223a52}.dock{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(620px,calc(100% - 36px));padding:10px 0 max(16px,env(safe-area-inset-bottom));z-index:4}.answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.answers button{background:#13243df2;border:1px solid #557080;padding:9px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px}.answers button:hover{background:#28536b}.answers .answer-key{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;border:1px solid #557080;flex-shrink:0;font-size:.75rem;color:var(--cyan)}.answers .answer-label{overflow-wrap:anywhere}.answers button.assisted{border-color:var(--cyan);background:#18483d}.answers button.wrong{border-color:#b68857;background:#453523}.dock p{margin:8px 0 0;text-align:center;font-size:.7rem;color:var(--muted)}
.walk{position:absolute;left:22px;bottom:135px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:4px}.walk button{width:46px;height:44px;padding:0;background:#13243ddb;font-size:1.3rem}.walk span{font-size:.55rem;letter-spacing:.12em;color:var(--muted)}.fire{position:absolute;right:22px;bottom:137px;z-index:4;width:62px;height:62px;border-radius:50%;border:1px solid #8bcbb6;background:#1a453cdd;font-size:1.8rem;line-height:1;padding:8px}.fire span{display:block;font-size:.55rem;letter-spacing:.08em;margin-top:3px}.transit{position:absolute;z-index:7;inset:0;display:grid;place-items:center;background:#05122455;color:var(--cyan);font-size:1rem;letter-spacing:.07em;pointer-events:none}
.overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:24px;background:#0410208a;backdrop-filter:blur(5px);overflow:auto}.modal{width:min(540px,100%);padding:32px;background:#0f1e32f5;border:1px solid #375369;border-radius:24px;box-shadow:0 20px 80px #0007}.kicker{color:var(--cyan);font-size:.72rem;letter-spacing:.12em;font-weight:700}.intro-modal h1{font-size:clamp(2.8rem,8vw,4.5rem);line-height:.95;letter-spacing:-.045em;margin:24px 0}.intro-modal h1 em{font-style:normal;color:var(--cyan)}.story{font-size:1.1rem;color:var(--text);margin:0 0 24px}.mission-rules{display:grid;gap:10px}.mission-rules>div{display:flex;align-items:center;gap:13px}.mission-rules span{color:var(--cyan);font-size:.75rem;font-variant-numeric:tabular-nums;border:1px solid #36515e;border-radius:7px;display:grid;place-items:center;width:30px;height:30px;flex-shrink:0}.mission-rules p{margin:0;font-size:.95rem}.reassurance{color:var(--muted);font-size:.85rem;margin:22px 0}.start{width:100%;min-height:54px;font-size:1rem}.intro-links{margin-top:18px;display:flex;flex-direction:column;gap:8px;font-size:.78rem}.intro-links span{color:var(--muted)}.modal h2{font-size:2rem;line-height:1.15;margin:18px 0}.modal>button,.modal>a{margin-top:12px;display:block;width:100%;text-align:center}.modal>a{font-size:.85rem}.modal p{color:var(--muted)}.modal .lesson{color:var(--text)}.victory-stats{padding:14px;background:#173e36;border-radius:12px;color:var(--cyan)}#debrief{margin:18px 0;font-size:.85rem}#debrief summary{min-height:44px;cursor:pointer;color:var(--text)}#review p{margin:0 0 12px}#loading-error{color:var(--orange)}
@media(min-width:1000px){.brief{width:620px}.walk{bottom:33px;flex-direction:row}.walk span{order:-1}.fire{bottom:28px}}
@media(max-width:600px){.topbar{padding:10px 12px;gap:8px}.brand{display:none}.tools{gap:5px}.tools button{font-size:.72rem;padding:6px 8px;min-height:40px}#lock{display:none}.brief{top:66px;left:12px;width:calc(100% - 24px);padding:12px 14px 8px}.brief-top{font-size:.6rem}.brief h1{font-size:1rem}.brief-bottom{font-size:.7rem}.brief-bottom button{min-height:38px}.route{margin:8px 0}.walk{left:13px;bottom:123px}.fire{right:13px;bottom:124px}.dock{width:calc(100% - 24px);padding-bottom:max(12px,env(safe-area-inset-bottom))}.dock p{font-size:.64rem}.answers{gap:6px}.answers button{padding:8px 5px;gap:5px;font-size:.8rem}.answers .answer-key{width:18px;height:21px;font-size:.65rem}.feedback{bottom:117px;width:calc(100% - 24px);padding:14px}.feedback-actions button{font-size:.8rem;flex:1}.overlay{padding:16px}.modal{padding:24px;border-radius:20px}.intro-modal h1{margin:20px 0}.story{font-size:1rem;margin-bottom:20px}.reassurance{margin:18px 0}.intro-links{font-size:.72rem}.walk,.fire{transition:opacity .15s}#hud:has(.feedback:not([hidden])) .walk,#hud:has(.feedback:not([hidden])) .fire{visibility:hidden}}
@media(max-height:720px){.overlay{align-items:flex-start}.modal{margin:auto}.intro-modal h1{font-size:2.5rem;margin:16px 0}.mission-rules{gap:6px}.reassurance{margin:14px 0}.intro-links{margin-top:12px}.brief h1{font-size:1rem}.brief{top:62px}.feedback{bottom:112px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.audio-panel{position:absolute;top:66px;right:22px;z-index:12;width:min(320px,calc(100% - 24px));padding:18px;background:#0f1e32fa;border:1px solid #557080;border-radius:16px;box-shadow:0 16px 60px #0009;max-height:calc(100% - 80px);overflow:auto}.audio-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.audio-heading h2{margin:0;font-size:1.1rem;color:var(--cyan)}.audio-heading button{font-size:1.4rem;width:44px;padding:0}.audio-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:.9rem;cursor:pointer}.audio-toggle input{width:21px;height:21px;accent-color:var(--cyan)}.audio-channel{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.audio-channel>label:not(.audio-toggle){display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.78rem}.audio-channel output{color:var(--cyan);font-variant-numeric:tabular-nums}.audio-channel input[type=range]{width:100%;min-height:44px;margin:0;accent-color:var(--cyan);cursor:pointer}.audio-panel input:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.audio-panel p{color:var(--muted);font-size:.75rem;margin:12px 0 0}
@media(max-width:600px){.audio-panel{right:12px;top:60px}.tools button{min-height:44px}.topbar{padding-top:6px;padding-bottom:6px}.topbar a{font-size:.76rem}}
.lab-short{display:none}#theme{font-size:1.1rem;min-width:44px;min-height:44px;padding:3px}.brief-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:.65rem}.brief-meta #bonus-score{white-space:nowrap;color:var(--cyan)}.path-history{display:block;font-size:.62rem;color:var(--muted);margin-top:3px}.answer-content{display:flex;flex-direction:column;align-items:center}.answer-content small{color:var(--cyan);font-size:.6rem;letter-spacing:.05em;margin-top:2px}.bonus-toast{position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);z-index:6;border:1px solid #a2ce7c;background:#1a392dea;color:#d7ffa6;padding:10px 16px;border-radius:12px;pointer-events:none;font-weight:750;white-space:nowrap}.audio-panel{background:#0f1e32}
:root[data-theme=light]{color-scheme:light;--bg:#d5e2e8;--panel:#edf4f8f5;--line:#a1b8c5;--text:#173344;--muted:#496374;--cyan:#08695e;--orange:#80500d;--purple:#7651a3}
[data-theme=light] button{background:#edf4f8;color:var(--text)}[data-theme=light] button:hover{background:#d4e7ef}[data-theme=light] .primary{background:#126f64;color:#fff}[data-theme=light] .primary:hover{background:#095c53}[data-theme=light] .secondary{background:#d4e4ec}[data-theme=light] .topbar{background:linear-gradient(#e0ebf0,transparent)}[data-theme=light] .tools button{background:#eff6f9ed}[data-theme=light] .vignette{background:linear-gradient(#d2e1e655,transparent 38%,transparent 65%,#9aacb644)}[data-theme=light] .brief{border-color:#a6bdc9}[data-theme=light] .feedback,[data-theme=light] .modal{background:#f1f7faf7;border-color:#9bb8c5}[data-theme=light] .overlay{background:#a7bec866}[data-theme=light] .answers button,[data-theme=light] .walk button{background:#eef5f9f5;border-color:#8aa9b8}[data-theme=light] .answers button:hover{background:#c1e2ea}[data-theme=light] .answers button.wrong{background:#f3e1c7;border-color:#ad7d42}[data-theme=light] .answers button.assisted{background:#d0eadd;border-color:#568c74}[data-theme=light] .fire{background:#d6eee5;color:#11584d;border-color:#417f6f}[data-theme=light] .audio-panel{background:#eff6fa;border-color:#8aa9b8}[data-theme=light] .victory-stats{background:#d3eade}[data-theme=light] .transit{background:#d9eaf04d;color:#174f52;text-shadow:0 1px 4px #fff}[data-theme=light] #aim-label{color:#063e45;text-shadow:0 1px 4px #fff}[data-theme=light] #crosshair{border-color:#0f646b}[data-theme=light] .bonus-toast{background:#d6edc9;color:#254f16}
@media(max-width:600px){.lab-full{display:none}.lab-short{display:inline}.brief-meta{font-size:.58rem;gap:6px}.path-history{font-size:.57rem}.tools{gap:4px}.tools button{padding:6px}.brief-top{letter-spacing:.05em}.topbar{gap:5px}.brand{display:none}.dock:has(.answer-content small) p{margin-top:5px}.feedback{bottom:126px}}
.navigation{position:absolute;left:22px;top:76px;z-index:3;width:235px;padding:12px 15px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.nav-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-heading strong{font-size:.66rem;letter-spacing:.04em;color:var(--cyan)}.nav-heading button{font-size:.72rem;padding:5px 10px;min-height:44px}.navigation p{font-size:.85rem;margin:6px 0}.navigation>span{font-size:.7rem;color:var(--muted)}#mini-map{display:block;max-width:100%;margin:10px auto 0;border-radius:8px}.at-gate .navigation{left:auto;right:22px;width:220px}.walk{display:grid;grid-template-columns:repeat(2,44px);gap:5px}.walk span{grid-column:1/-1;text-align:center;order:5}.walk button{width:44px}.walk button[data-move=forward]{order:1}.walk button[data-move=left]{order:2}.walk button[data-move=right]{order:3}.walk button[data-move=backward]{order:4}.level-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.level-card{padding:10px;text-align:left;font-size:.78rem}.level-card strong,.level-card span{display:block}.level-card span{font-size:.65rem;color:var(--muted);margin-top:4px}.level-card[aria-pressed=true]{border-color:var(--cyan);background:#184439}[data-theme=light] .level-card[aria-pressed=true]{background:#d2ebe1}.level-card:disabled{opacity:.5}.brief{width:min(560px,calc(100% - 44px))}.at-gate .navigation>span{display:block}.dock:has(.answers[hidden]){pointer-events:none}
@media(max-width:900px){.at-gate .navigation{display:none}}
@media(max-width:600px){.navigation{top:64px;left:12px;width:210px;padding:8px 12px}.navigation p{font-size:.78rem}#mini-map{max-height:180px;width:auto}.walk{bottom:122px}.walk span{display:none}.level-list{gap:5px}.level-card{padding:8px 5px;font-size:.71rem}.brief{left:12px;width:calc(100% - 24px)}.dock p{background:var(--panel);padding:4px 6px;border-radius:7px}}
.talk{position:absolute;bottom:120px;left:50%;transform:translateX(-50%);z-index:5;background:var(--panel);border-color:var(--cyan);white-space:nowrap}.guide-dialogue{position:absolute;bottom:180px;left:50%;transform:translateX(-50%);z-index:6;width:min(470px,calc(100% - 32px));padding:12px 18px;background:var(--panel);border:1px solid var(--cyan);border-radius:16px}.guide-dialogue>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.guide-dialogue strong{font-size:.72rem;letter-spacing:.1em;color:var(--cyan)}.guide-dialogue button{min-width:44px;padding:0;font-size:1.5rem}.guide-dialogue p{margin:6px 0;font-size:.95rem}@media(max-width:600px){.talk{bottom:226px;font-size:.8rem}.guide-dialogue{bottom:280px;padding:8px 12px}.guide-dialogue p{font-size:.84rem}}
.bonus-toast.npc-bonus{top:30%}
