:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-padding-y:24px;--font:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--bg:#06070c;--text:#f4f6fb;--text-muted:#f4f6fba8;--text-faint:#f4f6fb70;--hairline:#ffffff1a;--surface:#ffffff0f;--surface-hover:#ffffff1c;--glass:#0c0e16a8;--scrim:#06070cf0;--amber:#ffc24a;--on-amber:#1d1405;--violet:#6957f5;--on-violet:#fff;--coral:#ff7a5c;--on-coral:#2a0b04;--mint:#3ddc97;--on-mint:#052a19;--danger:#ff5d6c;--on-danger:#2a0509;--radius-card:22px;--radius-pill:999px;--duration-xshort:75ms;--duration-short:.15s;--duration-normal:.25s;--duration-slow:.4s;--ease-out-quad:cubic-bezier(.25, .46, .45, .94);--ease-out-cubic:cubic-bezier(.215, .61, .355, 1);--ease-in-cubic:cubic-bezier(.55, .055, .675, .19);--ease-in-out-cubic:cubic-bezier(.645, .045, .355, 1);--motion-shift:4px;font-family:var(--font);background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{min-height:100dvh;padding:var(--page-padding-y) 16px;background:radial-gradient(circle at 50% 0%, #6957f529, transparent 42%), var(--bg);place-items:center;display:grid;overflow:hidden}button{font:inherit;-webkit-tap-highlight-color:transparent}.app-shell{justify-items:center;width:min(100%,1160px);display:grid}.game-stage{width:min(92vw, 420px, calc((100dvh - (var(--page-padding-y) * 2)) * 9 / 16));aspect-ratio:9/16;border:1px solid var(--hairline);touch-action:none;background:linear-gradient(#0a0c16,#05060b);border-radius:32px;position:relative;overflow:hidden;box-shadow:0 30px 80px #0009;container-type:inline-size}.game-stage:before{content:"";opacity:0;pointer-events:none;z-index:1;background:radial-gradient(circle at 50% 100%,#ff7a5c4d,#0000 58%),linear-gradient(#ff5d6c00,#ff5d6c38);height:32%;transition:opacity .14s,transform .18s;position:absolute;inset:auto 0 0;transform:translateY(18px)scaleY(.9)}.game-stage-penalty:before{opacity:1;transform:translateY(0)scaleY(1)}#game-canvas{width:100%;height:100%;display:block}.boss-layer{pointer-events:none;z-index:1;position:absolute;inset:0}.boss-svg{transform-origin:50%;pointer-events:none;position:absolute;top:0;left:0}.screen-kicker{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--hairline);letter-spacing:.14em;text-transform:uppercase;color:var(--amber);justify-self:center;align-items:center;margin:0;padding:6px 12px;font-size:.7rem;font-weight:600;display:inline-flex}.screen .screen-kicker{color:var(--amber)}.screen .screen-kicker-danger{color:#ff9aa4;background:#ff5d6c1f;border-color:#ff5d6c4d}.screen h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,12.5cqi,3.4rem);font-weight:700;line-height:.95}.screen p{color:var(--text-muted);margin:0}.screen-lede{max-width:30ch;font-size:1rem;line-height:1.45}.tutorial-button,.tutorial-link{border-radius:var(--radius-pill);letter-spacing:-.01em;cursor:pointer;pointer-events:auto;width:100%;transition:transform var(--duration-short) var(--ease-out-cubic), background var(--duration-xshort) var(--ease-out-quad), color var(--duration-xshort) var(--ease-out-quad), box-shadow var(--duration-xshort) var(--ease-out-quad), filter var(--duration-xshort) var(--ease-out-quad);justify-content:center;align-items:center;gap:8px;padding:0 22px;font-weight:700;display:inline-flex}.tutorial-button{min-height:56px;color:var(--on-amber);background:var(--amber);border:0;font-size:1.08rem;box-shadow:0 12px 30px #ffc24a42,inset 0 -3px #00000024}@media (hover:hover) and (pointer:fine){.tutorial-button:hover{filter:brightness(1.06)}}.tutorial-link{border:1px solid var(--hairline);min-height:50px;color:var(--text);background:var(--surface);font-size:.98rem;font-weight:600}@media (hover:hover) and (pointer:fine){.tutorial-link:hover{background:var(--surface-hover)}}.tutorial-button:active,.tutorial-link:active{filter:brightness(.94);transition-duration:var(--duration-xshort);transition-timing-function:var(--ease-out-quad);transform:scale(.98)}.button-quiet{width:auto;min-height:44px;color:var(--text-muted);background:0 0;border-color:#0000;justify-self:center}@media (hover:hover) and (pointer:fine){.button-quiet:hover{background:var(--surface);color:var(--text)}}.button-danger{color:var(--on-danger);background:var(--danger);box-shadow:0 12px 30px #ff5d6c42,inset 0 -3px #00000024}.button-danger-text{color:#ff9aa4}.tutorial-button:focus-visible,.tutorial-link:focus-visible,.icon-button:focus-visible,.settings-close:focus-visible,.squadron-chip:focus-visible,.squadron-close:focus-visible,.squadron-tab:focus-visible,.squadron-code:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.icon-button,.settings-close{border-radius:var(--radius-pill);border:1px solid var(--hairline);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:44px;height:44px;color:var(--text);cursor:pointer;pointer-events:auto;transition:background var(--duration-xshort) var(--ease-out-quad), color var(--duration-xshort) var(--ease-out-quad), transform var(--duration-short) var(--ease-out-cubic);place-items:center;padding:0;display:grid;position:relative}@media (hover:hover) and (pointer:fine){.icon-button:hover,.settings-close:hover{background:var(--surface-hover)}}.icon-button:active,.settings-close:active{transition-duration:var(--duration-xshort);transition-timing-function:var(--ease-out-quad);transform:scale(.95)}.icon-button:before{content:"";background-color:currentColor;width:20px;height:20px;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.settings-button:before{-webkit-mask-image:url(/setting-2.svg);mask-image:url(/setting-2.svg)}.pause-button:before{-webkit-mask-image:url(/pause.svg);mask-image:url(/pause.svg)}.pause-button[aria-pressed=true]{color:var(--on-amber);background:var(--amber);border-color:#0000}.pause-button[aria-pressed=true]:before{-webkit-mask-image:url(/play.svg);mask-image:url(/play.svg)}.settings-close:before{content:"";background-color:currentColor;width:14px;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 1 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 1 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4Z'/%3E%3C/svg%3E") 50%/contain no-repeat}.card-amber{--card-on:var(--on-amber);--card-track:#1d14052e;background:var(--amber);color:var(--on-amber)}.card-mint{--card-on:var(--on-mint);--card-track:#052a192e;background:var(--mint);color:var(--on-mint)}.card-violet{--card-on:var(--on-violet);--card-track:#ffffff47;background:var(--violet);color:var(--on-violet)}.card-coral{--card-on:var(--on-coral);--card-track:#2a0b0433;background:var(--coral);color:var(--on-coral)}.bento{grid-template-columns:1fr 1fr;gap:10px;width:min(100%,320px);display:grid}.bento-card{border-radius:var(--radius-card);text-align:left;align-content:space-between;gap:10px;min-height:92px;padding:14px 16px;display:grid;position:relative}.bento-card-wide{grid-column:1/-1}.bento-label{letter-spacing:.06em;text-transform:uppercase;opacity:.82;font-size:.74rem;font-weight:600}.bento-value{letter-spacing:-.04em;font-size:2rem;font-weight:700;line-height:1}.bento-value-xl{font-size:2.8rem}.bento-value-sm{letter-spacing:-.01em;font-size:1.05rem}.bento-art{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 10px 14px #0000004d);position:absolute}.bento-art-gift{width:78px;top:-18px;right:12px;transform:rotate(8deg)}.bento-art-enemy{width:58px;top:-16px;right:12px;transform:rotate(-10deg)}.hud,.screen{pointer-events:none;position:absolute;inset:0}.hud{z-index:2;transition:opacity var(--duration-normal) var(--ease-out-cubic), transform var(--duration-normal) var(--ease-out-cubic);justify-content:space-between;align-items:flex-start;gap:8px;display:flex;inset:12px 12px auto}.hud-cluster{align-items:flex-start;gap:6px;display:flex}.hud-cluster-right{justify-content:flex-end;align-items:center}.hud-hidden{opacity:0;pointer-events:none;transform:translateY(-10px)}.hud-card{background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--hairline);text-align:left;border-radius:16px;min-width:64px;padding:7px 12px 8px;transition:background .15s,border-color .15s,transform .15s}.hud-card span{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:.6rem;font-weight:600;display:block}.hud-card strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);transition:color var(--duration-normal) var(--ease-out-cubic), text-shadow var(--duration-short) var(--ease-out-cubic);margin-top:3px;font-size:1.15rem;font-weight:700;line-height:1;display:block}[data-lives-card] strong{color:var(--coral);letter-spacing:.04em}.hud-card-time{min-width:72px}.hud-card-penalty{background:#5a0e16d1;border-color:#ff5d6c99;transform:translateY(2px)scale(.98)}.hud-card-penalty strong{color:#ffd0be;text-shadow:0 0 12px #ff6e548c}.screen{text-align:center;opacity:0;visibility:hidden;z-index:3;background:linear-gradient(#06070c80,#06070cdb);align-content:center;justify-items:center;gap:14px;padding:28px 24px;transition:opacity .18s,visibility .18s;display:grid}.screen-visible{opacity:1;visibility:visible}.screen-actions{pointer-events:auto;justify-items:stretch;gap:10px;width:min(100%,320px);display:grid}.screen .screen-cta{color:var(--text-faint);margin-top:2px;font-size:.78rem}.screen-kicker strong{color:var(--text);letter-spacing:.04em;margin-left:6px}.hangar{border-radius:var(--radius-card);text-align:left;pointer-events:auto;gap:10px;width:min(100%,320px);margin-top:4px;padding:16px 16px 18px;transition:background .26s,color .26s;display:grid}.hangar-head{justify-content:space-between;align-items:center;display:flex}.hangar-count{opacity:.75;font-variant-numeric:tabular-nums;font-size:.74rem;font-weight:600}.hangar-stage{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;height:140px;display:grid;position:relative}.hangar-streaks{opacity:.7;animation:hangar-streak var(--streak-duration,.9s) linear infinite;pointer-events:none;background-image:radial-gradient(1.5px 7px at 18% 20%,#ffffffb3,#0000),radial-gradient(1px 5px at 72% 8%,#ffffff8c,#0000),radial-gradient(1.5px 9px at 44% 62%,#fff9,#0000),radial-gradient(1px 6px at 88% 74%,#ffffff80,#0000),radial-gradient(1px 5px at 8% 86%,#ffffff73,#0000);background-size:100% 76px;position:absolute;inset:-6px 40px;-webkit-mask-image:linear-gradient(#0000,#000 25% 75%,#0000);mask-image:linear-gradient(#0000,#000 25% 75%,#0000)}.card-mint .hangar-streaks,.card-coral .hangar-streaks{opacity:.55}.hangar-ship-wrap{z-index:1;grid-column:2;justify-self:center;position:relative}.hangar-exit-next{animation:.16s ease-in both hangar-exit-next}.hangar-exit-prev{animation:.16s ease-in both hangar-exit-prev}.hangar-enter-up{animation:.52s cubic-bezier(.2,.8,.2,1) both hangar-enter-up}.hangar-enter-next{animation:.34s cubic-bezier(.2,.8,.2,1) both hangar-enter-next}.hangar-enter-prev{animation:.34s cubic-bezier(.2,.8,.2,1) both hangar-enter-prev}.hangar-ship-float{animation:2.6s ease-in-out infinite hangar-hover;position:relative}.hangar-ship{z-index:1;object-fit:contain;filter:drop-shadow(0 14px 18px #00000052);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;cursor:grab;max-width:100%;height:112px;display:block;position:relative}.hangar-ship[data-ship=titan],.hangar-ship[data-ship=phantom]{height:84px}.hangar-flames{z-index:0;pointer-events:none;position:absolute;top:0;left:0}.hangar-arrow{z-index:2;border-radius:var(--radius-pill);width:44px;height:44px;color:var(--card-on);cursor:pointer;transition:background var(--duration-xshort) var(--ease-out-quad), transform var(--duration-short) var(--ease-out-cubic);background:#ffffff3d;border:0;place-items:center;padding:0;display:grid;position:relative}@media (hover:hover) and (pointer:fine){.hangar-arrow:hover{background:#ffffff5c}}.hangar-arrow:active{transition-duration:var(--duration-xshort);transition-timing-function:var(--ease-out-quad);transform:scale(.95)}.hangar-arrow:focus-visible{outline:2px solid var(--card-on);outline-offset:2px}.hangar-arrow:before{content:"";background-color:currentColor;width:18px;height:18px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m15 5-7 7 7 7'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m15 5-7 7 7 7'/%3E%3C/svg%3E") 50%/contain no-repeat}.hangar-arrow-next:before{transform:scaleX(-1)}.hangar-name{gap:2px;display:grid}.hangar-name strong{letter-spacing:-.03em;font-size:1.5rem;font-weight:700;line-height:1}.hangar-name span{opacity:.82;font-size:.84rem;font-weight:500}.hangar-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:4px 0 0;display:grid}.hangar-stat dt{letter-spacing:.06em;text-transform:uppercase;opacity:.8;font-size:.62rem;font-weight:600}.hangar-stat dd{gap:5px;margin:2px 0 0;display:grid}.hangar-stat strong{letter-spacing:-.02em;font-size:1rem;font-weight:700}.hangar-gauge{gap:2px;display:flex}.hangar-gauge i{border-radius:var(--radius-pill);background:var(--card-track);height:6px;transition:background .18s ease calc(var(--stat-delay,0s) + var(--i,0) * 60ms);flex:1}.hangar-gauge-instant i{transition:none}.hangar-gauge .hangar-gauge-on{background:var(--card-on)}.game-over-screen{background:var(--scrim);gap:14px}.time-readout{text-align:center;gap:4px;margin:2px 0 0;display:grid}.screen .time-readout span{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-size:.78rem;font-weight:600}.time-readout strong{letter-spacing:-.06em;color:var(--text);font-size:clamp(3.6rem,24cqi,5.6rem);font-weight:700;line-height:.9}.status-banner{max-width:26ch;min-height:1.45em;font-size:.98rem;line-height:1.45}.game-over-stats{margin-top:14px}.pause-screen{z-index:6;background:var(--scrim);gap:14px}.pause-badge{background:var(--amber);width:84px;height:84px;color:var(--on-amber);border-radius:28px;place-items:center;margin-bottom:6px;display:grid;transform:rotate(-6deg);box-shadow:0 18px 40px #ffc24a42}.pause-badge:before{content:"";background-color:currentColor;width:36px;height:36px;-webkit-mask:url(/pause.svg) 50%/contain no-repeat;mask:url(/pause.svg) 50%/contain no-repeat}.pause-menu-actions{margin-top:10px}.pause-quit-confirm{border-radius:var(--radius-card);pointer-events:auto;background:#ff5d6c1a;border:1px solid #ff5d6c52;width:min(320px,100%);padding:18px;display:none}.pause-quit-confirm.screen-visible{gap:10px;display:grid}.pause-quit-confirm h3{letter-spacing:-.02em;margin:0;font-size:1.3rem;font-weight:700}.pause-confirming .pause-badge,.pause-confirming h2,.pause-confirming .screen-lede,.pause-confirming .pause-menu-actions{display:none}.pause-quit-actions{width:100%;margin-top:6px}.settings-screen{z-index:6;background:var(--scrim);gap:14px}.settings-screen-head{pointer-events:auto;justify-content:space-between;align-items:center;gap:12px;width:min(320px,100%);display:flex}.settings-screen h2{text-align:left;width:min(320px,100%)}.settings-rows{pointer-events:auto;gap:10px;width:min(320px,100%);margin-top:6px;display:grid}.settings-row{border-radius:var(--radius-card);text-align:left;grid-template-columns:1fr auto;align-items:end;gap:14px 12px;padding:16px 18px 18px;display:grid}.settings-row span{letter-spacing:.06em;text-transform:uppercase;opacity:.82;align-self:start;font-size:.74rem;font-weight:600}.settings-row strong{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:.9}.settings-row input{cursor:pointer;appearance:none;background:0 0;grid-column:1/-1;width:100%;height:28px;margin:0}.settings-row input::-webkit-slider-runnable-track{border-radius:var(--radius-pill);background:var(--card-track);height:8px}.settings-row input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--card-on);width:26px;height:26px;box-shadow:0 4px 10px #00000040, 0 0 0 0 var(--card-track);transition:box-shadow var(--duration-short) var(--ease-out-quad);border-radius:50%;margin-top:-9px}.settings-row input:active::-webkit-slider-thumb{box-shadow:0 4px 10px #00000040, 0 0 0 8px var(--card-track);transition-duration:var(--duration-xshort)}.settings-row input::-moz-range-track{border-radius:var(--radius-pill);background:var(--card-track);height:8px}.settings-row input::-moz-range-progress{border-radius:var(--radius-pill);background:var(--card-on);height:8px}.settings-row input::-moz-range-thumb{background:var(--card-on);width:26px;height:26px;box-shadow:0 0 0 0 var(--card-track);transition:box-shadow var(--duration-short) var(--ease-out-quad);border:0;border-radius:50%}.settings-row input:active::-moz-range-thumb{box-shadow:0 0 0 8px var(--card-track);transition-duration:var(--duration-xshort)}.settings-row input:focus-visible{outline:2px solid var(--card-on);outline-offset:4px;border-radius:var(--radius-pill)}.settings-back{width:min(320px,100%);margin-top:6px}.tutorial-screen{z-index:4;background:#06070cb8;align-content:center;gap:18px;padding:28px 24px;transition:opacity .22s,visibility .22s,transform .22s;transform:translateY(12px)}.tutorial-screen.screen-visible{transform:translateY(0)}.tutorial-panel{gap:18px;width:min(100%,340px);display:grid}.tutorial-meta{justify-content:space-between;align-items:center;gap:12px;display:flex}.tutorial-meta .screen-kicker{justify-self:start}.tutorial-progress{font-variant-numeric:tabular-nums;color:var(--text-faint);font-size:.84rem;font-weight:600}.tutorial-carousel{min-height:360px;position:relative}.tutorial-slide{opacity:0;visibility:hidden;transition:opacity var(--duration-normal) var(--ease-out-cubic), transform var(--duration-normal) var(--ease-out-cubic), visibility var(--duration-normal) var(--ease-out-cubic);align-content:start;justify-items:center;gap:14px;display:grid;position:absolute;inset:0;transform:translate(16px)}.tutorial-slide-active{opacity:1;visibility:visible;transform:translate(0)}.tutorial-slide h2{margin:0;font-size:clamp(2rem,9vw,2.6rem)}.tutorial-lede{max-width:28ch;font-size:1rem;line-height:1.45}.tutorial-controls{gap:8px;display:grid}.tutorial-keys{justify-content:center;align-items:center;gap:6px;display:flex}.screen .tutorial-keys span{color:var(--text-faint);padding:0 4px;font-size:.82rem}.tutorial-keys kbd{background:var(--surface-hover);border:1px solid var(--hairline);min-width:34px;height:34px;color:var(--text);border-radius:12px;place-items:center;padding:0 10px;font-family:inherit;font-size:.95rem;font-weight:700;display:inline-grid;box-shadow:inset 0 -3px #00000059}.screen .tutorial-keys .tutorial-keys-label{text-align:right;letter-spacing:.1em;text-transform:uppercase;width:52px;margin-right:6px;padding:0;font-size:.7rem;font-weight:600}.tutorial-lede-touch{display:none}.tutorial-visual{background:var(--violet);border-radius:28px;order:-1;width:min(100%,320px);height:190px;position:relative;overflow:hidden}.tutorial-visual-fire{background:var(--coral)}.tutorial-visual:after{content:"";border-radius:var(--radius-pill);background:linear-gradient(90deg,#0000,#ffffff80,#0000);height:2px;position:absolute;inset:auto 24px 22px}.tutorial-touch-zone{background:radial-gradient(circle,#ffffff1f 0 36%,#0000 36% 100%),#ffffff0f;border:1px solid #ffffff47;border-radius:24px;position:absolute;inset:20px 24px 24px}.tutorial-touch-zone-fire{background:radial-gradient(circle,#ffffff2e 0 22%,#0000 22% 100%),#ffffff14;border-style:dashed;border-color:#2a0b044d;inset:26px 52px 22px}.tutorial-gesture,.tutorial-shot{display:block;position:absolute}.tutorial-gesture{width:118px;height:128px;animation:2.1s ease-in-out infinite tutorial-drift;bottom:52px;left:46px}.tutorial-gesture-fire{width:126px;height:136px;bottom:48px;left:96px}.tutorial-asset{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;display:block;position:absolute}.tutorial-asset-ship{filter:drop-shadow(0 10px 16px #0408164d);width:64px;top:-8px;left:22px}.tutorial-asset-hand{opacity:.9;filter:drop-shadow(0 10px 24px #04081640);width:88px;bottom:-10px;right:-10px}.tutorial-asset-hand-fire{opacity:.85;bottom:-6px;right:-2px}.tutorial-visual-fire .tutorial-gesture-fire{animation:1.55s ease-in-out infinite tutorial-press}.tutorial-hold-ring{border:2px solid #ffffff80;border-radius:50%;width:64px;height:64px;animation:1.55s ease-in-out infinite tutorial-hold;position:absolute;inset:auto auto 82px 50%;transform:translate(-50%)}.tutorial-shot{border-radius:var(--radius-pill);opacity:0;background:linear-gradient(#fff0,#fffffff5 44%,#fff6);width:3px;height:30px;bottom:88px;left:50%}.tutorial-shot-one{animation:1.55s linear infinite tutorial-shot;transform:translate(-10px)}.tutorial-shot-two{animation:1.55s linear .2s infinite tutorial-shot;transform:translate(0)}.tutorial-shot-three{animation:1.55s linear .4s infinite tutorial-shot;transform:translate(10px)}.tutorial-dots{justify-content:center;gap:6px;display:flex}.tutorial-dot{border-radius:var(--radius-pill);width:6px;height:6px;transition:width var(--duration-normal) var(--ease-in-out-cubic), background var(--duration-short) var(--ease-out-cubic);background:#ffffff38}.tutorial-dot-active{background:var(--amber);width:22px}.tutorial-actions{gap:6px;width:min(100%,320px);display:grid}@keyframes tutorial-drift{0%,to{transform:translate(0)}50%{transform:translate(168px)}}@keyframes tutorial-press{0%,to{transform:translateY(0)}45%,55%{transform:translateY(2px)}}@keyframes tutorial-hold{0%,to{opacity:.4;transform:translate(-50%)scale(.94)}50%{opacity:.9;transform:translate(-50%)scale(1.04)}}@keyframes tutorial-shot{0%{transform:translate(var(--shot-x,0), 10px);opacity:0}20%{opacity:1}to{transform:translate(var(--shot-x,0), -18px);opacity:0}}.tutorial-shot-one{--shot-x:-10px}.tutorial-shot-two{--shot-x:0}.tutorial-shot-three{--shot-x:10px}.home-dock{z-index:3;border-radius:var(--radius-pill);background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--hairline);pointer-events:auto;align-items:center;gap:4px;padding:5px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #00000059}.home-dock .icon-button{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000}@media (hover:hover) and (pointer:fine){.home-dock .icon-button:hover{background:var(--surface)}}.home-dock-slot{display:contents}.home-control-hidden{display:none!important}.squadron-root{pointer-events:none;z-index:4;position:absolute;inset:0}.squadron-chip{border-radius:var(--radius-pill);background:var(--surface-hover);max-width:200px;min-height:44px;color:var(--text);letter-spacing:-.01em;cursor:pointer;pointer-events:auto;transition:transform var(--duration-short) var(--ease-out-cubic), background var(--duration-xshort) var(--ease-out-quad), filter var(--duration-xshort) var(--ease-out-quad);border:0;align-items:center;gap:8px;padding:0 16px 0 12px;font-size:.92rem;font-weight:700;display:inline-flex}@media (hover:hover) and (pointer:fine){.squadron-chip:hover{background:#ffffff29}}.squadron-chip:active{transition-duration:var(--duration-xshort);transition-timing-function:var(--ease-out-quad);transform:scale(.97)}.squadron-chip span[data-squad-chip-label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.squadron-chip-icon{font-size:1.05rem}@keyframes squadron-chip-pop{0%{box-shadow:0 0 #ffc24a99}to{box-shadow:0 0 0 14px #ffc24a00}}.squadron-chip-flash{animation:.7s ease-out squadron-chip-pop}.squadron-panel{pointer-events:auto;background:var(--bg);opacity:0;visibility:hidden;transition:opacity var(--duration-short) var(--ease-in-cubic), transform var(--duration-short) var(--ease-in-cubic), visibility var(--duration-short) var(--ease-in-cubic);flex-direction:column;gap:18px;padding:18px clamp(18px,6vw,48px) 24px;display:flex;position:absolute;inset:0;overflow-y:auto;transform:scale(1.01)}.squadron-panel-open{opacity:1;visibility:visible;transition-duration:var(--duration-normal);transition-timing-function:var(--ease-out-cubic);transform:scale(1)}.squadron-panel-head,.squadron-body{width:100%;max-width:440px;margin-inline:auto}.squadron-panel-head{justify-content:space-between;align-items:center;display:flex}.squadron-close{border:1px solid var(--hairline);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;position:relative}.squadron-close:before,.squadron-close:after{content:"";background:currentColor;height:1.5px;position:absolute;inset:50% 14px auto}.squadron-close:before{transform:translateY(-50%)rotate(45deg)}.squadron-close:after{transform:translateY(-50%)rotate(-45deg)}.squadron-body{flex-direction:column;gap:14px;display:flex}.squadron-tabs{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--hairline);gap:4px;padding:4px;display:flex}.squadron-tab{border-radius:var(--radius-pill);min-height:40px;color:var(--text-muted);cursor:pointer;transition:background var(--duration-short) var(--ease-out-cubic), color var(--duration-short) var(--ease-out-cubic);background:0 0;border:none;flex:1;font-weight:600}.squadron-tab-active{background:var(--text);color:var(--bg)}[data-squad-lobby]{flex-direction:column;gap:28px;display:flex}.squadron-form{flex-direction:column;gap:14px;display:flex}.squadron-form-hidden{display:none!important}.squadron-form label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:.82rem;font-weight:500;display:flex}.squadron-form input,.squadron-form select{border:1px solid var(--hairline);background:var(--surface);min-height:50px;color:var(--text);font:inherit;transition:border-color var(--duration-xshort) var(--ease-out-quad), background var(--duration-xshort) var(--ease-out-quad);border-radius:16px;padding:0 16px;font-size:1rem}.squadron-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23f4f6fb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:18px}.squadron-form select option{background:#12141d}.squadron-form input:focus,.squadron-form select:focus{border-color:var(--amber);transition-timing-function:var(--ease-out-quad);outline:none}.squadron-hint{color:var(--text-faint);margin:-2px 0 0;font-size:.8rem;line-height:1.4}.squadron-submit{margin-top:14px}.squadron-champ{flex-direction:column;gap:14px;display:flex}.squadron-champ-head{gap:4px;display:grid}.squadron-champ-head h2{letter-spacing:-.04em;margin:0;font-size:2rem;font-weight:700;line-height:1}.squadron-week{color:var(--amber);margin:0;font-size:.82rem;font-weight:600}.squadron-countdown{color:var(--text-muted);margin:0;font-size:.86rem}.squadron-countdown strong{color:var(--text)}.squadron-board{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.squadron-board-head,.squadron-row{grid-template-columns:28px minmax(0,1fr) 42px 58px 56px;align-items:center;gap:8px;display:grid}.squadron-board-head{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);padding:0 14px 2px;font-size:.64rem;font-weight:600}.squadron-board-head[hidden]{display:none}.squadron-col-num{text-align:right;font-variant-numeric:tabular-nums}.squadron-row{background:var(--surface);border:1px solid #0000;border-radius:16px;min-height:52px;padding:0 14px}.squadron-row-self{background:var(--amber);color:var(--on-amber)}.squadron-rank{text-align:center;font-size:1.05rem;font-weight:700}.squadron-nick{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.squadron-kills,.squadron-time{opacity:.75;font-size:.86rem}.squadron-score{font-weight:700}.squadron-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--hairline);border-radius:16px;margin:0;padding:18px;font-size:.88rem}.squadron-invite{border-radius:var(--radius-card);background:var(--violet);color:var(--on-violet);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:10px 10px 10px 16px;font-size:.74rem;font-weight:600;display:flex}.squadron-code{border-radius:var(--radius-pill);min-height:44px;color:var(--on-violet);letter-spacing:.24em;cursor:pointer;background:#ffffff2e;border:0;padding:0 16px;font-size:1.05rem;font-weight:700}@media (hover:hover) and (pointer:fine){.squadron-code:hover{background:#ffffff47}}.squadron-leave{border-radius:var(--radius-pill);color:#ff9aa4;cursor:pointer;background:0 0;border:none;align-self:center;min-height:44px;padding:0 16px;font-size:.9rem;font-weight:600}@media (hover:hover) and (pointer:fine){.squadron-leave:hover{background:#ff5d6c1a}}.squadron-message{border-radius:16px;margin:0;padding:12px 14px;font-size:.86rem;line-height:1.4}.squadron-message-error{color:#ffc5cb;background:#ff5d6c24}.squadron-message-ok{color:#c4f5df;background:#3ddc9724}.squadron-back{margin-top:4px}.screen.screen-visible.from-briefing>.hangar{animation:.46s cubic-bezier(.2,.8,.2,1) .12s both rise-in,1.6s ease-out .6s 2 hangar-attention}@keyframes hangar-attention{0%{box-shadow:0 0 #ffffff8c}to{box-shadow:0 0 0 18px #fff0}}.screen.screen-visible>*{animation:.46s cubic-bezier(.2,.8,.2,1) both rise-in}.screen.screen-visible>:nth-child(2){animation-delay:60ms}.screen.screen-visible>:nth-child(3){animation-delay:.12s}.screen.screen-visible>:nth-child(4){animation-delay:.18s}.screen.screen-visible>:nth-child(5){animation-delay:.24s}.screen.screen-visible>:nth-child(6){animation-delay:.3s}.screen.screen-visible>:nth-child(n+7){animation-delay:.36s}.screen.screen-visible>.pause-quit-confirm{animation-delay:0s}.screen.screen-visible>.pause-badge{animation:.52s cubic-bezier(.3,1.5,.5,1) both badge-pop}.screen-visible .bento-card{animation:.48s cubic-bezier(.3,1.3,.5,1) both card-pop}.screen-visible .bento-card:first-child{animation-delay:.26s}.screen-visible .bento-card:nth-child(2){animation-delay:.34s}.screen-visible .bento-card:nth-child(3){animation-delay:.42s}.screen-visible .settings-row{animation:.48s cubic-bezier(.3,1.3,.5,1) both card-pop}.screen-visible .settings-row:nth-child(2){animation-delay:90ms}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}}@keyframes card-pop{0%{opacity:0;transform:translateY(14px)scale(.94)}}@keyframes badge-pop{0%{opacity:0;transform:rotate(-30deg)scale(.4)}to{transform:rotate(-6deg)}}@keyframes hangar-streak{0%{background-position:0 0}to{background-position:0 76px}}@keyframes hangar-hover{0%,to{transform:translateY(-4px)rotate(-1.2deg)}50%{transform:translateY(4px)rotate(1.2deg)}}@keyframes hangar-exit-next{to{opacity:0;transform:translate(-56px)scale(.92)}}@keyframes hangar-exit-prev{to{opacity:0;transform:translate(56px)scale(.92)}}@keyframes hangar-enter-up{0%{opacity:0;transform:translateY(40px)scale(.85)}}@keyframes hangar-enter-next{0%{opacity:0;transform:translate(56px)scale(.92)}}@keyframes hangar-enter-prev{0%{opacity:0;transform:translate(-56px)scale(.92)}}.screen.hangar-launching,.screen.hangar-launching *{pointer-events:none}.screen.hangar-launching>:not(.hangar),.hangar-launching .hangar-head,.hangar-launching .hangar-arrow,.hangar-launching .hangar-name,.hangar-launching .hangar-stats{animation:.3s cubic-bezier(.5,0,.75,0) both launch-drop}.screen.hangar-launching>:nth-child(2){animation-delay:30ms}.screen.hangar-launching>:nth-child(4){animation-delay:70ms}.hangar-launching .hangar-name{animation-delay:40ms}.hangar-launching .hangar-stats{animation-delay:80ms}.screen.hangar-launching>.hangar,.screen.screen-visible.from-briefing.hangar-launching>.hangar{box-shadow:none;background:0 0;animation:none}.hangar-launching .hangar-streaks{opacity:1;transition:transform .3s ease-in;animation-duration:.14s;transform:scaleY(1.8)}.hangar-launching .hangar-ship-float{animation-play-state:paused}.launch-warp,.launch-flash{z-index:4;opacity:0;pointer-events:none;position:absolute;inset:0}.launch-warp{transform-origin:50% 100%;mix-blend-mode:screen;background-image:radial-gradient(1.5px 26px at 12% 18%,#ffffffe6,#0000),radial-gradient(1px 18px at 31% 64%,#c8dcffcc,#0000),radial-gradient(2px 34px at 52% 30%,#ffffffd9,#0000),radial-gradient(1px 20px at 68% 82%,#ffe2aacc,#0000),radial-gradient(1.5px 28px at 84% 44%,#ffffffe6,#0000),radial-gradient(1px 16px at 94% 10%,#c8dcffb3,#0000),radial-gradient(1px 22px at 4% 72%,#ffffffb3,#0000);background-size:100% 180px;animation:.22s linear infinite launch-warp}.launch-flash{background:radial-gradient(circle at 50% var(--flash-y,50%), #fff8d6f2, #ffc45c73 22%, transparent 55%);mix-blend-mode:screen}.screen.gameover-leaving,.screen.gameover-leaving *{pointer-events:none}.flyoff-layer{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.flyoff-ship{filter:drop-shadow(0 10px 14px #00000059);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;position:absolute;transform:rotate(-10deg)}.flyoff-puff{filter:blur(1.5px);will-change:transform, opacity;background:radial-gradient(circle at 40% 38%,#ececf4bf,#aaacba73 45%,#787a8a00 72%);border-radius:50%;position:absolute}@keyframes launch-drop{to{opacity:0;filter:blur(2px);transform:translateY(26px)scale(.96)}}@keyframes launch-warp{0%{background-position:0 0}to{background-position:0 180px}}.squadron-close,.squadron-code,.squadron-leave{transition:background var(--duration-xshort) var(--ease-out-quad), transform var(--duration-short) var(--ease-out-cubic)}@media (hover:hover) and (pointer:fine){.squadron-close:hover{background:var(--surface-hover)}.squadron-tab:not(.squadron-tab-active):hover{color:var(--text)}}.squadron-close:active,.squadron-code:active,.squadron-leave:active{transition-duration:var(--duration-xshort);transition-timing-function:var(--ease-out-quad);transform:scale(.97)}.squadron-close:active{transform:scale(.95)}.squadron-form,.squadron-champ,.squadron-message,.squadron-empty,.home-dock{animation:motion-fade-in var(--duration-normal) var(--ease-out-cubic) both}@keyframes motion-fade-in{0%{opacity:0;translate:0 var(--motion-shift)}to{opacity:1;translate:0}}.hud-card strong.hud-value-tick{color:var(--amber);transition-duration:0s}@media (prefers-reduced-motion:reduce){.hud,.screen,.tutorial-gesture,.tutorial-shot,.tutorial-hold-ring,.squadron-chip-flash,.screen.screen-visible>*,.screen-visible .bento-card,.screen-visible .settings-row,.screen.screen-visible.from-briefing>.hangar,.hangar-streaks,.hangar-ship-wrap,.hangar-ship-float,.hangar-gauge i{transition:none;animation:none}:root{--motion-shift:0px;--duration-normal:var(--duration-short)}.tutorial-button:active,.tutorial-link:active,.icon-button:active,.settings-close:active,.hangar-arrow:active,.squadron-chip:active,.squadron-close:active,.squadron-code:active,.squadron-leave:active,.tutorial-slide,.squadron-panel{transform:none}}@media (width<=640px){:root{--page-padding-y:0px}body{padding:0;display:block}.app-shell{width:100%;height:100dvh}.game-stage{aspect-ratio:auto;width:100vw;height:100dvh;box-shadow:none;border:0;border-radius:0}.hud{inset:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) auto max(8px, env(safe-area-inset-left))}.home-dock{top:max(12px, env(safe-area-inset-top))}.screen{padding:calc(max(12px, env(safe-area-inset-top)) + 20px) calc(max(12px, env(safe-area-inset-right)) + 8px) calc(max(12px, env(safe-area-inset-bottom)) + 20px) calc(max(12px, env(safe-area-inset-left)) + 8px)}.tutorial-carousel{min-height:336px}.tutorial-visual{height:176px}.tutorial-gesture{width:108px;height:118px;bottom:48px;left:32px}.tutorial-gesture-fire{width:116px;height:126px;bottom:44px;left:82px}.tutorial-asset-ship{width:78px}.tutorial-asset-hand{width:80px}@keyframes tutorial-drift{0%,to{transform:translate(0)}50%{transform:translate(146px)}}}@media (pointer:coarse){.screen{background:linear-gradient(#06070cdb,#06070c80 60%,#06070c1a 100%);align-content:start;padding-top:84px}#start-screen,#game-over-screen{padding-bottom:148px}.screen-cta,.tutorial-controls,.tutorial-lede-keys{display:none}.tutorial-lede-touch{display:block}#game-over-screen,#pause-screen,#settings-screen{background:var(--scrim)}}@media (pointer:fine){.tutorial-carousel{min-height:384px}.tutorial-visual{height:150px}.tutorial-gesture{bottom:6px}.tutorial-gesture-fire{bottom:2px}.tutorial-hold-ring{bottom:52px}.tutorial-shot{bottom:58px}}
