:root{--gold:#e7c27d;--gold-deep:#b8893e;--stone:#d9c3a0;--ink:#0d0b09;--panel:#0e0c0ac7;--panel-line:#e7c27d47;--text:#f3eadb;--muted:#b8ab98;--ct:#7fb4ff;--t:#ffb35c;--danger:#ff5a4f;--ok:#7dff9b;--ui-font:"Rajdhani", "Segoe UI", system-ui, sans-serif;--brand-font:"Cinzel", Georgia, serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--ui-font);-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#app{position:fixed;inset:0}.game-canvas{width:100%;height:100%;display:block}.fatal{color:#fff;background:#400;border-radius:6px;padding:12px 16px;font-size:16px;position:fixed;inset:auto 16px 16px}.menu-root{pointer-events:none;z-index:20;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.menu-root.visible{pointer-events:auto;display:flex}.menu-root.dim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000073}.brand{text-shadow:0 4px 24px #000000b3;flex-direction:column;align-items:center;line-height:.9;display:flex}.brand-top{font-family:var(--brand-font);letter-spacing:.08em;color:var(--stone);font-size:clamp(38px,7vw,92px);font-weight:800}.brand-bottom{font-family:var(--ui-font);letter-spacing:.6em;color:var(--gold);margin-left:.6em;font-size:clamp(22px,3.6vw,44px);font-weight:700}.loading{flex-direction:column;align-items:center;gap:28px;width:min(560px,90vw);display:flex}.progress{background:#ffffff1f;border-radius:2px;width:100%;height:4px;overflow:hidden}.progress .bar{background:linear-gradient(90deg, var(--gold-deep), var(--gold));width:0;height:100%;transition:width .2s}.main-menu{flex-direction:column;align-items:flex-start;gap:18px;display:flex;position:absolute;top:50%;left:clamp(16px,6vw,96px);transform:translateY(-50%)}.main-menu .brand{align-items:flex-start}.main-menu .brand-bottom{margin-left:.1em}.tagline{color:var(--stone);letter-spacing:.08em;text-shadow:0 2px 8px #000;margin:0;font-size:18px}.credits{color:#ffffff8c;text-shadow:0 1px 4px #000;margin-top:24px;font-size:13px}nav{flex-direction:column;gap:10px;min-width:280px;display:flex}button{font-family:var(--ui-font);letter-spacing:.06em;text-transform:uppercase;color:var(--text);background:var(--panel);border:1px solid var(--panel-line);text-align:left;cursor:pointer;border-radius:3px;padding:12px 22px;font-size:19px;font-weight:600;transition:background .15s,border-color .15s,transform .1s}button:hover{border-color:var(--gold);background:#282016e6}button:active{transform:translateY(1px)}button.primary{color:#1a1208;background:linear-gradient(#caa25c,#9a7234);border-color:#f0d79e}button.primary:hover{background:linear-gradient(#dcb66f,#a97f3c)}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:6px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);padding:26px 30px;overflow:auto;box-shadow:0 20px 60px #0009}.panel h2{font-family:var(--brand-font);color:var(--gold);letter-spacing:.06em;margin:0 0 18px;font-size:28px}.panel .row{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.panel .row label{width:190px;color:var(--muted);font-size:17px}.panel input[type=range]{min-width:160px;accent-color:var(--gold);flex:1}.panel .actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.panel.pause nav{min-width:0}.chip{text-align:center;padding:7px 14px;font-size:15px}.chip.on{border-color:var(--gold);color:var(--gold);background:#e7c27d1f}.hint{color:var(--muted);font-size:15px}table.keys{border-collapse:collapse;width:100%;font-size:17px}table.keys td{border-bottom:1px solid #ffffff0f;padding:6px 4px}kbd{font-family:var(--ui-font);background:#ffffff1a;border:1px solid #fff3;border-radius:3px;padding:2px 8px}.hud{pointer-events:none;z-index:10;text-shadow:0 1px 3px #000000e6;font-weight:600;position:fixed;inset:0}.hud.hidden{display:none}.crosshair{width:0;height:0;position:absolute;top:50%;left:50%}.crosshair i{background:var(--cross,#6dff8a);position:absolute;box-shadow:0 0 0 1px #0000008c}.hud-bottom-left,.hud-bottom-right{align-items:flex-end;gap:22px;display:flex;position:absolute;bottom:18px}.hud-bottom-left{left:22px}.hud-bottom-right{flex-direction:column;align-items:flex-end;gap:6px;right:22px}.stat{background:#00000059;border-radius:3px;align-items:baseline;gap:8px;padding:4px 12px;display:flex}.stat .icon{color:var(--muted);font-size:18px}.stat .value{min-width:60px;font-size:40px;line-height:1}.stat.low .value{color:var(--danger)}.ammo .value{font-size:40px}.ammo .reserve{color:var(--muted);font-size:20px}.weapon-name{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:16px}.money{color:var(--ok);background:#00000059;border-radius:3px;padding:2px 12px;font-size:26px}.hud-top{align-items:center;gap:10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.score{text-align:center;background:#00000073;border-radius:3px;min-width:48px;padding:2px 10px;font-size:30px}.score.ct{color:var(--ct)}.score.t{color:var(--t)}.timer{text-align:center;background:#0000008c;border-radius:3px;min-width:96px;padding:2px 12px;font-size:30px}.timer.bomb{color:var(--danger)}.alive{gap:3px;display:flex}.alive span{opacity:.9;background:currentColor;border-radius:2px;width:10px;height:18px}.alive span.dead{opacity:.18}.killfeed{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;top:14px;right:18px}.killfeed div{background:#0000008c;border-radius:3px;padding:3px 10px;font-size:16px}.killfeed div.mine{border:1px solid var(--danger)}.killfeed .ct{color:var(--ct)}.killfeed .t{color:var(--t)}.killfeed .hs{color:var(--gold)}.radar{background:#00000080;border:2px solid #e7c27d73;border-radius:50%;width:220px;height:220px;position:absolute;top:16px;left:16px;overflow:hidden}.radar canvas{width:100%;height:100%}.zone-name{text-align:center;width:220px;color:var(--stone);letter-spacing:.06em;font-size:16px;position:absolute;top:244px;left:16px}.center-msg{text-align:center;letter-spacing:.06em;font-size:34px;position:absolute;top:22%;left:50%;transform:translate(-50%)}.center-msg small{color:var(--muted);font-size:18px;display:block}.hint-bar{background:#00000080;border-radius:3px;padding:6px 14px;font-size:18px;position:absolute;bottom:120px;left:50%;transform:translate(-50%)}.progress-bar{background:#0009;border-radius:4px;width:260px;height:8px;position:absolute;top:62%;left:50%;overflow:hidden;transform:translate(-50%)}.progress-bar div{background:var(--gold);height:100%}.damage-flash{transition:box-shadow .25s;position:absolute;inset:0;box-shadow:inset 0 0 160px #f000}.dmg-arrow{width:0;height:0;position:absolute;top:50%;left:50%}.dmg-arrow i{clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(#ff281ee6,#ff281e00);width:36px;height:20px;position:absolute;top:-150px;left:-18px}.hitmarker{opacity:0;width:0;height:0;position:absolute;top:50%;left:50%}.hitmarker i{background:#fff;width:12px;height:2px;position:absolute}.fps{color:#fff9;font-size:13px;position:absolute;bottom:4px;right:8px}.scope{display:none;position:absolute;inset:0}.scope.on{background:radial-gradient(circle,#0000 0 34vh,#000 34.2vh);display:block}.scope.on:before,.scope.on:after{content:"";background:#000;position:absolute}.scope.on:before{height:1px;top:50%;left:0;right:0}.scope.on:after{width:1px;top:0;bottom:0;left:50%}.scoreboard{border:1px solid var(--panel-line);background:#0a0908db;border-radius:6px;width:min(820px,100vw - 32px);padding:16px 20px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scoreboard.on{display:block}.scoreboard table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:17px}.scoreboard th{text-align:left;color:var(--muted);padding:4px 6px;font-weight:600}.scoreboard td{border-top:1px solid #ffffff0f;padding:3px 6px}.scoreboard tr.dead td{opacity:.45}.scoreboard tr.me td{background:#e7c27d1a}.scoreboard h3{margin:6px 0;font-size:20px}.scoreboard h3.ct{color:var(--ct)}.scoreboard h3.t{color:var(--t)}.buy{border:1px solid var(--panel-line);pointer-events:auto;background:#0a0908e6;border-radius:6px;width:min(900px,100vw - 32px);padding:18px 22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.buy h2{font-family:var(--brand-font);color:var(--gold);margin:0 0 12px;font-size:24px}.buy .cols{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.buy .col h4{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:15px}.buy button{justify-content:space-between;width:100%;margin-bottom:6px;padding:8px 10px;font-size:16px;display:flex}.buy button .price{color:var(--ok)}.buy button.cant{opacity:.4}.buy button .key{color:var(--muted);margin-right:6px}.buy .foot{color:var(--muted);margin-top:10px;font-size:15px}@media (max-width:720px){.buy .cols{grid-template-columns:repeat(2,1fr)}.radar{width:140px;height:140px}.zone-name{width:140px;top:162px}}.objectives{pointer-events:none;z-index:9;position:fixed;inset:0}.obj-marker{font-family:var(--ui-font);text-shadow:0 1px 3px #000;opacity:.55;flex-direction:column;align-items:center;font-weight:700;transition:opacity .2s;display:flex;position:absolute;top:0;left:0}.obj-marker b{text-align:center;color:#fff;background:#00000059;border:2px solid #fffc;border-radius:50%;width:34px;height:34px;font-size:22px;line-height:32px}.obj-marker span{color:#fff;margin-top:2px;font-size:13px}.obj-marker.level1{opacity:1}.obj-marker.level1 b{border-color:var(--gold);color:var(--gold);box-shadow:0 0 12px #e7c27d99}.obj-marker.level2{opacity:1}.obj-marker.level2 b{border-color:var(--danger);color:var(--danger);animation:.8s infinite alternate objpulse}.obj-marker.edge b{transform:scale(.85)}@keyframes objpulse{0%{box-shadow:0 0 4px #ff5a4f66}to{box-shadow:0 0 18px #ff5a4fe6}}.c4-icon{color:#fff;letter-spacing:.05em;background:#be2d19d9;border-radius:3px;padding:3px 10px;font-size:16px}.buy-close{margin-top:10px;width:auto!important;display:inline-block!important}.touch-ui{z-index:12;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.touch-zone{touch-action:none;position:absolute;top:0;bottom:0}.touch-zone.left{width:42%;left:0}.touch-zone.right{width:58%;right:0}.stick{pointer-events:none;background:#0000002e;border:2px solid #ffffff59;border-radius:50%;width:120px;height:120px;display:none;position:absolute;top:0;left:0}.knob{background:#e7c27d8c;border:2px solid #fff9;border-radius:50%;width:50px;height:50px;position:absolute;top:35px;left:35px}.tbtn{width:64px;height:64px;font:700 12px var(--ui-font);letter-spacing:.04em;color:#fff;touch-action:none;background:#00000061;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.tbtn.on{background:#e7c27d73}.tbtn.latched{border-color:var(--gold);color:var(--gold)}.tbtn.dim{opacity:.35}.tbtn.big{background:#a0281e73;width:92px;height:92px;font-size:14px}.b-fire{bottom:90px;right:110px}.b-jump{bottom:150px;right:24px}.b-crouch{bottom:72px;right:24px}.b-reload{bottom:40px;right:210px}.b-scope{bottom:200px;right:118px}.b-use{bottom:120px;right:210px}.b-weapon{bottom:230px;right:36px}.tbtn.top{border-radius:6px;width:58px;height:34px;top:10px}.b-buy{top:10px;right:150px}.b-score{top:10px;right:84px}.b-pause{top:10px;right:18px}.rotate-hint{display:none}@media (orientation:portrait){body.is-touch .rotate-hint{z-index:50;text-align:center;color:var(--gold);background:#000000eb;justify-content:center;align-items:center;padding:32px;font-size:22px;display:flex;position:fixed;inset:0}}@media (max-height:520px){.radar{width:120px;height:120px;top:8px;left:8px}.zone-name{width:120px;font-size:13px;top:132px;left:8px}.stat .value,.ammo .value{min-width:40px;font-size:26px}.stat{padding:2px 8px}.hud-bottom-left{gap:8px;bottom:8px;left:10px}.hud-bottom-right{bottom:8px;right:300px}body:not(.is-touch) .hud-bottom-right{right:10px}.money{font-size:18px}.weapon-name{font-size:12px}.score,.timer{font-size:20px}.hud-top{top:6px}.center-msg{font-size:22px;top:30%}.center-msg small{font-size:14px}.hint-bar{font-size:14px;top:58px;bottom:auto}.killfeed{top:50px;right:10px}.killfeed div{font-size:12px}.main-menu{gap:10px;left:16px}.brand-top{font-size:34px}.brand-bottom{font-size:20px}.tagline,.credits{font-size:12px}nav{gap:6px;min-width:220px}button{padding:8px 16px;font-size:15px}.panel{padding:14px 18px}.panel h2{margin-bottom:8px;font-size:20px}.panel .row{margin:4px 0}.panel .row label{width:140px;font-size:14px}.buy{padding:10px 14px}.buy button{margin-bottom:4px;padding:5px 8px;font-size:13px}.obj-marker b{width:26px;height:26px;font-size:16px;line-height:24px}}
