:root{--red:#e5383b;--blue:#3a86ff;--yellow:#f6c10e;--panel:#0e1218d1;--panel-solid:#12171e;--text:#f1f4f8;--muted:#9aa6b2;--line:#ffffff1f;--accent:#f6c10e;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);background:#0b0f14;margin:0;overflow:hidden}body{-webkit-user-select:none;user-select:none}#game{position:fixed;inset:0}#game canvas{width:100%;height:100%;display:block}.hidden{display:none!important}button,select,input{font:inherit;color:inherit}button{border:1px solid var(--line);cursor:pointer;text-align:left;background:#232b36;border-radius:8px;padding:10px 14px;transition:background .12s,border-color .12s}button:hover{background:#2c3644;border-color:#ffffff40}button.primary{background:var(--accent);color:#1a1405;border-color:#0000;font-weight:700}button.primary:hover{background:#ffd23a}button.danger{background:#3a1d22;border-color:#6b2a33}button.ghost{background:0 0}button small{opacity:.7;font-size:12px;font-weight:400;display:block}input,select{border:1px solid var(--line);background:#0e1319;border-radius:8px;padding:9px 10px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.screen{z-index:20;background:radial-gradient(at 50% 30%,#141e2d8c,#05080ce0);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}#menu{background:linear-gradient(160deg,#0a0e148c,#0a0e14e6)}.menu-card{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;width:min(460px,100%);max-height:100%;padding:26px;overflow:auto;box-shadow:0 20px 60px #00000073}.menu-card.small{width:min(360px,100%)}.menu-card h2{letter-spacing:.5px;margin:0 0 14px;font-size:22px}.logo{letter-spacing:1px;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 6px;font-size:30px;font-weight:900;line-height:1.1;display:flex}.logo em{color:var(--accent);font-style:normal}.logo .b{border-radius:3px;width:14px;height:22px;margin-right:2px;display:inline-block}.logo .b.r{background:var(--red)}.logo .b.y{background:var(--yellow)}.logo .b.bl{background:var(--blue);margin-right:10px}.tagline{color:var(--muted);margin:0 0 18px;font-size:14px}.field{color:var(--muted);flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;display:flex}.menu-buttons{flex-direction:column;gap:8px;display:flex}.menu-buttons .row{gap:8px;display:flex}.menu-buttons .row>*{flex:1}#room-code{text-transform:uppercase;letter-spacing:3px;text-align:center;max-width:140px}.error{color:#ff7b7b;min-height:20px;margin-top:10px;font-size:14px}.hint{color:var(--muted);margin:12px 0 0;font-size:12px}.controls-help{color:var(--muted);border-top:1px solid var(--line);margin-top:14px;padding-top:12px;font-size:12px;line-height:1.6}.controls-help kbd{border:1px solid var(--line);color:var(--text);background:#222a33;border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:11px}#pause-room{color:var(--muted);margin-bottom:12px;font-size:14px}#pause-room b{color:var(--accent);letter-spacing:2px;font-size:18px}.settings-grid{grid-template-columns:1fr 1fr;align-items:center;gap:10px 14px;margin-bottom:18px;font-size:14px;display:grid}.settings-grid label{color:var(--muted)}.settings-grid label small{opacity:.8;font-size:11px;display:block}.settings-grid .val{color:var(--text);font-variant-numeric:tabular-nums;margin-left:4px}.settings-grid input[type=checkbox]{justify-self:start;width:20px;height:20px}@media (max-width:520px){.settings-grid{grid-template-columns:1fr}}#loading{flex-direction:column;gap:14px}.spinner{border:4px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#click-to-play{z-index:15;background:var(--panel);border:1px solid var(--line);pointer-events:none;border-radius:8px;padding:10px 18px;font-weight:600;position:fixed;top:60%;left:50%;transform:translate(-50%)}#hud{pointer-events:none;z-index:10;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #0009;position:fixed;inset:0}#crosshair{--gap:6px;--len:7px;--col:#7dff7a;width:0;height:0;position:absolute;top:50%;left:50%}#crosshair i{background:var(--col);position:absolute;box-shadow:0 0 0 1px #0000008c}#crosshair .c-t,#crosshair .c-b{width:2px;height:var(--len);left:-1px}#crosshair .c-l,#crosshair .c-r{height:2px;width:var(--len);top:-1px}#crosshair .c-t{bottom:var(--gap)}#crosshair .c-b{top:var(--gap)}#crosshair .c-l{right:var(--gap)}#crosshair .c-r{left:var(--gap)}#crosshair .c-dot{width:2px;height:2px;top:-1px;left:-1px}#hitmarker{opacity:0;position:absolute;top:50%;left:50%}#hitmarker i{background:#fff;width:2px;height:9px;position:absolute;top:-4.5px;left:-1px;box-shadow:0 0 2px #000c}#hitmarker i:first-child{transform:rotate(45deg)translateY(-12px)}#hitmarker i:nth-child(2){transform:rotate(135deg)translateY(-12px)}#hitmarker i:nth-child(3){transform:rotate(225deg)translateY(-12px)}#hitmarker i:nth-child(4){transform:rotate(315deg)translateY(-12px)}#hitmarker.kill i{background:#ff4040;height:13px}#hitmarker.show{animation:.35s ease-out forwards hm}@keyframes hm{0%{opacity:1;transform:scale(1.25)}to{opacity:0;transform:scale(1)}}#dmg-ind{width:0;height:0;position:absolute;top:50%;left:50%}#dmg-ind .arc{transform-origin:60px 110px;border-top:6px solid #ff2828d9;border-radius:50% 50% 0 0/100% 100% 0 0;width:120px;height:30px;animation:1.2s ease-out forwards dmgfade;position:absolute;top:-110px;left:-60px}@keyframes dmgfade{0%{opacity:1}to{opacity:0}}#scope{position:absolute;inset:0}#scope .scope-ring{background:radial-gradient(circle,#0000 0 calc(46vmin - 1px),#000000e6 46vmin,#000 calc(46vmin + 6px));width:200vmax;height:200vmax;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#scope .scope-h{background:#000;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-.5px)}#scope .scope-v{background:#000;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-.5px)}#top-bar{align-items:stretch;gap:6px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}#top-bar .score{text-align:center;border-radius:6px;min-width:58px;padding:2px 10px;font-size:26px;font-weight:800}#top-bar .score.red{background:#e5383bd9}#top-bar .score.blue{background:#3a86ffd9}#timer{background:var(--panel);text-align:center;border-radius:6px;min-width:84px;padding:4px 14px;font-size:22px;font-weight:700}#killfeed{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:12px;right:14px}.kf{background:#0a0e14b8;border-radius:5px;align-items:center;gap:8px;padding:4px 10px;font-size:14px;font-weight:600;animation:.15s ease-out kfin;display:flex}.kf.me{border:1px solid #ffffffb3}.kf .red{color:#ff6b6e}.kf .blue{color:#6ea8ff}.kf .none{color:#e9e9e9}.kf .gun{opacity:.85;background:linear-gradient(90deg,#ddd 0 70%,#0000 70% 74%,#ddd 74%);border-radius:2px;width:34px;height:8px}.kf .hs{color:#111;background:#fff;border-radius:3px;padding:0 4px;font-size:11px}@keyframes kfin{0%{opacity:0;transform:translate(20px)}}#netinfo{color:#d9e2ea;background:#00000040;border-radius:4px;gap:10px;padding:2px 6px;font-size:12px;display:flex;position:absolute;top:10px;left:12px}#netinfo:empty{display:none}#health-box{background:var(--panel);border-radius:8px;align-items:baseline;gap:10px;padding:6px 14px;display:flex;position:absolute;bottom:18px;left:22px}#health-box .label{color:var(--muted);letter-spacing:1px;font-size:12px}#health{font-size:34px;font-weight:800}#health.low{color:#ff5a5a}#ammo-box{background:var(--panel);border-radius:8px;align-items:baseline;gap:6px;padding:6px 14px;display:flex;position:absolute;bottom:18px;right:22px}#ammo{font-size:34px;font-weight:800}#ammo.empty{color:#ff5a5a}#ammo-box .sep,#reserve{color:var(--muted);font-size:20px}#ammo-state{color:var(--accent);letter-spacing:1px;margin-left:6px;font-size:12px}#notice{opacity:0;white-space:nowrap;font-size:18px;font-weight:700;transition:opacity .2s;position:absolute;top:62%;left:50%;transform:translate(-50%)}#notice.show{opacity:1}#center-msg{white-space:nowrap;letter-spacing:1px;background:#00000059;border-radius:10px;padding:8px 22px;font-size:clamp(18px,3.2vw,30px);font-weight:900;position:absolute;top:24%;left:50%;transform:translate(-50%)}#death{text-align:center;background:#0a0a0e99;border-radius:10px;padding:14px 30px;position:absolute;top:30%;left:50%;transform:translate(-50%)}#death-title{color:#ff5a5a;letter-spacing:2px;font-size:28px;font-weight:900}#death-sub{margin-top:6px;font-size:16px}#death-timer{color:var(--muted);margin-top:6px}#training-info{background:var(--panel);border-radius:8px;padding:6px 16px;font-size:15px;position:absolute;top:12px;left:50%;transform:translate(-50%)}#scoreboard,#endscreen{z-index:12;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#scoreboard{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(860px,100% - 32px);max-height:calc(100% - 40px);padding:18px;overflow:auto}.sb-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}#sb-title{font-size:20px;font-weight:800}#sb-room{color:var(--muted);font-size:14px}#sb-room b{color:var(--accent);letter-spacing:2px}#sb-body{grid-template-columns:1fr 1fr;gap:14px;display:grid}#sb-body.single{grid-template-columns:1fr}@media (max-width:700px){#sb-body{grid-template-columns:1fr}}.sb-team h3{border-radius:6px;justify-content:space-between;margin:0 0 6px;padding:6px 10px;font-size:16px;display:flex}.sb-team.red h3{background:#e5383bcc}.sb-team.blue h3{background:#3a86ffcc}.sb-team.none h3{background:#2a3340}.sb-team table{border-collapse:collapse;width:100%;font-size:14px}.sb-team th{color:var(--muted);text-align:right;padding:4px 8px;font-size:12px;font-weight:600}.sb-team th:first-child,.sb-team td:first-child{text-align:left}.sb-team td{text-align:right;border-top:1px solid var(--line);padding:5px 8px}.sb-team tr.me td{background:#f6c10e24}.sb-team tr.dead td:first-child{opacity:.5}#endscreen{z-index:13;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 40px;top:18%;transform:translate(-50%)}#end-title{letter-spacing:1px;font-size:34px;font-weight:900}#end-title.red{color:#ff6b6e}#end-title.blue{color:#6ea8ff}#end-sub{color:var(--muted);margin-top:6px}#endscreen+#scoreboard{top:60%}.create-box{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.create-box select{min-width:0;padding:7px 8px;font-size:13px}.check{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.check input{flex:none;width:auto}#room-list-box{border:1px solid var(--line);border-radius:10px;padding:8px}.room-list-head{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:6px;font-size:12px}#room-list{flex-direction:column;gap:4px;font-size:13px;display:flex}#room-list .muted{color:var(--muted)}.room-row{text-align:left;justify-content:space-between;gap:10px;padding:6px 10px;font-size:13px;display:flex}.room-row span{color:var(--muted)}#weapon-bar{flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;display:flex;position:absolute;bottom:74px;right:22px}#weapon-bar span{color:var(--muted);background:#0a0e1480;border-radius:6px;padding:3px 9px}#weapon-bar span b{margin-right:7px;font-weight:700}#weapon-bar span.on{background:var(--panel);color:#fff;outline:1px solid var(--accent)}.kf .hs.knife{background:#ffd23a}.kf .hs.pistol{background:#cfd6de}#ammo-box.melee .sep{display:none}#vignette{background:radial-gradient(#0000 58%,#00000052 100%);position:absolute;inset:0}#hurt{opacity:0;background:radial-gradient(#0000 35%,#c800008c 100%);position:absolute;inset:0}#hurt.flash{animation:.55s ease-out hurtflash}#hurt.low{animation:1.1s ease-in-out infinite hurtlow}@keyframes hurtflash{0%{opacity:1}to{opacity:0}}@keyframes hurtlow{0%,to{opacity:.18}50%{opacity:.45}}#game canvas{transition:filter .5s}#game.dead canvas{filter:grayscale(.85)brightness(.8)contrast(1.05)}
