@keyframes gf-dialog-fade{0%{opacity:0}}@keyframes gf-dialog-rise{0%{opacity:0;transform:translateY(10px)}}.menu-shell [data-slot=stat-label]{font-family:var(--gf-font-mono);color:var(--gf-ink-muted);letter-spacing:0;text-transform:none;font-size:11px;font-weight:500}@media (width<=640px){.game-menu-footer .menu-primary{width:100%}}@media (height<=520px){.menu-content{padding-block:20px}.game-menu-footer{padding-block:8px}}@media (prefers-reduced-motion:reduce){.menu-primary:active{translate:none}.menu-button,.menu-shell *{transition:none}}@media (prefers-reduced-motion:no-preference){.menu-shell{animation:gf-dialog-rise var(--gf-time-rise) var(--gf-ease-rise) backwards}}@media (prefers-reduced-transparency:reduce){.menu-overlay{background:var(--gf-surface)}.menu-shell{background:var(--gf-surface);box-shadow:none}}@media (forced-colors:active){.game-menu [data-slot=toggle-group-item][aria-pressed=true]{outline:1px solid highlight}.menu-primary,.menu-button.menu-primary{border-color:buttontext}}.menu-shell.menu-sheet{--sheet-pad:24px;--sheet-width:640px;--sheet-height:800px;width:min(var(--sheet-width), 100%);max-height:min(100%, var(--sheet-height))}.menu-sheet[data-width=lesson]{--sheet-width:520px;--sheet-height:520px}.menu-sheet[data-width=guide]{--sheet-width:720px;--sheet-height:700px}.menu-sheet-head{padding-inline:var(--sheet-pad);border-bottom:1px solid var(--gf-hairline);flex-direction:column;flex-shrink:0;display:flex}.menu-sheet-title-row{justify-content:space-between;align-items:center;gap:24px;min-height:64px;padding-block:10px;display:flex}.menu-sheet-title{color:var(--gf-ink-strong);font-family:var(--gf-font-display);letter-spacing:.1em;text-transform:uppercase;text-wrap:balance;margin:0;font-size:18px;font-weight:400;line-height:1.2}.menu-sheet-close{color:var(--gf-ink-muted);transition:color var(--gf-time-shift) ease-out;background:0 0;border:0;flex-shrink:0;align-items:center;gap:12px;margin-inline-end:-8px;padding:0;display:inline-flex}.menu-sheet-close kbd{font-family:var(--gf-font-mono);font-size:var(--gf-type-micro);letter-spacing:.12em;text-transform:uppercase}.menu-sheet-close-key{border:1px solid var(--gf-hairline);width:44px;height:44px;transition:border-color var(--gf-time-shift) ease-out, background-color var(--gf-time-shift) ease-out;place-items:center;display:grid}.menu-sheet-close:hover{color:var(--gf-ink-strong)}.menu-sheet-close:hover .menu-sheet-close-key{border-color:var(--gf-ink-muted);background:var(--gf-wash)}.menu-sheet-close:active .menu-sheet-close-key{translate:0 1px}.menu-sheet-status{color:var(--gf-ink-muted);font-family:var(--gf-font-mono);font-size:var(--gf-type-micro);letter-spacing:.12em;text-transform:uppercase;flex-shrink:0;align-items:center;gap:8px;margin:0;display:inline-flex}.menu-sheet-nav{scrollbar-width:none;gap:24px;margin-bottom:-1px;display:flex;overflow-x:auto}.menu-sheet-nav button{min-height:44px;color:var(--gf-ink-muted);font-family:var(--gf-font-mono);font-size:var(--gf-type-caption);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transition:color var(--gf-time-shift) ease-out;background:0 0;border:0;flex-shrink:0;padding:0}.menu-sheet-nav button:hover{color:var(--gf-ink-strong)}.menu-sheet-nav button[aria-pressed=true]{color:var(--gf-ink-strong);box-shadow:inset 0 -1px 0 var(--accent)}.menu-sheet-body{padding:var(--sheet-pad)}.menu-sheet[data-width=lesson] .menu-sheet-body,.menu-sheet[data-width=guide] .menu-sheet-body{padding:0}.menu-sheet-foot{min-height:60px;padding:8px var(--sheet-pad);border-top:1px solid var(--gf-hairline);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}@media (width<=640px){[data-menu-dialog]{padding:0}.menu-shell.menu-sheet{--sheet-pad:20px;border:0;width:100%;height:100%;max-height:none}.menu-sheet-head{padding-top:env(safe-area-inset-top);padding-inline:max(var(--sheet-pad), env(safe-area-inset-left)) max(var(--sheet-pad), env(safe-area-inset-right))}.menu-sheet-body{padding-inline:max(var(--sheet-pad), env(safe-area-inset-left)) max(var(--sheet-pad), env(safe-area-inset-right))}.menu-sheet-foot{padding-bottom:max(8px, env(safe-area-inset-bottom));padding-inline:max(var(--sheet-pad), env(safe-area-inset-left)) max(var(--sheet-pad), env(safe-area-inset-right))}}@media (height<=520px){.menu-sheet-title-row{min-height:52px;padding-block:4px}.menu-sheet-foot{min-height:48px;padding-block:2px}}@media (prefers-reduced-motion:no-preference){.menu-shell.menu-sheet{animation-duration:var(--gf-time-enter)}}@media (prefers-reduced-motion:reduce){.menu-sheet-nav button,.menu-sheet-close,.menu-sheet-close-key{transition:none}.menu-sheet-close:active .menu-sheet-close-key{translate:none}}@media (forced-colors:active){.menu-sheet-nav button[aria-pressed=true]{box-shadow:inset 0 -1px highlight}.menu-sheet-close-key{border-color:buttontext}}.gf-sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gf-panel-heading{color:var(--gf-ink-strong);font-size:var(--gf-type-caption);font-stretch:var(--gf-stretch-label);letter-spacing:var(--gf-tracking-label);text-transform:uppercase;margin:0;font-weight:700}.gf-keys{gap:4px;display:flex}.gf-keycap{border:1px solid var(--gf-hairline);min-width:26px;color:var(--gf-ink-strong);font-family:inherit;font-size:var(--gf-type-micro);font-stretch:var(--gf-stretch-label);font-variant-numeric:tabular-nums;letter-spacing:var(--gf-tracking-key);text-align:center;text-transform:uppercase;background:0 0;padding:5px 7px;font-weight:700;line-height:1.3}.menu-dialog{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.menu-shell,.ignition-home{--menu-stage:var(--gf-surface);--accent:var(--gf-interface-accent)}.menu-shell{border:1px solid var(--gf-hairline);background:var(--gf-surface);width:min(920px,100%);min-height:0;max-height:min(100%,860px);color:var(--gf-ink);font-family:var(--gf-font);box-shadow:none;border-radius:0;flex-direction:column;margin:auto;display:flex;position:relative;overflow:hidden}.menu-shell :where(button){cursor:pointer;font-family:inherit}.menu-button:focus-visible,.menu-shell :is(button,input,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.menu-topbar{border-bottom:1px solid var(--gf-hairline);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:8px 24px;display:flex}.menu-topbar-title{color:var(--gf-ink-muted);font-family:var(--gf-font-mono);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:10px}.menu-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--gf-hairline) transparent;flex:1;min-height:0;overflow:auto}.menu-footer{border-top:1px solid var(--gf-hairline);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:0 24px;padding:10px 24px;display:flex}.menu-footer-secondary{flex-wrap:wrap;gap:0 24px;display:flex}.menu-quiet{min-height:44px;color:var(--gf-ink-muted);transition:color var(--gf-time-shift) ease-out;background:0 0;border:0;padding:0;font-size:11px}.menu-quiet:hover{color:var(--gf-ink)}.menu-primary,.menu-button.menu-primary{border:1px solid var(--gf-hairline);min-width:180px;max-width:100%;min-height:46px;color:var(--accent);font-family:var(--gf-font-display);letter-spacing:.015em;text-transform:none;text-align:left;transition:background-color var(--gf-time-shift) ease-out;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:24px;padding:12px 20px;font-size:10px;font-weight:400;line-height:1.4;display:inline-flex}.menu-primary svg{flex-shrink:0}.menu-primary:hover{border-color:var(--accent);background:var(--gf-panel)}.menu-primary:active{translate:0 1px}.menu-close{border:1px solid var(--gf-hairline);width:44px;height:44px;color:var(--gf-ink-muted);transition:color var(--gf-time-shift) ease-out, background-color var(--gf-time-shift) ease-out;background:0 0;border-radius:3px;flex-shrink:0;place-items:center;padding:0;display:grid}.menu-close:hover{background:var(--gf-wash);color:var(--gf-ink)}.menu-overlay{z-index:5;overscroll-behavior:contain;font-variant-numeric:tabular-nums;background:#080b0fe0;display:flex;position:absolute;inset:0;overflow:auto}.menu-shell.game-menu{width:min(800px,100%);max-height:min(100%,760px)}.menu-heading{color:var(--gf-ink-strong);font-family:var(--gf-font-display);letter-spacing:.03em;text-transform:none;margin:0;font-size:clamp(12px,1.4vw,16px);font-weight:400;line-height:1.3}.menu-content{padding:clamp(24px,3.5vw,40px)}.menu-button,.menu-button-hint,.menu-back{align-items:center;gap:16px;display:inline-flex}.menu-button{cursor:pointer;font-family:var(--gf-font);text-align:left;justify-content:space-between;font-size:13px;line-height:1.4}.menu-button-hint{flex-shrink:0;gap:12px}.menu-danger{min-height:44px;color:color-mix(in srgb, var(--gf-danger) 65%, var(--gf-ink-muted));background:0 0;border:0;padding:0}.menu-danger:hover{color:var(--gf-danger)}.menu-nav{flex-direction:column;min-width:0;display:flex}.menu-nav .menu-button{width:100%;min-height:48px}.menu-nav>*+*{border-top:1px solid var(--gf-hairline)}.game-menu-footer{justify-content:flex-end;padding-block:16px}.menu-back{margin-right:auto;font-size:13px}.menu-shell .gf-keycap{background:#d1e4f20a;border-radius:2px}.menu-primary .gf-keycap{color:inherit;background:0 0;border-color:currentColor}.menu-shell [data-slot=stat-label]{font-family:var(--gf-font-mono);color:var(--gf-ink-muted);letter-spacing:0;text-transform:none;font-size:11px;font-weight:500}.menu-shell .gf-panel-heading{color:var(--gf-ink-strong);font-family:var(--gf-font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:500}.game-menu [data-slot=toggle-group]{border:1px solid var(--gf-hairline);border-radius:4px;padding:4px}.game-menu [data-slot=toggle-group-item]{letter-spacing:0;text-transform:none;min-height:44px;box-shadow:none;border:0;border-radius:3px;font-size:11px;font-weight:500}.game-menu [data-slot=toggle-group-item][aria-pressed=true]{background:var(--gf-wash);color:var(--accent)}@media (width<=640px){.game-menu-footer .menu-primary{width:100%}}@media (height<=520px){.menu-content{padding-block:20px}.game-menu-footer{padding-block:8px}}@media (prefers-reduced-motion:reduce){.menu-primary:active{translate:none}.menu-button,.menu-shell *{transition:none}}@media (prefers-reduced-motion:no-preference){.menu-shell{animation:gf-dialog-rise var(--gf-time-rise) var(--gf-ease-rise) backwards}}@media (prefers-reduced-transparency:reduce){.menu-overlay{background:var(--gf-surface)}.menu-shell{background:var(--gf-surface);box-shadow:none}}@media (forced-colors:active){.game-menu [data-slot=toggle-group-item][aria-pressed=true]{outline:1px solid highlight}.menu-primary,.menu-button.menu-primary{border-color:buttontext}}.menu-shell.menu-recovery{align-items:flex-start;gap:24px;width:min(480px,100%);padding:32px;overflow:auto}.menu-recovery p{color:var(--gf-ink-body);margin:0;font-size:14px;line-height:1.65}.tutorial-stage{aspect-ratio:2.4;background:var(--gf-surface);border-bottom:1px solid var(--gf-hairline);margin:0;position:relative;overflow:hidden}.tutorial-stage canvas{width:100%;height:100%;display:block}.tutorial-lesson{min-width:0;padding:var(--sheet-pad);flex-direction:column;align-items:flex-start;display:flex}.tutorial-instruction{max-width:42ch;color:var(--gf-ink-strong);text-wrap:pretty;margin:0;font-size:18px;line-height:1.55}.tutorial-binding{color:var(--gf-ink-muted);font-family:var(--gf-font-mono);font-size:var(--gf-type-caption);flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 0;display:flex}@media (width<=640px){.tutorial-stage{aspect-ratio:1.8}.menu-shell.tutorial-flight{border-top:1px solid var(--gf-hairline);height:auto;margin-top:auto}.tutorial-instruction{font-size:16px}}@media (height<=560px){.tutorial-stage{aspect-ratio:3.2}}.settings-stack{flex-direction:column;gap:32px;display:flex}.settings-panel{text-align:left;flex-direction:column;min-width:0;display:flex}.settings-panel-body{flex-direction:column;min-width:0;display:flex}.settings-label{color:var(--gf-ink);font-size:var(--gf-type-command);font-weight:400}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;min-width:0;min-height:44px;display:flex}.settings-note{color:var(--gf-ink-muted);font-size:var(--gf-type-caption);letter-spacing:.02em;margin:0;padding-top:12px;line-height:1.5}.settings-panel [data-slot=toggle-group]{border:0;flex-wrap:wrap;gap:4px;width:auto;margin-block:0;margin-inline-end:-12px;padding:0;display:flex}.settings-panel [data-slot=toggle-group-item]{min-width:0;min-height:44px;color:var(--gf-ink-muted);font-family:var(--gf-font-mono);font-size:var(--gf-type-caption);letter-spacing:.08em;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0 12px;font-weight:500}.settings-panel [data-slot=toggle-group-item][aria-pressed=true]{color:var(--gf-ink-strong);box-shadow:inset 0 -1px 0 var(--accent);background:0 0}.settings-switch{background:0 0;border:0;flex:0 0 44px;place-items:center;width:44px;height:44px;margin-block:0;padding:0;display:grid}.settings-switch>span{border:1px solid var(--gf-ink-muted);width:36px;height:18px;transition:border-color var(--gf-time-shift) ease-out;padding:3px;display:flex}.settings-switch>span:after{content:"";background:var(--gf-ink-muted);width:10px;height:10px;transition:transform var(--gf-time-shift) var(--gf-ease-rise), background-color var(--gf-time-shift) ease-out;display:block}.settings-switch[aria-checked=true]>span{border-color:var(--accent)}.settings-switch[aria-checked=true]>span:after{background:var(--accent);transform:translate(18px)}.settings-switch:disabled{opacity:.5;cursor:wait}.settings-audio-track{margin-bottom:8px}.settings-audio-level{padding-block:8px}.settings-audio-label{align-items:center;gap:14px;display:flex}.settings-audio-label output{color:var(--gf-ink-muted);font-family:var(--gf-font-mono);font-size:var(--gf-type-caption);font-variant-numeric:tabular-nums;letter-spacing:.08em;margin-left:auto}.settings-mute{width:44px;height:44px;color:var(--gf-ink-muted);transition:color var(--gf-time-shift) ease-out;background:0 0;border:0;place-items:center;margin-block:0;margin-inline-end:-14px;display:grid}.settings-mute:hover,.settings-mute[aria-pressed=true]{color:var(--gf-ink-strong)}.settings-panel [data-slot=slider-track]{background:var(--gf-hairline);height:1px;overflow:visible}.settings-panel [data-slot=slider-thumb]{background:var(--gf-ink-strong);width:2px;height:16px;box-shadow:none;border-radius:0}@media (prefers-reduced-motion:reduce){.settings-switch>span,.settings-switch>span:after,.settings-mute{transition:none}}@media (forced-colors:active){.settings-switch>span{border-color:buttontext}.settings-switch>span:after{background:buttontext}.settings-switch[aria-checked=true]>span{border-color:highlight}.settings-switch[aria-checked=true]>span:after{background:highlight}}.settings-track-bars{flex-shrink:0;align-items:flex-end;gap:2px;height:10px;display:inline-flex}.settings-track-bars span{background:var(--accent);transform-origin:bottom;width:2px;height:100%;animation:1s ease-in-out infinite alternate settings-track-eq}.settings-track-bars span:first-child{animation-delay:-.9s}.settings-track-bars span:nth-child(2){animation-delay:-.35s}.settings-track-bars span:nth-child(3){animation-delay:-.6s}.settings-track-bars span:nth-child(4){animation-delay:-.15s}.settings-track-bars[data-live=false] span{background:var(--gf-ink-muted);animation:none;transform:scaleY(.2)}@keyframes settings-track-eq{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.settings-track-bars span{animation:none}.settings-track-bars span:first-child{transform:scaleY(.45)}.settings-track-bars span:nth-child(2){transform:scaleY(.9)}.settings-track-bars span:nth-child(3){transform:scaleY(.6)}.settings-track-bars span:nth-child(4){transform:scaleY(.8)}.settings-track-bars[data-live=false] span{transform:scaleY(.2)}}.game-wordmark{border-inline:1px solid var(--gf-hairline);max-width:100%;color:var(--gf-ink);font-family:var(--gf-font-display);font-synthesis:none;letter-spacing:.09em;text-align:center;text-transform:uppercase;white-space:nowrap;margin:0;padding:0 clamp(12px,2vw,28px);font-size:clamp(19px,4.3vw,65px);font-weight:400;line-height:1.35;display:inline-block}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/geist-mono-latin-variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Michroma;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/michroma-latin.woff2)format("woff2")}:root{--gf-font:Archivo, ui-sans-serif, system-ui, sans-serif;--gf-font-display:Michroma, ui-sans-serif, system-ui, sans-serif;--gf-font-mono:"Geist Mono", ui-monospace, "SF Mono", monospace;--gf-surface:#15191e;--gf-panel:#242e3a;--gf-interface-accent:#c9d6e7;--gf-ink:#e8edf4;--gf-ink-strong:#e8edf4;--gf-ink-body:#c3cbd6;--gf-ink-muted:#a5afbc;--gf-ink-faint:#e9f3ff73;--gf-ink-ghost:#e9f3ff4d;--gf-hairline:#414d5b;--gf-track:#e9f3ff24;--gf-wash:#e9f3ff0d;--gf-stretch-display:100%;--gf-stretch-beat:125%;--gf-stretch-label:100%;--gf-tracking-key:.1em;--gf-tracking-row:.14em;--gf-tracking-label:.14em;--gf-tracking-action:.18em;--gf-tracking-beat:.05em;--gf-type-micro:11px;--gf-type-caption:12px;--gf-type-command:13px;--gf-time-tap:.12s;--gf-time-shift:.16s;--gf-time-enter:.24s;--gf-time-rise:.42s;--gf-ease-rise:cubic-bezier(.16, 1, .3, 1);--gf-ease-glide:cubic-bezier(.22, 1, .36, 1);--gf-danger:#ff7a66;--gf-shield:#6adfff;--gf-overdrive:#8ffff0;--gf-payoff:#b89aff;--gf-discharge:#f780d2;--accent:var(--gf-overdrive);--gf-glitch-cool:color-mix(in srgb, var(--gf-overdrive) 70%, transparent);--gf-glitch-warm:color-mix(in srgb, var(--gf-discharge) 70%, transparent)}
