@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;font-family:'Space Grotesk',sans-serif;color:#e9f4ff;background:#050613}*{box-sizing:border-box}body{margin:0;overflow:hidden}#scene,canvas,.vignette,#overlay{position:fixed;inset:0;width:100%;height:100%}.vignette{pointer-events:none;background:linear-gradient(180deg,#030611b0,transparent 28%,transparent 70%,#030611e0);box-shadow:inset 0 0 150px #04051088}header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;gap:18px;padding:28px 40px;z-index:3}.brand{font-size:30px;font-weight:700;letter-spacing:6px;text-decoration:none;color:white}.brand span{display:block;font-size:9px;letter-spacing:3px;margin-top:5px;color:#8796ad}.mission{margin:auto;font-size:10px;letter-spacing:2px;color:#8b96af}.mission b{display:block;color:#d9e6fb;margin-top:6px;font-size:13px}button{cursor:pointer;font:inherit}.small{border:1px solid #ffffff25;background:#0b102860;padding:12px;color:#b7c6dc;font-size:10px;letter-spacing:1px}.leftHud,.rightHud{position:fixed;top:135px;z-index:2}.leftHud{left:40px;width:175px}.rightHud{right:40px;text-align:right}.eyebrow{font-size:9px;letter-spacing:2px;color:#a3adc3}.bar{height:3px;background:#ffffff20;margin:12px 0}.bar i{display:block;height:100%;background:#b4ff68;box-shadow:0 0 10px #a7ff4270;width:100%}.numbers{display:flex;align-items:center;gap:10px}.numbers b{font-size:24px}.numbers span,.rightHud>span:last-child{font-size:9px;letter-spacing:1px;color:#8495af}.rightHud strong{display:block;font-size:32px;font-weight:500;letter-spacing:3px;margin:6px 0}#crosshair{position:fixed;top:50%;left:50%;color:#bbfaff85;font-size:25px;transform:translate(-50%,-50%);pointer-events:none}#overlay{z-index:2;display:flex;align-items:center;padding:0 9%;background:linear-gradient(90deg,#060817e8, #06081770 45%,transparent 75%)}.intro{max-width:680px;padding-top:55px}.tag{font-size:10px;color:#c0ff7e;letter-spacing:3px}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(60px,7.5vw,112px);line-height:.94;letter-spacing:-1px;margin:23px 0}h1 em{font-style:normal;color:#b8ff71}.intro p{font-size:15px;line-height:1.8;color:#a8b4ce;margin-bottom:30px}#start{min-width:270px;padding:19px 22px;background:#b8ff71;border:0;color:#101a0c;font-weight:700;font-size:12px;letter-spacing:2px;text-align:left}#start span{float:right;font-size:18px}.introFoot,#loading{font-size:9px;color:#8b9bb7;letter-spacing:1px;margin-top:18px}footer{position:fixed;bottom:25px;left:40px;right:40px;display:flex;align-items:end;justify-content:space-between;z-index:3}.controls{display:flex;gap:25px;font-size:9px;letter-spacing:1px;color:#a7b5cb}.controls>span{display:flex;align-items:center;gap:5px}kbd{border:1px solid #8ca1bc55;padding:5px 7px;font:11px 'Space Grotesk';color:white;border-radius:3px}.controls b{font-size:8px;color:#b8ff71;margin-left:5px}.journey{width:190px;font-size:9px;letter-spacing:1px;color:#8291aa}.journey .bar{margin:8px 0}.journey i{width:0;background:#96e6ff}#notice{position:fixed;top:26%;width:100%;text-align:center;color:#c0ff8a;font-size:14px;letter-spacing:4px;pointer-events:none}button:hover{filter:brightness(1.15)}button:focus-visible{outline:2px solid white;outline-offset:5px}@media(max-width:800px){header{padding:20px}.mission{display:none}.brand{margin-right:auto}.leftHud{left:20px;top:110px}.rightHud{right:20px;top:110px}footer{left:20px;right:20px}.controls{gap:12px;flex-wrap:wrap}.journey{display:none}.small{font-size:8px;padding:8px}.intro{padding-top:90px}.introFoot{max-width:250px}h1{font-size:65px}}

#scene{z-index:0}.leftHud,.rightHud,footer{pointer-events:none}dialog{width:min(540px,92vw);max-height:85vh;overflow:auto;border:1px solid #627455;background:#0c1223;color:#e9f4ff;padding:28px;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#030611c9;backdrop-filter:blur(8px)}.rankingHead{display:flex;align-items:start;justify-content:space-between;gap:14px}h2{font-family:'Barlow Condensed',sans-serif;font-size:40px;margin:12px 0 25px}#rankingList{padding:0;list-style:none;font-size:14px;min-height:60px}#rankingList li{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #ffffff15}#rankingList b{color:#b8ff71}#saveScore{margin-top:22px;border-top:1px solid #ffffff20;padding-top:22px}#saveScore label{font-size:10px;letter-spacing:2px}.saveRow{display:flex;gap:8px;margin-top:10px}.saveRow input{min-width:0;width:100%;background:#171e31;color:white;padding:12px;border:1px solid #73819b}.saveRow button{background:#b8ff71;color:#101a0c;border:0;font-size:10px;font-weight:700;padding:10px;white-space:nowrap}#saveScore p,#rankingStatus{font-size:11px;line-height:1.6;color:#b5c4d8}.intro .playHint{font-size:11px;margin:18px 0 0;max-width:350px;line-height:1.6}@media(max-width:800px){header{gap:8px}.brand{font-size:22px;letter-spacing:4px}.brand span{font-size:7px;letter-spacing:1px}header .small{font-size:8px;padding:7px}.intro{padding-top:90px;padding-bottom:65px}h1{font-size:clamp(40px,8vw,65px)}.intro p{margin-bottom:18px}.introFoot{font-size:8px}footer .controls{font-size:8px;gap:8px}kbd{font-size:9px;padding:4px}.leftHud{width:130px}#overlay{overflow:auto}.saveRow{flex-wrap:wrap}}

#touchControls{display:none;position:fixed;inset:0;z-index:4;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-mode.flying #touchControls{display:block}.touch-mode footer .controls{display:none}#touchStick{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:max(30px,env(safe-area-inset-bottom));width:138px;height:138px;border:1px solid #c0f8ff80;border-radius:50%;background:radial-gradient(circle,#77cfff15,#0c163a90);pointer-events:auto;touch-action:none}#touchKnob{position:absolute;left:50%;top:50%;width:58px;height:58px;border-radius:50%;background:#a7efff55;border:2px solid #b6f4ff;transform:translate(-50%,-50%);box-shadow:0 0 20px #6fe5ff30}#touchStick small{position:absolute;bottom:9px;width:100%;text-align:center;font-size:8px;letter-spacing:2px;color:#c1eafa}.touchWeapons{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom));display:flex;gap:14px;align-items:end}.touchWeapons button{pointer-events:auto;touch-action:none;border-radius:50%;border:1px solid #b8ff7180;background:#182a1de0;color:#c3ff94;width:96px;height:96px;font-size:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.touchWeapons small{font-size:9px;letter-spacing:1px}.touchWeapons #touchPulse{width:76px;height:76px;font-size:26px;background:#2a163ee0;border-color:#e59fff80;color:#edbaff}.touchWeapons #touchPulse[aria-disabled=true]{opacity:.5}.touchWeapons button.pressed{background:#b8ff71;color:#122410;box-shadow:0 0 28px #b8ff7160}.touch-mode footer{bottom:auto;top:95px;left:50%;right:auto;transform:translateX(-50%)}.touch-mode .journey{width:130px;display:block;text-align:center}.touch-mode .journey>span:last-child{display:none}
@media(max-width:600px){header{padding:14px 10px;gap:5px}.brand{font-size:17px;letter-spacing:2px}.brand span{font-size:6px}header .small{padding:9px 6px;font-size:7px;min-height:36px}.leftHud,.rightHud{top:82px}.leftHud{left:14px;width:105px}.rightHud{right:14px}.rightHud strong{font-size:22px}.eyebrow{font-size:7px}.numbers b{font-size:20px}.numbers span{font-size:7px}.touch-mode footer{top:137px}.intro{padding-top:160px;padding-bottom:32px}#overlay{align-items:flex-start;padding-inline:7%}h1{font-size:clamp(45px,11vw,64px)}.intro .tag{font-size:8px;letter-spacing:2px}.intro p{font-size:13px}#start{min-width:240px}.touchWeapons{gap:10px;right:16px}#touchStick{left:16px;width:122px;height:122px}.touchWeapons button{width:86px;height:86px}.touchWeapons #touchPulse{width:68px;height:68px}.touchWeapons small{font-size:8px}#notice{top:30%;font-size:11px}dialog{padding:20px}}
@media(max-height:500px) and (orientation:landscape){header{padding:8px 18px}.brand{font-size:18px}.brand span{display:none}.mission{display:none}header .small{padding:8px}.leftHud,.rightHud{top:64px}.leftHud{width:110px}.rightHud strong{font-size:22px}.touch-mode footer{top:58px}.intro{padding:72px 0 20px;max-width:650px}#overlay{align-items:flex-start}h1{font-size:44px;margin:12px 0}.intro p{font-size:11px;line-height:1.4;margin:10px 0}.introFoot,#loading{display:none}#start{padding:12px 18px}.intro .playHint{margin-top:10px;font-size:10px}.touchWeapons,#touchStick{bottom:max(14px,env(safe-area-inset-bottom))}#touchStick{width:112px;height:112px}.touchWeapons button{width:80px;height:80px}.touchWeapons #touchPulse{width:64px;height:64px}#notice{top:32%}}

@media(max-width:380px){header .brand{font-size:14px}header .brand span{display:none}header .small{padding:8px 5px;font-size:6px}.touchWeapons{gap:6px;right:12px}#touchStick{left:12px;width:112px;height:112px}.touchWeapons button{width:80px;height:80px}.touchWeapons #touchPulse{width:62px;height:62px}}

.energyLabel{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.energyLabel b{font-size:16px;color:#66dfff}#energyMeter{margin-top:6px}#energy{background:#46ceff;box-shadow:0 0 10px #46ceff80}#energyMeter.low #energy{background:#ffb65a}.touch-mode footer{top:80px}#notice{padding:0 12px;font-size:12px;letter-spacing:2px}@media(max-width:600px){.leftHud,.rightHud{top:75px}.energyLabel{margin-top:8px}.energyLabel b{font-size:13px}.touch-mode footer{top:183px}.intro{padding-top:222px}.intro .tag{font-size:7px}.intro h1{font-size:44px}#notice{top:32%;font-size:9px}.rightHud strong{font-size:22px}}@media(max-height:500px) and (orientation:landscape){.leftHud,.rightHud{top:56px}.energyLabel{margin-top:4px}.energyLabel b{font-size:12px}.leftHud .bar{margin:5px 0}.numbers b{font-size:16px}.intro{padding-top:78px}.touch-mode footer{top:60px}#notice{top:37%}}

#hitMarker{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font-size:36px;line-height:1;color:#e5ffff;opacity:0;pointer-events:none;text-shadow:0 0 14px #74dfff;z-index:2}#hitMarker.hit{animation:hit-confirm .22s ease-out}@keyframes hit-confirm{0%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}100%{opacity:0;transform:translate(-50%,-50%) scale(.85)}}

.aim{position:fixed;z-index:5;width:15px;height:15px;border:1px solid #bdfaff;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 8px #65ddff80}.aim:after{content:"";position:absolute;inset:5px;background:#c4fbff;border-radius:50%}.aim.locked{border-color:#ffb34a;box-shadow:0 0 13px #ff8a38}.aim.locked:after{background:#ffb34a}.musicCredit{font-size:10px;color:#8a99a8;margin-top:14px}.musicCredit a{color:#a1bacb}body:not(.flying) .aim{visibility:hidden}

.flightPanel{position:fixed;z-index:8;right:3%;top:260px;width:210px;background:#070e1cbb;padding:12px;border:1px solid #426279;font-size:10px}.flightPanel label{display:flex;justify-content:space-between}.flightPanel input{width:100%;accent-color:#8df3bf;touch-action:auto}.flightPanel div{display:flex;justify-content:space-between;font-size:9px}.flightPanel small{display:block;margin-top:8px;color:#83dfff;line-height:1.5}#hangarDialog{background:#0d1524;color:#d9e6ef;border:1px solid #50647b;max-width:520px;width:90%;max-height:85vh;overflow:auto;padding:24px}#hangarDialog::backdrop{background:#000a}#closeHangar{float:right}.upgradeCard{padding:14px;margin-top:12px;border:1px solid #314c61}.upgradeCard p,#saveNote{font-size:12px;color:#9eb2c4}.upgradeCard button{padding:10px;border:1px solid #86ffa9;background:#142c29;color:#b9ffd0;cursor:pointer}.upgradeCard button:disabled{opacity:.4;cursor:default}
@media(max-width:700px){header{gap:5px;flex-wrap:wrap}header .small{font-size:8px;padding:8px 5px}.flightPanel{top:245px;right:10px;width:145px;padding:8px}.flightPanel small{font-size:8px}.flightPanel div{font-size:8px}}
@media(max-height:520px){.flightPanel{top:110px;right:10px;width:145px}.flightPanel small{display:none}}

#lookStick{position:absolute;right:24px;bottom:145px;width:110px;height:110px;border:1px solid #aadfff88;border-radius:50%;background:#14243c99;pointer-events:auto;touch-action:none}#lookKnob{position:absolute;left:50%;top:50%;width:42px;height:42px;border-radius:50%;background:#b2daff66;transform:translate(-50%,-50%)}#lookStick small{position:absolute;bottom:8px;width:100%;text-align:center;font-size:8px}.liftControls{position:absolute;bottom:40px;left:170px;display:flex;gap:8px;pointer-events:auto}.liftControls button{width:40px;height:40px;touch-action:none;background:#16334bdd;border:1px solid #8cbbdf;color:#fff}.touch-mode .touchWeapons button{width:65px;height:65px;font-size:24px}.touch-mode .touchWeapons #touchPulse{width:55px;height:55px;font-size:20px}.touch-mode .touchWeapons{right:20px;bottom:40px}.touch-mode .flightPanel{top:185px;right:10px;width:135px}.touch-mode #lookStick{bottom:130px}.intro .playHint{max-width:480px}.flightPanel{top:250px}
@media(max-height:520px){.touch-mode #lookStick{right:100px;bottom:95px;width:85px;height:85px}.touch-mode .flightPanel{top:100px;right:10px;width:115px}.liftControls{bottom:20px;left:140px}.touch-mode .touchWeapons{bottom:16px}.touch-mode #lookStick small{bottom:3px}}

#navMarker{position:fixed;z-index:3;pointer-events:none;color:#78e2db;font-size:9px;letter-spacing:2px;transform:translate(-50%,-150%);text-shadow:0 0 7px #000}body:not(.flying) #navMarker{display:none}.liftControls{flex-wrap:wrap;width:90px;gap:6px}.journey{gap:10px}

#touchTurbo{position:absolute;left:24px;bottom:180px;pointer-events:auto;touch-action:none;padding:12px;color:#aaffdc;border:1px solid #55cca2;background:#112c2ee0}#touchTurbo.pressed{background:#78ffd1;color:#102b27}.turboLabel{margin-top:8px}#turboFill{background:#cc89ff}.flightPanel .bar{height:3px;margin-top:4px}.aim{width:22px;height:22px}.aim:after{inset:8px}@media(max-height:520px){#touchTurbo{left:150px;bottom:120px}}

.levelHud{position:fixed;z-index:8;left:3%;top:280px;width:190px;padding:10px;background:#07121be6;border:1px solid #3c7367;pointer-events:none}.levelHud strong{color:#9affc9;font-size:12px}.levelHud>span{float:right;font-size:10px}.levelHud .bar{margin:8px 0;height:4px}.levelHud small{font-size:8px;color:#b9d4db}#xpFill{background:#b996ff}#levelDialog{background:#091521;color:#e3f6f1;border:1px solid #88dfbd;padding:28px;width:min(760px,92vw);max-height:90dvh;overflow:auto}#levelDialog::backdrop{background:#01080de8}#levelDialog h2{font-size:24px}#levelDialog p,#levelDialog>small{color:#9fbac4;line-height:1.5}#levelChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.levelChoice{background:#132b31;border:1px solid #558f8b;padding:22px 16px;color:#ecfff8;text-align:left;cursor:pointer;min-height:150px;touch-action:manipulation}.levelChoice strong{display:block;font-size:18px;margin-bottom:16px}.levelChoice span{font-size:13px;line-height:1.5;color:#b1cbd1}.levelChoice:hover,.levelChoice:focus-visible{outline:2px solid #adffcd;background:#1c4142}@media(max-width:700px){.levelHud{top:285px;left:10px;width:145px}#levelChoices{grid-template-columns:1fr;gap:8px;margin:12px 0}.levelChoice{min-height:70px;padding:14px}.levelChoice strong{font-size:16px;margin-bottom:6px}#levelDialog{padding:18px}}@media(max-height:520px){.levelHud{top:auto;bottom:85px;width:160px}#levelChoices{grid-template-columns:repeat(3,1fr)}.levelChoice{padding:12px;min-height:110px}#levelDialog h2{font-size:18px;margin:8px 0}}

#targetBars{position:fixed;inset:0;pointer-events:none;z-index:6}.targetBar{position:absolute;transform:translate(-50%,-100%);width:145px;text-align:center;font-size:9px;color:#ffe5bc;text-shadow:0 1px 3px #000}.targetBar>div{height:5px;background:#241b24;border:1px solid #684e53;margin-top:4px}.targetBar i{display:block;height:100%;background:#ff8c5a}.targetBar.ally{color:#8affcd}.targetBar.ally i{background:#69ffc7}body:not(.flying) #targetBars{display:none}#missionWarning{position:fixed;left:50%;top:110px;transform:translateX(-50%);z-index:9;color:#ffc56b;font-size:14px;text-align:center;pointer-events:none}.levelSelect{display:flex;gap:10px;margin:14px 0}.levelSelect button{background:#102029;border:1px solid #477066;color:#c4e7dd;padding:12px;font-size:12px;cursor:pointer}.levelSelect button[aria-pressed=true]{background:#25483a;border-color:#9bffbf;color:#caffd8}#levelDescription{font-size:12px}.intro{max-height:90dvh;overflow:auto}#overlay .intro p{margin:12px 0}@media(max-width:700px){.targetBar{width:95px;font-size:8px}.levelSelect button{font-size:10px;padding:9px}#missionWarning{top:120px;font-size:11px}}

.damageFeedback{position:fixed;inset:0;pointer-events:none;z-index:15;opacity:0}
