:root{color:#edf5f7;font-synthesis:none;background:#0b1723;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button{font:inherit}#app{width:100vw;height:100dvh;min-height:420px;position:relative;overflow:hidden}#map{background:#87aec4;position:absolute;inset:0}#map canvas{touch-action:none;width:100%;height:100%;display:block}.crosshair{--gap:3px;z-index:2;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.crosshair i,.crosshair b{background:#f1fbfc;border-radius:1px;position:absolute;box-shadow:0 0 3px #0a1e28e6}.crosshair i{transition:transform 60ms linear}.crosshair i:first-child,.crosshair i:nth-child(2){width:7px;height:2px;top:-1px}.crosshair i:nth-child(3),.crosshair i:nth-child(4){width:2px;height:7px;left:-1px}.crosshair i:first-child{transform:translateX(calc(-1 * var(--gap)));right:0}.crosshair i:nth-child(2){transform:translateX(var(--gap));left:0}.crosshair i:nth-child(3){transform:translateY(calc(-1 * var(--gap)));bottom:0}.crosshair i:nth-child(4){transform:translateY(var(--gap));top:0}.crosshair b{border-radius:50%;width:2px;height:2px;top:-1px;left:-1px}.crosshair.melee i{transform:none}.crosshair{transition:opacity .12s}.crosshair.aiming{opacity:0}.hit-marker{--marker:#f6fbff;z-index:4;opacity:0;pointer-events:none;width:38px;height:38px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hit-marker i{background:var(--marker);border-radius:2px;width:11px;height:2.5px;position:absolute;box-shadow:0 0 3px #000c}.hit-marker i:first-child{top:8px;left:4px;transform:rotate(45deg)}.hit-marker i:nth-child(2){top:8px;right:4px;transform:rotate(-45deg)}.hit-marker i:nth-child(3){bottom:8px;left:4px;transform:rotate(-45deg)}.hit-marker i:nth-child(4){bottom:8px;right:4px;transform:rotate(45deg)}.hit-marker.headshot{--marker:#ffd35c}.hit-marker.kill{--marker:#ff4b3e;width:48px;height:48px}.hit-marker.kill i{width:15px;height:3px}.hit-marker.kill i:nth-child(-n+2){top:10px}.hit-marker.kill i:nth-child(n+3){bottom:10px}.hit-marker.show{animation:.24s ease-out forwards hit-pop}.hit-marker.kill.show{animation-duration:.6s}@keyframes hit-pop{0%{opacity:1;transform:translate(-50%,-50%)scale(1.45)}25%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.damage-direction{z-index:3;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.damage-arc{filter:drop-shadow(0 0 7px #ff281eb3);width:236px;height:236px;transform:rotate(var(--angle));border:7px solid #0000;border-top-color:#ff3a2eeb;border-radius:50%;animation:1.3s ease-out forwards damage-arc;position:absolute;top:-118px;left:-118px}@keyframes damage-arc{0%{opacity:1}55%{opacity:.85}to{opacity:0}}.kill-banner{z-index:5;opacity:0;text-shadow:0 2px 8px #000c;pointer-events:none;white-space:nowrap;flex-direction:column;align-items:center;gap:5px;display:flex;position:absolute;top:31%;left:50%;transform:translate(-50%)}.kill-banner strong{color:#ff5a47;letter-spacing:.22em;font-size:21px;font-weight:850}.kill-banner span{color:#f5ece0;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:750}.kill-banner.show{animation:1.9s ease-out forwards kill-in}@keyframes kill-in{0%{opacity:0;transform:translate(-50%)scale(1.3)}9%{opacity:1;transform:translate(-50%)scale(1)}78%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%)scale(1)}}.score-label.show{transform-origin:0;animation:.6s ease-out score-bump}@keyframes score-bump{0%{color:#ff7a6b;transform:scale(1.12)}to{transform:scale(1)}}.damage-flash{z-index:3;pointer-events:none;transition:box-shadow .4s;position:absolute;inset:0;box-shadow:inset 0 0 #cc202500}.damage-flash.visible{transition:none;box-shadow:inset 0 0 160px 28px #cc20258c}.brand{z-index:3;color:#f4fafb;text-shadow:0 2px 8px #08171fb8;pointer-events:none;align-items:baseline;gap:12px;display:flex;position:absolute;top:24px;left:26px}.brand strong{letter-spacing:-.055em;font-size:21px}.brand strong span{color:#90e1df}.brand small{color:#d4e3e6;letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:750}.top-actions{z-index:4;gap:8px;display:flex;position:absolute;top:20px;right:24px}.help-trigger{color:#f0f8f9;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08161fb3;border:1px solid #d7eff157;border-radius:7px;align-items:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:650;display:flex}.help-trigger:hover,.help-trigger:focus-visible{background:#08161fe6;border-color:#9de6e4}kbd{color:#f6fbfc;text-align:center;min-width:19px;font:inherit;background:#1b3540;border:1px solid #65828a;border-radius:4px;margin:0 1px;padding:2px 5px;font-weight:750;display:inline-block}.help-trigger kbd{padding:1px 5px}.controls-dialog{color:#edf5f7;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#0a1a24f7;border:1px solid #54727a;border-radius:16px;width:min(460px,100vw - 32px);max-height:min(680px,100dvh - 32px);margin:auto;padding:25px 28px 22px;overflow:auto;box-shadow:0 25px 90px #0000008c}.controls-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#040c12b0}.dialog-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dialog-eyebrow{color:#8de0e3;letter-spacing:.15em;text-transform:uppercase;font-size:10px;font-weight:800}h1{letter-spacing:-.04em;margin:6px 0 0;font-size:28px}.close-button{color:#dcecef;cursor:pointer;background:#142b37;border:1px solid #46616a;border-radius:7px;width:32px;height:32px;font-size:23px;line-height:1}.close-button:hover,.close-button:focus-visible{background:#24505a}.dialog-intro{color:#a8bec6;margin:14px 0 19px;font-size:13px}.control-list{margin:0}.control-list>div{border-top:1px solid #c8e4e81f;justify-content:space-between;align-items:center;gap:12px;min-height:43px;padding:9px 0;display:flex}.control-list dt{color:#a8bdc5;flex:0 0 100px;font-size:12px}.control-list dd{color:#eef5f7;text-align:right;margin:0;font-size:12px;line-height:1.6}.dialog-footer{color:#91aeb7;justify-content:space-between;gap:12px;margin:16px 0 0;font-size:11px;display:flex}.dialog-footer #performance{color:#8de0e3;font-variant-numeric:tabular-nums;white-space:nowrap}.room-button{color:#edf5f7;cursor:pointer;background:#19333d;border:1px solid #55727b;border-radius:7px;min-height:38px;padding:8px 13px;font-size:12px;font-weight:700}.room-button:hover,.room-button:focus-visible{background:#25515b}.room-button-primary{color:#fff;background:#2c7775;border-color:#76c9c6}.room-button-primary:hover,.room-button-primary:focus-visible{background:#368d8a}.room-divider{color:#8da7b1;text-align:center;text-transform:uppercase;letter-spacing:.1em;margin:18px 0 13px;font-size:11px}.room-label{color:#c5d7dc;margin:10px 0 7px;font-size:12px;display:block}.room-label strong{color:#8de0e3;letter-spacing:.08em;margin-left:6px}.room-row{gap:8px;display:flex}.room-input{color:#f2f8f9;width:100%;min-width:0;min-height:38px;font:inherit;background:#102832;border:1px solid #55727b;border-radius:7px;outline:none;padding:8px 10px;font-size:12px}.room-input:focus{border-color:#8de0e3}.room-link{font-size:11px}.room-actions{margin-top:12px}.room-status{color:#9ac1c8;min-height:18px;margin:17px 0 0;font-size:12px;line-height:1.5}[hidden]{display:none!important}.loader{z-index:20;color:#edf5f7;background:radial-gradient(120% 90% at 50% 35%,#173445 0%,#0b1723 58%,#070f17 100%);place-items:center;padding:24px;transition:opacity .6s;display:grid;position:absolute;inset:0}.loader.done{opacity:0;pointer-events:none}.loader[hidden]{display:none}.loader-card{width:min(420px,100%)}.loader-brand{align-items:baseline;gap:14px;margin-bottom:26px;display:flex}.loader-brand strong{letter-spacing:-.055em;font-size:clamp(34px,8vw,46px)}.loader-brand strong span{color:#90e1df}.loader-brand small{color:#b9cdd2;letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:750}.loader-bar{background:#9dd6da29;border-radius:4px;height:4px;overflow:hidden}.loader-bar span{border-radius:inherit;background:linear-gradient(90deg,#4fc8c4,#9fe9e4);width:0;height:100%;transition:width .35s;display:block;box-shadow:0 0 12px #78e2df8c}.loader-row{color:#c6d8dc;justify-content:space-between;gap:16px;margin-top:12px;font-size:13px;display:flex}.loader-row #loader-percent{color:#9fe3dc;font-variant-numeric:tabular-nums;font-weight:700}.loader-tip{color:#8fa8ae;min-height:2.6em;margin:22px 0 0;font-size:12px;line-height:1.5}.loader[data-state=error] .loader-bar span{box-shadow:none;background:#c9665d}.loader[data-state=error] #loader-step{color:#ffb0a5}.combat-hud{z-index:3;-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);background:#081820c9;border:1px solid #a1dbda59;border-radius:10px;width:242px;padding:14px 16px 12px;position:absolute;bottom:24px;left:26px;box-shadow:0 10px 34px #0003}.hud-health-label,.hud-weapon-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.hud-health-label span{color:#9ec8c9;letter-spacing:.15em;font-size:10px;font-weight:800}.hud-health-label strong{font-variant-numeric:tabular-nums;font-size:22px}.health-bar{background:#40515a;border-radius:5px;height:8px;margin:8px 0 13px;overflow:hidden}.health-bar span{border-radius:inherit;background:linear-gradient(90deg,#3da9a0,#91e8d5);width:100%;height:100%;transition:width .25s,background .25s;display:block}.health-bar.low span{background:linear-gradient(90deg,#b7433f,#ff9e81)}.hud-weapon-row{border-top:1px solid #d4eeef24;padding-top:10px;font-size:12px}.hud-weapon-row strong{color:#90e1df;font-variant-numeric:tabular-nums;font-size:11px}.hud-grenade-row{color:#b9cbcd;justify-content:space-between;align-items:center;margin-top:5px;font-size:11px;font-weight:650;display:flex}.hud-grenade-row kbd{min-width:0;padding:0 4px;font-size:9px}.hud-grenade-row strong{color:#9fe3dc;letter-spacing:.12em;font-size:11px}.hud-smoke-row{margin-top:3px}.hud-smoke-row strong{color:#c9d0cf}.hud-mag-row,.hud-load-row{color:#b9cbcd;justify-content:space-between;align-items:center;margin-top:5px;font-size:11px;font-weight:650;display:flex}.hud-mag-row[hidden]{display:none}.hud-mag-row kbd{min-width:0;padding:0 4px;font-size:9px}.hud-load-row strong{color:#9fe3dc;font-variant-numeric:tabular-nums;font-size:11px}.hud-load-row.heavy strong{color:#f1c27a}.mag-pips{align-items:flex-end;gap:3px;min-height:12px;display:flex}.mag-pips i{border:1px solid #9fe3dcb3;border-radius:1px;width:6px;height:12px;position:relative;overflow:hidden}.mag-pips i:after{content:"";height:calc(var(--fill) * 100%);background:#9fe3dc;position:absolute;bottom:0;left:0;right:0}.mag-pips em{color:#8fa3a6;letter-spacing:.06em;font-size:10px;font-style:normal}.score-label{color:#8da9ae;letter-spacing:.08em;margin-top:7px;font-size:10px;font-weight:650}.pickup-hint,.combat-toast{z-index:4;color:#eef9f8;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#081820db;border:1px solid #9bdfda80;border-radius:7px;max-width:calc(100vw - 30px);padding:9px 13px;font-size:12px;font-weight:650;position:absolute;left:50%;transform:translate(-50%)}.pickup-hint{bottom:122px}.combat-toast{top:90px}.death-overlay{z-index:4;pointer-events:none;text-align:center;background:#36080d6e;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.death-overlay strong{letter-spacing:.12em;text-shadow:0 5px 30px #38080c;font-size:clamp(34px,6vw,70px);font-weight:900}.death-overlay span{background:#0b181dd1;border-radius:6px;padding:8px 13px;font-size:13px}.round-hud{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;text-align:center;background:#081820c9;border:1px solid #a1dbda59;border-radius:9px;flex-direction:column;align-items:center;gap:3px;min-width:132px;padding:7px 14px 8px;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.round-hud strong{color:#f4fafb;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:20px;font-weight:800}.round-hud span{color:#9ec8c9;letter-spacing:.08em;white-space:nowrap;font-size:10px;font-weight:700}.round-hud[data-phase=warmup] strong{color:#c9d6d8;letter-spacing:.14em;text-transform:uppercase;font-size:13px}.round-hud[data-phase=countdown] strong{color:#f1c27a}.round-banner{z-index:5;opacity:0;text-shadow:0 2px 10px #000000d9;pointer-events:none;white-space:nowrap;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:24%;left:50%;transform:translate(-50%)}.round-banner strong{color:#9fe9e4;letter-spacing:.2em;text-transform:uppercase;font-size:34px;font-weight:900}.round-banner span{color:#f5ece0;letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:750}.round-banner.show{animation:3s ease-out forwards kill-in}.kill-feed{z-index:4;pointer-events:none;flex-direction:column;align-items:flex-end;gap:4px;margin:0;padding:0;list-style:none;display:flex;position:absolute;top:66px;right:24px}.kill-feed li{color:#eef5f7;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#081820bd;border-radius:6px;align-items:center;gap:7px;padding:5px 9px;font-size:12px;font-weight:700;transition:opacity .6s;display:flex}.kill-feed li.mine{box-shadow:inset 0 0 0 1px #ff78648c}.kill-feed li.fading{opacity:0}.kill-feed b{text-overflow:ellipsis;max-width:150px;overflow:hidden}.kill-feed b.you{color:#9fe9e4}.kill-feed span{color:#a9bcc1;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:750}.scoreboard{z-index:6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:none;background:#0a1a24ed;border:1px solid #54727a;border-radius:14px;width:min(540px,100vw - 32px);max-height:calc(100dvh - 120px);padding:20px 22px 16px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 25px 90px #00000080}.scoreboard h2{letter-spacing:-.03em;margin:4px 0 2px;font-size:24px}.scoreboard header p{color:#a8bec6;margin:0 0 12px;font-size:12px}.scoreboard table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.scoreboard th{color:#8fa8ae;letter-spacing:.12em;text-align:right;text-transform:uppercase;border-bottom:1px solid #c8e4e833;padding:6px 8px;font-size:10px;font-weight:800}.scoreboard td{text-align:right;border-bottom:1px solid #c8e4e814;padding:8px}.scoreboard th:nth-child(2),.scoreboard td:nth-child(2){text-align:left;width:100%}.scoreboard th:first-child,.scoreboard td:first-child{color:#8fa8ae;text-align:left;width:28px}.scoreboard td:nth-child(2){text-overflow:ellipsis;white-space:nowrap;max-width:0;font-weight:700;overflow:hidden}.scoreboard td:nth-child(5){color:#8fa8ae;white-space:nowrap}.scoreboard tr.you td{background:#4fc8c41f}.scoreboard tr.you td:nth-child(2){color:#9fe9e4}.scoreboard em{color:#a8bec6;letter-spacing:.1em;text-transform:uppercase;vertical-align:1px;border:1px solid #55727b;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:9px;font-style:normal;font-weight:800}.scoreboard footer{color:#7f979e;margin-top:12px;font-size:11px}.death-overlay small{color:#f5ece0;letter-spacing:.06em;text-shadow:0 2px 8px #38080c;font-size:14px;font-weight:700}.death-overlay small:empty{display:none}.room-name{margin-bottom:4px}.voice-settings{margin-bottom:14px}.voice-settings select{appearance:auto;cursor:pointer}.room-check{color:#a8bec6;cursor:pointer;align-items:flex-start;gap:8px;margin-top:10px;font-size:12px;line-height:1.45;display:flex}.room-check input{accent-color:#4fc8c4;margin:2px 0 0}.attribution{z-index:3;color:#d4e3e5;background:#08161fbd;border-radius:5px;align-items:center;gap:8px;padding:4px 7px;font-size:9px;display:flex;position:absolute;bottom:10px;right:10px}.attribution a{color:inherit;-webkit-text-decoration:underline #77949c;text-decoration:underline #77949c}.attribution a:hover{color:#9de6e4}@media (width<=620px){.brand{top:17px;left:16px}.brand small{display:none}.top-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;top:60px;left:14px;right:14px}.help-trigger{white-space:nowrap;padding:7px 9px;font-size:11px}.controls-dialog{padding:20px}.control-list dt{flex-basis:78px}.attribution{gap:5px;font-size:8px;bottom:6px;right:6px}.combat-hud{width:205px;padding:10px 12px;bottom:12px;left:12px}.pickup-hint{bottom:113px}.round-hud{min-width:0;padding:5px 10px 6px;top:104px}.round-hud strong{font-size:16px}.kill-feed{top:160px;right:12px}.kill-feed li{font-size:11px}.round-banner strong{font-size:24px}}.damage-readout{pointer-events:none;z-index:5;color:#f6fbff;letter-spacing:.08em;text-shadow:0 2px 5px #000;opacity:0;font:750 12px system-ui;transition:opacity .2s;position:absolute;top:calc(50% + 32px);left:50%;transform:translate(-50%)}.damage-readout.headshot{color:#ffd35c}.damage-readout.visible{opacity:1}
