:root{--bg: #07080b;--bg2: #0d1015;--fg: #e6edf3;--muted: #6b7480;--accent: #4ade80;--accent-soft: rgba(74, 222, 128, .12);--danger: #ff4d5e;--warning: #facc15;--border: rgba(255, 255, 255, .08);--card: rgba(13, 16, 21, .85);font-family:Inter,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;background:var(--bg);color:var(--fg);user-select:none;-webkit-user-select:none}#game{position:fixed;inset:0;width:100%;height:100%;display:block;cursor:none}.hidden{display:none!important}#menu{position:fixed;inset:0;display:grid;place-items:center;z-index:50;isolation:isolate}.menu-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(74,222,128,.08),transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(80,120,255,.06),transparent 50%),linear-gradient(180deg,#05060a,#0a0d12);z-index:-1}.menu-bg:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}.menu-card{width:min(560px,90vw);background:var(--card);border:1px solid var(--border);border-radius:14px;padding:32px 36px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 30px 60px -20px #000000b3}.brand{margin-bottom:28px}.brand .logo{font-size:34px;font-weight:800;letter-spacing:6px;color:var(--fg)}.brand .logo:before{content:"";display:inline-block;width:10px;height:10px;background:var(--accent);border-radius:2px;margin-right:12px;margin-bottom:4px;vertical-align:middle;box-shadow:0 0 12px var(--accent)}.brand .tag{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-top:6px}.menu-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:24px}.tab{background:transparent;border:none;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:2px;padding:10px 16px;cursor:pointer;position:relative;font-family:inherit;transition:color .15s}.tab:hover,.tab.active{color:var(--fg)}.tab.active:after{content:"";position:absolute;bottom:-1px;left:12px;right:12px;height:2px;background:var(--accent);border-radius:2px}.tab-panel{display:none;min-height:220px}.tab-panel.active{display:block}.btn-primary,.btn-secondary{width:100%;padding:14px 20px;border-radius:8px;font-size:13px;font-weight:700;letter-spacing:3px;cursor:pointer;font-family:inherit;transition:transform .08s,background .15s,border-color .15s}.btn-primary{background:var(--accent);color:#03110a;border:1px solid var(--accent)}.btn-primary:hover{background:#5eea93}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--border);margin-top:10px}.btn-secondary:hover{border-color:var(--fg)}.hint{font-size:12px;color:var(--muted);margin-top:16px;line-height:1.5}.slider{display:block;margin-bottom:18px}.slider .label-row{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.slider .val{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.slider input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:4px;background:#ffffff14;border-radius:2px;outline:none}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:grab;box-shadow:0 0 8px var(--accent)}.slider input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:grab;border:none;box-shadow:0 0 8px var(--accent)}.check{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);cursor:pointer}.check input{accent-color:var(--accent)}.ctrl-grid{display:grid;grid-template-columns:110px 1fr;gap:8px 16px;font-size:13px}.ctrl-grid .key{font-family:JetBrains Mono,ui-monospace,monospace;background:#ffffff0a;border:1px solid var(--border);padding:6px 10px;border-radius:4px;text-align:center;font-size:11px;letter-spacing:1px}.ctrl-grid .desc{align-self:center;color:var(--muted)}.menu-foot{position:fixed;bottom:16px;left:0;right:0;text-align:center;font-size:10px;color:var(--muted);letter-spacing:2px}#hud{position:fixed;inset:0;pointer-events:none;z-index:10;font-family:Inter,system-ui,sans-serif}.crosshair{position:absolute;top:50%;left:50%;width:4px;height:4px;transform:translate(-50%,-50%);--gap: 6px;--color: rgba(74, 222, 128, .92)}.ch-line{position:absolute;background:var(--color);box-shadow:0 0 4px #000c;transition:transform .06s ease-out,background .15s}.ch-line.top{left:50%;top:50%;width:2px;height:7px;transform:translate(-50%,calc(-100% - var(--gap)))}.ch-line.bottom{left:50%;top:50%;width:2px;height:7px;transform:translate(-50%,var(--gap))}.ch-line.left{left:50%;top:50%;width:7px;height:2px;transform:translate(calc(-100% - var(--gap)),-50%)}.ch-line.right{left:50%;top:50%;width:7px;height:2px;transform:translate(var(--gap),-50%)}.ch-dot{position:absolute;left:50%;top:50%;width:2px;height:2px;background:var(--color);transform:translate(-50%,-50%);border-radius:50%;opacity:.7}.crosshair.firing{--color: rgba(255, 230, 102, .95)}.hitmarker{position:absolute;top:50%;left:50%;width:22px;height:22px;transform:translate(-50%,-50%) rotate(45deg);opacity:0;pointer-events:none}.hitmarker:before,.hitmarker:after{content:"";position:absolute;background:#fff}.hitmarker:before{left:50%;top:0;width:2px;height:100%;transform:translate(-50%)}.hitmarker:after{top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}.hitmarker.fire{animation:hitmark .25s ease-out}.hitmarker.kill:before,.hitmarker.kill:after{background:var(--danger)}@keyframes hitmark{0%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(1.4)}to{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(.9)}}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.45) 100%)}.bottom-left,.bottom-right,.top-left,.top-right{position:absolute;padding:28px 32px}.bottom-left{bottom:0;left:0}.bottom-right{bottom:0;right:0;text-align:right}.top-left{top:0;left:0}.top-right{top:0;right:0;text-align:right}.bar{position:relative;width:220px;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.bar .fill{position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),#6ee9a3);width:100%;transition:width .18s ease-out,background .3s;transform-origin:left}.bar.low .fill{background:linear-gradient(90deg,var(--warning),#ffd966)}.bar.crit .fill{background:linear-gradient(90deg,var(--danger),#ff7a87)}.bar span{position:absolute;bottom:12px;left:0;font-size:10px;letter-spacing:3px;color:var(--muted)}.ammo{font-size:38px;font-weight:700;letter-spacing:1px;font-variant-numeric:tabular-nums;text-shadow:0 2px 12px rgba(0,0,0,.6)}.ammo .sep{color:var(--muted);margin:0 6px;font-weight:400}.ammo .reserve{color:var(--muted);font-size:22px}.weapon-name{font-size:11px;letter-spacing:4px;color:var(--muted);margin-top:4px}.weapon-slots{display:flex;gap:4px;justify-content:flex-end;margin-top:8px}.weapon-slots .slot{width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:4px;font-size:11px;font-weight:700;color:var(--muted);background:#00000059;transition:all .15s}.weapon-slots .slot.active{color:#03110a;background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px #4ade8080}.weapon-slots .slot.empty{opacity:.3}.kill-count{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent);text-shadow:0 0 12px rgba(74,222,128,.4)}.kill-label{font-size:10px;letter-spacing:3px;color:var(--muted);margin-top:2px}.wave-num{font-size:14px;font-weight:700;letter-spacing:3px}.wave-num span{color:var(--accent)}.wave-bots{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:1.5px}.wave-bots .alive{color:var(--danger);font-weight:700}.damage-flash{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(255,60,80,.45) 110%);opacity:0;transition:opacity .4s;pointer-events:none}.damage-flash.hit{opacity:1;transition:opacity 0s}.minimap-wrap{position:absolute;top:100px;right:28px;width:180px;height:180px}#minimap{display:block;border-radius:6px;box-shadow:0 0 0 1px #4ade8040,0 8px 24px #0009}.minimap-label{position:absolute;bottom:-18px;right:0;font-size:9px;letter-spacing:3px;color:var(--muted)}.reload-indicator{position:absolute;bottom:100px;left:50%;transform:translate(-50%);text-align:center;opacity:0;transition:opacity .2s}.reload-indicator.active{opacity:1}.reload-track{width:140px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.reload-fill{height:100%;background:var(--accent);width:0;transition:width .05s linear}.reload-label{font-size:10px;letter-spacing:4px;color:var(--muted);margin-top:6px}.damage-direction{position:absolute;top:50%;left:50%;width:280px;height:280px;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .6s ease-out}.damage-direction.active{opacity:1;transition:opacity 0s}.damage-direction .arc{position:absolute;inset:0;border:5px solid transparent;border-top-color:#ff465ae6;border-radius:50%;filter:drop-shadow(0 0 8px rgba(255,60,80,.5))}.dmg-numbers{position:absolute;inset:0;pointer-events:none}.dmg-num{position:absolute;top:0;left:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:18px;font-weight:700;color:#ffe066;text-shadow:0 0 6px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.7);pointer-events:none;opacity:0;will-change:transform,opacity}.dmg-num.head{color:#f57;font-size:22px}.dmg-num.kill{color:#4ade80;font-size:26px;text-shadow:0 0 12px rgba(74,222,128,.6),0 1px 2px rgba(0,0,0,.7)}.wave-banner{position:absolute;top:22%;left:50%;transform:translate(-50%,-50%) scale(.95);text-align:center;opacity:0;pointer-events:none;transition:opacity .4s,transform .4s}.wave-banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.banner-line{font-size:13px;letter-spacing:8px;color:var(--muted)}.banner-num{font-size:96px;font-weight:800;letter-spacing:-2px;color:var(--accent);text-shadow:0 0 30px rgba(74,222,128,.5);line-height:.95}.banner-sub{font-size:14px;letter-spacing:6px;color:var(--fg);margin-top:4px}.banner-sub.danger{color:var(--danger)}.streak{position:absolute;top:14px;left:50%;transform:translate(-50%);font-size:13px;letter-spacing:5px;font-weight:700;color:var(--accent);text-shadow:0 0 12px rgba(74,222,128,.5);opacity:0;pointer-events:none;transition:opacity .25s}.streak.show{opacity:1}.kill-feed{position:absolute;top:30%;right:32px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.kill-feed .entry{background:#0000008c;border-left:2px solid var(--accent);padding:6px 12px;font-size:12px;letter-spacing:1px;animation:feed-in .3s ease-out}.kill-feed .entry .actor{color:var(--accent);font-weight:700}.kill-feed .entry .target{color:var(--danger)}@keyframes feed-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}#pause,#death{position:fixed;inset:0;display:grid;place-items:center;background:#05060ab3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:60}.pause-card,.death-card{width:min(380px,80vw);background:var(--card);border:1px solid var(--border);border-radius:12px;padding:30px}.pause-title,.death-title{font-size:20px;font-weight:800;letter-spacing:6px;margin-bottom:24px;text-align:center}.death-title{color:var(--danger)}.death-stats{display:flex;justify-content:space-around;margin-bottom:24px;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.death-stats>div{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:70px}.death-stats .num{font-size:28px;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.death-stats span:not(.num){font-size:10px;letter-spacing:2px;color:var(--muted)}.hi-score-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding:10px 14px;border:1px solid var(--border);border-radius:6px;font-size:12px;letter-spacing:3px;color:var(--muted)}.hi-score-line .hi-score-val{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.best-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;padding:14px 16px;background:#4ade800f;border:1px solid rgba(74,222,128,.2);border-radius:8px;font-size:12px;letter-spacing:3px;color:var(--muted)}.best-line .best-label{color:var(--accent);font-weight:700}.best-line .best-stat{color:var(--fg);font-weight:600}.best-line .best-stat span{color:var(--accent);margin-right:4px;font-variant-numeric:tabular-nums}
