*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#000;color:#fff;font-family:Courier New,Consolas,monospace;user-select:none;-webkit-user-select:none}#app{position:relative;width:100vw;height:100vh;overflow:hidden}#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#hud,#menu,#crosshair,#hitmarker,#damage-vignette{position:fixed;inset:0;pointer-events:none;z-index:10}.hud-scoreboard{position:fixed;top:0;left:50%;transform:translate(-50%);display:flex;align-items:stretch;font-size:16px;font-weight:700;letter-spacing:1px;background:#0000008c;border:1px solid rgba(255,255,255,.08);border-top:none;border-radius:0 0 4px 4px;overflow:hidden;pointer-events:none;z-index:11}.hud-scoreboard .team-score{display:flex;align-items:center;gap:8px;padding:8px 18px;min-width:88px;justify-content:center}.hud-scoreboard .team-score.t{background:linear-gradient(180deg,#ffa50040,#ffa5000d);color:orange;border-right:1px solid rgba(255,255,255,.08)}.hud-scoreboard .team-score.ct{background:linear-gradient(180deg,#4fc3f740,#4fc3f70d);color:#4fc3f7;border-left:1px solid rgba(255,255,255,.08)}.hud-scoreboard .team-score .label{font-size:12px;opacity:.75;letter-spacing:2px}.hud-scoreboard .team-score .num{font-size:22px;font-weight:800;min-width:22px;text-align:center}.hud-scoreboard .center{padding:6px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000b3;color:#fff;min-width:180px;line-height:1.25}.hud-scoreboard .center .round{font-size:13px;color:#ffd580;letter-spacing:1.5px}.hud-scoreboard .center .timer{font-size:22px;font-weight:800;letter-spacing:2px}.hud-scoreboard .center .phase{font-size:11px;opacity:.7;letter-spacing:3px}.hud-scoreboard .center .phase.live{color:#ff5252}.hud-scoreboard .center .phase.buy{color:orange}.hud-scoreboard .center .phase.warmup,.hud-scoreboard .center .phase.end{color:#b0bec5}.hud-scoreboard .center .phase.matchover{color:#ffeb3b}.hud-top-stripe{position:fixed;top:0;height:4px;width:22%;pointer-events:none;z-index:10;opacity:.85}.hud-top-stripe.t{left:0;background:orange}.hud-top-stripe.ct{right:0;background:#4fc3f7}.hud-health{position:fixed;left:24px;bottom:24px;font-size:16px;pointer-events:none;z-index:11;display:flex;align-items:flex-end;gap:14px;color:#fff}.hud-health .hp-block{display:flex;align-items:baseline;gap:6px}.hud-health .hp{font-size:56px;font-weight:800;color:#fff;line-height:1;text-shadow:0 2px 4px rgba(0,0,0,.7)}.hud-health .hp.low{color:#ff5252}.hud-health .hp.crit{color:#ff1744;animation:pulse .6s infinite}.hud-health .plus{font-size:18px;opacity:.8;align-self:center;padding-bottom:8px}.hud-health .armor{font-size:28px;font-weight:700;color:#4fc3f7;line-height:1;align-self:center;padding-bottom:8px}.hud-health .armor.zero{color:#777}.hud-health .helmet{display:inline-block;width:18px;height:14px;border:2px solid #4FC3F7;border-radius:4px 4px 0 0;position:relative;align-self:center;margin-bottom:14px}.hud-health .helmet:after{content:"";position:absolute;left:-3px;right:-3px;bottom:-4px;height:3px;background:#4fc3f7;border-radius:2px}.hud-health .helmet.none{border-color:#555;opacity:.3}.hud-health .helmet.none:after{background:#555}.hud-ammo{position:fixed;bottom:24px;left:50%;transform:translate(-50%);font-size:16px;text-align:right;pointer-events:none;z-index:11;color:#fff}.hud-ammo .weapon-name{font-size:16px;font-weight:700;color:#ffd580;margin-bottom:4px;letter-spacing:1.5px}.hud-ammo .counts{display:flex;align-items:baseline;justify-content:flex-end;gap:6px;line-height:1}.hud-ammo .mag{font-size:48px;font-weight:800;color:#fff}.hud-ammo .mag.reloading{color:orange}.hud-ammo .mag.empty{color:#ff5252}.hud-ammo .sep{font-size:36px;opacity:.5}.hud-ammo .reserve{font-size:24px;color:#b0bec5;font-weight:600}.hud-ammo .reload-bar{height:3px;width:100%;background:#ffffff1a;margin-top:4px;border-radius:2px;overflow:hidden}.hud-ammo .reload-bar>div{height:100%;background:orange;width:0%;transition:width .05s linear}.hud-money{position:fixed;right:24px;bottom:24px;text-align:right;pointer-events:none;z-index:11;color:#fff}.hud-money .amount{font-size:28px;font-weight:800;color:#69f0ae;line-height:1}.hud-money .kda{margin-top:6px;font-size:14px;color:#b0bec5;letter-spacing:1px}.hud-money .kda .k{color:#69f0ae}.hud-money .kda .d{color:#ff5252}.hud-money .kda .a{color:#ffd580}#crosshair{position:fixed;top:50%;left:50%;width:0;height:0;pointer-events:none;z-index:20;color:transparent;font-size:0;line-height:0;overflow:visible}#crosshair .l,#crosshair .r,#crosshair .t,#crosshair .b{position:absolute;background:#fff;box-shadow:0 0 0 1px #000c}#crosshair .t{left:-1px;top:-16px;width:2px;height:8px}#crosshair .b{left:-1px;top:8px;width:2px;height:8px}#crosshair .l{left:-16px;top:-1px;width:8px;height:2px}#crosshair .r{left:8px;top:-1px;width:8px;height:2px}#crosshair.hit{animation:crosshit .18s ease-out}@keyframes crosshit{0%{transform:translate(-50%,-50%) scale(1)}40%{transform:translate(-50%,-50%) scale(1.4)}to{transform:translate(-50%,-50%) scale(1)}}.hud-killfeed{position:fixed;top:16px;left:16px;display:flex;flex-direction:column;gap:4px;pointer-events:none;z-index:12;font-size:14px;max-width:360px}.hud-killfeed .kill-row{display:flex;align-items:center;gap:6px;padding:3px 8px;background:#0000008c;border-left:3px solid #FFA500;border-radius:2px;color:#fff;animation:killfadeout .4s linear 4.6s forwards}.hud-killfeed .kill-row.ct{border-left-color:#4fc3f7}.hud-killfeed .killer{font-weight:700}.hud-killfeed .killer.t{color:orange}.hud-killfeed .killer.ct{color:#4fc3f7}.hud-killfeed .victim.t{color:orange}.hud-killfeed .victim.ct{color:#4fc3f7}.hud-killfeed .weapon-icon{display:inline-block;font-size:12px;padding:0 4px;background:#ffffff1f;border-radius:2px;color:#ffd580;font-weight:600}.hud-killfeed .hs{color:#ff1744;font-weight:800;text-shadow:0 0 4px rgba(255,23,68,.7)}@keyframes killfadeout{to{opacity:0;transform:translate(-12px)}}.hud-tab-board{position:fixed;top:16px;right:16px;width:460px;background:#000000d9;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:12px 16px;font-size:13px;pointer-events:none;z-index:13;display:none}.hud-tab-board.open{display:block}.hud-tab-board h3{margin:0 0 8px;font-size:14px;letter-spacing:2px;text-align:center;font-weight:700}.hud-tab-board h3.t{color:orange}.hud-tab-board h3.ct{color:#4fc3f7}.hud-tab-board table{width:100%;border-collapse:collapse;font-size:12px}.hud-tab-board th,.hud-tab-board td{text-align:left;padding:3px 6px;border-bottom:1px solid rgba(255,255,255,.05)}.hud-tab-board th{color:#888;font-weight:600;letter-spacing:1px;font-size:11px}.hud-tab-board tr.local td{background:#ffffff0d;font-weight:700}.hud-tab-board tr.dead td{color:#666;font-style:italic}.round-banner{position:fixed;top:38%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:25;opacity:0;transition:opacity .3s ease}.round-banner.show{opacity:1}.round-banner .title{font-size:44px;font-weight:800;letter-spacing:4px;text-shadow:0 4px 12px rgba(0,0,0,.8)}.round-banner.t .title{color:orange}.round-banner.ct .title{color:#4fc3f7}.round-banner .reason{font-size:18px;margin-top:8px;color:#fff;letter-spacing:2px;opacity:.85}.action-status{position:fixed;top:58%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:22;color:#fff;font-size:22px;font-weight:700;letter-spacing:3px;text-shadow:0 2px 6px rgba(0,0,0,.8);display:none}.action-status.show{display:block}.action-status .label{margin-bottom:10px}.plant-progress{width:320px;height:6px;background:#ffffff1f;border:1px solid rgba(255,165,0,.6);border-radius:3px;overflow:hidden;margin:0 auto}.plant-progress>div{height:100%;background:orange;width:0%;transition:width .1s linear}.plant-progress.defuse>div{background:#4fc3f7}.plant-progress.defuse{border-color:#4fc3f799}.center-message{position:fixed;top:28%;left:50%;transform:translate(-50%);padding:10px 24px;background:#000000a6;border-radius:4px;font-size:18px;font-weight:700;letter-spacing:2px;pointer-events:none;z-index:24;color:#ffd580;opacity:0;transition:opacity .2s ease}.center-message.show{opacity:1}.center-message.dead{background:#500000bf;border:2px solid rgba(255,80,80,.6);color:#ffb0b0;font-size:22px;padding:14px 32px;top:38%;animation:deadPulse 1.5s ease-in-out infinite}@keyframes deadPulse{0%,to{box-shadow:0 0 #ff3c3c80}50%{box-shadow:0 0 24px 4px #ff3c3c4d}}.bomb-indicator{position:fixed;top:72px;right:16px;pointer-events:none;z-index:11;font-size:14px;font-weight:700;background:#ff1744d9;color:#fff;padding:6px 12px;border-radius:3px;letter-spacing:1.5px;display:none;animation:bombpulse 1s infinite}.bomb-indicator.show{display:block}@keyframes bombpulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}#damage-vignette{position:fixed;inset:0;pointer-events:none;z-index:30;background:radial-gradient(ellipse at center,#f000 50%,#ff00008c);opacity:0;transition:opacity .5s ease}#damage-vignette.flash{opacity:1;transition:opacity .3s ease}#damage-vignette.solid{opacity:1}#hitmarker{position:fixed;top:50%;left:50%;width:24px;height:24px;transform:translate(-50%,-50%) scale(0);pointer-events:none;z-index:21}#hitmarker.show{animation:hitmarkerpop .25s ease-out}@keyframes hitmarkerpop{0%{transform:translate(-50%,-50%) scale(0);opacity:0}40%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(.9);opacity:0}}#hitmarker:before,#hitmarker:after{content:"";position:absolute;background:#fff;box-shadow:0 0 0 1px #000c}#hitmarker:before{width:14px;height:2px;top:11px;left:5px;transform:rotate(45deg)}#hitmarker:after{width:14px;height:2px;top:11px;left:5px;transform:rotate(-45deg)}.buy-menu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:auto;z-index:50;background:#000000d9;border:1px solid rgba(255,165,0,.5);border-radius:6px;padding:18px 22px;min-width:520px;display:none;color:#fff;font-family:Courier New,monospace}.buy-menu.open{display:block}.buy-menu h2{margin:0 0 4px;font-size:18px;letter-spacing:2px;color:#ffd580}.buy-menu .hint{font-size:12px;color:#888;margin-bottom:14px;letter-spacing:1px}.buy-menu .grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.buy-menu .item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:3px;cursor:pointer;font-size:14px;letter-spacing:1px;transition:background .1s ease,border-color .1s ease}.buy-menu .item:hover{background:#ffa50026;border-color:orange}.buy-menu .item.owned{border-color:#69f0ae;color:#b0bec5}.buy-menu .item.owned:hover{background:#69f0ae1a;border-color:#69f0ae}.buy-menu .item.cant-afford{opacity:.45;color:#ff5252;cursor:not-allowed}.buy-menu .item.cant-afford:hover{background:#ffffff0d;border-color:#ffffff1a}.buy-menu .item .name{font-weight:700}.buy-menu .item .price{font-weight:800;color:#69f0ae}.buy-menu .item.cant-afford .price{color:#ff5252}.buy-menu .item.owned .price{color:#69f0ae}.buy-menu .item .check{color:#69f0ae;font-weight:800;margin-left:6px}.buy-menu .footer{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;font-size:12px;color:#888;letter-spacing:1.5px}.buy-menu .footer .money{color:#69f0ae;font-weight:700}.click-to-play{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:#0009;z-index:100;pointer-events:none;color:#fff;font-size:22px;letter-spacing:2px;font-weight:700}.click-to-play.show{display:flex}#menu{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#281c0feb,#50371ef2);z-index:9999;pointer-events:auto;font-family:Courier New,Consolas,monospace}#menu.hidden{display:none!important;pointer-events:none}.main-menu{max-width:640px;width:90%;padding:32px 40px;background:#0000008c;border:2px solid #C2A26B;border-radius:6px;text-align:center;color:#fff;box-shadow:0 0 60px #0009,inset 0 0 30px #c2a26b26}.main-menu .title{font-size:56px;font-weight:900;letter-spacing:8px;color:orange;margin:0 0 8px;text-shadow:0 0 20px rgba(255,165,0,.6),4px 4px 0 #5A3300}.main-menu .subtitle{font-size:14px;color:#c2a26b;letter-spacing:4px;margin:0 0 32px;text-transform:uppercase}.main-menu .play-btn{background:linear-gradient(180deg,orange,#c27000);color:#1a0e00;border:2px solid #FFD180;border-radius:4px;padding:16px 48px;font-size:22px;font-weight:900;letter-spacing:3px;cursor:pointer;font-family:inherit;text-transform:uppercase;transition:transform .1s,box-shadow .1s;box-shadow:0 4px #5a3300,0 0 30px #ffa50066}.main-menu .play-btn:hover{transform:translateY(-2px);box-shadow:0 6px #5a3300,0 0 40px #ffa50099}.main-menu .play-btn:active{transform:translateY(2px);box-shadow:0 2px #5a3300,0 0 20px #ffa5004d}.main-menu .controls{margin-top:32px;padding-top:24px;border-top:1px solid rgba(194,162,107,.3);text-align:left;font-size:13px;line-height:1.7;color:#ddd}.main-menu .controls h3{color:orange;margin:16px 0 8px;font-size:14px;letter-spacing:2px;text-transform:uppercase}.main-menu .controls p{margin:2px 0}.main-menu .controls b{color:#ffe0b0}.main-menu .t-color{color:orange;font-weight:700}.main-menu .ct-color{color:#4fc3f7;font-weight:700}#damage-vignette{position:fixed;inset:0;pointer-events:none;z-index:50;background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.7) 100%);opacity:0;transition:opacity .15s ease-out}#damage-vignette.flash{opacity:1;transition:opacity .05s ease-in}#damage-vignette.flash.fade{opacity:0;transition:opacity .5s ease-out}
