:root{--accent: #ff6a1a;--accent2: #ffc53d;--ink: #f3f1ec;--muted: #a9b0b8;--panel: rgba(12, 14, 18, .62);--line: rgba(255, 255, 255, .12);--display: "Russo One", "Impact", system-ui, sans-serif;--body: "Rajdhani", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0b0d10;color:var(--ink);font-family:var(--body);user-select:none}canvas{display:block;position:fixed;inset:0;width:100%;height:100%}.hidden{display:none!important}kbd{display:inline-block;min-width:1.7em;padding:1px 6px;margin:0 1px;text-align:center;font:600 12px/18px var(--body);color:var(--ink);background:#ffffff1a;border:1px solid rgba(255,255,255,.22);border-bottom-width:2px;border-radius:4px}#flash{position:fixed;inset:0;z-index:8;pointer-events:none;background:radial-gradient(circle,#fffef6,#fff3d6 60%,#ffd9a0);opacity:0}#hurt{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,#a0000000 40%,#aa0a0ad9)}#vignette{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%)}.screen{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:linear-gradient(90deg,#08090ce0,#08090c8c 45%,#08090c26);animation:fadein .35s ease}.screen.dim{background:#06070ab8;backdrop-filter:blur(4px)}.screen.solid{background:#0b0d10}@keyframes fadein{0%{opacity:0}to{opacity:1}}#screen-title{align-items:flex-start;padding-left:8vw}.title-wrap{display:flex;flex-direction:column;gap:10px}.logo{font:128px/.9 var(--display);letter-spacing:6px;position:relative}.logo span{background:linear-gradient(180deg,#fff 0%,#ffd9a8 45%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 rgba(0,0,0,.5)) drop-shadow(0 0 30px rgba(255,106,26,.35))}.logo:after{content:"";position:absolute;left:4px;right:30%;bottom:-10px;height:6px;background:var(--accent);transform:skew(-20deg)}.tagline{font:700 20px var(--body);letter-spacing:8px;color:var(--muted);margin:18px 0 26px 4px}.foot{position:fixed;bottom:18px;left:8vw;color:#ffffff59;font-size:14px;letter-spacing:1px}h2{font:44px var(--display);letter-spacing:4px;margin:0;text-shadow:0 4px 0 rgba(0,0,0,.4)}.menu{display:flex;flex-direction:column;gap:10px;min-width:300px}.menu.row{flex-direction:row;min-width:0}.menu button,.card{font:24px var(--display);letter-spacing:2px;color:var(--ink);text-align:left;cursor:pointer;padding:12px 26px;border:0;background:#ffffff0f;border-left:4px solid transparent;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 100%,0 100%);transition:background .15s,transform .15s,border-color .15s}.menu button:hover{background:#ff6a1a38;border-left-color:var(--accent);transform:translate(6px)}.menu button.primary{background:var(--accent);color:#140a03}.menu button.primary:hover{background:#ff8740}#map-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,290px));gap:16px;padding:0 20px}.card{padding:0;display:flex;flex-direction:column;background:#0e1014d9;border:1px solid var(--line);clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);text-align:left}.card:hover{transform:translateY(-6px);border-color:var(--accent);background:#1e1610eb}.card .thumb{aspect-ratio:16/9;overflow:hidden;position:relative}.card .thumb svg{width:100%;height:100%;display:block;transition:transform .4s}.card:hover .thumb svg{transform:scale(1.06)}.card .info{padding:12px 16px 18px;display:flex;flex-direction:column;gap:6px}.card .name{font:22px var(--display);letter-spacing:1px}.card .desc{font:600 15px/1.25 var(--body);color:var(--muted);min-height:38px}.card .best{font:700 14px var(--body);color:var(--accent2);letter-spacing:1px;display:flex;justify-content:space-between}.card .best .s{color:#ffffff2e;letter-spacing:2px}.card .best .s b{color:var(--accent2);font-weight:700}.card .tag{position:absolute;top:10px;left:10px;font:700 12px var(--body);letter-spacing:2px;padding:3px 8px;background:var(--accent);color:#140a03}.settings{display:grid;gap:16px;min-width:420px;padding:24px 28px;background:var(--panel);border:1px solid var(--line)}.settings label{display:flex;justify-content:space-between;align-items:center;gap:24px;font:700 18px var(--body);letter-spacing:1px}.settings select,.settings input[type=range]{width:200px;accent-color:var(--accent)}.settings select{font:600 16px var(--body);background:#1b1f25;color:var(--ink);border:1px solid var(--line);padding:6px}.settings .check input{width:20px;height:20px;accent-color:var(--accent)}.controls-grid{display:grid;grid-template-columns:auto auto;gap:10px 32px;font:600 18px var(--body);padding:22px 28px;background:var(--panel);border:1px solid var(--line)}.controls-grid>div:nth-child(odd){text-align:right}.tip{max-width:560px;text-align:center;color:var(--muted);font:600 17px var(--body);margin:0}#pause-stats{font:700 20px var(--body);color:var(--muted);letter-spacing:2px;text-align:center}#pause-stats b{color:var(--accent2)}.loader{display:flex;flex-direction:column;align-items:center;gap:22px}.spinner{width:54px;height:54px;border:5px solid rgba(255,255,255,.12);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loading-text{font:22px var(--display);letter-spacing:4px;color:var(--muted)}#click-to-play{position:fixed;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#00000059;cursor:pointer}#click-to-play .cta{font:40px var(--display);letter-spacing:6px;padding:14px 34px;background:var(--accent);color:#140a03;clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);animation:pulse 1.4s ease-in-out infinite}#click-to-play .sub{font:700 18px var(--body);letter-spacing:2px;color:var(--ink);text-shadow:0 2px 6px #000}@keyframes pulse{50%{transform:scale(1.04)}}#hud{position:fixed;inset:0;z-index:5;pointer-events:none}.panel{background:var(--panel);border-left:4px solid var(--accent);padding:10px 16px 12px}#hud-tl{position:absolute;top:18px;left:18px;width:300px}#hud-map{font:22px var(--display);letter-spacing:2px;text-transform:uppercase}.label{font:700 13px var(--body);letter-spacing:3px;color:var(--muted);margin-top:4px}.label b{color:var(--ink);font-size:16px;margin-left:6px}#destruct{position:relative;height:10px;margin-top:8px;background:#ffffff1f}#destruct-fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent2),var(--accent));transform-origin:left;transform:scaleX(0);transition:transform .25s}#stars .star{position:absolute;top:-7px;transform:translate(-50%);font-size:20px;line-height:20px;color:#ffffff59;text-shadow:0 1px 3px #000;transition:color .3s,transform .3s}#stars .star.got{color:var(--accent2);transform:translate(-50%) scale(1.25);text-shadow:0 0 10px rgba(255,197,61,.8)}#hud-tr{position:absolute;top:18px;right:22px;text-align:right}#score{font:48px/1 var(--display);letter-spacing:1px;text-shadow:0 3px 0 rgba(0,0,0,.45)}#combo{margin-top:6px;font:700 15px var(--body);letter-spacing:3px;color:var(--muted);opacity:.35;transition:opacity .2s}#combo.on{opacity:1;color:var(--accent2)}#combo b{font:26px var(--display);color:var(--accent2);margin-right:4px}#combo-track{height:4px;margin-top:4px;background:#ffffff1f}#combo-bar{height:100%;background:var(--accent2);transform-origin:right;transform:scaleX(0)}#crosshair{position:absolute;left:50%;top:50%;--spread: 6px}#crosshair i{position:absolute;background:#fff;box-shadow:0 0 2px #000000e6}#crosshair i:nth-child(1),#crosshair i:nth-child(2){width:2px;height:9px;left:-1px}#crosshair i:nth-child(1){top:calc(-1 * var(--spread) - 9px)}#crosshair i:nth-child(2){top:var(--spread)}#crosshair i:nth-child(3),#crosshair i:nth-child(4){height:2px;width:9px;top:-1px}#crosshair i:nth-child(3){left:calc(-1 * var(--spread) - 9px)}#crosshair i:nth-child(4){left:var(--spread)}#crosshair span{position:absolute;width:3px;height:3px;left:-1.5px;top:-1.5px;background:var(--accent);border-radius:50%}#hitmarker{position:absolute;left:50%;top:50%;opacity:0}#hitmarker.on{animation:hit .18s ease-out}#hitmarker i{position:absolute;width:2px;height:8px;background:#fff;left:-1px;top:-4px}#hitmarker i:nth-child(1){transform:rotate(45deg) translateY(-11px)}#hitmarker i:nth-child(2){transform:rotate(135deg) translateY(-11px)}#hitmarker i:nth-child(3){transform:rotate(225deg) translateY(-11px)}#hitmarker i:nth-child(4){transform:rotate(315deg) translateY(-11px)}@keyframes hit{0%{opacity:1}to{opacity:0}}#banners{position:absolute;top:16%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.banner{font:22px var(--display);letter-spacing:2px;white-space:nowrap;padding:6px 20px;background:#0a0a0cb3;border-bottom:3px solid var(--accent);display:flex;gap:14px;align-items:baseline;animation:bannerIn .35s cubic-bezier(.2,1.6,.4,1);transition:opacity .5s,transform .5s}.banner em{font-style:normal;color:var(--accent2);font-size:19px}.banner.warn{border-bottom-color:#ff3a28;color:#ffd0c8;font-size:18px}.banner.star{border-bottom-color:var(--accent2);color:var(--accent2)}.banner.out{opacity:0;transform:translateY(-12px)}@keyframes bannerIn{0%{transform:scale(1.6);opacity:0}to{transform:scale(1);opacity:1}}#popups{margin-top:8px;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.pop{font:18px var(--display);color:var(--accent2);text-shadow:0 2px 0 rgba(0,0,0,.6);white-space:nowrap;animation:popIn .25s ease-out}.pop.big{font-size:22px;color:#fff}@keyframes popIn{0%{transform:translate(14px);opacity:0}to{transform:none;opacity:1}}#weapons{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;gap:8px}.slot{position:relative;width:108px;height:64px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);overflow:hidden;transition:transform .15s,border-color .15s,color .15s}.slot .key{position:absolute;top:3px;left:6px;font:700 13px var(--body);color:#ffffff80}.slot .icon{width:56px;height:28px}.slot .icon svg{width:100%;height:100%}.slot .name{font:700 13px var(--body);letter-spacing:2px}.slot .cd{position:absolute;inset:0;background:#0000008c;transform-origin:bottom;transform:scaleY(var(--cd, 0))}.slot.active{color:var(--ink);border-color:var(--accent);transform:translateY(-6px);box-shadow:0 0 0 1px var(--accent),0 8px 24px #ff6a1a40}.slot.active .key{color:var(--accent)}.slot .ammo{position:absolute;top:3px;right:6px;font:700 13px var(--body);color:var(--accent2)}.slot.locked{opacity:.4}.slot.empty .icon,.slot.empty .name{opacity:.35}#surv{position:absolute;top:14px;left:50%;transform:translate(-50%);width:420px;text-align:center}#surv-wave{font:26px var(--display);letter-spacing:3px;text-shadow:0 3px 0 rgba(0,0,0,.45)}#surv-hp{position:relative;height:16px;margin:6px auto 4px;background:#00000080;border:1px solid var(--line);overflow:hidden}#surv-hp-fill{position:absolute;inset:0;background:linear-gradient(90deg,#2fbf62,#7dff9e);transform-origin:left;transition:transform .2s}#surv-hp.low #surv-hp-fill{background:linear-gradient(90deg,#c0281e,#ff6a4a);animation:pulse .6s infinite}#surv-hp span{position:relative;font:700 11px/16px var(--body);letter-spacing:3px;color:#fff;text-shadow:0 1px 2px #000}#surv-info{font:700 15px var(--body);letter-spacing:2px;color:var(--muted)}#surv-info span{color:var(--ink)}#surv-count{margin-top:10px;font:20px var(--display);letter-spacing:3px;color:var(--accent2)}#surv-count b{font-size:30px;margin-left:6px}#over-stats{display:grid;gap:8px;min-width:380px;padding:18px 24px;background:var(--panel);border:1px solid var(--line)}#over-stats div{display:flex;justify-content:space-between;font:700 18px var(--body);letter-spacing:2px;color:var(--muted)}#over-stats b{color:var(--ink)}#over-stats .best{justify-content:center;color:var(--accent2);font:22px var(--display)}#over-title{font-size:56px}#over-stats .supply b,#surv-info .cr{color:var(--accent2)}.shop-head{font:700 18px var(--body);letter-spacing:3px;color:var(--muted);display:flex;align-items:baseline;gap:12px}.shop-head b{font:30px var(--display);color:var(--accent2)}.shop-head small{font:600 14px var(--body);letter-spacing:1px}#wave-grid{display:grid;grid-template-columns:repeat(10,54px);gap:6px;margin:4px 0 10px}#wave-grid button{position:relative;height:46px;font:18px var(--display);color:var(--ink);background:#0e1014e0;border:1px solid var(--line);cursor:pointer;transition:transform .1s,background .1s}#wave-grid button:hover{transform:translateY(-2px);background:var(--accent);color:#111}#wave-grid button.boss{border-color:#ff3a28;box-shadow:inset 0 -3px #ff3a28}#wave-grid button.theme{box-shadow:inset 0 -3px 0 var(--accent2)}#wave-grid button.debut:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:#50ff40}#wave-grid button.best{color:var(--accent2)}#wave-info{min-height:44px;max-width:600px;text-align:center;font:600 15px/1.4 var(--body);color:var(--muted)}#wave-info b{color:var(--ink);font:17px var(--display);letter-spacing:1px}.wave-legend{display:flex;gap:16px;font:700 11px var(--body);letter-spacing:2px;color:var(--muted);margin-bottom:8px}.wave-legend span:before{content:"";display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle}.wave-legend .boss:before{background:#ff3a28}.wave-legend .theme:before{background:var(--accent2)}.wave-legend .debut:before{width:6px;height:6px;border-radius:50%;background:#50ff40}@media(max-width:700px){#wave-grid{grid-template-columns:repeat(5,54px)}}#shop-grid,#armory-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,280px));gap:12px}#screen-shop{justify-content:flex-start;padding:22px 24px;gap:16px;overflow-y:auto}.shop-bar{position:sticky;top:0;z-index:2;width:min(1180px,100%);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:10px 14px;background:#08090ceb;border-bottom:2px solid var(--accent)}.shop-bar h2{font-size:30px}.shop-go{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.shop-go button{font:24px var(--display);letter-spacing:2px;padding:12px 30px;border:0;cursor:pointer;background:var(--accent);color:#140a03;clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);animation:pulse 1.6s ease-in-out infinite}.shop-go button:hover{background:#ff8740}.shop-go small{font:700 13px var(--body);letter-spacing:2px;color:var(--muted)}.shop-go small b{color:var(--accent2)}#shop-grid{grid-template-columns:repeat(4,minmax(200px,280px));gap:10px}#shop-grid .shop-item{min-height:86px;padding:10px 14px}#shop-grid .shop-item b{font-size:16px}#shop-grid .shop-item span{font-size:13px}#shop-grid .shop-item em{font-size:18px}@media(max-width:980px){#shop-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}}.shop-item{position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px 16px;min-height:104px;cursor:pointer;background:#0e1014e0;border:1px solid var(--line);border-left:4px solid var(--accent);color:var(--ink);font-family:var(--body);transition:transform .12s,background .12s}.shop-item:hover{transform:translateY(-3px);background:#281c12eb}.shop-item b{font:18px var(--display);letter-spacing:1px}.shop-item span{font:600 14px/1.3 var(--body);color:var(--muted)}.shop-item em{font:20px var(--display);font-style:normal;color:var(--accent2);margin-top:auto}.shop-item.off{opacity:.45;border-left-color:#555;cursor:default}.shop-item.off:hover{transform:none}.pips{position:absolute;top:14px;right:14px;display:flex;gap:4px}.pips i{width:10px;height:10px;border:1px solid var(--accent2);transform:skew(-15deg)}.pips i.on{background:var(--accent2)}#hint{position:absolute;bottom:104px;left:50%;transform:translate(-50%);display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font:600 14px var(--body);color:#ffffffd9;text-shadow:0 1px 3px #000;transition:opacity 1.2s;max-width:90vw}#hint.fade{opacity:0}#debug{position:absolute;bottom:18px;right:18px;font:12px/1.5 ui-monospace,monospace;background:#0009;padding:8px 10px;white-space:pre}#screen-maps{overflow-y:auto;justify-content:safe center;padding:24px 0;gap:20px}.card .thumb{aspect-ratio:16/8}@media(max-width:900px){#map-grid{grid-template-columns:repeat(2,minmax(200px,290px))}.logo{font-size:84px}}#health{position:absolute;left:22px;bottom:96px;width:260px}#health .hp-row{display:flex;align-items:center;gap:10px}#hp-text{font:34px var(--display);min-width:64px;text-shadow:0 2px 0 rgba(0,0,0,.5)}#health .bar{flex:1;height:12px;background:#00000080;border:1px solid var(--line);overflow:hidden}#hp-fill{height:100%;background:linear-gradient(90deg,#d93a2a,#ff7a5a);transform-origin:left;transition:transform .15s}#health .bar.armor{height:6px;margin:6px 0 0 74px}#armor-fill{height:100%;background:linear-gradient(90deg,#3a8fd9,#7ac4ff);transform-origin:left;transform:scaleX(0)}#pstatus{margin:6px 0 0 74px;display:flex;gap:6px;font:700 11px var(--body);letter-spacing:2px}#pstatus i{font-style:normal;padding:2px 6px;border-radius:2px;animation:pulse .6s infinite}#pstatus .burn{background:#c2410c}#pstatus .slow{background:#3a7ab8}#health.low #hp-text{color:#ff5a4a;animation:pulse .6s infinite}#ammo{position:absolute;right:26px;bottom:96px;text-align:right;font:700 16px var(--body);color:var(--muted)}#ammo-name{font:700 13px var(--body);letter-spacing:3px}#ammo-mag{font:46px/1 var(--display);color:var(--ink);text-shadow:0 2px 0 rgba(0,0,0,.5)}#ammo-mag.low{color:#ff5a4a}#ammo span{margin:0 6px;font-size:22px}#ammo em{font:22px var(--display);font-style:normal;color:var(--muted)}#weapons.many .slot{width:76px;height:54px}.slot.hide{display:none}#weapons.many .slot .icon{width:44px;height:22px}#weapons.many .slot .name{font-size:10px;letter-spacing:1px}#hitmarker.kill i{background:#ff3a28;height:11px}#scope{position:fixed;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at center,transparent 0,transparent 34vh,#000 34.3vh)}#scope i{position:absolute;background:#000000d9}#scope i:nth-child(1){left:50%;top:16vh;bottom:16vh;width:2px;transform:translate(-1px)}#scope i:nth-child(2){top:50%;left:calc(50% - 34vh);right:calc(50% - 34vh);height:2px;transform:translateY(-1px)}
