:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--hud-bg:#0f172ac7;--hud-border:#94a3b838;--hud-text:#e2e8f0;--hud-muted:#94a3b8;--accent:#38bdf8;--accent-strong:#0ea5e9;--brake:#f87171;--accel:#4ade80;--warn:#fbbf24;--path-reference:#facc15;--path-front:#22d3ee;--path-rear:#fb923c;--radius:12px;--pad:clamp(8px, 1vw, 14px);--font-ui:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Mono", "JetBrains Mono", Consolas, "SFMono-Regular", Menlo, monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--hud-text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;background:#0b1220;margin:0;overflow:hidden}#app{width:100vw;height:100vh;height:100dvh;position:relative}#game{position:absolute;inset:0}#game canvas{outline:none;display:block;width:100%!important;height:100%!important}#hud{pointer-events:none;gap:var(--pad);padding:var(--pad);grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;font-size:clamp(11px,.85vw + 6px,14px);display:grid;position:absolute;inset:0}#hud>*{min-width:0}.hud-left{gap:var(--pad);flex-direction:column;grid-area:1/1/span 2;width:clamp(170px,16vw,230px);display:flex}.hud-right{gap:var(--pad);scrollbar-width:none;flex-direction:column;grid-area:1/3/span 2;align-items:stretch;width:clamp(170px,16vw,230px);min-height:0;max-height:100%;display:flex;overflow-y:auto}.hud-right>.panel{flex:none}.hud-bottom{flex-direction:column;grid-area:3/2;justify-content:flex-end;align-items:center;gap:.4em;min-height:2.6em;display:flex}.hud-bottom-slot{flex-direction:column;align-items:stretch;width:min(100%,760px);display:flex}.panel{pointer-events:auto;background:var(--hud-bg);border:1px solid var(--hud-border);border-radius:var(--radius);padding:calc(var(--pad) * .9) var(--pad);-webkit-backdrop-filter:blur(6px);box-shadow:0 8px 24px #00000040}.panel h2{letter-spacing:.12em;text-transform:uppercase;color:var(--hud-muted);margin:0 0 .5em;font-size:.78em;font-weight:600}.brand{color:var(--hud-muted);letter-spacing:.04em;align-items:baseline;gap:.5em;padding:.35em .2em 0;font-size:.85em;display:flex}.brand strong{color:var(--hud-text);letter-spacing:.02em;font-weight:700}.speed{font-family:var(--font-mono);align-items:baseline;gap:.4em;line-height:1;display:flex}.speed-value{text-align:right;font-variant-numeric:tabular-nums;min-width:2.2ch;font-size:2.9em;font-weight:700}.speed-unit{color:var(--hud-muted);font-size:.95em}.speed-dir{color:var(--accent);text-align:center;min-width:1.4em;margin-left:auto;font-size:1.1em}.speed-dir.reverse{color:var(--warn)}.gear{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.gear-btn{pointer-events:auto;appearance:none;border:1px solid var(--hud-border);color:var(--hud-muted);font:700 1.25em var(--font-mono);cursor:pointer;background:#1e293bcc;border-radius:8px;padding:.45em 0;transition:background .12s,color .12s,transform 80ms}.gear-btn:hover{color:var(--hud-text);background:#334155e6}.gear-btn:active{transform:scale(.96)}.gear-btn.active{background:var(--accent-strong);border-color:var(--accent);color:#06111f}.gear-btn.active[data-gear=R]{background:var(--warn);border-color:var(--warn)}.gear-btn.rejected{border-color:var(--brake);animation:.32s shake}@keyframes shake{20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}.steering{grid-template-columns:auto 1fr;align-items:center;gap:.8em;display:grid}.wheel{width:3.6em;height:3.6em;transition:transform 60ms linear}.steering-readout{font-family:var(--font-mono);flex-direction:column;gap:.15em;display:flex}.steering-side{color:var(--hud-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.85em}.steering-angle{font-variant-numeric:tabular-nums;font-size:1.5em;font-weight:700}.steering-mode{color:var(--accent);min-height:1.2em;font-size:.75em}.pedals{grid-template-columns:1fr 1fr;gap:.8em;display:grid}.pedal{text-align:center;grid-template-rows:auto 1fr;gap:.35em;display:grid}.pedal-label{letter-spacing:.1em;color:var(--hud-muted);font-size:.78em}.pedal-bar{border:1px solid var(--hud-border);background:#1e293be6;border-radius:6px;height:5.2em;position:relative;overflow:hidden}.pedal-fill{height:0%;transition:height 50ms linear;position:absolute;bottom:0;left:0;right:0}.pedal[data-pedal=brake] .pedal-fill{background:linear-gradient(180deg, #fca5a5, var(--brake))}.pedal[data-pedal=accel] .pedal-fill{background:linear-gradient(180deg, #bbf7d0, var(--accel))}.pedal-value{font:600 .85em var(--font-mono);color:#e2e8f0d9;text-shadow:0 1px 2px #0009;place-items:center;display:grid;position:absolute;inset:0}.toggle-list{flex-direction:column;gap:.35em;display:flex}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5em;display:flex}.toggle input{accent-color:var(--accent);margin:0}.swatch{border-radius:2px;flex:none;width:1.4em;height:.35em}.toggle kbd,.btn kbd,.help-table kbd{font:600 .8em var(--font-mono);color:var(--hud-muted);border:1px solid var(--hud-border);white-space:nowrap;border-radius:4px;margin-left:auto;padding:0 .35em}.btn-row{flex-direction:column;gap:.4em;display:flex}.btn{pointer-events:auto;appearance:none;border:1px solid var(--hud-border);color:var(--hud-text);font:600 .95em var(--font-ui);cursor:pointer;text-align:left;background:#1e293bcc;border-radius:8px;align-items:center;gap:.5em;padding:.45em .7em;display:flex}.btn:hover{background:#334155f2}.btn:active{transform:scale(.98)}.btn.danger:hover{border-color:var(--brake)}.toast{pointer-events:none;background:var(--hud-bg);border:1px solid var(--hud-border);opacity:0;text-align:center;border-radius:999px;max-width:min(90vw,720px);padding:.55em 1.2em;font-size:1.05em;transition:opacity .16s,transform .16s;transform:translateY(6px)}.toast.visible{opacity:1;transform:translateY(0)}.toast.warn{border-color:var(--warn);color:#fde68a}.toast.info{border-color:var(--accent)}.help{pointer-events:auto;z-index:10;background:#0206178c;place-items:center;display:none;position:absolute;inset:0}.help.visible{display:grid}.help-card{border:1px solid var(--hud-border);width:min(92vw,760px);max-height:88vh;padding:calc(var(--pad) * 1.6);background:#0f172af5;border-radius:16px;overflow:auto;box-shadow:0 24px 60px #00000080}.help-card h1{margin:0 0 .2em;font-size:1.4em}.help-card p{color:var(--hud-muted);margin:.3em 0 .9em;line-height:1.45}.help-columns{grid-template-columns:1fr 1fr;gap:1.2em;display:grid}.help-table{border-collapse:collapse;width:100%}.help-table td{border-bottom:1px solid #94a3b81f;padding:.25em .3em}.help-table td:last-child{text-align:right}.help-table kbd{margin-left:.3em}.help-close{justify-content:center;width:100%;margin-top:1em}@media (max-width:900px){#hud{font-size:11px}.hud-left,.hud-right{width:150px}.speed-value{font-size:2.3em}.pedal-bar{height:3.8em}.help-columns{grid-template-columns:1fr}}@media (max-height:640px){.panel{padding:calc(var(--pad) * .6) calc(var(--pad) * .8)}.panel h2{margin-bottom:.3em}}@media (max-height:560px){#hud{font-size:10px}.brand{display:none}.pedal-bar{height:3.2em}}.contact-status{visibility:hidden;border:1px solid var(--brake);color:#fecaca;min-height:1.2em;font:600 .85em var(--font-mono);letter-spacing:.04em;text-transform:uppercase;background:#f871712e;border-radius:6px;margin-top:.5em;padding:.3em .6em;display:block}.contact-status:before{content:"접촉 · ";color:var(--brake)}.contact-status.visible{visibility:visible}.panel.hidden{display:none}.kv{grid-template-columns:auto 1fr;gap:.15em .6em;margin:0;font-size:.88em;display:grid}.kv dt{color:var(--hud-muted);white-space:nowrap}.kv dd{text-align:right;min-width:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.kv dd.ok{color:var(--accel)}.menu{pointer-events:auto;grid-area:1/1/span 3/span 3;place-items:center;display:grid;overflow:auto}.menu-card{border:1px solid var(--hud-border);width:min(94vw,680px);max-height:92vh;padding:calc(var(--pad) * 1.8);background:#0f172aeb;border-radius:16px;overflow:auto;box-shadow:0 24px 60px #00000080}.menu-card h1{letter-spacing:.02em;margin:0 0 .15em;font-size:1.8em}.menu-subtitle{color:var(--hud-muted);margin:0 0 1.2em;line-height:1.45}.mission-list{flex-direction:column;gap:.6em;display:flex}.mission-card{appearance:none;text-align:left;border:1px solid var(--hud-border);width:100%;color:var(--hud-text);cursor:pointer;font:inherit;background:#1e293bbf;border-radius:12px;align-items:flex-start;gap:.9em;padding:.8em 1em;transition:background .12s,border-color .12s,transform 80ms;display:flex}.mission-card:hover{border-color:var(--accent);background:#334155f2}.mission-card:active{transform:scale(.99)}.mission-index{background:var(--accent-strong);color:#06111f;width:2.2em;height:2.2em;font:700 1.1em var(--font-mono);border-radius:8px;flex:none;place-items:center;display:grid}.mission-body{flex-direction:column;gap:.2em;min-width:0;display:flex}.mission-title{font-weight:700}.mission-goal{color:var(--hud-text);opacity:.85}.mission-meta{color:var(--hud-muted);letter-spacing:.04em;font-size:.85em}.menu-sandbox,.menu-diagnosis{flex:1;justify-content:center;margin-top:1.2em}.hud-top{justify-content:flex-start;align-items:center;gap:var(--pad);flex-direction:column;grid-area:1/2;min-width:0;display:flex}.mission-panel{flex-direction:column;gap:.45em;width:min(100%,460px);display:flex}.mission-head{justify-content:space-between;align-items:center;gap:.8em;display:flex}.mission-hud-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.mission-status{font:700 .75em var(--font-mono);letter-spacing:.12em;border:1px solid var(--hud-border);color:var(--hud-muted);border-radius:999px;flex:none;padding:.2em .6em}.mission-status[data-status=RUNNING]{color:var(--accent);border-color:var(--accent)}.mission-status[data-status=SUCCEEDED]{color:#06111f;background:var(--accel);border-color:var(--accel)}.mission-status[data-status=FAILED]{color:#06111f;background:var(--brake);border-color:var(--brake)}.mission-hud-goal{color:var(--hud-muted);line-height:1.35}.mission-hold{border:1px solid var(--hud-border);background:#1e293be6;border-radius:6px;height:1.5em;position:relative;overflow:hidden}.mission-hold-fill{background:linear-gradient(90deg, #86efac, var(--accel));width:0;transition:width 60ms linear;position:absolute;inset:0 auto 0 0}.mission-hold-text{font:600 .8em var(--font-mono);color:var(--hud-text);text-shadow:0 1px 2px #0009;place-items:center;display:grid;position:absolute;inset:0}.mission-unmet{color:#fde68a;margin:0;padding:0 0 0 1.1em;font-size:.9em;line-height:1.35}.mission-unmet:empty{display:none}.mission-foot{justify-content:space-between;align-items:center;gap:.6em;display:flex}.mission-collisions{color:var(--hud-muted);font:600 .8em var(--font-mono)}.mission-buttons{gap:.4em;margin-left:auto;display:flex}.btn.small{padding:.3em .55em;font-size:.85em}.btn.primary{background:var(--accent-strong);border-color:var(--accent);color:#06111f}.btn.primary kbd{color:#06111f;border-color:#06111f66}.mission-overlay{pointer-events:auto;z-index:9;background:#0206178c;place-items:center;display:none;position:absolute;inset:0}.mission-overlay.visible{display:grid}.mission-overlay-card{text-align:center;border:1px solid var(--hud-border);width:min(92vw,520px);padding:calc(var(--pad) * 2);background:#0f172af5;border-radius:16px;box-shadow:0 24px 60px #00000080}.mission-overlay[data-status=SUCCEEDED] .mission-overlay-card{border-color:var(--accel)}.mission-overlay[data-status=FAILED] .mission-overlay-card{border-color:var(--brake)}.mission-overlay-title{letter-spacing:.08em;margin:0 0 .3em;font-size:1.9em}.mission-overlay[data-status=SUCCEEDED] .mission-overlay-title{color:var(--accel)}.mission-overlay[data-status=FAILED] .mission-overlay-title{color:var(--brake)}.mission-overlay-detail{color:var(--hud-muted);margin:0 0 1.2em}.mission-overlay-buttons{justify-content:center;gap:.6em;display:flex}@media (max-width:900px){.mission-panel{width:100%}.mission-hud-goal{display:none}}.steering{grid-template-columns:1fr;justify-items:center;gap:.4em}.steering-readout{text-align:center;align-items:center;width:100%}.wheel-stage{flex:none;width:9em;height:9em;margin-top:.3em;position:relative}.wheel{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:none}.wheel.interactive{cursor:grab}.wheel.interactive.grabbing{cursor:grabbing}.wheel-lock{pointer-events:none;background:var(--brake);color:#06111f;font:700 .7em var(--font-mono);letter-spacing:.08em;border-radius:999px;padding:.1em .5em;display:none;position:absolute;bottom:-.2em;left:50%;transform:translate(-50%)}.wheel-lock.visible{display:block}.wheel-turns{color:var(--accent);white-space:nowrap;font-size:.85em;font-weight:600}.pedal-key{font:600 .8em var(--font-mono);color:var(--hud-text);border:1px solid var(--hud-border);border-radius:4px;margin-left:.2em;padding:0 .35em}.both-pedals{border:1px solid var(--warn);color:#fde68a;background:#fbbf241f;border-radius:6px;margin-top:.5em;padding:.3em .5em;font-size:.8em;line-height:1.3;display:none}.both-pedals.visible{display:block}.mode-switch{grid-template-columns:1fr 1fr;align-items:center;gap:.35em;margin-bottom:.5em;display:grid}.mode-label{color:var(--hud-muted);white-space:nowrap;grid-column:1/-1;font-size:.8em}.mode-switch .btn{white-space:nowrap;justify-content:center;padding-left:.4em;padding-right:.4em}.mode-switch .btn.active{background:var(--accent-strong);border-color:var(--accent);color:#06111f}.btn.hidden{display:none}@media (max-height:640px){.wheel-stage{width:6.4em;height:6.4em;margin-top:0}.contact-status{min-height:1em;margin-top:.3em}}.mission-row{align-items:stretch;gap:.5em;display:flex}.mission-row .mission-card{flex:auto}.mission-guide-btn{white-space:nowrap;border-color:var(--accent);color:var(--accent);flex:none;align-self:center}.mission-guide-btn:hover{background:var(--accent-strong);color:#06111f}.mission-mode{font:700 .7em var(--font-mono);letter-spacing:.1em;border:1px solid var(--hud-border);color:var(--hud-muted);border-radius:999px;flex:none;padding:.2em .55em}.mission-mode[data-mode=GUIDE]{color:#06111f;background:var(--warn);border-color:var(--warn)}.guide-panel{border-color:#fbbf2473;flex-direction:column;gap:.35em;width:min(100%,460px);display:flex}.guide-panel.hidden{display:none}.guide-head{align-items:baseline;gap:.6em;display:flex}.guide-step{font:700 .78em var(--font-mono);letter-spacing:.12em;color:var(--warn);white-space:nowrap}.guide-title{font-weight:700}.guide-name{color:var(--hud-muted);white-space:nowrap;margin-left:auto;font-size:.78em}.guide-steps{gap:.3em;display:flex}.guide-dot{background:#94a3b859;border-radius:999px;width:.55em;height:.55em}.guide-dot.done{background:var(--accel)}.guide-dot.active{background:var(--warn);box-shadow:0 0 0 2px #fbbf2459}.guide-instruction{word-break:keep-all;font-size:1.12em;font-weight:700;line-height:1.35}.guide-explanation{color:var(--hud-muted);word-break:keep-all;font-size:.88em;line-height:1.35}.guide-explanation:empty{display:none}.guide-hint,.guide-correction{word-break:keep-all;border-radius:6px;padding:.3em .55em;font-size:.9em;line-height:1.35;display:none}.guide-hint.visible{background:#38bdf81f;border:1px solid #38bdf880;display:block}.guide-correction.visible{border:1px solid var(--warn);color:#fde68a;background:#fbbf241f;display:block}.guide-progress{border:1px solid var(--hud-border);background:#1e293be6;border-radius:999px;height:.35em;overflow:hidden}.guide-progress-fill{background:var(--warn);width:0;height:100%;transition:width .12s linear}@media (max-height:640px){.guide-explanation{display:none}.guide-panel{gap:.25em}}.mission-panel.compact .mission-hud-goal,.mission-panel.compact .mission-unmet{display:none}.prediction-legend{right:calc(clamp(170px, 16vw, 230px) + 2 * var(--pad));bottom:calc(2 * var(--pad) + 2.6em);pointer-events:none;flex-direction:column;gap:.3em;max-width:260px;font-size:.8em;display:none;position:absolute}.prediction-legend.visible{display:flex}.legend-title{color:var(--hud-muted);letter-spacing:.04em;margin-right:.3em}.legend-row{white-space:nowrap;align-items:center;gap:.4em;display:inline-flex}.legend-swatch{flex:none;width:1.8em;height:.9em;display:inline-block}.legend-swatch[data-layer=SWEPT_AREA]{background:#38bdf840;border:1px solid #38bdf8e6}.legend-swatch[data-layer=REAR_WHEEL_INSIDE]{border-top:4px solid #fbbf24;height:0}.legend-swatch[data-layer=REAR_WHEELS]{border-top:2px solid #fdba74;height:0}.legend-swatch[data-layer=CENTER_PATH]{border-top:2px dashed #f8fafc;height:0}.legend-swatch[data-layer=FRONT_WHEELS]{border-top:2px dotted #22d3ee;height:0}.legend-swatch[data-layer=AXLE_CENTERS]{border-top:1px solid #a78bfa;height:0}.legend-swatch[data-layer=COLLISION]{background:linear-gradient(45deg,#0000 42%,#f87171 42% 58%,#0000 58%),linear-gradient(-45deg,#0000 42%,#f87171 42% 58%,#0000 58%);width:1em;height:1em}.legend-note{color:var(--warn)}@media (max-height:640px){.prediction-legend{font-size:.72em}}.guide-demo-buttons{gap:.4em;margin-top:.15em;display:flex}.guide-demo-buttons.hidden{display:none}.guide-demo-buttons .btn{color:#ddd6fe;border-color:#a78bfab3;flex:auto;justify-content:center}.guide-panel.suppressed{display:none}.ghost-panel{border-color:#a78bfab3;flex-direction:column;gap:.35em;width:min(100%,460px);display:flex}.ghost-head{justify-content:space-between;align-items:baseline;gap:.6em;display:flex}.ghost-title{font:700 .8em var(--font-mono);letter-spacing:.12em;color:#c4b5fd;text-transform:uppercase}.ghost-phase{font:600 .78em var(--font-mono);color:var(--hud-muted)}.ghost-narration{word-break:keep-all;font-size:1.08em;font-weight:700;line-height:1.35}.ghost-explanation{color:var(--hud-muted);word-break:keep-all;font-size:.86em;line-height:1.35}.ghost-explanation:empty{display:none}.ghost-state{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:.15em .7em;margin:0;font-size:.88em;display:grid}#hud.controls-suppressed .mission-panel,.ghost-panel[data-status=FINISHED] [data-ghost=play]{display:none}.ghost-state dt{color:var(--hud-muted)}.ghost-state dd{margin:0;font-weight:600}.ghost-wheel-row{grid-column:2/span 5}.ghost-grip[data-grip=RELEASED]{color:var(--accent)}.ghost-grip[data-grip=GRABBED]{color:var(--warn)}.ghost-brake[data-on=true]{color:var(--brake)}.ghost-finished{word-break:keep-all;background:#4ade801f;border:1px solid #4ade8099;border-radius:6px;padding:.3em .55em;font-size:.9em;line-height:1.35;display:none}.ghost-finished.visible{display:block}.ghost-progress{border:1px solid var(--hud-border);background:#1e293be6;border-radius:999px;height:.35em;overflow:hidden}.ghost-progress-fill{background:#a78bfa;width:0;height:100%;transition:width .12s linear}.ghost-controls{flex-wrap:wrap;align-items:center;gap:.35em;display:flex}.ghost-speeds{gap:.2em;margin-left:auto;display:inline-flex}.ghost-speeds .btn.active{background:var(--accent-strong);border-color:var(--accent);color:#06111f}#hud.controls-suppressed .gear-btn,#hud.controls-suppressed [data-action=center],#hud.controls-suppressed .wheel{pointer-events:none;opacity:.55}@media (max-height:640px){.ghost-explanation{display:none}}.mission-row.with-modes{flex-direction:column;gap:.4em}.mission-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4em;padding:0 0 .2em 2.6em;display:grid}.mode-btn{appearance:none;border:1px solid var(--hud-border);min-height:3.2em;color:var(--hud-text);font:600 .9em var(--font-ui);text-align:left;cursor:pointer;background:#1e293bbf;border-radius:10px;align-items:center;gap:.6em;padding:.45em .7em;display:flex}.mode-btn:hover{border-color:var(--accent);background:#334155f2}.mode-btn[data-state=recommended]{border-color:var(--accent)}.mode-btn[data-state=done]{border-color:#4ade8099}.mode-mark{text-align:center;width:1.4em;font:700 1em var(--font-mono);color:var(--hud-muted);flex:none}.mode-btn[data-state=done] .mode-mark{color:#4ade80}.mode-btn[data-state=recommended] .mode-mark{color:var(--accent)}.mode-text{flex-direction:column;gap:.1em;min-width:0;display:flex}.mode-hint{color:var(--hud-muted);word-break:keep-all;font-size:.82em;font-weight:500}.mode-state{font:700 .68em var(--font-mono);letter-spacing:.08em;color:#4ade80;border:1px solid #4ade8099;border-radius:999px;flex:none;margin-left:auto;padding:.15em .5em}.mode-state.recommended{border-color:var(--accent);color:var(--accent)}.mission-mode[data-mode=PRACTICE]{color:#06111f;background:var(--accent);border-color:var(--accent)}.mission-mode[data-mode=TEST]{color:#fff;background:#dc2626;border-color:#dc2626}.mission-mode[data-mode=LEARN]{color:#06111f;background:#c4b5fd;border-color:#c4b5fd}.mission-overlay-note{color:var(--hud-muted);margin:-.4em 0 1em}.mission-overlay-note:empty,#hud[data-mission-mode] .toggle-prediction,#hud[data-mission-mode=TEST] .paths-panel,#hud[data-mission-mode=LEARN] .paths-panel{display:none}.learn-panel{border-color:#c4b5fd99;flex-direction:column;gap:.4em;width:min(100%,520px);display:flex}.learn-head{align-items:baseline;gap:.6em;display:flex}.learn-kicker{font:700 .8em var(--font-mono);letter-spacing:.12em;color:#c4b5fd;text-transform:uppercase}.learn-name{color:var(--hud-muted);font-size:.85em}.learn-progress{font:600 .78em var(--font-mono);color:var(--hud-muted);margin-left:auto}.learn-dots{gap:.35em;display:flex}.learn-dot{background:#94a3b84d;border-radius:999px;width:1.6em;height:.35em}.learn-dot.done{background:#c4b5fdb3}.learn-dot.active{background:#c4b5fd}.learn-title{margin:.1em 0 0;font-size:1.15em}.learn-lines p{word-break:keep-all;margin:.15em 0;line-height:1.4}.learn-variants{flex-wrap:wrap;gap:.4em;display:flex}.learn-variants:empty{display:none}.learn-variants .btn.active{border-color:var(--accent);color:var(--accent)}.learn-caption,.learn-narration{color:var(--hud-muted);word-break:keep-all;font-size:.86em;line-height:1.35;display:none}.learn-caption.visible,.learn-narration.visible{display:block}.learn-narration.visible{color:#ddd6fe;min-height:1.3em}.learn-nav{flex-wrap:wrap;align-items:center;gap:.4em;display:flex}.learn-spacer{flex:auto}.learn-nav .btn:disabled{opacity:.4;cursor:default}.help-panel{border-color:#38bdf873;flex-direction:column;gap:.35em;width:min(100%,460px);display:flex}.help-panel.suppressed{display:none}.help-row{flex-wrap:wrap;align-items:center;gap:.35em;display:flex}.help-kicker{font:700 .8em var(--font-mono);letter-spacing:.12em;color:var(--accent);text-transform:uppercase;margin-right:.2em}.help-row .btn.active{border-color:var(--accent);color:var(--accent)}.help-panel.finished .btn{opacity:.45;cursor:default}.help-hint{word-break:keep-all;background:#38bdf81f;border:1px solid #38bdf859;border-radius:6px;padding:.35em .55em;line-height:1.35;display:none}.help-hint.visible{display:block}@media (max-height:640px){.learn-lines p{font-size:.92em}}[data-action=mission-result].hidden,[data-action=mission-continue].hidden{display:none}.mission-overlay[data-status=INCOMPLETE] .mission-overlay-card{border-color:var(--warn)}.mission-overlay[data-status=INCOMPLETE] .mission-overlay-title{color:var(--warn)}.mission-overlay{padding:var(--pad);background:#02061740;place-items:center start}.mission-overlay-card{width:min(92vw,440px);max-height:calc(100vh - 2 * var(--pad));text-align:left;scrollbar-width:thin;overflow:auto}.mission-overlay-title{font-size:1.5em}.mission-overlay-detail{margin-bottom:.6em}.result{flex-direction:column;gap:.55em;margin:.2em 0 .9em;display:flex}.result.hidden,.result-block.hidden,.result-help.hidden,.result-toggles.hidden,.result-details.hidden,.result-toggles .btn.hidden{display:none}.result-block h3{font:700 .78em var(--font-mono);letter-spacing:.1em;color:var(--hud-muted);text-transform:uppercase;margin:0 0 .25em}.result-block ul,.result-block ol{word-break:keep-all;margin:0;padding-left:1.2em;line-height:1.4}.result-block li+li{margin-top:.3em}.result-strengths li::marker{color:var(--accel)}.result-improvements li::marker{color:var(--warn);font-weight:700}.result-next{color:var(--hud-muted);margin-top:.1em;font-size:.88em;display:block}.result-next:before{content:"→ ";color:var(--accent)}.result-focus{background:#38bdf81f;border:1px solid #38bdf866;border-radius:8px;padding:.5em .7em}.result-focus-label{font:700 .72em var(--font-mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-bottom:.2em;display:block}.result-focus-text{word-break:keep-all;margin:0;font-weight:700;line-height:1.4}.result-help{color:var(--hud-muted);margin:0;font-size:.88em}.result-toggles{flex-wrap:wrap;gap:.4em;display:flex}.result-toggles .btn.active{border-color:var(--accent);color:var(--accent)}.result-details{margin:0;font-size:.86em}.mission-overlay-buttons{flex-wrap:wrap;justify-content:flex-start}@media (max-height:640px){.mission-overlay-card{padding:var(--pad)}.mission-overlay-title{font-size:1.3em}.result{gap:.4em}}.vehicle-picker{flex-wrap:wrap;align-items:center;gap:.5em;margin:-.6em 0 1em;font-size:.92em;display:flex}.vehicle-picker-label{font:700 .8em var(--font-mono);letter-spacing:.1em;color:var(--hud-muted);text-transform:uppercase}.vehicle-picker select{appearance:none;border:1px solid var(--hud-border);min-height:2.4em;color:var(--hud-text);font:600 .95em var(--font-ui);cursor:pointer;background:#1e293be6;border-radius:8px;padding:.3em .7em}.vehicle-picker-hint{color:var(--hud-muted);word-break:keep-all;flex-basis:100%;font-size:.85em}.mission-overlay.visible.replaying{display:none}.result li.linked{cursor:pointer}.result li.linked:hover{color:var(--accent)}.replay-panel{pointer-events:auto;border-color:#fbbf2499;flex-direction:column;gap:.3em;width:min(100%,520px);display:flex}.replay-panel[data-severity=major]{border-color:var(--brake)}.replay-head{justify-content:space-between;align-items:baseline;gap:.6em;display:flex}.replay-title{color:var(--accent);letter-spacing:.04em;font-weight:700}.replay-marker-label{font-family:var(--font-mono);color:#fde68a;font-size:.85em}.replay-cause{font-size:1.02em;line-height:1.35}.replay-effect{color:#fca5a5;line-height:1.3}.replay-effect:empty,.replay-next:empty{display:none}.replay-next{color:var(--muted);line-height:1.3}.replay-state{grid-template-columns:auto 1fr auto 1fr;gap:.15em .6em;margin:.2em 0 0;font-size:.9em;display:grid}.replay-state dt{color:var(--muted)}.replay-state dd{font-family:var(--font-mono);margin:0}.replay-state dd[data-on=true]{color:#fca5a5}.replay-grip[data-grip=GRABBED]{color:#fde68a}.replay-actions{flex-wrap:wrap;gap:.35em;display:flex}.replay-actions .toggle.active{border-color:var(--accent);color:var(--accent)}.replay-bar{pointer-events:auto;border-color:#fbbf2499;flex-direction:column;gap:.35em;display:flex}.replay-transport{flex-wrap:wrap;align-items:center;gap:.35em;display:flex}.replay-speeds{gap:.25em;display:inline-flex}.replay-time{font-family:var(--font-mono);color:var(--muted);margin-left:auto;font-size:.9em}.replay-debug{color:var(--muted);align-items:center;gap:.3em;font-size:.8em;display:inline-flex}.replay-timeline{padding-top:2.6em;position:relative}.replay-range{width:100%;accent-color:var(--accent);margin:0}.replay-marks{height:2.6em;position:absolute;top:0;left:8px;right:8px}.replay-mark.raised .replay-mark-label{transform:translateY(-1.1em)}.replay-mark.raised{z-index:1}.replay-mark{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-direction:column;align-items:center;gap:1px;padding:0;font-size:.72em;display:flex;position:absolute;bottom:0;transform:translate(-50%)}.replay-mark-dot{background:#fbbf24;border-radius:50%;width:7px;height:7px}.replay-mark.kind-gear .replay-mark-dot,.replay-mark.kind-outcome .replay-mark-dot{background:#94a3b8}.replay-mark.kind-deviation .replay-mark-dot,.replay-mark.kind-collision .replay-mark-dot{background:var(--brake);width:9px;height:9px}.replay-mark.kind-deviation{color:#fca5a5;font-weight:700}.replay-mark.kind-debug{color:#64748b}.replay-mark:hover{color:#f8fafc}.replay-mark:not(.labelled) .replay-mark-label{display:none}.replay-mark:not(.labelled):hover .replay-mark-label{display:block}.replay-panel{width:min(100%,480px)}#hud.controls-suppressed .replay-panel,#hud.controls-suppressed .replay-bar{display:flex}.result-skills{background:#86efac0f;border:1px solid #86efac59;border-radius:8px;grid-template-columns:1fr;gap:.3em;margin:.2em 0 .6em;padding:.5em .7em;display:grid}.result-skills-title{color:#86efac;letter-spacing:.04em;font-size:.78em}.result-skill{grid-template-columns:auto 1fr;align-items:baseline;gap:.5em;display:grid}.result-skill-label{color:var(--muted);white-space:nowrap;font-size:.8em}.result-skill-strength .result-skill-label{color:#86efac}.result-skill-improvement .result-skill-label{color:#fde68a}.result-skill-text{text-align:left;color:inherit;font:inherit;cursor:default;background:0 0;border:none;padding:0;line-height:1.35}.result-skill-text.linked{cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted #94a3b899;text-decoration:underline dotted #94a3b899}.result-skill-text.linked:hover{color:var(--accent)}.result-skills [data-result=diagnosis]{justify-self:start}.menu-actions{flex-wrap:wrap;gap:.5em;display:flex}.skill-overlay{pointer-events:auto;z-index:12;background:#02061799;place-items:center;display:none;position:fixed;inset:0}.skill-overlay.visible{display:grid}.skill-card{border-color:#86efac80;flex-direction:column;gap:.5em;width:min(92vw,640px);max-height:88vh;display:flex;overflow:auto}.skill-head{align-items:baseline;gap:.6em;display:flex}.skill-title{margin:0;font-size:1.15em}.skill-recent{color:var(--muted);margin-right:auto;font-size:.85em}.skill-scope{color:var(--muted);margin:0;font-size:.8em}.skill-focus{background:#86efac14;border:1px solid #86efac59;border-radius:8px;flex-direction:column;gap:.15em;padding:.5em .7em;display:flex}.skill-focus-label{color:#86efac;letter-spacing:.04em;font-size:.78em}.skill-focus strong{font-size:1.05em}.skill-focus-rec{line-height:1.35}.skill-empty{margin:0}.skill-list{flex-direction:column;gap:.25em;margin:0;padding:0;list-style:none;display:flex}.skill-row{border:1px solid var(--hud-border);width:100%;color:inherit;font:inherit;cursor:pointer;text-align:left;background:#0f172a99;border-radius:8px;justify-content:space-between;align-items:center;gap:.6em;padding:.45em .6em;display:flex}.skill-row:hover{border-color:var(--accent)}.skill-list li.open .skill-row{border-color:var(--accent);border-bottom-right-radius:0;border-bottom-left-radius:0}.skill-name{font-weight:700}.skill-state{color:var(--muted);align-items:center;gap:.4em;font-size:.9em;display:inline-flex}.skill-state[data-state=STABLE]{color:#86efac}.skill-state[data-state=DEVELOPING]{color:#fde68a}.skill-state[data-state=NEEDS_PRACTICE]{color:#fca5a5}.skill-glyph{font-size:.8em}.skill-detail{border:1px solid var(--accent);border-top:none;border-radius:0 0 8px 8px;flex-direction:column;gap:.35em;padding:.5em .7em .6em;font-size:.95em;display:flex}.skill-desc{color:var(--muted);margin:0}.skill-sub{color:var(--muted);letter-spacing:.04em;font-size:.78em}.skill-lines,.skill-latest ul{flex-direction:column;gap:.15em;margin:0;padding-left:1.1em;display:flex}.skill-lines li[data-polarity=improvement],.skill-latest li[data-polarity=improvement]{color:#fecaca}.skill-lines li[data-polarity=positive],.skill-latest li[data-polarity=positive]{color:#bbf7d0}.skill-latest{flex-direction:column;gap:.2em;display:flex}.skill-rec{border-top:1px dashed var(--hud-border);padding-top:.3em;line-height:1.35}.btn.tiny{margin-left:.3em;padding:.05em .45em;font-size:.78em}.mission-scenario{color:var(--muted);margin-top:-.2em;font-size:.8em}.mission-scenario:empty{display:none}.difficulty-picker{flex-wrap:wrap;align-items:center;gap:.4em;margin:.6em 0 .2em;display:flex}.difficulty-label{color:var(--muted);margin-right:.2em;font-size:.85em}.difficulty-picker .btn.active{border-color:var(--accent);color:var(--accent)}.difficulty-desc,.difficulty-axes{color:var(--muted);flex-basis:100%;font-size:.8em}.mission-scenario-note{color:#fde68a;flex-basis:100%;font-size:.8em}.mission-scenario-note:empty{display:none}.mission-row[data-unavailable=true] .mission-card{opacity:.7}.menu-recommend{background:#86efac14;border:1px solid #86efac66;border-radius:10px;flex-direction:column;gap:.2em;margin:.6em 0;padding:.6em .8em;display:flex}.menu-recommend.hidden{display:none}.menu-recommend-label,.skill-exercise-label{color:#86efac;letter-spacing:.04em;font-size:.78em}.menu-recommend-title,.skill-exercise-title{font-weight:700}.menu-recommend-reason,.menu-recommend-explain,.skill-exercise-reason{font-size:.92em;line-height:1.35}.menu-recommend-explain:empty{display:none}.menu-recommend .btn,.skill-exercise .btn{align-self:flex-start;margin-top:.3em}.skill-exercise{border-top:1px dashed #86efac66;flex-direction:column;gap:.15em;margin-top:.4em;padding-top:.4em;display:flex}.result-recommend{grid-template-columns:auto 1fr;align-items:baseline;gap:.1em .5em;display:grid}.result-recommend-reason{color:var(--muted);grid-column:2;font-size:.85em}.result-skill-buttons{flex-wrap:wrap;gap:.4em;display:flex}.skill-progress{flex-direction:column;gap:.35em;display:flex}.skill-progress:empty{display:none}.skill-progress-row{border:1px solid var(--hud-border);border-radius:8px;flex-direction:column;gap:.2em;padding:.45em .6em;display:flex}.skill-progress-grid{grid-template-columns:auto 1fr;gap:.1em .8em;font-size:.9em;display:grid}.skill-progress-mode{color:var(--muted)}.skill-progress-state[data-state=STABLE]{color:#86efac}.skill-progress-state[data-state=PRACTICING]{color:#fde68a}.skill-progress-diff{color:var(--muted);font-size:.82em}.skill-foot{border-top:1px solid var(--hud-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6em;padding-top:.4em;display:flex}.skill-storage{color:var(--muted);flex:1;font-size:.78em}.hud-right-toggle{pointer-events:auto;flex:none;align-self:flex-end;display:none}#hud[data-mission-mode] .hud-right-toggle{display:inline-flex}#hud.right-collapsed .hud-right{background:0 0;width:auto;min-width:0}#hud.right-collapsed .hud-right>.panel{display:none}#hud .panel,#hud .mission-overlay-card,#hud .hud-right-toggle{-webkit-user-select:none;user-select:none}.menu-tagline{color:var(--hud-text);margin:0 0 .9em;line-height:1.45}.menu-card .menu-subtitle{margin:1em 0 0;font-size:.82em}.menu-start{background:#38bdf814;border:1px solid #38bdf873;border-radius:10px;flex-direction:column;gap:.35em;margin:.4em 0 .8em;padding:.7em .9em;display:flex}.menu-start.hidden{display:none}.menu-start-label{color:var(--accent);letter-spacing:.04em;font-size:.78em}.menu-start-intro,.menu-start-axes{color:var(--hud-muted);font-size:.86em;line-height:1.4}.menu-start-steps{flex-direction:column;gap:.25em;margin:.2em 0;padding:0;list-style:none;display:flex}.menu-start-step{border-radius:8px;align-items:center;gap:.6em;padding:.25em .4em;display:flex}.menu-start-step[data-done=true]{color:var(--hud-muted)}.menu-start-mark{text-align:center;width:1.4em;font-family:var(--font-mono);color:var(--accent)}.menu-start-step[data-done=true] .menu-start-mark{color:#4ade80}.menu-start-text{flex-direction:column;min-width:0;display:flex}.menu-start-title{font-weight:700}.menu-start-detail{color:var(--hud-muted);font-size:.82em}.menu-start .btn.primary{align-self:flex-start;margin:.2em 0}.menu-settings{border:1px solid var(--hud-border);border-radius:10px;margin:.2em 0 .9em;padding:.35em .8em}.menu-settings summary{cursor:pointer;list-style:revert;flex-wrap:wrap;align-items:baseline;gap:.6em;display:flex}.menu-settings-title{font-weight:700}.menu-settings-current{color:var(--accent);font-size:.9em}.menu-settings-hint{color:var(--hud-muted);flex-basis:100%;font-size:.78em}.menu-settings[open] .menu-settings-hint{display:none}.mission-onboarding{flex-direction:column;gap:.15em;margin:.2em 0 0;padding:0;font-size:.86em;list-style:none;display:flex}.mission-onboarding.hidden{display:none}.mission-onboarding-step{color:var(--hud-muted);border-radius:6px;align-items:flex-start;gap:.5em;padding:.15em .3em;line-height:1.35;display:flex}.mission-onboarding-step[data-active=true]{color:var(--hud-text);background:#38bdf81f}.mission-onboarding-step[data-done=true]{color:var(--hud-muted);-webkit-text-decoration:line-through #94a3b880;text-decoration:line-through #94a3b880}.mission-onboarding-mark{width:1.2em;font-family:var(--font-mono);color:var(--accent);flex:none}.mission-onboarding-step[data-done=true] .mission-onboarding-mark{color:#4ade80}.mission-onboarding-foot{color:#86efac;margin-top:.2em;padding:.25em .4em;line-height:1.35}.steering-mode{white-space:normal;line-height:1.25}.menu-settings summary:before{content:"▸";color:var(--hud-muted)}.menu-settings[open] summary:before{content:"▾"}.result-next{background:#86efac0f;border:1px solid #86efac59;border-radius:8px;grid-template-columns:1fr;gap:.35em;margin:.5em 0 .6em;padding:.5em .7em;display:grid}.result-next.hidden,.result-more.hidden{display:none}.result-more{margin-top:.2em}.mission-panel:has(+.mission-overlay.visible) .mission-buttons{display:none}.result-next .result-recommend{grid-template-columns:1fr;gap:.1em}.result-next .result-recommend-reason{grid-column:1}.menu-recommend-actions{flex-wrap:wrap;gap:.4em;margin-top:.3em;display:flex}.menu-recommend-actions .btn{margin-top:0}
