:root{--bg: #04090f;--ink: #e6f8ff;--muted: #7e9aad;--cyan: #5ff5ff;--cyan-soft: rgba(95, 245, 255, .45);--cyan-line: rgba(95, 245, 255, .26);--amber: #ffb03a;--pink: #ff4d9e;--green: #6effc0;--danger: #ff5c6e;--panel: rgba(5, 15, 23, .58);--panel-strong: rgba(5, 15, 23, .86);--font-ui: "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;touch-action:none;overscroll-behavior:none}#app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-size:13px;letter-spacing:.04em;opacity:0;transition:opacity .5s ease;padding:calc(14px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.hud.live{opacity:1}.scanlines{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,rgba(120,240,255,.045) 0px,rgba(120,240,255,.03) 1px,transparent 1px,transparent 3px);mix-blend-mode:screen;opacity:.55}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 48%,rgba(0,4,8,.42) 100%)}.hud-top{position:absolute;top:calc(14px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));right:calc(16px + env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel{position:relative;background:linear-gradient(160deg,#091822b8,#040b1180);border:1px solid var(--cyan-line);padding:10px 14px 12px;min-width:210px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.panel:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan-soft),transparent)}.ship-panel{width:clamp(200px,21vw,268px)}.score-panel{text-align:right;width:clamp(168px,18vw,224px);min-width:168px}.row-title{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.row-title .zh{color:var(--cyan);font-weight:600;letter-spacing:.1em}.row-title .en{font-size:9px;opacity:.72}.shield-num{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--ink);letter-spacing:0}.shield-bar{display:flex;gap:3px;margin:7px 0 11px;height:9px}.shield-bar .seg{flex:1;background:#5ff5ff17;border:1px solid rgba(95,245,255,.16);transform:skew(-18deg);transition:background .16s ease,box-shadow .16s ease}.shield-bar .seg.on{background:linear-gradient(180deg,#b8fdff,#37d9ef);box-shadow:0 0 9px #5ff5ff8c;border-color:#b8fdffcc}.shield-bar .seg.on.low{background:linear-gradient(180deg,#ffd0a8,#ff7a4d);box-shadow:0 0 10px #ff7a4d99;border-color:#ffbe96cc}.energy-title{margin-top:2px}.energy-bar{position:relative;height:5px;margin-top:6px;background:#5ff5ff1a;overflow:hidden}.energy-bar i{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;transform-origin:left center;background:linear-gradient(90deg,#2aa8ff,#7dfdff);box-shadow:0 0 10px #5ff5ff99;transition:width .1s linear}.energy-bar i.low{background:linear-gradient(90deg,#ff6a3d,#ffb03a);box-shadow:0 0 10px #ff783ca6}.missile-row{display:flex;align-items:center;gap:10px;margin-top:10px}.missile-row .zh{font-size:11px;color:var(--muted);letter-spacing:.14em}.weapon-current{margin-left:auto;font-size:11px;color:#dff6ff;letter-spacing:.06em;white-space:nowrap}.missile-pips{display:flex;gap:5px}.missile-pips i{width:11px;height:11px;display:block;transform:rotate(45deg);border:1px solid rgba(255,176,58,.35);background:#ffb03a14;transition:all .16s ease}.missile-pips i.on{background:linear-gradient(135deg,#ffe6a8,#ffa62a);border-color:#ffd27a;box-shadow:0 0 8px #ffb03ab3}.score-label{font-size:10px;letter-spacing:.34em;color:var(--muted)}.score-value{font-family:var(--font-mono);font-size:clamp(26px,3.2vw,40px);line-height:1.02;font-weight:500;letter-spacing:.02em;color:#effdff;text-shadow:0 0 18px rgba(95,245,255,.55);font-variant-numeric:tabular-nums}.best-line{font-family:var(--font-mono);font-size:10px;color:var(--muted);letter-spacing:.12em;margin-top:3px}.best-line span,.best-line b{color:var(--cyan);font-weight:500}.stat-row{display:flex;justify-content:flex-end;gap:10px;font-size:10px;letter-spacing:.12em;color:var(--muted);margin-top:6px}.stat-row b{font-family:var(--font-mono);color:var(--ink);font-weight:500}.hud-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.lock{position:absolute;width:42px;height:42px;transform:translate(-50%,-50%);opacity:0;transition:opacity .18s ease}.lock.show{opacity:1}.lock:before,.lock:after,.lock span:before,.lock span:after{content:"";position:absolute;width:12px;height:12px;border:2px solid var(--pink);filter:drop-shadow(0 0 6px rgba(255,77,158,.85))}.lock:before{top:0;left:0;border-right:0;border-bottom:0}.lock:after{top:0;right:0;border-left:0;border-bottom:0}.lock span:before{bottom:0;left:0;border-right:0;border-top:0}.lock span:after{bottom:0;right:0;border-left:0;border-top:0}.warning{position:absolute;top:16%;display:flex;align-items:center;gap:9px;padding:7px 18px;font-size:12px;letter-spacing:.22em;color:#ffd8b0;border-top:1px solid rgba(255,92,110,.55);border-bottom:1px solid rgba(255,92,110,.55);background:linear-gradient(90deg,transparent,rgba(255,60,80,.16),transparent);opacity:0;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease}.warning.show{opacity:1;transform:translateY(0)}.warning i{width:7px;height:7px;background:var(--danger);transform:rotate(45deg);box-shadow:0 0 10px var(--danger);animation:blink 1s infinite steps(2)}.banner{position:absolute;text-align:center;opacity:0;transform:translateY(10px) scale(.97);transition:opacity .45s ease,transform .45s ease}.banner.show{opacity:1;transform:translateY(0) scale(1)}.banner-code{font-family:var(--font-mono);font-size:11px;letter-spacing:.5em;color:var(--cyan);margin-bottom:6px}.banner-title{font-size:clamp(26px,4.4vw,52px);font-weight:700;letter-spacing:.28em;text-indent:.28em;color:#f2feff;text-shadow:0 0 30px rgba(95,245,255,.65)}.banner-en{font-size:10px;letter-spacing:.42em;color:var(--muted);margin-top:8px}.toast{position:absolute;bottom:24%;font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;color:var(--green);opacity:0;transform:translateY(8px);transition:opacity .24s ease,transform .24s ease;text-shadow:0 0 14px rgba(110,255,192,.6)}.toast.show{opacity:1;transform:translateY(0)}.hud-bottom{position:absolute;left:calc(16px + env(safe-area-inset-left));right:calc(16px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.speed-block{min-width:132px}.speed-value{font-family:var(--font-mono);font-size:clamp(22px,2.6vw,32px);line-height:1;color:#eafcff;font-variant-numeric:tabular-nums;text-shadow:0 0 16px rgba(95,245,255,.45)}.speed-foot{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.24em;color:var(--muted);margin-top:5px}.speed-bar{position:relative;height:3px;margin-top:5px;background:#5ff5ff1f}.speed-bar i{position:absolute;top:0;right:0;bottom:0;left:0;width:0%;background:linear-gradient(90deg,var(--cyan),#fff);box-shadow:0 0 8px var(--cyan);transition:width .1s linear}.combo{position:absolute;left:50%;bottom:4px;transform:translate(-50%) scale(.9);font-family:var(--font-mono);font-size:20px;color:var(--amber);opacity:0;transition:opacity .2s ease,transform .2s ease;text-shadow:0 0 18px rgba(255,176,58,.7)}.combo.show{opacity:1;transform:translate(-50%) scale(1)}.combo b{font-weight:600}.touch-controls{display:none;gap:10px;align-items:flex-end}body.touch .touch-controls{display:flex}.hud:not(.live) .touch-controls{display:none}.tbtn{pointer-events:auto;width:66px;height:66px;border-radius:50%;border:1px solid rgba(95,245,255,.4);background:radial-gradient(circle at 50% 35%,#1e5466b8,#040e15d1);color:var(--ink);font-family:var(--font-ui);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:13px;letter-spacing:.1em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .08s ease,background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.tbtn small{font-size:7px;letter-spacing:.12em;opacity:.6}.tbtn:active,.tbtn.held{transform:scale(.94);background:radial-gradient(circle at 50% 35%,#78f5ff8c,#0a2836e6);border-color:#b8fdffe6;box-shadow:0 0 22px #5ff5ff66}.tbtn.fire{width:78px;height:78px;border-color:#ffb03a73}.tbtn.fire:active{box-shadow:0 0 22px #ffb03a73;border-color:#ffd28ce6}.joystick{position:absolute;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;border:1px solid rgba(95,245,255,.35);background:radial-gradient(circle,rgba(95,245,255,.1),transparent 70%);opacity:0;transition:opacity .15s ease}.joystick.show{opacity:1}.joystick i{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:radial-gradient(circle,#befdffe6,#5ff5ff40);box-shadow:0 0 18px #5ff5ff99}.boss{position:absolute;top:calc(104px + env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-8px);width:min(520px,62vw);opacity:0;transition:opacity .3s ease,transform .3s ease}.boss.show{opacity:1;transform:translate(-50%) translateY(0)}.boss-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.2em;color:#ffd9a8;margin-bottom:5px;text-shadow:0 0 10px rgba(255,176,58,.5)}.boss-head b{font-family:var(--font-mono);font-weight:500}.boss-bar{height:6px;background:#ffb03a24;border:1px solid rgba(255,120,60,.4)}.boss-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff5c3a,#ffcf6b);box-shadow:0 0 14px #ff783c99;transition:width .18s ease}.hud-pause{display:none;position:absolute;right:calc(16px + env(safe-area-inset-right));top:calc(150px + env(safe-area-inset-top));width:42px;height:42px;align-items:center;justify-content:center;padding:0;border:1px solid var(--cyan-line);background:#05121a9e;color:var(--cyan);font-size:12px;letter-spacing:.06em;pointer-events:auto;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}body.touch .hud.live .hud-pause{display:flex}.hud-pause:active{background:#5ff5ff2e}.arena{position:absolute;top:calc(150px + env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-8px);width:min(480px,58vw);opacity:0;transition:opacity .3s ease,transform .3s ease}.arena.show{opacity:1;transform:translate(-50%) translateY(0)}.arena-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:#a8f4ff;margin-bottom:5px;text-shadow:0 0 10px rgba(95,245,255,.5)}.arena-head b{font-family:var(--font-mono);font-weight:500}.arena-bar{height:5px;background:#5ff5ff1f;border:1px solid rgba(95,245,255,.4)}.arena-bar i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#2ad8ff,#c9fbff);box-shadow:0 0 12px #5ff5ff99;transition:width .2s ease}.gate{position:absolute;top:calc(196px + env(safe-area-inset-top));left:50%;transform:translate(-50%) translateY(-8px);width:min(460px,56vw);opacity:0;transition:opacity .3s ease,transform .3s ease}.gate.show{opacity:1;transform:translate(-50%) translateY(0)}.gate.locked .gate-bar{border-color:#ff5c6ee6;box-shadow:0 0 22px #ff5c6e80;animation:gatePulse .9s infinite}@keyframes gatePulse{50%{box-shadow:0 0 8px #ff5c6e33}}.float-score{position:absolute;transform:translate(-50%,-50%) scale(.85);font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:.04em;opacity:0;pointer-events:none;text-shadow:0 0 12px currentColor,0 2px 8px rgba(0,0,0,.8);transition:opacity .16s ease,transform .7s cubic-bezier(.2,.8,.3,1);z-index:3}.float-score.show{opacity:1;transform:translate(-50%,-140%) scale(1)}.gate-head{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:#ffb0a0;margin-bottom:5px;text-shadow:0 0 10px rgba(255,92,110,.5)}.gate-head b{font-family:var(--font-mono);font-weight:500}.gate-bar{height:6px;background:#ff5c6e24;border:1px solid rgba(255,92,110,.45)}.gate-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff4d6e,#ffcf6b);box-shadow:0 0 14px #ff5c6e99;transition:width .18s ease}.weapon-bar{position:absolute;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:5px;max-width:min(94vw,880px);padding:3px 5px;overflow-x:auto;pointer-events:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.weapon-bar::-webkit-scrollbar{display:none}.wchip{position:relative;flex:0 0 auto;width:58px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;border:1px solid rgba(95,245,255,.18);background:linear-gradient(165deg,#08161fd1,#040a10b3);color:#a9c6d4;font-family:var(--font-ui);cursor:pointer;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.wchip .wnum{position:absolute;top:2px;left:4px;font-family:var(--font-mono);font-size:8px;color:#a0becdb3}.wchip .wname{font-size:10px;letter-spacing:.02em;max-width:54px;overflow:hidden;white-space:nowrap;text-overflow:clip}.wchip .wammo{font-family:var(--font-mono);font-size:10px;color:var(--cyan)}.wchip.active{border-color:var(--wc, var(--cyan));color:#f2feff;background:linear-gradient(165deg,#1e4654eb,#061018db);box-shadow:0 0 16px -4px var(--wc, var(--cyan))}.wchip.active .wammo{color:var(--wc, var(--cyan))}.wchip.empty{opacity:.35}.damage-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 35%,rgba(255,40,70,.55) 100%);opacity:0;transition:opacity .28s ease}.damage-flash.on{opacity:1;transition:opacity .04s ease}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .4s ease;overflow:hidden}.overlay.show{opacity:1;pointer-events:auto}.start{align-items:flex-end;justify-content:flex-start;padding:clamp(20px,5vw,72px)}.start-bg{position:absolute;top:-3%;right:-3%;bottom:-3%;left:-3%;background-image:var(--keyart, none);background-size:cover;background-position:center 42%;transform:scale(1.02);filter:brightness(1.85) saturate(1.22) contrast(1.04);opacity:1}.start:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,#02070cf0 6%,#02070cb3 34%,#02070c0a 64%,#02070c38),linear-gradient(0deg,rgba(2,7,12,.86),transparent 58%);z-index:1}.start-content{position:relative;z-index:2;max-width:560px;padding-bottom:2vh}.eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.3em;color:var(--cyan);text-transform:uppercase}.eyebrow i{width:26px;height:1px;background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.eyebrow.danger{color:var(--danger)}h1{font-size:clamp(48px,8.4vw,96px);line-height:1;margin:14px 0 10px;font-weight:700;letter-spacing:.12em;text-indent:.06em;color:#f4feff;text-shadow:0 0 42px rgba(95,245,255,.4),0 8px 40px rgba(0,0,0,.7)}.title-en{font-family:var(--font-mono);font-size:clamp(11px,1.4vw,15px);letter-spacing:.62em;color:#b8fdffc7}.tagline{margin:18px 0 28px;font-size:clamp(13px,1.4vw,15px);line-height:1.9;color:#a9c4d3;letter-spacing:.04em}.primary{pointer-events:auto;display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px 34px 13px;border:1px solid rgba(95,245,255,.7);background:linear-gradient(120deg,#5ff5ff38,#5ff5ff0a);color:#eafdff;font-family:var(--font-ui);font-size:16px;letter-spacing:.22em;cursor:pointer;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));transition:background .2s ease,box-shadow .2s ease,transform .1s ease;box-shadow:0 0 #5ff5ff00}.primary small{font-family:var(--font-mono);font-size:9px;letter-spacing:.3em;opacity:.6}.primary:hover{background:linear-gradient(120deg,#5ff5ff5c,#5ff5ff1a);box-shadow:0 0 32px #5ff5ff59}.primary:active{transform:translateY(1px)}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px;margin-top:30px;max-width:480px}.control-grid div{display:flex;gap:10px;align-items:baseline;font-size:11px;color:#8fa8b8;letter-spacing:.04em;border-top:1px solid rgba(95,245,255,.12);padding-top:7px}.control-grid b{color:#d8f4ff;font-weight:500;font-size:11px;min-width:56px}.start-content .best-line{margin-top:22px;font-size:11px}.start-content .best-line .dot{opacity:.4;margin:0 6px}.pause{background:#02070c9e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pause-card,.over-card{width:min(420px,92vw);padding:28px 30px 24px;background:linear-gradient(160deg,#091822f0,#040a10f5);border:1px solid var(--cyan-line);clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));box-shadow:0 30px 90px #0009}.pause-card h2,.over-card h2{font-size:32px;margin:10px 0 18px;letter-spacing:.24em;font-weight:600}.pause-stats{display:flex;gap:26px;margin-bottom:22px}.pause-stats div,.over-grid div{display:flex;flex-direction:column;gap:5px}.pause-stats span,.over-grid span{font-size:10px;letter-spacing:.18em;color:var(--muted)}.pause-stats b,.over-grid b{font-family:var(--font-mono);font-size:20px;font-weight:500;color:#eafcff}.pause-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ghost{pointer-events:auto;padding:9px 16px;background:#5ff5ff0d;border:1px solid rgba(95,245,255,.22);color:#bfe9f4;font-family:var(--font-ui);font-size:11px;letter-spacing:.12em;cursor:pointer;transition:background .16s ease,border-color .16s ease}.ghost:hover{background:#5ff5ff24;border-color:#5ff5ff80}.hint{margin-top:18px;font-size:10px;letter-spacing:.14em;color:#667f8f}.gameover{background:radial-gradient(ellipse at center,#3c06108c,#020509eb);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.over-card{width:min(460px,92vw)}.over-card h2{color:#ffdfe4;text-shadow:0 0 26px rgba(255,60,80,.4)}.over-score{font-family:var(--font-mono);font-size:clamp(44px,7vw,64px);line-height:1;color:#fff2f4;text-shadow:0 0 34px rgba(255,80,100,.5);font-variant-numeric:tabular-nums;margin-bottom:22px}.over-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 10px;padding:16px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.over-grid b{font-size:17px}.new-best{margin-top:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.4em;color:var(--amber);opacity:0}.new-best.show{opacity:1;animation:pulse 1.4s infinite}.upgrade-panel{position:absolute;right:calc(18px + env(safe-area-inset-right));top:52%;transform:translate(26px,-50%);width:272px;padding:14px 15px 12px;background:linear-gradient(160deg,#091c26eb,#040a10eb);border:1px solid rgba(95,245,255,.3);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;z-index:6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.upgrade-panel.show{opacity:1;transform:translateY(-50%);pointer-events:auto}.upgrade-eyebrow{font-size:9px;letter-spacing:.22em;color:var(--cyan)}.upgrade-sub{font-size:11px;letter-spacing:.06em;color:#8fa8b8;margin:5px 0 10px}.upgrade-options{display:flex;flex-direction:column;gap:7px}.upgrade-opt{position:relative;pointer-events:auto;display:grid;grid-template-columns:26px 1fr;grid-template-rows:auto auto;column-gap:8px;row-gap:3px;padding:9px 10px;text-align:left;background:#0a1e28d9;border:1px solid rgba(95,245,255,.2);color:#dff6ff;font-family:var(--font-ui);cursor:pointer;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));transition:border-color .14s ease,background .14s ease,box-shadow .14s ease}.upgrade-opt:hover{border-color:var(--uc, var(--cyan));background:#102c3af2;box-shadow:0 0 18px -6px var(--uc, var(--cyan))}.upgrade-opt .unum{grid-row:1 / span 2;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;color:var(--uc, var(--cyan));border-right:1px solid rgba(95,245,255,.16)}.upgrade-opt b{font-size:13px;letter-spacing:.08em;font-weight:600}.upgrade-opt .udesc{font-size:10.5px;line-height:1.5;color:#9dbbc9}.upgrade-opt .ulevel{grid-column:2;font-family:var(--font-mono);font-size:9px;color:var(--uc, var(--cyan));letter-spacing:.06em}.upgrade-hint{margin-top:9px;font-size:9px;letter-spacing:.12em;color:#6d8898}.gameover .primary{margin-top:18px;border-color:#ff786499;background:linear-gradient(120deg,#ff5c503d,#ff5c500d)}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#04090f;font-size:11px;letter-spacing:.3em;color:#6f8fa0;transition:opacity .6s ease;z-index:20}.loading.hide{opacity:0;pointer-events:none}.loading-ring{width:48px;height:48px;border:1px solid rgba(95,245,255,.2);border-top-color:var(--cyan);border-radius:50%;animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.2}}@keyframes pulse{50%{opacity:.45}}@media (max-width: 760px){.hud-top{gap:8px}.panel{min-width:0;padding:8px 10px 9px}.ship-panel{width:48vw;max-width:220px}.score-panel{width:40vw;max-width:170px}.score-value{font-size:26px}.panel .row-title{font-size:10px}.missile-pips i{width:9px;height:9px}.boss{top:calc(96px + env(safe-area-inset-top));width:74vw}.speed-block{min-width:104px}.hud-bottom{align-items:flex-end}.combo{bottom:auto;top:-26px;font-size:16px}.start{align-items:flex-end;padding:24px 20px calc(28px + env(safe-area-inset-bottom))}h1{font-size:44px;letter-spacing:.08em}.tagline{margin:12px 0 18px;font-size:12px;line-height:1.7}.control-grid{margin-top:18px;gap:6px 14px}.control-grid div{font-size:10px}.control-grid b{font-size:10px;min-width:46px}.primary{padding:12px 26px;font-size:14px}.start-content .best-line{margin-top:14px}.pause-card,.over-card{padding:22px 20px 18px}.tbtn{width:62px;height:62px;font-size:12px}.tbtn.fire{width:74px;height:74px}.banner-title{font-size:26px}.weapon-bar{bottom:calc(100px + env(safe-area-inset-bottom));max-width:96vw;gap:4px}.wchip{width:50px;height:42px}.wchip .wname{font-size:9px;max-width:46px}.gate{top:calc(150px + env(safe-area-inset-top));width:74vw}.arena{top:calc(96px + env(safe-area-inset-top));width:80vw}.upgrade-panel{width:min(76vw,246px);right:calc(10px + env(safe-area-inset-right));top:46%;padding:11px 11px 10px}.upgrade-eyebrow{font-size:8px}.upgrade-opt{padding:7px 8px}}@media (max-height: 520px){.tagline,.control-grid{display:none}h1{font-size:38px;margin:8px 0}.start-content .best-line{margin-top:10px}.banner-title{font-size:24px}.boss{top:calc(84px + env(safe-area-inset-top))}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
