:root{--fg: #f4f6fa;--dim: rgba(244, 246, 250, .6);--accent: #ff8a3d;--danger: #ff3b30;--ok: #7ee081;--panel: rgba(10, 14, 24, .55);font-family:Chakra Petch,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#05070d;color:var(--fg)}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;-webkit-user-select:none;user-select:none}#hud>*{position:absolute}#scope{top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .06s;--r: min(42vh, 42vw)}#scope .hole{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,transparent 0,transparent calc(var(--r) - 3px),#000 calc(var(--r) - 1px),#000 100%)}#scope i{position:absolute;left:50%;top:50%;background:#000000d9}#scope .h{width:calc(var(--r) * 2);height:1px;transform:translate(-50%,-50%)}#scope .v{width:1px;height:calc(var(--r) * 2);transform:translate(-50%,-50%)}#scope:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:#ff3020;transform:translate(-50%,-50%);box-shadow:0 0 4px #ff3020}#crosshair{left:50%;top:50%;--gap: 8px;transition:opacity .1s}#crosshair i{position:absolute;background:var(--fg);box-shadow:0 0 2px #000000e6}#crosshair .t,#crosshair .b{width:2px;height:9px;left:-1px}#crosshair .l,#crosshair .r{width:9px;height:2px;top:-1px}#crosshair .t{bottom:var(--gap)}#crosshair .b{top:var(--gap)}#crosshair .l{right:var(--gap)}#crosshair .r{left:var(--gap)}#crosshair .dot{width:2px;height:2px;left:-1px;top:-1px}#crosshair.enemy i{background:var(--danger)}#hitmarker{left:50%;top:50%;opacity:0;transition:opacity .08s}#hitmarker i{position:absolute;width:10px;height:2px;background:#fff;box-shadow:0 0 3px #000}#hitmarker i:nth-child(1){transform:translate(5px,5px) rotate(45deg)}#hitmarker i:nth-child(2){transform:translate(-15px,5px) rotate(-45deg)}#hitmarker i:nth-child(3){transform:translate(5px,-7px) rotate(-45deg)}#hitmarker i:nth-child(4){transform:translate(-15px,-7px) rotate(45deg)}#hitmarker.head i{background:#ffd23d}#hitmarker.kill i{background:var(--danger);width:14px}#reload-ring{left:50%;top:50%;width:56px;height:56px;transform:translate(-50%,-50%) rotate(-90deg);opacity:0}#reload-ring circle{fill:none;stroke-width:2.5}#reload-ring .track{stroke:#ffffff26}#reload-arc{stroke:var(--accent);stroke-linecap:round}#dmg-indicator{left:50%;top:50%;width:260px;height:260px;opacity:0;transform:translate(-50%,-50%)}#dmg-indicator .arc{position:absolute;left:50%;top:0;width:110px;height:30px;transform:translate(-50%);border-top:6px solid var(--danger);border-radius:50% 50% 0 0/100% 100% 0 0;filter:drop-shadow(0 0 6px rgba(255,40,30,.8))}#topleft{left:20px;top:16px;display:flex;flex-direction:column;gap:4px;text-shadow:0 1px 3px #000}#score{font-size:15px;letter-spacing:.06em;color:var(--dim)}#score b{color:var(--fg);font-size:20px}#clock{font-size:15px;color:var(--dim);letter-spacing:.08em}#enemy{left:50%;top:18px;transform:translate(-50%);width:240px;text-align:center;opacity:0;transition:opacity .3s}#enemy .name{font-size:13px;letter-spacing:.25em;color:var(--accent);text-shadow:0 1px 3px #000}#enemy .bar{height:6px;margin-top:4px;background:#00000080;border:1px solid rgba(255,255,255,.2)}#enemy-fill{height:100%;background:var(--accent);transition:width .15s}#killfeed{right:20px;top:16px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:14px}#killfeed div{background:var(--panel);padding:4px 10px;border-radius:3px;transition:opacity 1s}#killfeed div.fade{opacity:0}#killfeed .you{color:#7cc4ff;font-weight:700}#killfeed .bot{color:var(--accent);font-weight:700}#killfeed .pickup{color:#ffd23d;font-weight:700}#center-msg{left:50%;top:32%;transform:translate(-50%);text-align:center;font-size:34px;font-weight:700;letter-spacing:.18em;text-shadow:0 2px 10px rgba(0,0,0,.8);opacity:0;transition:opacity .3s}#center-msg small{display:block;font-size:15px;letter-spacing:.1em;color:var(--dim);margin-top:6px}#health{left:20px;bottom:20px;display:flex;align-items:center;gap:10px;background:var(--panel);padding:10px 14px;border-radius:4px}#health .label{font-size:13px;color:var(--dim);letter-spacing:.1em}#health .bar{width:200px;height:10px;background:#ffffff1f}#health-fill{height:100%;background:var(--ok);transition:width .15s}#health-fill.low{background:var(--danger)}#medkits{font-size:18px;font-weight:700;color:#ff5a5a;margin-left:4px;padding-left:12px;border-left:1px solid rgba(255,255,255,.2)}#medkits.empty{color:#ffffff4d}#reload-ring.heal #reload-arc{stroke:var(--ok)}#reload-ring.air #reload-arc{stroke:#c07bff}#killfeed .heal{color:var(--ok);font-weight:700}#health-num{font-size:24px;font-weight:700;min-width:42px;text-align:right}#weapon{right:20px;bottom:20px;text-align:right;background:var(--panel);padding:10px 16px;border-radius:4px}#slots{display:flex;gap:10px;justify-content:flex-end;font-size:12px;color:#ffffff59;letter-spacing:.08em}#slots span.active{color:var(--accent)}#ammo{margin-top:2px}#ammo-mag{font-size:40px;font-weight:700;line-height:1}#ammo-mag.low{color:var(--danger)}#ammo-res{font-size:18px;color:var(--dim);margin-left:6px}#weapon-name{font-size:12px;letter-spacing:.2em;color:var(--dim);margin-top:2px}#vignette{top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(ellipse at center,#0000 45%,#b400008c)}#burn{top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(ellipse at center,#0000 40%,#ff6e1459 75%,#ff3c00b3)}#towers{left:50%;top:14px;transform:translate(-50%);display:none;gap:10px}body.team-mode #towers{display:flex}body.team-mode #enemy{top:72px}.tower-row{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;min-width:130px;background:var(--panel);padding:6px 10px;border-radius:4px;border-top:3px solid var(--team)}.tower-row.mine{box-shadow:0 0 0 1px var(--team)}.tower-row .tname{font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--team)}.tower-row .tkills{font-size:12px;color:var(--dim);text-align:right}.tower-row .tbar{grid-column:1 / -1;height:6px;background:#ffffff1f}.tower-row .tfill{height:100%;background:var(--team);transition:width .15s}.tower-row.hit .tfill{background:#fff}.tower-row.dead{opacity:.45}.tower-row.dead .tname{text-decoration:line-through}#killfeed .name{font-weight:700}.range-only{display:none}body.range-mode #range-panel,body.range-mode #range-timer{display:block}#range-panel{margin-top:6px;background:var(--panel);padding:8px 12px;border-radius:4px;font-size:13px;color:var(--dim);line-height:1.6}#range-panel b{color:var(--fg)}#range-panel .hint{margin-top:4px;color:var(--accent);font-size:12px}#range-timer{left:50%;top:14px;transform:translate(-50%);text-align:center;text-shadow:0 2px 8px rgba(0,0,0,.8)}#range-timer .time{font-size:40px;font-weight:700;line-height:1}#range-timer .time.low{color:var(--danger)}#range-timer .score{font-size:15px;letter-spacing:.12em;color:var(--accent)}#mode-picker,#result{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;overflow-y:auto;background:radial-gradient(ellipse at center,#0c1222f5,#04060c)}#mode-picker.hidden,#result.hidden{display:none}#result{background:radial-gradient(ellipse at center,#05081099,#050810eb)}.panel.wide{max-width:640px}#mode-picker h1,#result h1{margin:0;font-size:56px;letter-spacing:.14em;text-align:center;text-shadow:0 0 30px rgba(255,138,61,.45)}#mode-picker .sub,#result .sub{text-align:center;color:var(--accent);letter-spacing:.2em;font-size:14px;text-transform:uppercase;margin:4px 0 24px}.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.mode-card{display:flex;flex-direction:column;gap:8px;text-align:left;padding:18px;cursor:pointer;font-family:inherit;color:var(--fg);background:#ffffff0d;border:1px solid rgba(255,255,255,.18);border-radius:6px}.mode-card:hover,.mode-card.selected{border-color:var(--accent);background:#ff8a3d14}.mode-name{font-size:22px;font-weight:700;letter-spacing:.12em}.mode-desc{font-size:13px;color:var(--dim);line-height:1.45}#team-setup{margin-top:20px;display:grid;gap:12px;justify-items:center}#team-setup.hidden{display:none}.stepper{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--dim)}.stepper span{min-width:130px;text-align:right}.stepper b{min-width:24px;text-align:center;font-size:22px;color:var(--fg)}.stepper button,.bots button{width:34px;height:34px;font-family:inherit;font-size:20px;font-weight:700;line-height:1;cursor:pointer;color:var(--fg);background:#ffffff14;border:1px solid rgba(255,255,255,.3);border-radius:4px}.stepper button:hover{border-color:var(--accent);color:var(--accent)}#team-preview{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.chip{padding:4px 10px;border-radius:999px;border:1px solid var(--team);color:var(--team);font-size:12px;font-weight:700;letter-spacing:.08em}.chip small{color:var(--dim);font-weight:500;letter-spacing:0}button.primary,#result .buttons button{font-family:inherit;font-size:17px;font-weight:700;letter-spacing:.16em;padding:12px 28px;cursor:pointer;color:#10131a;background:var(--accent);border:none;border-radius:4px;box-shadow:0 0 24px #ff8a3d66}button.ghost,#result .buttons button.ghost{font-family:inherit;font-size:13px;font-weight:700;letter-spacing:.16em;padding:10px 22px;cursor:pointer;color:var(--dim);background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:4px;box-shadow:none}#to-menu{display:block;margin:12px auto 0}#result .panel{text-align:center}#result h1.win{color:var(--ok)}#result h1.lose{color:var(--danger)}#result .stats{display:flex;gap:28px;justify-content:center;margin-bottom:24px}#result .stats b{display:block;font-size:32px}#result .stats span{font-size:12px;color:var(--dim);letter-spacing:.12em;text-transform:uppercase}#result .buttons{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}#menu{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;overflow-y:auto;background:radial-gradient(ellipse at center,#0508108c,#050810e6)}#menu.hidden{display:none}#menu .panel{max-width:560px;width:100%;text-align:center}#menu h1{margin:0;font-size:56px;letter-spacing:.14em;color:var(--fg);text-shadow:0 0 30px rgba(255,138,61,.45)}#menu .sub{margin:4px 0 22px;color:var(--accent);letter-spacing:.2em;font-size:14px;text-transform:uppercase}.controls{display:grid;gap:6px;font-size:14px;color:var(--dim);margin-bottom:20px}kbd{display:inline-block;min-width:24px;padding:2px 6px;margin:0 2px;border:1px solid rgba(255,255,255,.3);border-bottom-width:2px;border-radius:4px;font-family:inherit;font-size:12px;color:var(--fg)}#bot-count{font-size:13px;color:var(--accent);letter-spacing:.08em}.bots{display:flex;align-items:center;justify-content:center;gap:12px;font-size:14px;color:var(--dim);margin-bottom:14px}.bots button{width:34px;height:34px;font-family:inherit;font-size:20px;font-weight:700;line-height:1;cursor:pointer;color:var(--fg);background:#ffffff14;border:1px solid rgba(255,255,255,.3);border-radius:4px}.bots button:hover{border-color:var(--accent);color:var(--accent)}#bot-count-menu{min-width:20px;font-size:22px;font-weight:700;color:var(--fg)}.toggle{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--dim);margin-bottom:14px;cursor:pointer}.toggle input{accent-color:var(--accent);width:16px;height:16px}.toggle span{color:#ffffff59}.sens{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;color:var(--dim);margin-bottom:18px}.sens input{accent-color:var(--accent);width:160px}#play{font-family:inherit;font-size:18px;font-weight:700;letter-spacing:.18em;padding:14px 34px;cursor:pointer;color:#10131a;background:var(--accent);border:none;border-radius:4px;box-shadow:0 0 24px #ff8a3d66}#play:disabled{opacity:.6;cursor:wait}#play:not(:disabled):hover{filter:brightness(1.1)}.hint{font-size:12px;color:#fff6;margin-top:18px}body.started .start-only{display:none}body:not(.mode-range) .range-g{display:none}.menu-section{font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--accent);margin:0 0 8px}.loadout{display:grid;gap:10px;margin-bottom:18px;text-align:left}.lo-row{display:grid;gap:6px}.lo-label{font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--fg)}.lo-label small{font-weight:500;letter-spacing:.04em;color:var(--dim);margin-left:6px}.lo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.lo-card{position:relative;display:flex;flex-direction:column;gap:4px;padding:10px 12px;cursor:pointer;text-align:left;font-family:inherit;color:var(--fg);background:#ffffff0d;border:1px solid rgba(255,255,255,.18);border-radius:6px}.lo-card:hover{border-color:#ff8a3d99}.lo-card.on{border-color:var(--accent);background:#ff8a3d1f}.lo-card kbd{position:absolute;top:8px;right:8px;color:var(--accent);border-color:var(--accent)}.lo-name{font-size:14px;font-weight:700;letter-spacing:.08em;padding-right:28px}.lo-desc{font-size:11px;color:var(--dim);line-height:1.35}#loadout-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:16px;overflow-y:auto;z-index:20;background:radial-gradient(ellipse at center,#05081099,#050810eb)}#loadout-overlay.hidden{display:none}#loadout-overlay .panel{max-width:560px;width:100%;text-align:center}#loadout-overlay h1{margin:0;font-size:44px;letter-spacing:.14em;text-shadow:0 0 30px rgba(255,138,61,.45)}#loadout-overlay .sub{margin:4px 0 18px;color:var(--accent);letter-spacing:.2em;font-size:13px;text-transform:uppercase}#loadout-overlay .buttons{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}#center-msg small kbd{font-size:11px}#death-actions{position:fixed;left:50%;top:calc(32% + 110px);transform:translate(-50%);z-index:12}#death-actions.hidden{display:none}#death-actions{display:flex;flex-direction:column;align-items:center;gap:6px}.death-hint{font-size:12px;letter-spacing:.16em;color:var(--dim);text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.8)}.team-only{display:none}body.team-mode .team-only{display:block}#coins{position:relative;margin-top:6px;font-size:15px;font-weight:700;letter-spacing:.1em;color:#ffd23d;text-shadow:0 1px 6px rgba(0,0,0,.8)}.coin-pop{position:absolute;left:100%;margin-left:8px;top:0;color:#ffd23d;animation:coinpop 1.2s ease-out forwards}@keyframes coinpop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-18px)}}#shop-prompt{position:fixed;left:50%;bottom:120px;transform:translate(-50%);padding:8px 16px;border-radius:4px;background:var(--panel);border:1px solid #3d8bff;font-size:14px;letter-spacing:.08em;color:var(--fg)}#shop-prompt.hidden,#shop.hidden{display:none}#shop{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:12;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto}.shop-panel{background:#0a0e18e0;border:1px solid #3d8bff;border-radius:6px;padding:16px;display:grid;gap:12px}.shop-title{font-size:16px;font-weight:700;letter-spacing:.18em;color:#7cc4ff}#shop-cards{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.shop-card{align-content:start}.shop-card{display:grid;gap:8px;padding:12px;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15)}.shop-head{display:flex;justify-content:space-between;align-items:center;letter-spacing:.1em}.pips{display:flex;gap:4px}.pips i{width:14px;height:6px;border-radius:2px;background:#fff3}.pips i.on{background:#3d8bff;box-shadow:0 0 6px #3d8bff}.shop-next{font-size:12px;color:var(--dim);line-height:1.45}.shop-card button{font-size:14px;padding:9px 14px}.shop-card button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}#shop-close{justify-self:center}.tlv{font-size:11px;color:#ffd23d;letter-spacing:.06em;margin-left:6px}#touch-ui,.touch-help{display:none}body.touch{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body.touch .controls{display:none}body.touch .touch-help{display:block;font-size:13px;color:var(--dim);line-height:1.5;margin-bottom:16px}body.touch #hud{z-index:5}body.touch #weapon{pointer-events:auto}body.touch #slots span{padding:6px 4px}body.touch #menu,body.touch #mode-picker,body.touch #result,body.touch #loadout-overlay{z-index:30}body.touch.playing #touch-ui{display:block}#touch-ui{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4}#t-layer{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none}#t-stick{position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#ffffff14;pointer-events:none;display:none}#t-stick.on{display:block}#t-stick .knob{position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;background:#ffffff73;transform:translate(-50%,-50%)}#touch-ui button{position:absolute;border-radius:50%;font-family:inherit;font-weight:700;letter-spacing:.08em;color:var(--fg);background:#0a0e1873;border:2px solid rgba(255,255,255,.4);touch-action:none;-webkit-tap-highlight-color:transparent}#touch-ui button:active,#touch-ui button.active{background:#ff8a3d73;border-color:var(--accent)}#t-fire{right:calc(28px + env(safe-area-inset-right));bottom:70px;width:100px;height:100px;font-size:16px;border-color:#ff5a3ccc!important}#t-aim{right:calc(146px + env(safe-area-inset-right));bottom:46px;width:66px;height:66px;font-size:13px}#t-jump{right:calc(46px + env(safe-area-inset-right));bottom:190px;width:66px;height:66px;font-size:13px}#t-reload{right:calc(140px + env(safe-area-inset-right));bottom:136px;width:54px;height:54px;font-size:18px}#t-med{right:calc(126px + env(safe-area-inset-right));bottom:210px;width:50px;height:50px;font-size:20px;color:#ff5a5a!important}#t-pause{right:calc(12px + env(safe-area-inset-right));top:12px;width:44px;height:44px;font-size:12px}#t-shop,#t-loadout{left:50%;bottom:150px;transform:translate(-50%);border-radius:22px!important;padding:10px 22px;font-size:14px;border-color:#3d8bff!important}#t-shop.hidden,#t-loadout.hidden{display:none}body.touch #weapon{top:64px;bottom:auto;right:calc(12px + env(safe-area-inset-right));padding:6px 12px}body.touch #ammo-mag{font-size:28px}body.touch #health{left:50%;bottom:12px;transform:translate(-50%);padding:6px 10px}body.touch #health .bar{width:120px}body.touch #killfeed{right:auto;left:calc(16px + env(safe-area-inset-left));top:120px;align-items:flex-start;font-size:12px}body.touch #topleft{left:calc(16px + env(safe-area-inset-left))}body.touch #shop-prompt{display:none}
