:root{--bg: #05060f;--neon: #4fd1ff;--neon-soft: #9be7ff;--accent: #ff4d6d;--gold: #ffd166;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}#root{display:flex;align-items:center;justify-content:center}body{background:radial-gradient(1200px 600px at 50% -10%,#14193a 0%,transparent 70%),var(--bg);color:#e8f4ff;display:flex;align-items:center;justify-content:center;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;user-select:none;-webkit-user-select:none}.game-shell{position:relative;height:96vh;max-width:96vw;aspect-ratio:600 / 1040;border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px #4fd1ff40,0 0 60px #4fd1ff26,0 30px 80px #0009;background:#02030a}.game-canvas{display:block;width:100%;height:100%;image-rendering:auto}@media (pointer: coarse),(max-width: 700px){.game-shell,.game-shell *{touch-action:manipulation}.game-shell{width:100vw;height:100vh;height:100dvh;max-width:none;aspect-ratio:auto;border-radius:0;box-shadow:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.game-canvas{object-fit:contain}.hud{padding:calc(12px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) 12px calc(18px + env(safe-area-inset-left))}.overlay,.intro{padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left))}}.touch-controls{position:absolute;left:0;right:0;bottom:0;z-index:10;display:none;align-items:flex-end;justify-content:space-between;gap:12px;padding:10px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));pointer-events:none}@media (pointer: coarse){.touch-controls{display:flex}}.tc-pad{display:flex;gap:14px}.tc-btn{pointer-events:auto;touch-action:none!important;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;border:1.5px solid rgba(79,209,255,.5);background:#4fd1ff1f;color:#eafaff;font-size:22px}.tc-btn:active{background:#4fd1ff52}.tc-fire{width:84px;height:84px;font-size:15px;font-weight:800;letter-spacing:1px;border-color:#ff4d6d8c;background:#ff4d6d24;color:#ffd3dc}.tc-fire:active{background:#ff4d6d57}.tc-pause{width:44px;height:44px;font-size:13px;opacity:.75;align-self:center}.tc-bomb{width:56px;height:56px;font-size:24px;align-self:center;border-color:#ff8c4299;background:#ff8c4229}.touch-hint{display:none;font-size:13px;opacity:.8;letter-spacing:1px}@media (pointer: coarse){.controls,.hint{display:none}.touch-hint{display:block}}.intro{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;background:radial-gradient(800px 500px at 50% 30%,rgba(40,20,80,.5),transparent 70%),#02030a;animation:intro-fade .5s ease;transition:opacity .6s ease}.intro.exiting{opacity:0;pointer-events:none}@keyframes intro-fade{0%{opacity:0}to{opacity:1}}.intro-lines{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:24px;z-index:2}.intro-line{font-size:clamp(26px,7vw,52px);font-weight:800;letter-spacing:3px;color:#eafaff;text-shadow:0 0 24px rgba(79,209,255,.6);opacity:0;transform:translate(-120%) skew(-12deg)}.intro-line:nth-child(2n){transform:translate(120%) skew(12deg)}.intro-line.show{animation:fly-in .7s cubic-bezier(.18,1.3,.4,1) forwards}@keyframes fly-in{to{opacity:1;transform:translate(0) skew(0)}}.intro-line.finale{font-size:clamp(30px,9vw,70px);background:linear-gradient(180deg,#ffffff,var(--gold) 60%,var(--neon));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(255,209,102,.6);transform:scale(.2)}.intro-line.finale.show{animation:finale-pop .9s cubic-bezier(.18,1.4,.3,1) forwards}@keyframes finale-pop{0%{opacity:0;transform:scale(.2) rotate(-6deg)}60%{opacity:1;transform:scale(1.12) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.intro-gate{flex-direction:column;gap:26px}.intro-gate-title{font-size:clamp(26px,7vw,52px);font-weight:800;letter-spacing:3px;text-align:center;padding:0 20px;background:linear-gradient(180deg,#ffffff,var(--gold) 60%,var(--neon));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 36px rgba(255,209,102,.5)}.intro-start{font-size:20px;padding:16px 40px;animation:start-pulse 1.4s ease-in-out infinite}@keyframes start-pulse{0%,to{transform:scale(1);box-shadow:0 0 24px #4fd1ff40}50%{transform:scale(1.06);box-shadow:0 0 40px #4fd1ff8c}}.intro-rocket.idle{animation:none;position:static;font-size:64px;transform:rotate(45deg)}.intro-rocket{position:absolute;left:-15%;top:14%;font-size:54px;z-index:1;transform:rotate(45deg);filter:drop-shadow(0 0 18px rgba(255,160,60,.9));animation:rocket-fly 3s linear .4s forwards}@keyframes rocket-fly{0%{left:-15%;opacity:0}12%{opacity:1}88%{opacity:1}to{left:115%;opacity:0}}.intro-voice{position:absolute;bottom:44px;left:0;right:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:0 16px}.intro-vbtn{pointer-events:auto;cursor:pointer;border:1px solid rgba(79,209,255,.5);background:#4fd1ff24;color:#eafaff;font-size:13px;font-weight:700;letter-spacing:1px;padding:8px 14px;border-radius:10px}.intro-vbtn.ghost{background:#ffffff0f;border-color:#fff3}.intro-vname{font-size:11px;letter-spacing:1px;color:var(--neon-soft);opacity:.7;width:100%;text-align:center}.intro-skip{position:absolute;bottom:18px;right:20px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--neon-soft);opacity:.5;z-index:3}.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:12px 18px;font-variant-numeric:tabular-nums;letter-spacing:1px;text-shadow:0 0 8px rgba(79,209,255,.6);pointer-events:none}.hud .label{font-size:11px;opacity:.6;text-transform:uppercase;letter-spacing:2px}.hud .value{font-size:27px;font-weight:700}.hud .high-name{display:block;font-size:12px;font-weight:700;letter-spacing:1px;color:var(--gold);text-shadow:0 0 8px rgba(255,209,102,.5)}.hud .lives{display:flex;gap:6px;align-items:center}.hud .life{width:20px;height:20px;filter:drop-shadow(0 0 4px rgba(79,209,255,.7))}.badges{position:absolute;top:58px;left:50%;transform:translate(-50%);width:92%;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.weapon-badge{padding:4px 14px;border:1.5px solid currentColor;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:2px;white-space:nowrap;background:#05081299;animation:weapon-pop .25s ease-out}.weapon-rapid{color:#ffd23f;text-shadow:0 0 10px rgba(255,210,63,.7)}.weapon-triple{color:#4fe88a;text-shadow:0 0 10px rgba(79,232,138,.7)}.weapon-laser{color:#ff5dc8;text-shadow:0 0 10px rgba(255,93,200,.7)}.weapon-shield{color:#4fd1ff;text-shadow:0 0 10px rgba(79,209,255,.7)}.weapon-multi{color:#ffd166;text-shadow:0 0 10px rgba(255,209,102,.7)}.weapon-bomb{color:#ff8c42;text-shadow:0 0 10px rgba(255,140,66,.7)}.weapon-revive{color:#ff6b8b;text-shadow:0 0 10px rgba(255,107,139,.7)}@keyframes weapon-pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;overflow-y:auto;gap:18px;text-align:center;padding:24px;background:radial-gradient(circle at 50% 40%,#05060f8c,#02030ae0);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .4s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.title{font-size:clamp(34px,9vw,64px);font-weight:800;letter-spacing:4px;background:linear-gradient(180deg,#ffffff,var(--neon));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 30px rgba(79,209,255,.4);line-height:1}.subtitle{font-size:14px;letter-spacing:3px;text-transform:uppercase;color:var(--neon-soft);opacity:.85}.byline{font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);opacity:.9;text-shadow:0 0 14px rgba(255,209,102,.5);margin-top:-8px}.big-status{font-size:clamp(28px,8vw,52px);font-weight:800;letter-spacing:3px}.big-status.win{color:var(--gold);text-shadow:0 0 24px rgba(255,209,102,.6)}.big-status.lose{color:var(--accent);text-shadow:0 0 24px rgba(255,77,109,.6)}.final-score{font-size:22px;font-weight:700}.hs-entry{display:flex;flex-direction:column;align-items:center;gap:12px}.hs-row{display:flex;gap:10px;align-items:center}.hs-input{pointer-events:auto;background:#ffffff14;border:1px solid rgba(79,209,255,.5);color:#eafaff;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;padding:12px 14px;border-radius:10px;width:180px}.hs-input:focus{outline:none;border-color:var(--neon);box-shadow:0 0 18px #4fd1ff66}.final-score span{color:var(--gold)}.pu-guide{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(440px,90%)}.pu-list{display:flex;flex-direction:column;gap:6px;width:100%}.pu-row{display:flex;align-items:center;gap:14px;text-align:left;padding:4px 10px;border-bottom:1px solid rgba(79,209,255,.12)}.pu-icon{width:44px;height:44px;flex:none}.pu-name{font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.pu-desc{font-size:13px;opacity:.75}.pu-note{font-size:12px;opacity:.65;letter-spacing:.5px;max-width:380px}.leaderboard{display:flex;flex-direction:column;align-items:center;gap:18px;width:min(420px,88%)}.lb-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:15px}.lb-table th{font-size:11px;text-transform:uppercase;letter-spacing:2px;opacity:.6;font-weight:700}.lb-table th,.lb-table td{padding:8px 10px;text-align:right;border-bottom:1px solid rgba(79,209,255,.15)}.lb-table .lb-name{text-align:left;font-weight:700;letter-spacing:1px}.lb-table tbody tr:first-child td{color:var(--gold);text-shadow:0 0 10px rgba(255,209,102,.5)}.lb-empty{font-size:14px;opacity:.7;letter-spacing:1px}.btn{pointer-events:auto;cursor:pointer;border:1px solid rgba(79,209,255,.5);background:#4fd1ff1f;color:#eafaff;font-size:16px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:14px 30px;border-radius:12px;transition:transform .12s ease,background .2s ease,box-shadow .2s ease;box-shadow:0 0 24px #4fd1ff26}.btn:hover{transform:translateY(-2px);background:#4fd1ff38;box-shadow:0 0 36px #4fd1ff59}.btn:active{transform:translateY(0)}.controls{display:grid;grid-template-columns:auto auto;gap:6px 16px;font-size:13px;opacity:.8;margin-top:4px}.controls kbd{background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:2px 8px;font-family:inherit;font-size:12px}.hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:2px;opacity:.35;text-transform:uppercase;pointer-events:none}.muted-toggle{position:absolute;top:50px;right:16px;pointer-events:auto;cursor:pointer;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#cfeeff;border-radius:8px;padding:6px 10px;font-size:12px;z-index:5}.volt-bank{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 26px 12px;border-radius:18px;border:1.5px solid rgba(255,209,102,.5);background:#ffd16614;box-shadow:0 0 26px #ffd1662e;color:var(--gold)}.vb-label{font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;opacity:.8}.vb-amount{font-size:32px;font-weight:800;letter-spacing:1px;line-height:1.1;font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(255,209,102,.55)}.volt-bank.compact{padding:6px 16px 7px;border-radius:14px}.volt-bank.compact .vb-label{font-size:9px}.volt-bank.compact .vb-amount{font-size:20px}.overlay:has(>.shop),.overlay:has(>.wizard){justify-content:flex-start}.game-shell:has(.overlay.panel) .hud{visibility:hidden}.volts-earned{font-size:18px;font-weight:800;color:var(--gold);text-shadow:0 0 12px rgba(255,209,102,.5)}.volts-earned span{font-size:14px;font-weight:600;opacity:.7}.shop{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(460px,94%)}.shop-head{display:flex;align-items:center;justify-content:space-between;width:100%}.shop-tabs{display:flex;gap:8px}.shop-tabs button{pointer-events:auto;cursor:pointer;padding:8px 22px;border-radius:999px;border:1px solid rgba(79,209,255,.35);background:transparent;color:var(--neon-soft);font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.shop-tabs button.active{background:#4fd1ff2e;border-color:var(--neon);color:#fff}.shop-note{font-size:12px;opacity:.7;max-width:400px}.shop-list{display:flex;flex-direction:column;gap:6px;width:100%}.shop-row{display:flex;align-items:center;gap:12px;text-align:left;padding:8px 10px;border-bottom:1px solid rgba(79,209,255,.12)}.shop-row.locked .shop-art{opacity:.55;filter:grayscale(.5)}.shop-art{width:44px;height:44px;flex:none;filter:drop-shadow(0 0 6px rgba(79,209,255,.4))}.shop-icon{width:44px;flex:none;text-align:center;font-size:22px;font-weight:800;color:var(--gold)}.shop-info{flex:1;min-width:0}.shop-name{font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.shop-desc{font-size:12px;opacity:.7}.shop-state{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;opacity:.6;flex:none}.shop-buy{pointer-events:auto;cursor:pointer;flex:none;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,209,102,.55);background:#ffd1661a;color:var(--gold);font-size:13px;font-weight:800;letter-spacing:1px;font-variant-numeric:tabular-nums}.shop-buy.confirm{background:var(--gold);color:#1a1206}.shop-buy.equip{border-color:#4fd1ff80;background:#4fd1ff1f;color:#eafaff;text-transform:uppercase}.shop-buy:disabled{opacity:.4;cursor:not-allowed}.player-form{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:340px}.player-form .hs-input,.hs-email{width:260px;letter-spacing:.5px}.hs-email{font-size:14px;font-weight:600;padding:10px 12px}.player-intro{font-size:14px;color:var(--neon-soft);line-height:1.4}.player-error{font-size:13px;color:var(--accent)}.player-note{font-size:11px;opacity:.55;letter-spacing:.5px}.player-line{font-size:13px;opacity:.85}.player-line strong{color:#eafaff}.link-btn{pointer-events:auto;cursor:pointer;background:none;border:none;padding:0;color:var(--neon-soft);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px}.btn-quiet{background:transparent;border-color:#fff3;box-shadow:none}.btn:disabled{opacity:.5;cursor:wait}.shop-group{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.shop-group-head{text-align:left;font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--neon-soft);padding:4px 10px}.shop-group-head span{font-weight:500;letter-spacing:.5px;text-transform:none;opacity:.6;margin-left:6px}.swatch{display:inline-block;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.25);box-shadow:0 0 10px #ffffff26}.swatch-bullet{width:8px;height:26px;border-radius:3px}.swatch-stars{border-radius:8px}.shop-buy.equip.on{border-color:var(--gold);background:#ffd16629;color:var(--gold)}.lb-flair{margin-left:6px;color:var(--gold);text-shadow:0 0 8px rgba(255,209,102,.6)}.wizard{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(520px,96%);height:100%;min-height:0}.overlay:has(>.wizard){overflow:hidden}.wizard-body{flex:1;min-height:0;width:100%;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:2px 2px 8px}.wizard-steps{display:flex;gap:6px}.wizard-step{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:transparent;color:var(--neon-soft);font-size:12px;font-weight:700;letter-spacing:1px;opacity:.6}.wizard-step span{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#4fd1ff2e;font-size:11px}.wizard-step.current{opacity:1;border-color:var(--neon);color:#fff}.wizard-step.done{opacity:.85}.wizard-title{font-size:clamp(22px,6vw,30px);font-weight:800;letter-spacing:1px;color:#eafaff;text-shadow:0 0 18px rgba(79,209,255,.4)}.wizard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.wizard-card{pointer-events:auto;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px 14px;border-radius:18px;border:1.5px solid rgba(255,255,255,.15);background:#ffffff0d;color:#eafaff;transition:transform .12s ease,border-color .2s ease,box-shadow .2s ease}.wizard-card:hover{transform:translateY(-2px)}.wizard-card.selected{border-color:var(--gold);background:#ffd1661a;box-shadow:0 0 26px #ffd1664d}.wizard-card:disabled{opacity:.35;cursor:not-allowed;transform:none}.wc-glyph{height:56px;display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:800;color:var(--gold)}.wc-name{font-size:16px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.wc-desc{font-size:12.5px;line-height:1.35;opacity:.75}.wc-price{margin-top:auto;font-size:15px;font-weight:800;color:var(--gold)}.wc-price.free{color:var(--neon-soft)}.wizard-note{font-size:13px;opacity:.65}.wizard-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;flex:none}.wizard-nav{flex-wrap:nowrap}.wizard-nav .btn{padding:12px 14px;font-size:14px;letter-spacing:1px;white-space:nowrap;background:#0a1424}.wizard-nav .btn-launch{background:#2a2210}@media (max-width: 480px){.wizard{gap:12px}.wizard-grid{gap:10px}.wizard-card{padding:12px 10px 10px;gap:4px}.wc-glyph{height:46px;font-size:32px}.wc-name{font-size:14px}.wc-desc{font-size:12px}}.btn-launch{display:flex;flex-direction:column;align-items:center;border-color:var(--gold);background:#ffd16629;color:#fff6d8}.btn-launch small{font-size:11px;color:var(--gold);letter-spacing:1px}.btn-play{font-size:20px;padding:16px 44px}.menu-buttons{display:flex;flex-direction:column;gap:14px;width:min(300px,100%)}.menu-buttons .btn{width:100%;padding-left:12px;padding-right:12px}.ship-row{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 12px;flex:none;-webkit-overflow-scrolling:touch}.ship-tile{pointer-events:auto;cursor:pointer;flex:0 0 116px;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px 10px;border-radius:18px;border:1.5px solid rgba(255,255,255,.15);background:#ffffff0d;color:#eafaff}.ship-tile img{width:64px;height:64px;filter:drop-shadow(0 0 8px rgba(79,209,255,.45))}.ship-tile.locked img{filter:grayscale(.85) brightness(.7);opacity:.6}.ship-tile.locked .st-name{opacity:.6}.st-name{font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;line-height:1.2;min-height:2.4em;display:flex;align-items:center}.st-price{font-size:13px;font-weight:800;color:var(--gold)}.ship-tile:not(.locked) .st-price{color:var(--neon-soft);font-weight:600;font-size:12px}.ship-tile.viewing{border-color:var(--neon);background:#4fd1ff1a}.ship-tile.selected{border-color:var(--gold);background:#ffd1661a;box-shadow:0 0 22px #ffd1664d}.ship-detail{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;border-radius:18px;border:1px solid rgba(79,209,255,.25);background:#080e1cb3;text-align:center}.sd-name{font-size:20px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.sd-perk{margin-top:4px;font-size:14px;font-weight:700;color:var(--gold)}.sd-perk.plain{color:var(--neon-soft);font-weight:500;opacity:.8}.sd-blurb{font-size:14px;line-height:1.45;opacity:.85;max-width:380px}.sd-state{font-size:13px;letter-spacing:1px;color:var(--neon-soft)}.ship-detail .shop-buy{padding:10px 22px;font-size:15px}
