@keyframes neon-void-pop{50%{transform:scale(1.18)}}@keyframes neon-void-blink{50%{opacity:.35}}@keyframes neon-void-fadein{0%{opacity:0}}@keyframes neon-void-neon-flicker{0%,92%,96%,to{opacity:1}93%{opacity:.82}95%{opacity:.94}}@keyframes neon-void-breathe{to{transform:scale(1.03);box-shadow:0 0 44px #ffe74cbf,0 4px #9a8320}}@keyframes neon-void-callout{0%{opacity:0;letter-spacing:14px;transform:scale(1.6)}14%{opacity:1;letter-spacing:4px;transform:scale(1)}70%{opacity:1}to{opacity:0;transform:translateY(-14px)}}@keyframes neon-void-card-in{0%{opacity:0;transform:translateY(26px)scale(.94)}}.g-neon-void{height:100%;position:relative;overflow:hidden}.g-neon-void{&{--cyan:#00e5ff;--magenta:#ff2e88;--gold:#ffe74c;--lime:#7cff6b;--ink:#f4ecff;--muted:#a68fc7;--bg:#0d0221;--panel:#150826eb;--line:#5b2b8f}&,& *{box-sizing:border-box;margin:0;padding:0}&{background:var(--bg);width:100%;height:100%;color:var(--ink);overscroll-behavior:none;font-family:Trebuchet MS,system-ui,sans-serif;overflow:hidden}& button,& input{font:inherit}& button:focus-visible,& input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}& #scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}& #crt{z-index:7;pointer-events:none;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#00000038 0 1px,#0000 1px 3px);position:fixed;inset:0}& #crt.off{display:none}& #hud{padding:calc(14px + env(safe-area-inset-top)) 16px 0;letter-spacing:2px;pointer-events:none;z-index:5;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;display:grid;position:fixed;top:0;left:0;right:0}& #hud small{letter-spacing:3px;color:var(--muted);font-size:10px;font-weight:800;display:block}& .panel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#280c48e0,#0d0221d1);padding:10px 18px 10px 16px;position:relative}& .panel:before{content:"";background:var(--cyan);width:3px;box-shadow:0 0 14px var(--cyan);position:absolute;top:0;bottom:0;left:0}& #hud-left{justify-self:start;min-width:150px}& #hud-right{text-align:right;clip-path:polygon(16px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 16px);justify-self:end;min-width:150px;padding:10px 16px 10px 18px}& #hud-right:before{background:var(--magenta);box-shadow:0 0 14px var(--magenta);left:auto;right:0}& #hud-score span{color:var(--gold);text-shadow:0 0 18px #ffe74c8c,2px 2px #ff2e888c;font-size:32px;font-style:italic;font-weight:900;line-height:1.1;display:block}& .hud-sub{color:var(--muted);margin-top:2px;font-size:11px}& .hud-sub b{color:var(--ink)}& #hud-score.pop{transform-origin:0;animation:.18s ease-out neon-void-pop}& #hud-center{text-align:center;justify-self:center;min-width:150px}& #hud-wave{border:1px solid var(--cyan);background:#0d0221cc;border-radius:999px;padding:4px 22px 5px;display:inline-block;box-shadow:0 0 16px #00e5ff4d,inset 0 0 12px #00e5ff26}& #hud-wave span{color:var(--cyan);text-shadow:0 0 14px var(--cyan);font-size:24px;font-style:italic;font-weight:900}& .gauge+.gauge{margin-top:8px}& .gauge span{gap:5px;margin-top:3px;display:inline-flex}& .gauge i{background:#0d0221b3;border:1px solid #a68fc780;width:22px;height:12px;transition:background .15s,box-shadow .15s;transform:skew(-24deg)}& #hp i.on{background:var(--magenta);border-color:var(--magenta);box-shadow:0 0 10px var(--magenta)}& #hp.low i.on{animation:.5s steps(2,end) infinite neon-void-blink}& #shield i{width:14px}& #shield i.on{background:var(--lime);border-color:var(--lime);box-shadow:0 0 10px var(--lime)}& #wave-bar{width:100%;margin:6px auto 0}& #hud-combo{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;margin-top:8px;animation:.18s ease-out neon-void-pop;display:flex}& #combo-mult{color:var(--magenta);text-shadow:0 0 18px var(--magenta), 2px 2px 0 var(--cyan);font-size:34px;font-style:italic;font-weight:900;line-height:1}& #hud-combo[data-m="3"] #combo-mult{color:var(--gold)}& #hud-combo[data-m="4"] #combo-mult,& #hud-combo[data-m="5"] #combo-mult{color:#fff;text-shadow:0 0 22px var(--gold), 0 0 8px var(--magenta), 2px 2px 0 var(--magenta)}& #combo-text{color:var(--ink);font-size:12px;font-weight:800}& #combo-bar{flex-basis:100%}& .icon-btn{z-index:6;background:var(--panel);border:1px solid var(--cyan);width:44px;height:44px;color:var(--cyan);cursor:pointer;touch-action:manipulation;text-shadow:0 0 12px #00e5ff80;border-radius:8px;font-size:16px;font-weight:700;position:fixed}& #btn-pause{top:calc(130px + env(safe-area-inset-top));right:16px}& #btn-mute{bottom:calc(12px + env(safe-area-inset-bottom));left:12px}& .icon-btn.muted{opacity:.4;text-decoration:line-through}& .icon-btn:active{transform:scale(.92)}& .overlay{z-index:10;backdrop-filter:blur(4px);text-align:center;background:#0d0221db;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;animation:.2s ease-out neon-void-fadein;display:flex;position:fixed;inset:0;overflow-y:auto}& .hidden{display:none!important}& h1{letter-spacing:2px;color:var(--ink);text-shadow:3px 3px 0 var(--magenta), -2px -2px 0 var(--cyan), 0 0 42px #ff2e8866;font-size:clamp(52px,11vw,96px);font-style:italic;font-weight:900}& h1 span{color:var(--gold);text-shadow:3px 3px 0 var(--magenta), 0 0 42px #ffe74c80}& h2{letter-spacing:2px;color:var(--ink);text-shadow:2px 2px 0 var(--magenta);font-size:clamp(30px,6vw,50px);font-style:italic}& .tagline{color:var(--muted);letter-spacing:2px;font-size:14px}& .howto{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:8px;padding:14px 22px;font-size:15px;line-height:1.8}& .howto .danger{color:var(--magenta)}& .howto .reward{color:var(--gold)}& .howto .combo-tip{color:var(--cyan)}& .hint{color:var(--muted);letter-spacing:2px;font-size:12px}& .big-btn{letter-spacing:2px;color:#0d0221;background:var(--gold);border:2px solid var(--gold);cursor:pointer;touch-action:manipulation;text-transform:uppercase;border-radius:8px;min-width:250px;min-height:56px;font-size:19px;font-style:italic;font-weight:800;box-shadow:0 0 26px #ffe74c73,0 4px #9a8320}& .big-btn:active{transform:translateY(2px);box-shadow:0 0 26px #ffe74c73,0 1px #9a8320}& .ghost-btn{min-width:250px;min-height:44px;color:var(--muted);border:1px solid var(--line);letter-spacing:1px;cursor:pointer;touch-action:manipulation;text-transform:uppercase;background:0 0;border-radius:8px;font-size:14px}& #menu-best{color:var(--gold);letter-spacing:2px}& .final{letter-spacing:2px;font-variant-numeric:tabular-nums;font-size:26px}& .final.dim{color:var(--muted);font-size:16px}& #final-score{color:var(--gold);font-weight:800}& #newbest{color:var(--gold);letter-spacing:3px;font-size:22px;font-weight:800;animation:.5s ease-out infinite alternate neon-void-pop}& .setting-row{background:var(--panel);border:1px solid var(--line);letter-spacing:1px;cursor:pointer;border-radius:8px;align-items:center;gap:14px;padding:8px 18px;font-size:14px;display:flex}& .setting-row input{width:26px;height:26px;accent-color:var(--magenta)}& #cards{flex-wrap:wrap;justify-content:center;gap:14px;max-width:900px;display:flex}& .card{text-align:left;border:2px solid var(--line);width:200px;min-height:190px;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#22103f;border-radius:8px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;padding:22px;line-height:1.5;display:flex}& .card:first-child:hover{border-color:var(--cyan);box-shadow:0 0 22px #00e5ff59}& .card:nth-child(2):hover{border-color:var(--magenta);box-shadow:0 0 22px #ff2e8859}& .card:nth-child(3):hover{border-color:var(--lime);box-shadow:0 0 22px #7cff6b4d}& .card:active{transform:translateY(2px)}& .card-ico{border:2px solid var(--gold);width:46px;height:46px;color:var(--gold);place-items:center;font-size:22px;display:grid;transform:rotate(45deg)}& .card-ico:first-letter{transform:rotate(-45deg)}& .card-name{letter-spacing:1px;color:var(--gold);font-size:17px;font-weight:800}& .card-desc{color:var(--muted);font-size:13px}& .card-key{letter-spacing:1px;color:var(--magenta);margin-top:auto;font-size:12px;font-weight:800}& #vignette{z-index:8;pointer-events:none;opacity:0;transition:opacity .1s;position:fixed;inset:0;box-shadow:inset 0 0 120px 40px #ff2e88d9}& #flash{z-index:8;pointer-events:none;opacity:0;background:#ffffff8c;position:fixed;inset:0}& #touch-controls{right:18px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:6;position:fixed}& #btn-fire{border:2px solid var(--magenta);width:92px;height:92px;color:var(--magenta);touch-action:none;-webkit-user-select:none;user-select:none;background:#ff2e882e;border-radius:50%;font-size:16px;font-weight:800;box-shadow:0 0 20px #ff2e8859}& #btn-fire.held{color:#fff;background:#ff2e8880}@media (width<=600px){& #hud{gap:6px;padding-left:8px;padding-right:8px}& #hud-left,& #hud-right,& #hud-center{min-width:0}& .panel{padding:8px 12px}& #hud-score span{font-size:22px}& .gauge i{width:16px}& #shield i{width:10px}& #hud-wave{padding:3px 12px}& #hud-wave span{font-size:18px}& .howto{font-size:13px}& .card{width:44vw;min-height:170px;padding:16px}}@media (prefers-reduced-motion:reduce){& .overlay,& #hud-score.pop,& #newbest{animation:none}}& #menu{backdrop-filter:blur(1.5px);background:radial-gradient(#0d0221b8 0%,#0d022159 100%)}& #menu h1{animation:5s infinite neon-void-neon-flicker}& #menu .big-btn{animation:1.8s ease-in-out infinite alternate neon-void-breathe}& #wave-bar,& #combo-bar{background:#5b2b8f80;border-radius:2px;height:3px;margin-top:2px;overflow:hidden}& #wave-fill,& #combo-fill{transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}& #wave-fill{background:var(--cyan);box-shadow:0 0 8px var(--cyan);transition:transform .2s linear}& #combo-fill{background:var(--magenta);box-shadow:0 0 8px var(--magenta)}& #callout{z-index:6;text-align:center;pointer-events:none;opacity:0;letter-spacing:4px;color:var(--gold);text-shadow:3px 3px 0 var(--magenta), 0 0 30px #ffe74c8c;font-size:clamp(26px,6vw,54px);font-style:italic;font-weight:900;position:fixed;top:26%;left:0;right:0}& #callout[data-tone=cyan]{color:var(--cyan);text-shadow:2px 2px 0 var(--magenta), 0 0 22px #00e5ff99;font-size:clamp(18px,3.4vw,30px);top:33%}& #callout.show{animation:1.3s ease-out forwards neon-void-callout}& .card{transition:transform .12s,border-color .12s,box-shadow .12s}& .card:hover,& .card:focus-visible{transform:translateY(-4px)}@media (prefers-reduced-motion:reduce){& #menu h1,& #menu .big-btn,& #hud-combo{animation:none}& #callout.show{opacity:1;animation:none}& .card:hover,& .card:focus-visible{transform:none}}& .big-btn,& .ghost-btn{clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);border-radius:0}& .big-btn{box-shadow:none;filter:drop-shadow(0 0 16px #ffe74c8c);border:none;padding:0 34px}& .big-btn:active{filter:drop-shadow(0 0 8px #ffe74c80)}& .ghost-btn{color:var(--ink);background:#5b2b8f59;border:none;transition:background .15s,color .15s}& .ghost-btn:hover{background:#ff2e8859}& #menu .big-btn{filter:drop-shadow(0 0 22px #ffe74cb3);animation:none}& #menu .big-btn:hover{filter:drop-shadow(0 0 34px #ffe74cf2);transform:scale(1.05)}& #menu .tagline,& h2+.tagline{align-items:center;gap:14px;display:flex}& #menu .tagline:before,& #menu .tagline:after,& #upgrade-menu .tagline:before,& #upgrade-menu .tagline:after{content:"";background:linear-gradient(90deg, transparent, var(--magenta));width:54px;height:2px}& #menu .tagline:after,& #upgrade-menu .tagline:after{transform:scaleX(-1)}& .howto{border:none;border-left:3px solid var(--magenta);border-right:3px solid var(--cyan);background:linear-gradient(90deg,#ff2e881a,#0d0221d9 30% 70%,#00e5ff1a);border-radius:0;position:relative}& #gameover h2{color:var(--magenta);text-shadow:3px 3px 0 var(--cyan), 0 0 40px #ff2e8899}& #gameover{background:radial-gradient(#3c0528cc,#0d0221eb)}& .final{font-style:italic;font-weight:900}& #final-score{text-shadow:0 0 22px #ffe74c99;font-size:48px}& .final.dim{font-style:normal;font-weight:400}& .card{--c:var(--cyan);border:1px solid var(--line);border-top:3px solid var(--c);clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));text-align:center;background:linear-gradient(170deg,#301256f2,#120624f2);border-radius:0;align-items:center;width:210px;min-height:230px;padding:24px 20px 20px;position:relative;overflow:hidden}& .card:nth-child(2){--c:var(--magenta)}& .card:nth-child(3){--c:var(--lime)}& .card:after{content:"";background:linear-gradient(0deg, color-mix(in srgb, var(--c) 22%, transparent), transparent);opacity:0;pointer-events:none;height:60%;transition:opacity .2s;position:absolute;inset:auto 0 0}& .card:hover:after,& .card:focus-visible:after{opacity:1}& .card:nth-child(n):hover{border-color:var(--c);box-shadow:none}& .card-ico{border-color:var(--c);color:var(--c);box-shadow:0 0 16px color-mix(in srgb, var(--c) 45%, transparent), inset 0 0 10px color-mix(in srgb, var(--c) 25%, transparent);margin:6px 0 10px}& .card-name{color:var(--ink);font-size:18px;font-style:italic}& .card-key{border:1px solid var(--c);color:var(--c);align-self:center;padding:3px 12px;transform:skew(-18deg)}& #cards .card{animation:.35s ease-out backwards neon-void-card-in}& #cards .card:nth-child(2){animation-delay:70ms}& #cards .card:nth-child(3){animation-delay:.14s}@media (width<=600px){& .card{width:44vw;min-height:200px}}@media (prefers-reduced-motion:reduce){& #cards .card,& #hp.low i.on{animation:none}}& #upgrade-menu.locked .card{opacity:.4;filter:saturate(.5);pointer-events:none}& #upgrade-menu.locked #upgrade-hint{color:var(--magenta);animation:.6s steps(2,end) infinite neon-void-blink}& #cards .card{transition:opacity .25s,filter .25s,transform .12s,border-color .12s}@media (prefers-reduced-motion:reduce){& #upgrade-menu.locked #upgrade-hint{animation:none}}& a.ghost-btn{text-decoration:none;display:inline-block}}
