:root{--accent:#35c6c0;--accent2:#f2c14e;--danger:#e04b3a;--ink:#080a0eb8;--font-title:"Impact", "Haettenschweiler", "Arial Narrow Bold", "Franklin Gothic Medium", sans-serif;--font-ui:"Helvetica Neue", "Segoe UI", Arial, sans-serif;--font-mono:"SF Mono", "Menlo", "Consolas", monospace}*{box-sizing:border-box}html,body{color:#eee;width:100%;height:100%;font-family:var(--font-ui);background:#000;margin:0;padding:0;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.hidden{display:none!important}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;top:0;bottom:0;left:0;right:0}#crosshair{--gap:6px;--len:9px;width:0;height:0;position:absolute;top:50%;left:50%}#crosshair .ch{background:#ffffffe6;transition:transform 80ms;position:absolute;box-shadow:0 0 2px #000000e6}#crosshair .ch-t,#crosshair .ch-b{width:2px;height:var(--len);left:-1px}#crosshair .ch-l,#crosshair .ch-r{height:2px;width:var(--len);top:-1px}#crosshair .ch-t{top:calc(-1 * (var(--gap) + var(--len)))}#crosshair .ch-b{top:var(--gap)}#crosshair .ch-l{left:calc(-1 * (var(--gap) + var(--len)))}#crosshair .ch-r{left:var(--gap)}#crosshair .ch-dot{background:#ffffffb3;width:2px;height:2px;position:absolute;top:-1px;left:-1px}#crosshair.ads .ch{opacity:.35}#hitmarker{opacity:0;width:22px;height:22px;margin:-11px;position:absolute;top:50%;left:50%;transform:rotate(45deg)}#hitmarker:before,#hitmarker:after{content:"";background:#fff;position:absolute;box-shadow:0 0 3px #000}#hitmarker:before{width:2px;height:22px;top:0;left:10px}#hitmarker:after{width:22px;height:2px;top:10px;left:0}#hitmarker.show{animation:.18s ease-out hit}#hitmarker.kill:before,#hitmarker.kill:after{background:var(--danger)}@keyframes hit{0%{opacity:1;transform:rotate(45deg)scale(1.4)}to{opacity:0;transform:rotate(45deg)scale(.9)}}#damage-vignette{opacity:0;background:radial-gradient(#b4000000 55%,#a00000bf 100%);transition:opacity .15s;position:absolute;top:0;bottom:0;left:0;right:0}#damage-dir{opacity:0;background:conic-gradient(from calc(var(--a,0deg) - 30deg), #dc281e00 0deg, #dc281ed9 30deg, #dc281e00 60deg);border-radius:50%;width:260px;height:260px;margin:-130px;transition:opacity .2s;position:absolute;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#0000 92px,#000 96px);mask:radial-gradient(circle,#0000 92px,#000 96px)}#top-left{width:340px;position:absolute;top:24px;left:28px}#liberation{background:var(--ink);border-left:3px solid var(--accent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:12px 14px}.lib-label{font-family:var(--font-title);letter-spacing:2px;color:#cfd8dc;font-size:13px}.lib-bar{background:#ffffff1f;height:10px;margin:8px 0 6px;position:relative;overflow:hidden}#lib-fill{background:linear-gradient(90deg, #1f9d98, var(--accent), #8fe8e3);width:0%;height:100%;transition:width .6s ease-out;box-shadow:0 0 10px #35c6c099}#lib-ticks{background-image:repeating-linear-gradient(90deg,#0000 0 calc(12.5% - 1px),#0009 calc(12.5% - 1px) 12.5%);position:absolute;top:0;bottom:0;left:0;right:0}.lib-row{justify-content:space-between;font-size:13px;display:flex}#lib-pct{font-family:var(--font-mono);color:var(--accent);font-size:15px;font-weight:700}#lib-district{color:#b0bec5}#objective{background:var(--ink);border-left:3px solid var(--accent2);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);margin-top:10px;padding:10px 14px}.obj-title{font-family:var(--font-title);letter-spacing:2px;color:var(--accent2);font-size:12px}#obj-text{margin-top:4px;font-size:15px;line-height:1.3}.obj-bar{background:#ffffff1f;height:4px;margin-top:8px}#obj-fill{background:var(--accent2);width:0%;height:100%;transition:width .3s}#obj-sub{color:#b0bec5;min-height:14px;margin-top:4px;font-size:12px}#bottom-left{width:300px;position:absolute;bottom:28px;left:28px}#health{background:var(--ink);border-left:3px solid var(--danger);padding:10px 14px}.hp-label{font-family:var(--font-title);letter-spacing:2px;color:#ef9a9a;font-size:12px}.hp-bar{background:#ffffff1f;height:12px;margin-top:6px}#hp-fill{background:linear-gradient(90deg, #b8322a, var(--danger));width:100%;height:100%;transition:width .15s}#hp-fill.low{animation:.7s infinite alternate pulse}@keyframes pulse{0%{filter:brightness()}to{filter:brightness(1.7)}}#bottom-right{text-align:right;background:var(--ink);border-right:3px solid #cfd8dc;min-width:200px;padding:10px 16px;position:absolute;bottom:28px;right:28px}#weapon-name{font-family:var(--font-title);letter-spacing:2px;color:#cfd8dc;font-size:16px}#ammo{font-family:var(--font-mono);margin-top:4px;font-size:34px;line-height:1}#ammo-mag{font-weight:700}#ammo-mag.low{color:var(--danger)}#ammo-sep{opacity:.5;margin:0 4px}#ammo-res{opacity:.8;font-size:20px}#weapon-slots{justify-content:flex-end;gap:6px;margin-top:6px;display:flex}.slot{width:22px;height:22px;font-size:12px;font-family:var(--font-mono);color:#aaa;border:1px solid #ffffff59;justify-content:center;align-items:center;display:inline-flex}.slot.active{border-color:var(--accent2);color:var(--accent2)}.slot.locked{opacity:.35;border-style:dashed}#weapon-lock{color:#90a4ae;letter-spacing:.3px;margin-top:5px;font-size:11px}#weapon-lock.hidden{display:none}#fire-mode{letter-spacing:2px;color:#90a4ae;margin-top:4px;font-size:11px}#marker{text-align:center;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}.marker-icon{border:2px solid var(--accent2);background:#f2c14e40;width:18px;height:18px;margin:0 auto;transform:rotate(45deg);box-shadow:0 0 8px #f2c14e99}.marker-dist{font-family:var(--font-mono);color:var(--accent2);text-shadow:0 0 4px #000;margin-top:8px;font-size:12px}#marker.edge .marker-icon{border-radius:50%}#interact{text-align:center;background:var(--ink);border:1px solid #ffffff26;padding:10px 18px;position:absolute;top:58%;left:50%;transform:translate(-50%)}#interact .key{font-family:var(--font-mono);border:2px solid #fff;margin-bottom:6px;padding:2px 8px;font-weight:700;display:inline-block}#interact-text{font-size:14px}.interact-bar{background:#ffffff26;width:200px;height:4px;margin:8px auto 0}#interact-fill{background:var(--accent);width:0%;height:100%}#message{text-align:center;text-shadow:0 2px 6px #000;opacity:0;max-width:70%;font-size:20px;line-height:1.4;transition:opacity .4s;position:absolute;top:18%;left:50%;transform:translate(-50%)}#message.show{opacity:1}#wave-banner{text-align:center;font-family:var(--font-title);letter-spacing:8px;color:#fff;text-shadow:0 0 20px #000000e6,0 4px #000;opacity:0;font-size:56px;transition:opacity .5s,transform .5s;position:absolute;top:30%;left:0;right:0;transform:scale(1.1)}#wave-banner.show{opacity:1;transform:scale(1)}#wave-banner small{letter-spacing:4px;color:var(--accent2);font-size:18px;font-family:var(--font-ui);margin-top:6px;display:block}#subtitle{color:#fff;text-align:center;opacity:0;background:#0009;max-width:70%;padding:8px 18px;font-size:20px;line-height:1.4;transition:opacity .3s;position:absolute;bottom:14%;left:50%;transform:translate(-50%)}#subtitle.show{opacity:1}#subtitle .who{color:var(--accent2);margin-right:6px;font-weight:700}#hint{color:#cfd8dc;text-shadow:0 1px 3px #000;opacity:0;font-size:14px;transition:opacity .4s;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}#hint.show{opacity:1}#hint kbd{font-family:var(--font-mono);border:1px solid #aaa;border-radius:3px;margin:0 2px;padding:1px 6px;font-size:12px}#kill-feed{text-align:right;color:#cfd8dc;font-size:13px;position:absolute;top:24px;right:28px}#kill-feed div{background:var(--ink);margin-bottom:4px;padding:4px 10px;animation:4s forwards feed}@keyframes feed{0%{opacity:0;transform:translate(20px)}10%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}#letterbox{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}#letterbox .bar{background:#000;height:11vh;position:absolute;left:0;right:0}#letterbox .bar.top{top:0}#letterbox .bar.bottom{bottom:0}#letterbox .skip{letter-spacing:3px;color:#667;font-size:11px;font-family:var(--font-mono);position:absolute;bottom:14px;right:28px}#letterbox.noskip .skip{display:none}#fade{opacity:1;pointer-events:none;background:#000;transition:opacity 1s;position:fixed;top:0;bottom:0;left:0;right:0}#loading,#menu,#pause,#death,#end{z-index:10;background:radial-gradient(at 50% 30%,#1e3c50d9,#000000eb);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#loading{background:#06080c}.load-inner{text-align:center;width:420px}.load-bar{background:#ffffff1a;height:6px;margin:18px 0 10px}#load-fill{background:var(--accent);width:0%;height:100%;transition:width .2s}#load-status{color:#90a4ae;font-size:12px;font-family:var(--font-mono)}.menu-inner{text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06090ed1;border:1px solid #ffffff14;width:760px;max-width:92vw;padding:40px 48px}.menu-inner.small{width:480px}.title{font-family:var(--font-title);letter-spacing:10px;color:#fff;text-shadow:0 0 30px #35c6c099;font-size:88px;line-height:1}.title.small{font-size:48px}.title.red{color:var(--danger);text-shadow:0 0 30px #e04b3a80}.sub{letter-spacing:3px;color:var(--accent);margin-top:8px;font-size:16px}.tagline{color:var(--accent2);letter-spacing:1px;margin:10px 0 18px;font-size:16px}.lore{color:#cfd8dc;text-align:left;margin-bottom:24px;font-size:15px;line-height:1.55}.lore b{color:#fff}.btn{font-family:var(--font-title);letter-spacing:4px;color:#fff;border:2px solid var(--accent);cursor:pointer;background:0 0;padding:14px 40px;font-size:20px;transition:background .15s,transform .1s}.btn:hover{background:var(--accent);color:#041012;transform:translateY(-1px)}.controls{color:#b0bec5;grid-template-columns:repeat(5,1fr);gap:8px;margin:26px 0 18px;font-size:12px;display:grid}.controls.compact{grid-template-columns:repeat(4,1fr)}.controls kbd{font-family:var(--font-mono);color:#fff;border:1px solid #556;border-radius:3px;margin-bottom:4px;padding:3px 4px;font-size:11px;display:block}.settings{color:#b0bec5;justify-content:center;gap:24px;font-size:13px;display:flex}.settings label{flex-direction:column;align-items:center;gap:6px;display:flex}.settings select,.settings input{accent-color:var(--accent)}.settings select{color:#eee;background:#111;border:1px solid #444;padding:4px}.disclaimer{color:#667;margin-top:20px;font-size:11px}.death-text{color:#cfd8dc;margin:14px 0 24px}#stats{color:#667;font-size:11px;font-family:var(--font-mono);margin-top:14px}
