@font-face{font-family:Orbitron;font-style:normal;font-weight:400 900;font-display:swap;src:url(../fonts/orbitron.woff2) format("woff2")}:root{--bg: #04060f;--bg-2: #070d20;--cyan: #4ff0ff;--cyan-soft: #b7fbff;--cyan-dim: #2aa8bb;--magenta: #ff4fa3;--magenta-dim: #b32a6a;--amber: #ffc857;--violet: #8b6cff;--red: #ff5068;--ink: #eaf7ff;--muted: #8fa6c9;--muted-2: #5b7196;--panel: rgba(7, 15, 36, .9);--panel-2: rgba(10, 22, 48, .72);--line: rgba(79, 240, 255, .22);--line-soft: rgba(120, 170, 220, .14);--font-display: "Orbitron", "Bahnschrift", "Segoe UI", sans-serif;--font-ui: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);overflow:hidden;-webkit-tap-highlight-color:transparent}body{display:grid;place-items:center;user-select:none}#app{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(900px 620px at 18% 18%,rgba(38,96,150,.2),transparent 62%),radial-gradient(760px 540px at 84% 78%,rgba(136,40,110,.19),transparent 64%),linear-gradient(160deg,#03050c,#060b1a 48%,#04060f);overflow:hidden}.space-decor{position:absolute;inset:0;pointer-events:none;opacity:.7;background-image:radial-gradient(1px 1px at 12% 22%,rgba(180,235,255,.8),transparent 100%),radial-gradient(1px 1px at 78% 12%,rgba(180,235,255,.55),transparent 100%),radial-gradient(1.5px 1.5px at 32% 72%,rgba(255,160,220,.6),transparent 100%),radial-gradient(1px 1px at 88% 64%,rgba(180,235,255,.5),transparent 100%),radial-gradient(1px 1px at 62% 38%,rgba(180,235,255,.4),transparent 100%),linear-gradient(rgba(79,240,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(79,240,255,.035) 1px,transparent 1px);background-size:auto,auto,auto,auto,auto,64px 64px,64px 64px;mask-image:radial-gradient(ellipse at center,transparent 24%,#000 85%)}.stage{position:relative;overflow:hidden;container-type:size;background:#050816;box-shadow:0 0 0 1px #4ff0ff29,0 0 60px #14508c47,0 30px 90px #000000b8;isolation:isolate}.stage:before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(2,8,18,.22) 0px,rgba(2,8,18,.22) 1px,transparent 1px,transparent 3px);opacity:.45;mix-blend-mode:multiply}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.screen-fx{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(120% 90% at 50% 48%,transparent 52%,rgba(1,4,12,.6) 100%),linear-gradient(180deg,rgba(4,8,20,.35),transparent 12%,transparent 86%,rgba(4,8,20,.5))}.ui{--px: calc(100cqw / 540);position:absolute;inset:0;z-index:10;font-family:var(--font-ui);color:var(--ink);pointer-events:none}.ui [hidden]{display:none!important}kbd{display:inline-block;font-family:var(--font-display);font-size:calc(8 * var(--px));font-weight:700;letter-spacing:.08em;padding:calc(2.5 * var(--px)) calc(5 * var(--px));border:1px solid rgba(150,200,235,.3);border-radius:calc(3 * var(--px));background:#0a162cd6;color:var(--cyan-soft);line-height:1;box-shadow:0 1px #ffffff0f inset}.micro-label{display:block;font-family:var(--font-display);font-size:calc(8.5 * var(--px));font-weight:500;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}.ico{width:calc(16 * var(--px));height:calc(16 * var(--px));fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hud{position:absolute;inset:0;pointer-events:none}.hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:calc(14 * var(--px)) calc(14 * var(--px)) calc(26 * var(--px));background:linear-gradient(180deg,rgba(2,6,16,.82),rgba(2,6,16,.28) 62%,transparent)}.hud-score{display:flex;flex-direction:column;gap:calc(2 * var(--px))}.hud-score strong{font-family:var(--font-display);font-size:calc(25 * var(--px));font-weight:700;line-height:1;letter-spacing:.06em;color:#f2fdff;text-shadow:0 0 14px rgba(79,240,255,.55);font-variant-numeric:tabular-nums}.wave-chip{display:inline-flex;align-items:center;gap:calc(5 * var(--px));margin-top:calc(3 * var(--px));font-family:var(--font-display);font-size:calc(8 * var(--px));letter-spacing:.16em;color:var(--cyan);opacity:.85}.wave-chip i{width:calc(4 * var(--px));height:calc(4 * var(--px));border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.hud-actions{display:flex;align-items:center;gap:calc(6 * var(--px));pointer-events:auto}.coin-chip{display:flex;align-items:center;gap:calc(5 * var(--px));height:calc(30 * var(--px));padding:0 calc(9 * var(--px)) 0 calc(7 * var(--px));border:1px solid rgba(255,200,87,.34);border-radius:calc(4 * var(--px));background:linear-gradient(180deg,#281e0a99,#0a0c1699);box-shadow:0 0 12px #ffc85714 inset}.coin-chip .ico{width:calc(14 * var(--px));height:calc(14 * var(--px));stroke:var(--amber);stroke-width:1.4;filter:drop-shadow(0 0 4px rgba(255,200,87,.7))}.coin-chip b{font-family:var(--font-display);font-size:calc(13 * var(--px));font-weight:700;color:var(--amber);font-variant-numeric:tabular-nums}.coin-chip.flash{animation:coinFlash .4s ease-out}@keyframes coinFlash{0%{transform:scale(1)}35%{transform:scale(1.12);box-shadow:0 0 22px #ffc8578c}to{transform:scale(1)}}.icon-btn{width:calc(30 * var(--px));height:calc(30 * var(--px));min-width:30px;min-height:30px;display:grid;place-items:center;border:1px solid rgba(120,200,230,.22);border-radius:calc(4 * var(--px));background:#0812269e;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.icon-btn:hover,.icon-btn:focus-visible{color:var(--cyan);border-color:#4ff0ff8c;background:#0f263ecc;outline:none}.auto-btn{font-family:var(--font-display)}.auto-glyph{font-size:calc(10 * var(--px));font-weight:700;letter-spacing:.04em;opacity:.6}.auto-btn.is-on{color:var(--cyan);border-color:#4ff0ff80;box-shadow:0 0 12px #4ff0ff2e inset}.auto-btn.is-on .auto-glyph{opacity:1;text-shadow:0 0 8px var(--cyan)}.boss-bar{position:absolute;top:calc(78 * var(--px));left:50%;width:calc(400 * var(--px));max-width:82%;transform:translate(-50%);padding:calc(7 * var(--px)) calc(10 * var(--px)) calc(9 * var(--px));border:1px solid rgba(255,79,163,.32);border-radius:calc(3 * var(--px));background:linear-gradient(180deg,#1a0612d1,#080814b8);box-shadow:0 0 22px #ff4fa321}.boss-meta{display:flex;align-items:baseline;justify-content:space-between;gap:calc(6 * var(--px));margin-bottom:calc(5 * var(--px))}.boss-tag{font-family:var(--font-display);font-size:calc(7.5 * var(--px));letter-spacing:.2em;color:var(--magenta);text-shadow:0 0 10px rgba(255,79,163,.7)}.boss-name{font-size:calc(10 * var(--px));color:#ffd7e8;letter-spacing:.06em;flex:1;text-align:center}.boss-hp-text{font-family:var(--font-display);font-size:calc(8 * var(--px));color:var(--magenta);font-variant-numeric:tabular-nums}.boss-track{height:calc(6 * var(--px));background:#ff4fa31f;border-radius:1px;overflow:hidden}.boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#8b1e4a,var(--magenta) 60%,#ff9cc6);box-shadow:0 0 12px #ff4fa3b3;transition:width .18s linear}.hud-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:calc(10 * var(--px));padding:calc(26 * var(--px)) calc(14 * var(--px)) calc(14 * var(--px));background:linear-gradient(0deg,rgba(2,6,16,.84),rgba(2,6,16,.3) 64%,transparent)}.vitals{flex:1;max-width:calc(238 * var(--px));display:flex;flex-direction:column;gap:calc(5 * var(--px))}.vital-row{display:flex;align-items:center;gap:calc(6 * var(--px))}.vital-label{width:calc(30 * var(--px));font-family:var(--font-display);font-size:calc(7.5 * var(--px));letter-spacing:.12em;color:var(--muted)}.shield-label{color:#a99bff}.bar{position:relative;flex:1;height:calc(8 * var(--px));background:#78aadc1f;border:1px solid rgba(120,170,220,.16);overflow:hidden}.bar-fill{height:100%;width:100%;transition:width .14s linear}.hp-bar .bar-fill{background:linear-gradient(90deg,#1c9db6,var(--cyan) 72%,#c9feff);box-shadow:0 0 10px #4ff0ff8c}.hp-bar.low .bar-fill{background:linear-gradient(90deg,#b32038,var(--red) 75%,#ffb0b9);animation:hpPulse .8s ease-in-out infinite}@keyframes hpPulse{50%{opacity:.6}}.bar-ticks{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9%,rgba(2,8,18,.55) 9% 10%);pointer-events:none}.shield-bar .bar-fill{background:linear-gradient(90deg,#5b46bd,var(--violet) 70%,#d5c9ff);box-shadow:0 0 10px #8b6cff99}.vital-value{width:calc(26 * var(--px));text-align:right;font-family:var(--font-display);font-size:calc(8.5 * var(--px));color:var(--cyan-soft);font-variant-numeric:tabular-nums}.bomb-row{display:flex;align-items:center;gap:calc(6 * var(--px));margin-top:calc(1 * var(--px))}.bomb-pips{display:flex;gap:calc(4 * var(--px))}.bomb-pips .pip{width:calc(14 * var(--px));height:calc(5 * var(--px));background:#ff78a029;border:1px solid rgba(255,110,150,.25);transform:skew(-24deg);transition:background .2s,box-shadow .2s}.bomb-pips .pip.on{background:linear-gradient(90deg,var(--magenta),#ffb4d2);border-color:#ffb4d7cc;box-shadow:0 0 10px #ff4fa399}.bomb-hint{opacity:.55}.bomb-hint kbd{font-size:calc(7 * var(--px))}.hud-right{display:flex;align-items:flex-end;gap:calc(8 * var(--px));pointer-events:auto}.bomb-btn{position:relative;width:calc(48 * var(--px));height:calc(48 * var(--px));border-radius:50%;border:1px solid rgba(255,79,163,.42);background:radial-gradient(circle at 50% 38%,#50102ae6,#0c0a18eb 72%);color:#ffa8c9;cursor:pointer;display:grid;place-items:center;box-shadow:0 0 18px #ff4fa329,0 0 14px #ff4fa31f inset;transition:transform .12s,box-shadow .2s,opacity .2s}.bomb-btn svg{width:calc(28 * var(--px));height:calc(28 * var(--px));fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(255,79,163,.7))}.bomb-btn b{position:absolute;right:calc(-2 * var(--px));bottom:calc(-1 * var(--px));min-width:calc(17 * var(--px));height:calc(17 * var(--px));display:grid;place-items:center;border-radius:50%;background:var(--magenta);color:#1a0410;font-family:var(--font-display);font-size:calc(9 * var(--px));border:1px solid #ffd0e3}.bomb-btn:active{transform:scale(.93)}.bomb-btn.empty{opacity:.38;cursor:not-allowed}.upgrade-btn{height:calc(38 * var(--px));display:flex;align-items:center;gap:calc(5 * var(--px));padding:0 calc(10 * var(--px));border:1px solid rgba(79,240,255,.32);background:linear-gradient(180deg,#102e3ed9,#081222e6);color:var(--cyan-soft);font-size:calc(11 * var(--px));letter-spacing:.08em;cursor:pointer;clip-path:polygon(6% 0,100% 0,100% 72%,94% 100%,0 100%,0 28%);transition:background .15s,color .15s}.upgrade-btn .ico{width:calc(14 * var(--px));height:calc(14 * var(--px));stroke:var(--cyan)}.upgrade-btn kbd{font-size:calc(7 * var(--px));padding:calc(2 * var(--px)) calc(4 * var(--px))}.upgrade-btn:hover{background:linear-gradient(180deg,#1a485cf2,#0a1a2ef2);color:#fff}.upgrade-btn.ready{border-color:#ffc85799;color:var(--amber);animation:readyPulse 1.6s ease-in-out infinite}.upgrade-btn.ready .ico{stroke:var(--amber)}.upgrade-btn.ready:after{content:"";position:absolute;top:calc(4 * var(--px));right:calc(4 * var(--px));width:calc(5 * var(--px));height:calc(5 * var(--px));border-radius:50%;background:var(--amber);box-shadow:0 0 8px var(--amber);animation:blink 1.4s ease-in-out infinite}@keyframes readyPulse{50%{box-shadow:0 0 16px #ffc85740}}.toast{position:absolute;top:23%;left:50%;transform:translate(-50%);padding:calc(7 * var(--px)) calc(14 * var(--px));font-size:calc(11 * var(--px));letter-spacing:.1em;color:var(--cyan-soft);background:#040c1ad1;border:1px solid var(--line);border-radius:calc(3 * var(--px));backdrop-filter:blur(6px);animation:toastIn .24s ease-out;white-space:nowrap;z-index:30}.toast.warn{color:#ffd1e2;border-color:#ff4fa380;background:#1c0612d9}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.wave-banner{position:absolute;top:38%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:calc(5 * var(--px));pointer-events:none;animation:bannerIn 1.2s ease-out both;z-index:12}.wave-banner:before,.wave-banner:after{content:"";position:absolute;top:50%;width:calc(56 * var(--px));height:1px;background:linear-gradient(90deg,transparent,rgba(79,240,255,.7))}.wave-banner:before{left:calc(50% - 155 * var(--px))}.wave-banner:after{right:calc(50% - 155 * var(--px));transform:scaleX(-1)}.wave-banner span{font-family:var(--font-display);font-size:calc(8 * var(--px));letter-spacing:.45em;color:var(--cyan);text-shadow:0 0 12px rgba(79,240,255,.7)}.wave-banner strong{font-family:var(--font-display);font-size:calc(31 * var(--px));font-weight:900;letter-spacing:.16em;color:#f0feff;text-shadow:0 0 24px rgba(79,240,255,.65)}.wave-banner.boss span{color:var(--magenta);text-shadow:0 0 12px rgba(255,79,163,.8)}.wave-banner.boss strong{color:#ffe4ef;text-shadow:0 0 26px rgba(255,79,163,.8)}@keyframes bannerIn{0%{opacity:0;transform:scale(1.14);letter-spacing:.4em}18%{opacity:1}75%{opacity:1}to{opacity:0;transform:scale(.98)}}.touch-hint{position:absolute;bottom:calc(92 * var(--px));left:50%;transform:translate(-50%);font-size:calc(9.5 * var(--px));letter-spacing:.14em;color:#b4d2eb9e;text-shadow:0 1px 6px rgba(0,0,0,.8);transition:opacity .6s;pointer-events:none}.touch-hint.hidden{opacity:0}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(16 * var(--px));overflow:hidden;pointer-events:auto}.screen-start{background:radial-gradient(80% 55% at 50% 30%,rgba(22,70,110,.28),transparent 70%),linear-gradient(180deg,#04081247,#0408128c 62%,#03060edb)}.start-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,6,14,.55),transparent 22%,transparent 52%,rgba(3,6,14,.92) 88%);pointer-events:none}.menu-content{position:relative;z-index:2;width:100%;max-width:calc(430 * var(--px));display:flex;flex-direction:column;align-items:center;text-align:center;animation:menuIn .7s ease-out both}@keyframes menuIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.eyebrow{display:flex;align-items:center;gap:calc(8 * var(--px));font-family:var(--font-display);font-size:calc(7.5 * var(--px));letter-spacing:.28em;color:#a0dcf5b3;margin-bottom:calc(16 * var(--px))}.eyebrow i{width:calc(22 * var(--px));height:1px;background:linear-gradient(90deg,transparent,rgba(79,240,255,.65))}.eyebrow i:last-child{transform:scaleX(-1)}.emblem{position:relative;width:calc(88 * var(--px));height:calc(88 * var(--px));display:grid;place-items:center;margin-bottom:calc(10 * var(--px))}.emblem-ring{position:absolute;border-radius:50%;border:1px solid rgba(79,240,255,.34)}.ring-a{inset:0;border-style:dashed;animation:spin 18s linear infinite}.ring-b{inset:calc(8 * var(--px));border-color:#8b6cff66;animation:spin 12s linear infinite reverse}.ring-b:before{content:"";position:absolute;top:-2px;left:50%;width:calc(4 * var(--px));height:calc(4 * var(--px));background:var(--violet);border-radius:50%;box-shadow:0 0 8px var(--violet)}@keyframes spin{to{transform:rotate(360deg)}}.emblem-core{width:calc(50 * var(--px));height:calc(50 * var(--px));display:grid;place-items:center;filter:drop-shadow(0 0 14px rgba(79,240,255,.55))}.emblem-core svg{width:100%;height:100%;fill:none;stroke:var(--cyan);stroke-width:1.5;stroke-linejoin:round}.emblem-core svg path{fill:#4ff0ff1f}.emblem-tick{position:absolute;width:calc(6 * var(--px));height:1px;background:#4ff0ff99}.t1{top:8%;left:20%}.t2{top:8%;right:20%}.t3{bottom:8%;left:20%}.t4{bottom:8%;right:20%}.logo{margin:0;display:flex;align-items:baseline;gap:calc(10 * var(--px));font-family:var(--font-display);font-weight:900;font-size:calc(46 * var(--px));line-height:.95;letter-spacing:.06em;color:#f4feff;text-shadow:0 0 18px rgba(79,240,255,.4),0 0 60px rgba(40,120,180,.35)}.logo-void{color:#eafcff}.logo-lance{background:linear-gradient(180deg,#d8ffff 5%,var(--cyan) 48%,#1b8fa8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 18px rgba(79,240,255,.32))}.logo-cn{margin:calc(10 * var(--px)) 0 0;font-size:calc(14 * var(--px));letter-spacing:.6em;color:#bef5ffd1;text-indent:.6em}.tagline{margin:calc(8 * var(--px)) 0 0;font-size:calc(10.5 * var(--px));letter-spacing:.16em;color:var(--muted)}.best-row{display:flex;align-items:center;gap:calc(7 * var(--px));margin:calc(17 * var(--px)) 0 calc(13 * var(--px));font-family:var(--font-display);font-size:calc(8.5 * var(--px));letter-spacing:.15em;color:var(--muted)}.best-row b{font-size:calc(15 * var(--px));color:var(--cyan-soft);text-shadow:0 0 12px rgba(79,240,255,.45);font-variant-numeric:tabular-nums}.best-sep{opacity:.35}#bestWave{color:var(--muted-2)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:calc(9 * var(--px));min-height:calc(40 * var(--px));padding:0 calc(18 * var(--px));border:1px solid rgba(120,200,235,.24);background:linear-gradient(180deg,#122842d1,#081020e0);color:var(--ink);font-family:var(--font-ui);font-size:calc(12 * var(--px));letter-spacing:.1em;cursor:pointer;clip-path:polygon(4% 0,100% 0,100% 70%,96% 100%,0 100%,0 30%);transition:transform .15s,background .15s,border-color .15s,box-shadow .2s}.btn:hover{background:linear-gradient(180deg,#1a3a58eb,#0a182cf2);border-color:#4ff0ff80}.btn:active{transform:translateY(1px) scale(.995)}.btn:focus-visible{outline:1px solid var(--cyan);outline-offset:2px}.btn kbd{margin-left:calc(4 * var(--px))}.btn-primary{border-color:#4ff0ff8c;background:linear-gradient(180deg,#58f6ff,#22c4da 46%,#0b8ba3);color:#031016;font-weight:700;box-shadow:0 0 24px #4ff0ff40,0 0 16px #4ff0ff38 inset,0 -6px 20px #04283466 inset}.btn-primary kbd{background:#03141c29;border-color:#03141c52;color:#04222a}.btn-primary:hover{background:linear-gradient(180deg,#8bfaff,#38dff2 46%,#0f9fb8);border-color:#c8ffffcc;box-shadow:0 0 34px #4ff0ff61}.btn-start{width:calc(220 * var(--px));min-height:calc(48 * var(--px));font-size:calc(14 * var(--px));margin-top:calc(2 * var(--px))}.btn-glow{position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.55) 42%,transparent 58%);transform:translate(-120%);animation:sheen 3.6s ease-in-out infinite}@keyframes sheen{0%,55%{transform:translate(-120%)}80%,to{transform:translate(120%)}}.btn-text,.btn-start kbd{position:relative;z-index:1}.control-grid{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:calc(6 * var(--px));margin-top:calc(20 * var(--px));padding-top:calc(14 * var(--px));border-top:1px solid rgba(120,180,220,.12)}.control-item{display:flex;flex-direction:column;align-items:center;gap:calc(6 * var(--px));font-size:calc(8.5 * var(--px));letter-spacing:.08em;color:var(--muted)}.key-cluster{display:flex;gap:calc(2 * var(--px));align-items:center;height:calc(20 * var(--px))}.key-cluster kbd{font-size:calc(6.5 * var(--px));padding:calc(2.5 * var(--px)) calc(3.5 * var(--px));border-color:#78aad238;background:#0a162ab3;color:#c8e6f5cc}.key-cluster kbd.wide{padding-left:calc(6 * var(--px));padding-right:calc(6 * var(--px))}.touch-copy{margin:calc(12 * var(--px)) 0 0;font-size:calc(8.5 * var(--px));letter-spacing:.06em;color:#82a0c3b3}.hero-ship{position:relative;width:calc(148 * var(--px));height:calc(132 * var(--px));display:grid;place-items:center;margin-top:calc(10 * var(--px))}.hero-halo{position:absolute;inset:6%;border-radius:50%;border:1px dashed rgba(79,240,255,.24);background:radial-gradient(circle,rgba(79,240,255,.13),rgba(79,240,255,.03) 52%,transparent 72%);box-shadow:0 0 34px #4ff0ff14 inset;animation:spin 30s linear infinite}.hero-halo:before,.hero-halo:after{content:"";position:absolute;left:50%;top:50%;width:112%;height:1px;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(79,240,255,.28),transparent)}.hero-halo:after{transform:translate(-50%,-50%) rotate(90deg)}.hero-ship canvas{position:relative;z-index:1;width:96%;height:auto;filter:drop-shadow(0 0 16px rgba(79,240,255,.4));animation:heroFloat 4.6s ease-in-out infinite}.hero-tag{position:absolute;z-index:2;bottom:calc(-2 * var(--px));font-family:var(--font-display);font-size:calc(6 * var(--px));letter-spacing:.26em;color:#96d7f08c;white-space:nowrap}.hero-caption{display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--px));margin:calc(9 * var(--px)) 0 0}.hero-caption b{font-size:calc(10 * var(--px));font-weight:500;letter-spacing:.16em;color:#d9f8ff}.hero-caption span{font-family:var(--font-display);font-size:calc(6 * var(--px));letter-spacing:.24em;color:#8cc8e680}@keyframes heroFloat{50%{transform:translateY(-4px)}}.start-footer{width:100%;display:flex;align-items:center;justify-content:space-between;gap:calc(8 * var(--px));margin-top:calc(16 * var(--px));padding-top:calc(12 * var(--px));border-top:1px solid rgba(120,180,220,.1)}.audio-toggle{display:inline-flex;min-height:28px;align-items:center;gap:calc(5 * var(--px));background:none;border:0;color:var(--muted);font-family:var(--font-display);font-size:calc(7.5 * var(--px));letter-spacing:.14em;cursor:pointer;padding:calc(4 * var(--px))}.audio-toggle:hover{color:var(--cyan)}.audio-toggle .ico{width:calc(13 * var(--px));height:calc(13 * var(--px));stroke:currentColor}.audio-toggle .ico-off,.audio-toggle.muted .ico-on{display:none}.audio-toggle.muted .ico-off{display:block}.audio-toggle.muted{color:var(--muted-2)}.build-tag{font-family:var(--font-display);font-size:calc(6.5 * var(--px));letter-spacing:.16em;color:#6e8caf8c}.panel{position:relative;width:100%;background:linear-gradient(180deg,#0c1a34ed,#050b1af5),radial-gradient(80% 50% at 50% 0%,rgba(79,240,255,.09),transparent 70%);border:1px solid rgba(79,240,255,.22);box-shadow:0 0 0 1px #040a16e6,0 0 40px #14508229,0 24px 70px #0000008c;clip-path:polygon(0 calc(14 * var(--px)),calc(14 * var(--px)) 0,calc(100% - 40 * var(--px)) 0,100% calc(24 * var(--px)),100% calc(100% - 12 * var(--px)),calc(100% - 12 * var(--px)) 100%,calc(30 * var(--px)) 100%,0 calc(100% - 16 * var(--px)));backdrop-filter:blur(12px)}.panel:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(79,240,255,.035) 1px,transparent 1px);background-size:100% calc(4 * var(--px));opacity:.55}.panel h2{margin:calc(2 * var(--px)) 0 0;font-family:var(--font-display);font-size:calc(25 * var(--px));font-weight:700;letter-spacing:.08em;color:#effdff;text-shadow:0 0 18px rgba(79,240,255,.3)}.panel-sub{margin:calc(4 * var(--px)) 0 0;font-size:calc(9 * var(--px));letter-spacing:.08em;color:var(--muted)}.screen-upgrade{background:radial-gradient(90% 70% at 50% 45%,#0610229e,#02050ce6);backdrop-filter:blur(3px)}.upgrade-panel{height:calc(100% - 12 * var(--px));max-height:calc(930 * var(--px));display:flex;flex-direction:column;padding:calc(18 * var(--px)) calc(16 * var(--px)) calc(14 * var(--px))}.upgrade-head{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(12 * var(--px));padding-bottom:calc(12 * var(--px));border-bottom:1px solid rgba(79,240,255,.16)}.upgrade-head h2{font-size:calc(23 * var(--px))}.wallet{display:flex;align-items:center;gap:calc(7 * var(--px));padding:calc(6 * var(--px)) calc(10 * var(--px));border:1px solid rgba(255,200,87,.3);background:#281c0859;clip-path:polygon(0 0,100% 0,100% 70%,88% 100%,0 100%)}.wallet-coin{width:calc(23 * var(--px));height:calc(23 * var(--px));display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(255,200,87,.22),transparent 70%)}.wallet-coin svg{width:calc(17 * var(--px));height:calc(17 * var(--px));fill:none;stroke:var(--amber);stroke-width:1.5;filter:drop-shadow(0 0 5px rgba(255,200,87,.6))}.wallet b{display:block;font-family:var(--font-display);font-size:calc(17 * var(--px));line-height:1.1;color:var(--amber);font-variant-numeric:tabular-nums}.wallet small{font-size:calc(7 * var(--px));letter-spacing:.12em;color:#ffc85799}.upgrade-legend{display:none}.upgrade-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:calc(8 * var(--px)) calc(2 * var(--px)) calc(8 * var(--px)) 0;display:grid;grid-auto-rows:minmax(calc(46 * var(--px)),1fr);gap:calc(6 * var(--px));scrollbar-width:thin;scrollbar-color:rgba(79,240,255,.32) transparent}.upgrade-list::-webkit-scrollbar{width:calc(4 * var(--px))}.upgrade-list::-webkit-scrollbar-thumb{background:#4ff0ff4d;border-radius:4px}.upgrade-row{--accent: var(--cyan);position:relative;display:grid;grid-template-columns:calc(34 * var(--px)) minmax(0,1fr) auto;align-items:center;gap:calc(9 * var(--px));padding:calc(10 * var(--px)) calc(9 * var(--px));border:1px solid rgba(120,180,220,.14);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 40%),#08112494;transition:border-color .15s,background .15s}.upgrade-row:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 11%,transparent),transparent 46%),#0a162cb3}.upgrade-row:before{content:"";position:absolute;left:0;top:calc(8 * var(--px));bottom:calc(8 * var(--px));width:2px;background:var(--accent);box-shadow:0 0 10px var(--accent);opacity:.85}.up-icon{width:calc(34 * var(--px));height:calc(34 * var(--px));display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--accent) 38%,transparent);background:color-mix(in srgb,var(--accent) 9%,rgba(4,10,22,.8));clip-path:polygon(18% 0,100% 0,100% 82%,82% 100%,0 100%,0 18%)}.up-icon svg{width:calc(21 * var(--px));height:calc(21 * var(--px));fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 60%,transparent))}.up-body{min-width:0}.up-title-row{display:flex;align-items:center;gap:calc(6 * var(--px));flex-wrap:wrap}.up-name{font-size:calc(11.5 * var(--px));font-weight:600;letter-spacing:.04em;color:#e8f8ff;white-space:nowrap}.up-name-en{font-family:var(--font-display);font-size:calc(6.5 * var(--px));letter-spacing:.16em;color:color-mix(in srgb,var(--accent) 80%,#ffffff 10%);opacity:.7}.up-pips{display:flex;gap:calc(2 * var(--px));margin-left:auto}.up-pips i{width:calc(8 * var(--px));height:calc(3 * var(--px));background:#8cafd22e;transform:skew(-20deg)}.up-pips i.on{background:var(--accent);box-shadow:0 0 5px color-mix(in srgb,var(--accent) 70%,transparent)}.up-pips i.next{background:#ffffff80;animation:nextPip 1.1s ease-in-out infinite}@keyframes nextPip{50%{opacity:.25}}.up-stats{display:flex;align-items:baseline;gap:calc(5 * var(--px));margin-top:calc(3 * var(--px));font-size:calc(8.5 * var(--px));color:var(--muted);line-height:1.35;flex-wrap:wrap}.up-lv{font-family:var(--font-display);font-size:calc(7 * var(--px));letter-spacing:.08em;color:color-mix(in srgb,var(--accent) 70%,#8fa6c9 30%);padding-right:calc(5 * var(--px));border-right:1px solid rgba(140,175,210,.2)}.up-arrow{color:color-mix(in srgb,var(--accent) 80%,#ffffff 20%);opacity:.7}.up-next{color:color-mix(in srgb,var(--accent) 82%,#ffffff 18%);font-weight:600}.up-max{display:inline-flex;align-items:center;gap:calc(4 * var(--px));font-family:var(--font-display);font-size:calc(8 * var(--px));letter-spacing:.18em;color:var(--accent)}.up-max:before{content:"";width:calc(5 * var(--px));height:calc(5 * var(--px));background:var(--accent);transform:rotate(45deg)}.up-buy{display:flex;flex-direction:column;align-items:stretch;gap:calc(3 * var(--px));min-width:calc(78 * var(--px))}.buy-btn{display:flex;align-items:center;justify-content:center;gap:calc(4 * var(--px));height:calc(29 * var(--px));min-height:30px;padding:0 calc(8 * var(--px));border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 24%,rgba(8,18,36,.9)),color-mix(in srgb,var(--accent) 8%,rgba(6,12,26,.9)));color:#f2feff;font-family:var(--font-display);font-size:calc(10 * var(--px));font-weight:700;letter-spacing:.04em;cursor:pointer;clip-path:polygon(8% 0,100% 0,100% 72%,92% 100%,0 100%,0 28%);transition:transform .12s,box-shadow .15s,opacity .15s;font-variant-numeric:tabular-nums}.buy-btn svg{width:calc(11 * var(--px));height:calc(11 * var(--px));fill:none;stroke:currentColor;stroke-width:1.6}.buy-btn:hover:not(:disabled){box-shadow:0 0 16px color-mix(in srgb,var(--accent) 35%,transparent);transform:translateY(-1px)}.buy-btn.insufficient{border-color:#8ca5c333;background:#0e1626b3;color:#bed2e680;box-shadow:none}.buy-btn.insufficient:hover{transform:none;box-shadow:none;color:#bed2e69e}.buy-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.buy-btn:disabled{border-color:#82a0be29;background:#0e1626b3;color:#a0b9d273;cursor:not-allowed;clip-path:none}.buy-btn.maxed{border-color:color-mix(in srgb,var(--accent) 30%,transparent);background:color-mix(in srgb,var(--accent) 8%,rgba(8,16,30,.6));color:color-mix(in srgb,var(--accent) 80%,#fff 20%);cursor:default;clip-path:none;font-size:calc(8.5 * var(--px));letter-spacing:.16em}.buy-hint{font-size:calc(7 * var(--px));text-align:center;letter-spacing:.08em;color:#96b4d280}.buy-hint.short{color:#ff7896bf}.up-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(5 * var(--px));padding:calc(9 * var(--px)) 0 calc(8 * var(--px));border-top:1px solid rgba(120,180,220,.1)}.up-summary>div{display:flex;flex-direction:column;gap:calc(2 * var(--px));padding:calc(5 * var(--px)) calc(7 * var(--px));border-left:1px solid rgba(79,240,255,.16);background:linear-gradient(90deg,rgba(79,240,255,.05),transparent 80%)}.up-summary span{font-size:calc(7 * var(--px));letter-spacing:.08em;color:var(--muted-2)}.up-summary b{font-family:var(--font-display);font-size:calc(12 * var(--px));font-weight:700;color:var(--cyan-soft);font-variant-numeric:tabular-nums}.upgrade-foot{display:flex;align-items:center;justify-content:space-between;gap:calc(10 * var(--px));padding-top:calc(11 * var(--px));border-top:1px solid rgba(79,240,255,.14)}.upgrade-note{display:flex;align-items:center;gap:calc(6 * var(--px));font-size:calc(8 * var(--px));color:var(--muted-2);letter-spacing:.06em}.upgrade-note .dot{width:calc(5 * var(--px));height:calc(5 * var(--px));border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:blink 1.8s ease-in-out infinite}@keyframes blink{50%{opacity:.25}}.btn-compact{min-height:calc(38 * var(--px));font-size:calc(11 * var(--px));flex-shrink:0}.screen-pause{background:radial-gradient(80% 60% at 50% 45%,#0610228c,#02050cdb);backdrop-filter:blur(4px)}.pause-panel{width:min(100%,calc(360 * var(--px)));padding:calc(24 * var(--px)) calc(22 * var(--px)) calc(18 * var(--px));display:flex;flex-direction:column;align-items:stretch}.pause-panel h2{font-size:calc(28 * var(--px));margin-top:calc(4 * var(--px))}.pause-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(7 * var(--px));margin:calc(18 * var(--px)) 0}.pause-stats>div{display:flex;flex-direction:column;gap:calc(3 * var(--px));padding:calc(8 * var(--px)) calc(7 * var(--px));border:1px solid rgba(120,180,220,.12);background:#08122280}.pause-stats span{font-size:calc(8 * var(--px));letter-spacing:.1em;color:var(--muted)}.pause-stats b{font-family:var(--font-display);font-size:calc(16 * var(--px));color:var(--cyan-soft);font-variant-numeric:tabular-nums}.pause-actions{display:flex;flex-direction:column;gap:calc(7 * var(--px))}.pause-actions .btn{justify-content:space-between;width:100%}.btn-ghost{background:transparent;border-color:#78aad224;color:var(--muted);min-height:calc(36 * var(--px));font-size:calc(10.5 * var(--px))}.audio-toggle-line{align-self:center;margin-top:calc(12 * var(--px))}.screen-over{background:radial-gradient(80% 60% at 50% 42%,#320c1e8c,#03050ceb 72%),#03060ee6;backdrop-filter:blur(3px)}.over-panel{width:min(100%,calc(420 * var(--px)));padding:calc(20 * var(--px));display:flex;flex-direction:column;gap:calc(14 * var(--px))}.over-head{display:flex;align-items:center;gap:calc(13 * var(--px))}.rank-badge{flex-shrink:0;width:calc(62 * var(--px));height:calc(62 * var(--px));display:grid;place-items:center;font-family:var(--font-display);font-size:calc(32 * var(--px));font-weight:900;color:#fff3c9;background:radial-gradient(circle at 50% 42%,rgba(255,200,87,.42),transparent 68%),#241806d1;border:1.5px solid rgba(255,200,87,.8);clip-path:polygon(50% 0,92% 22%,100% 66%,50% 100%,0 66%,8% 22%);text-shadow:0 0 20px rgba(255,200,87,.9);box-shadow:0 0 26px #ffc85747;animation:rankPop .5s cubic-bezier(.2,1.4,.4,1) both}.rank-badge.rank-s{color:#d8ffff;border-color:#4ff0ffb3;background:radial-gradient(circle at 50% 42%,rgba(79,240,255,.34),transparent 68%),#061e2ab3;text-shadow:0 0 22px rgba(79,240,255,.8)}.rank-badge.rank-a{color:#ffc857}.rank-badge.rank-b{color:#b7a6ff;border-color:#8b6cff80;text-shadow:0 0 18px rgba(139,108,255,.7)}.rank-badge.rank-c{color:#e6f0fc;border-color:#c8dcf080;background:radial-gradient(circle at 50% 42%,rgba(150,180,215,.22),transparent 68%),#162032e6;text-shadow:0 0 14px rgba(190,215,245,.6)}@keyframes rankPop{0%{transform:scale(.7) rotate(-8deg)}to{transform:none}}.over-head h2{font-size:calc(22 * var(--px))}.final-score{position:relative;display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--px));padding:calc(12 * var(--px)) 0;border-top:1px solid rgba(255,120,160,.14);border-bottom:1px solid rgba(255,120,160,.14);background:linear-gradient(90deg,transparent,rgba(255,79,163,.05),transparent)}.final-score>span:first-child{font-family:var(--font-display);font-size:calc(7.5 * var(--px));letter-spacing:.3em;color:var(--muted)}.final-score strong{font-family:var(--font-display);font-size:calc(37 * var(--px));font-weight:900;letter-spacing:.06em;color:#fff;text-shadow:0 0 22px rgba(255,79,163,.45);font-variant-numeric:tabular-nums}.new-best{position:absolute;right:0;top:calc(10 * var(--px));font-family:var(--font-display);font-size:calc(6.5 * var(--px));letter-spacing:.18em;color:var(--amber);padding:calc(3 * var(--px)) calc(5 * var(--px));border:1px solid rgba(255,200,87,.4);animation:blink 1.6s ease-in-out infinite}.over-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(5 * var(--px))}.over-stats>div{display:flex;flex-direction:column;align-items:center;gap:calc(3 * var(--px));padding:calc(7 * var(--px)) calc(3 * var(--px));border:1px solid rgba(120,180,220,.1);background:#08102080}.over-stats span{font-size:calc(7.5 * var(--px));letter-spacing:.06em;color:var(--muted)}.over-stats b{font-family:var(--font-display);font-size:calc(13 * var(--px));color:var(--cyan-soft);font-variant-numeric:tabular-nums}.over-loadout{display:flex;flex-direction:column;gap:calc(6 * var(--px))}.loadout-chips{display:flex;flex-wrap:wrap;gap:calc(4 * var(--px))}.loadout-chips span{font-size:calc(8 * var(--px));letter-spacing:.04em;padding:calc(3 * var(--px)) calc(6 * var(--px));border:1px solid rgba(79,240,255,.16);background:#4ff0ff0d;color:var(--muted)}.loadout-chips span b{color:var(--cyan-soft);font-family:var(--font-display);font-weight:500;margin-left:calc(3 * var(--px))}.over-actions{display:grid;grid-template-columns:1.2fr 1fr;gap:calc(7 * var(--px))}.over-actions .btn{width:100%}.rotate-hint{display:none}@media(max-width:600px){.icon-btn{width:40px;height:40px}.hud-top{padding:10px 10px 24px}.coin-chip{height:32px;padding:0 8px}.coin-chip b{font-size:13px}.auto-glyph{font-size:12px}.hud-score strong{font-size:24px}.micro-label,.wave-chip{font-size:8px}.vital-label{width:34px;font-size:8px}.vital-value{width:28px;font-size:9px}.bar{height:7px}.hud-bottom{padding:22px 10px 10px}.vitals{max-width:48%}.bomb-btn{width:56px;height:56px}.bomb-btn b{min-width:20px;height:20px;font-size:10px}.upgrade-btn{height:42px;padding:0 10px;font-size:12px}.upgrade-btn kbd{font-size:8px}.touch-hint{bottom:108px;font-size:10px}.toast{font-size:11px;top:20%}.upgrade-panel{padding:12px}.upgrade-list{grid-auto-rows:minmax(52px,1fr);gap:6px}.upgrade-row{grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding-left:9px}.btn-compact{min-height:42px;font-size:12px}.pause-actions .btn{min-height:44px}.pause-panel .audio-toggle{min-height:34px}.over-actions .btn{min-height:44px}.rank-badge{width:50px;height:50px;font-size:25px}.over-head h2{font-size:24px}.upgrade-head h2{font-size:23px}.panel-sub{font-size:10px}.up-icon{width:38px;height:38px}.up-icon svg{width:23px;height:23px}.up-name{font-size:12px}.up-name-en{font-size:7px}.up-stats{font-size:10px}.up-lv{font-size:8px}.buy-btn{min-height:36px;font-size:11px}.buy-hint,.up-summary span{font-size:8px}.up-summary b{font-size:13px}.upgrade-note{font-size:9px}.btn-start{min-height:48px;font-size:15px}.control-item{font-size:9.5px}.key-cluster kbd{font-size:8px;padding:3px 4px}.touch-copy{font-size:10px;line-height:1.5}.audio-toggle{min-height:32px;font-size:9px}.best-row{font-size:9px}.build-tag{font-size:7px}.menu-content{padding-bottom:60px}}@media(max-height:680px){.eyebrow{margin-bottom:calc(8 * var(--px))}.emblem{width:calc(66 * var(--px));height:calc(66 * var(--px));margin-bottom:calc(6 * var(--px))}.logo{font-size:calc(40 * var(--px))}.best-row{margin:calc(10 * var(--px)) 0 calc(8 * var(--px))}.control-grid{margin-top:calc(12 * var(--px));padding-top:calc(10 * var(--px))}.touch-copy{display:none}.hero-ship{position:relative;width:calc(148 * var(--px));height:calc(132 * var(--px));display:grid;place-items:center;margin-top:calc(10 * var(--px))}.hero-halo{position:absolute;inset:6%;border-radius:50%;border:1px dashed rgba(79,240,255,.24);background:radial-gradient(circle,rgba(79,240,255,.13),rgba(79,240,255,.03) 52%,transparent 72%);box-shadow:0 0 34px #4ff0ff14 inset;animation:spin 30s linear infinite}.hero-halo:before,.hero-halo:after{content:"";position:absolute;left:50%;top:50%;width:112%;height:1px;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(79,240,255,.28),transparent)}.hero-halo:after{transform:translate(-50%,-50%) rotate(90deg)}.hero-ship canvas{position:relative;z-index:1;width:96%;height:auto;filter:drop-shadow(0 0 16px rgba(79,240,255,.4));animation:heroFloat 4.6s ease-in-out infinite}.hero-tag{position:absolute;z-index:2;bottom:calc(-2 * var(--px));font-family:var(--font-display);font-size:calc(6 * var(--px));letter-spacing:.26em;color:#96d7f08c;white-space:nowrap}.hero-caption{display:flex;flex-direction:column;align-items:center;gap:calc(2 * var(--px));margin:calc(9 * var(--px)) 0 0}.hero-caption b{font-size:calc(10 * var(--px));font-weight:500;letter-spacing:.16em;color:#d9f8ff}.hero-caption span{font-family:var(--font-display);font-size:calc(6 * var(--px));letter-spacing:.24em;color:#8cc8e680}@keyframes heroFloat{50%{transform:translateY(-4px)}}.start-footer{margin-top:calc(10 * var(--px))}.upgrade-panel{padding:calc(12 * var(--px))}.upgrade-head{padding-bottom:calc(8 * var(--px))}.upgrade-row{padding:calc(6 * var(--px)) calc(8 * var(--px))}.up-icon{width:calc(28 * var(--px));height:calc(28 * var(--px))}.upgrade-list{gap:calc(5 * var(--px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
