:root{color-scheme:dark;--bg: #0b1523;--panel: #111f30;--line: #2a3d50;--ink: #edf4ef;--muted: #a5b6c8;--teal: #70e5ce;--orange: #ffad70;--danger: #ff7184;--scroll-thumb: #526a80;--scroll-track: #111f30;--scroll-hover: #a5b6c8;--scroll-active: #70e5ce;font-family:Avenir Next,Avenir,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}*::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}body{margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:44px;transition:background .16s,transform .16s,border-color .16s}button:hover{background:#20384b;border-color:var(--teal)}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:4px}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:var(--teal);color:var(--bg);border-color:var(--teal);font-weight:800;padding:14px 25px}button.primary:hover{background:#a1f3e2}button.ghost{background:transparent}small,.eyebrow{font-family:SFMono-Regular,Consolas,monospace;font-size:10px;line-height:1.5;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted)}p{line-height:1.65;color:var(--muted)}header{height:86px;max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 40px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-size:34px;color:var(--teal);transform:rotate(-15deg)}.wordmark{font-weight:900;letter-spacing:3px;font-size:19px}.wordmark span{color:var(--teal)}.brand small{display:block;font-size:8px;letter-spacing:2.4px;margin-top:3px}.header-right{display:flex;gap:12px;align-items:center}.header-right>small{margin-right:18px}.header-right button{padding:0 15px}.layout{max-width:1420px;margin:25px auto;display:grid;grid-template-columns:235px minmax(320px,650px) 235px;gap:26px;padding:0 32px;align-items:start;justify-content:center}.rail-title{display:flex;align-items:center;justify-content:space-between;margin:3px 0 18px}.rail-title span{font-size:11px;color:var(--muted)}h2{font-size:19px;margin:8px 0 14px;font-weight:600}h3{font-size:15px;margin:0}.sector-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sector{height:58px;position:relative;font-family:Consolas,monospace;font-size:16px;background:transparent}.sector small{display:block;font-size:8px;letter-spacing:1px;color:var(--teal)}.sector.selected{background:#203d46;border-color:var(--teal);color:var(--teal)}.sector:last-child{grid-column:span 3;display:flex;gap:12px;align-items:center;justify-content:center;height:49px}.sector:last-child span{font-family:inherit;font-size:11px}.rail-note{font-size:11px;line-height:1.7;margin-top:16px}.divider{height:1px;background:var(--line);margin:24px 0}.ship-display{position:relative;height:104px;display:grid;place-items:center;background:radial-gradient(ellipse,#203e4c,transparent 67%)}.ship-icon{width:72px;height:86px;filter:drop-shadow(0 5px 15px #70e5ce44)}.ship-label{display:flex;justify-content:space-between;align-items:center}.badge{font-family:Consolas,monospace;color:var(--teal);font-size:9px;letter-spacing:1px;border:1px solid #3d635f;padding:4px 6px;border-radius:4px}.sub{font-size:11px;margin:6px 0 12px}.meter{height:4px;background:#24364a;overflow:hidden;border-radius:3px}.meter i{display:block;height:100%;background:var(--teal);width:0;transition:width .3s}.meter-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:8px}.arena-wrap{min-width:0}.arena-top{height:34px;display:flex;justify-content:space-between;align-items:flex-start}.live{color:var(--teal);font-size:10px;letter-spacing:1px}.live:before{content:"";display:inline-block;width:5px;height:5px;background:var(--teal);border-radius:50%;margin-right:7px}.arena{position:relative;height:min(76vh,790px);min-height:510px;overflow:hidden;border:1px solid #35536a;border-radius:15px;background:#0b1523;isolation:isolate;touch-action:none}.arena canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0}.hud{position:absolute;top:18px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;z-index:3;pointer-events:none}.hud small{font-size:8px}.hull{display:flex;gap:4px;margin-top:7px}.hull i{display:block;width:17px;height:5px;background:var(--teal);transform:skew(-20deg)}.hull i.empty{background:#344356}.wave-label{text-align:center;font-family:Consolas,monospace;font-size:12px}.wave-label small{display:block;margin-top:4px}.hud button{pointer-events:auto;min-width:44px;background:#112235cc}.target-hud{position:absolute;z-index:3;bottom:20px;left:20px;pointer-events:none;display:flex;align-items:center;gap:14px}.answer{font-family:Consolas,monospace;font-size:40px;line-height:1.1;font-weight:700;color:var(--orange)}.answer small{font-size:8px;display:block;color:var(--orange);margin-bottom:5px}.equation{padding-left:14px;border-left:1px solid #405064}.equation b{font:18px Consolas,monospace}.equation small{font-size:8px;display:block;margin-top:5px}.power-button{position:absolute;z-index:4;right:18px;bottom:20px;background:#142d3eea;border:1px solid var(--teal);width:75px;height:65px;color:var(--teal);font-size:22px}.power-button small{display:block;letter-spacing:1px;font-size:8px;color:inherit}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#0b152344,#0b1523b5 60%,#0b1523ee)}.overlay.hidden{display:none}.intro{text-align:center;max-width:370px}.intro .eyebrow{color:var(--teal);font-size:10px}.intro h1{font-size:clamp(38px,4.2vw,61px);letter-spacing:-2.5px;line-height:1.04;margin:17px 0 18px;font-weight:800}.intro h1 em{font-style:normal;color:var(--teal)}.intro p{font-size:13px;margin:0 auto 23px;max-width:310px}.intro .primary{width:100%;max-width:270px}.intro .launch-note{font-size:9px;letter-spacing:1px;margin-top:13px;color:var(--muted)}.intro .hero-ship{width:85px;height:105px;margin:0 auto 24px;filter:drop-shadow(0 0 28px #70e5ce55);transform:rotate(-10deg)}.intro .secondary{display:block;margin:12px auto 0;padding:9px 18px}.arena-bottom{display:flex;justify-content:space-between;gap:12px;margin-top:12px;color:var(--muted);font-size:10px}.arena-bottom span:first-child{color:var(--teal)}.mission-number{font-family:Consolas,monospace;font-size:60px;line-height:1.1;color:var(--orange);margin:10px 0}.mission-number span{font-size:23px;color:var(--muted)}.mission-desc{font-size:12px;line-height:1.7}.stat-row{display:flex;justify-content:space-between;font-size:11px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--muted)}.stat-row strong{color:var(--ink);font-weight:500}.instructions{list-style:none;padding:0;margin:12px 0}.instructions li{display:flex;gap:12px;margin:17px 0;font-size:11px;line-height:1.6;color:var(--muted)}.instructions b{font-family:Consolas,monospace;color:var(--teal);font-weight:500}.instructions strong{display:block;color:var(--ink);font-size:12px;margin-bottom:2px}.reward{display:flex;gap:10px;align-items:center;padding:14px 12px;border:1px solid var(--line);border-radius:8px;margin-top:10px}.reward .symbol{font-size:24px;color:var(--orange)}.reward strong{font-size:11px;font-weight:600}.reward small{display:block;letter-spacing:0;font-family:inherit;font-size:10px;text-transform:none}.toast{position:absolute;z-index:5;top:87px;left:12px;right:12px;text-align:center;pointer-events:none;color:var(--teal);font-size:12px;font-weight:600;text-shadow:0 2px 8px #000;min-height:20px}.boss-bar{position:absolute;top:114px;left:25%;right:25%;z-index:3;text-align:center}.boss-bar small{font-size:8px;color:var(--danger)}.boss-bar .meter{margin-top:6px}.boss-bar .meter i{background:var(--danger)}.boss-bar[hidden]{display:none}.boss-target{width:82px;border-radius:10px;font-size:12px;letter-spacing:1px;color:var(--danger)}dialog{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(440px,calc(100% - 32px));max-height:85dvh;padding:28px;overflow:auto}dialog::backdrop{background:#030c17cc}dialog h2{font-size:26px}dialog p{font-size:13px}dialog button{width:100%;margin-top:14px}footer{max-width:1356px;margin:0 auto 20px;padding:0 32px;display:flex;justify-content:space-between;color:var(--muted);font:9px Consolas,monospace;letter-spacing:1px}.mobile-mission{display:none}.save-warning{color:var(--orange);font-size:11px;padding:8px 20px;text-align:center}.result-stats{display:flex;justify-content:center;gap:26px;margin:25px 0}.result-stats b{display:block;font:30px Consolas,monospace;color:var(--teal)}.result-stats small{font-size:8px}.screen-reader{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}@media(min-width:1500px){.layout{margin-top:35px}}@media(max-width:1100px){.layout{grid-template-columns:190px minmax(300px,610px);gap:20px;padding:0 24px}.right-rail{display:none}.arena{height:calc(100dvh - 185px)}header{padding:0 24px}.header-right>small{display:none}}@media(max-width:700px){header{height:62px;padding:0 16px}.wordmark{font-size:15px}.brand small{font-size:7px}.brand-mark{font-size:27px}.header-right{gap:6px}.header-right button{padding:0 11px;min-height:40px;font-size:11px}.layout{display:block;margin:10px 0 0;padding:0 10px}.left-rail{display:none}.arena-top{height:27px;padding:0 4px}.arena-top small{font-size:8px}.arena{height:calc(100dvh - 139px);min-height:370px;border-radius:12px}.arena-bottom{font-size:8px;margin:8px 3px;gap:5px}.intro h1{font-size:47px}.intro .hero-ship{height:74px;margin-bottom:15px}.intro p{font-size:12px}.intro{max-width:300px}.hud{top:14px;left:13px;right:13px}.target-hud{bottom:16px;left:14px;gap:10px}.answer{font-size:34px}.power-button{bottom:16px;right:13px;height:57px;width:64px}.equation{padding-left:10px}.equation b{font-size:16px}footer{display:none}.mobile-mission{display:block;background:none;border:0;min-height:24px;font:10px Consolas,monospace;color:var(--teal);padding:0}.arena-top .desktop-status{display:none}.enemy-label{width:46px;min-height:46px;font-size:19px}.hull i{width:12px}.intro h1{letter-spacing:-2px}}@media(max-height:560px)and (orientation:landscape){header{height:48px}.layout{margin-top:6px}.arena{height:calc(100dvh - 111px);min-height:250px}.intro .hero-ship{display:none}.intro h1{font-size:32px;margin:10px}.intro p{margin-bottom:12px;font-size:11px}.intro .launch-note{display:none}.overlay{padding:15px}.left-rail{max-height:75vh;overflow:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){*{scrollbar-color:auto}button{border:1px solid ButtonText}}#enemies,#pickups{pointer-events:none}.alien-label{position:absolute;z-index:2;transform:translate(-50%,-50%);font:600 11px Consolas,monospace;color:#e2c8ff;background:#171c31cc;border:1px solid #a66fea77;border-radius:4px;padding:2px 8px;pointer-events:none}.alien-label:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:currentColor;transform:scaleX(var(--hp, 1));transform-origin:left}.alien-label.scarab{color:#ffce72;border-color:#ffce7277}.alien-label.prism{color:#7ae7ff;border-color:#7ae7ff77}.alien-label.boss-target{color:var(--danger);width:auto;font-size:10px}.factor-drop{position:absolute;z-index:3;transform:translate(-50%,-50%);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#342619e8;color:#ffe1b8;font:800 22px Consolas,monospace;box-shadow:0 0 20px #ffad7033;pointer-events:none;text-shadow:0 1px 3px #000}.factor-drop.fading{opacity:.45}#pilot-hitbox{position:absolute;z-index:3;width:5px;height:5px;background:var(--ink);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}dialog summary{cursor:pointer;min-height:44px;padding:12px 0;color:var(--teal);font-weight:600}dialog summary:hover{color:var(--ink)}dialog summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}html,body,#app{min-height:100%}body{min-height:100dvh;background:radial-gradient(circle at 18% 18%,#173247 0,transparent 28%),radial-gradient(circle at 85% 75%,#192a3f 0,transparent 30%),var(--bg)}.layout{width:min(100%,1320px);min-height:calc(100dvh - 86px - env(safe-area-inset-top));margin:0 auto;padding:clamp(28px,4vw,64px);grid-template-columns:minmax(420px,1.25fr) minmax(290px,.75fr);gap:clamp(28px,5vw,76px);align-items:center}.start-levels{min-width:0}.start-kicker{color:var(--teal);font:600 10px/1.5 Consolas,monospace;letter-spacing:1.8px}.start-levels h1{margin:14px 0 12px;font-size:clamp(45px,6vw,78px);line-height:.96;letter-spacing:-4px}.start-levels h1 em{color:var(--teal);font-style:normal}.start-copy{max-width:530px;margin:0 0 25px;font-size:14px}#start-screen .sector-list{grid-template-columns:repeat(4,minmax(64px,1fr));gap:10px}#start-screen .sector{height:68px;background:#0d1b2a9e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#start-screen .sector.selected{background:#203d46;box-shadow:inset 0 0 0 1px #70e5ce55,0 0 24px #70e5ce12}#start-screen .sector:last-child{grid-column:span 4;height:54px}.start-play{width:100%;margin-top:14px;min-height:58px;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;letter-spacing:1px}.start-summary{min-width:0;display:grid;gap:14px}.selected-level,.hangar-card{border:1px solid var(--line);border-radius:14px;background:#101e2edb;padding:clamp(20px,3vw,30px);box-shadow:0 20px 60px #02081042}.selected-level h2{margin-bottom:6px}.mission-number{font-size:clamp(44px,5vw,68px)}.level-facts,.hangar-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.level-facts div,.hangar-stats div{display:grid;gap:4px}.level-facts span,.hangar-stats span{color:var(--muted);font-size:10px}.level-facts strong,.hangar-stats strong{font-size:11px;font-weight:600}.hangar-card{display:grid;grid-template-columns:1fr 104px;gap:12px 18px;align-items:center}.hangar-card .ship-display{grid-column:2;grid-row:1}.ship-progress-block,.hangar-stats{grid-column:1 / -1}#game-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;visibility:hidden;pointer-events:none;background:var(--bg)}body.game-active{overflow:hidden;padding:0;overscroll-behavior:none}body.game-active>#app>header,body.game-active #start-screen,body.game-active #save-warning{display:none}body.game-active #game-screen{visibility:visible;pointer-events:auto;width:100%;height:100dvh}body.game-active .arena{width:100%;height:100dvh;min-height:0;border:0;border-radius:0}body.game-active .arena-top{position:absolute;top:max(10px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));height:auto;z-index:5;pointer-events:none}body.game-active .arena-bottom{position:absolute;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:5;margin:0;pointer-events:none;opacity:.72}body.game-active .hud{top:max(38px,calc(env(safe-area-inset-top) + 38px));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right))}body.game-active .target-hud{bottom:max(32px,calc(env(safe-area-inset-bottom) + 30px));left:max(18px,env(safe-area-inset-left))}body.game-active .power-button{right:max(18px,env(safe-area-inset-right));bottom:max(32px,calc(env(safe-area-inset-bottom) + 30px))}body.game-active .toast{top:max(92px,calc(env(safe-area-inset-top) + 92px))}body.game-active .boss-bar{top:max(118px,calc(env(safe-area-inset-top) + 118px))}@media(max-width:900px){header{height:72px;padding:0 24px}.layout{min-height:calc(100dvh - 72px - env(safe-area-inset-top));grid-template-columns:minmax(0,1fr);align-content:start;gap:24px;padding:28px 24px 38px}.start-levels h1{font-size:clamp(44px,8vw,64px)}.start-summary{grid-template-columns:.85fr 1.15fr;align-items:stretch}.selected-level,.hangar-card{padding:22px}.selected-level .mission-number{font-size:52px}}@media(max-width:700px){header{height:64px;padding:0 14px}.brand small,.header-right>small{display:none}.header-right{gap:7px}.header-right button{padding:0 10px;font-size:11px}.layout{min-height:calc(100dvh - 64px - env(safe-area-inset-top));padding:20px 14px 32px;gap:18px}.start-levels{display:block}.start-kicker{font-size:8px}.start-levels h1{margin:10px 0 8px;font-size:clamp(36px,12vw,50px);letter-spacing:-2px}.start-copy{font-size:12px;line-height:1.45;margin-bottom:14px}#start-screen .sector-list{grid-template-columns:repeat(4,1fr);gap:7px}#start-screen .sector{height:53px;min-height:48px;font-size:14px}#start-screen .sector:last-child{grid-column:span 4;height:48px}.start-play{min-height:54px}.start-summary{grid-template-columns:1fr}.selected-level,.hangar-card{padding:18px}.selected-level{display:grid;grid-template-columns:auto 1fr;gap:3px 18px;align-items:center}.selected-level>small,.selected-level .mission-number{grid-row:span 2}.selected-level h2,.selected-level p{margin:0}.selected-level .mission-number{font-size:40px}.selected-level .mission-number span,.level-facts,body.game-active .arena-top #combat-status{display:none}body.game-active .arena-bottom{font-size:8px}body.game-active .hud{top:max(34px,calc(env(safe-area-inset-top) + 34px))}body.game-active .target-hud,body.game-active .power-button{bottom:max(30px,calc(env(safe-area-inset-bottom) + 28px))}.overlay{padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}}@media(max-height:560px)and (orientation:landscape){header{height:52px}.layout{min-height:calc(100dvh - 52px - env(safe-area-inset-top));grid-template-columns:minmax(0,1fr) minmax(210px,.44fr);align-items:center;gap:24px;padding:14px 28px}.start-kicker,.start-copy{display:none}.start-levels h1{margin:0 0 10px;font-size:34px;letter-spacing:-2px}#start-screen .sector-list{grid-template-columns:repeat(7,1fr);gap:6px}#start-screen .sector{height:48px;min-height:44px}#start-screen .sector:last-child{grid-column:span 7;height:44px}.start-play{min-height:48px;margin-top:8px;padding-block:8px}.start-summary{display:block}.selected-level{padding:18px}.selected-level .mission-desc,.level-facts,.hangar-card{display:none}body.game-active .arena{height:100dvh;min-height:0}.intro h1{font-size:32px}.intro p{margin-bottom:10px}.intro .secondary{display:inline-flex;margin:8px 4px 0}}
