@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,700&family=IBM+Plex+Mono:wght@500;700&family=IBM+Plex+Sans:wght@400;600;700&display=swap";.landscape-gate{z-index:9999;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:#f2f5f8;text-align:center;touch-action:manipulation;background:#080c12f0;justify-content:center;align-items:center;font-family:IBM Plex Sans,Segoe UI,sans-serif;display:flex;position:fixed;inset:0}.landscape-gate-card{flex-direction:column;align-items:center;gap:12px;width:min(320px,100%);display:flex}.landscape-gate-phone{border:3px solid #f2f5f8d9;border-radius:8px;justify-content:center;align-items:center;width:44px;height:72px;margin-bottom:8px;animation:1.6s ease-in-out infinite landscape-gate-tilt;display:flex}.landscape-gate-phone-screen{background:#5a8cbe59;border-radius:3px;width:28px;height:48px;display:block}@keyframes landscape-gate-tilt{0%,20%{transform:rotate(0)}45%,70%{transform:rotate(90deg)}to{transform:rotate(0)}}.landscape-gate-title{letter-spacing:-.02em;margin:0;font-family:Fraunces,Times New Roman,serif;font-size:28px;font-weight:700;line-height:1.15}.landscape-gate-copy{opacity:.8;margin:0;font-size:15px;line-height:1.45}.landscape-gate-btn{color:#fff;min-height:44px;font:inherit;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff38;border-radius:10px;margin-top:6px;padding:10px 18px;font-size:14px;font-weight:700}.landscape-gate-btn:active{background:#ffffff2e}.game-hud-toast{z-index:9;pointer-events:none;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 2px #000000e6,0 0 18px #00000073;margin:0;font-size:clamp(13px,3.2vw,17px);font-weight:800;animation:.55s ease-out forwards game-hud-toast;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.game-hud-toast--empty-mag{color:#ffb4a0}.game-hud-toast--kill{color:#b8e8ff}.game-hud-toast--headshot{color:#ffe08a}@keyframes game-hud-toast{0%{opacity:0;transform:translate(-50%,-44%)scale(.96)}18%{opacity:1;transform:translate(-50%,-50%)scale(1)}62%{opacity:1}to{opacity:0;transform:translate(-50%,-56%)scale(.98)}}.move-pad{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:radial-gradient(circle,#ffffff0f 0%,#0000 55%),linear-gradient(#1a3048 0%,#121c28 100%);width:100%;height:100%;position:relative;overflow:hidden}.move-pad.active{cursor:grabbing;background:radial-gradient(circle,#5ec4ff1f 0%,#0000 55%),linear-gradient(#1e3a55 0%,#121c28 100%)}.move-pad.running{background:radial-gradient(circle,#ffb4462e 0%,#0000 55%),linear-gradient(#3a2a18 0%,#1a1510 100%)}.move-pad.running .move-pad-knob{background:#ffb84a}.move-pad.disabled{opacity:.45;pointer-events:none}.move-pad.ghost{cursor:default;background:0 0}.move-pad.ghost.active,.move-pad.ghost.running{cursor:grabbing;background:0 0}.move-pad.ghost .move-pad-base{background:#00000059;border:2px solid #fff6;width:88px;height:88px;margin:-44px 0 0 -44px}.move-pad.ghost .move-pad-knob{width:42px;height:42px;margin:-21px 0 0 -21px}.move-pad.ghost.running .move-pad-knob{background:#ffb84a}.move-pad-label{letter-spacing:.12em;opacity:.35;pointer-events:none;font-size:clamp(28px,8vw,48px);font-weight:800;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.move-pad-hint{opacity:.4;pointer-events:none;font-size:13px;position:absolute;top:54%;left:50%;transform:translate(-50%,-50%)}.move-pad-base{pointer-events:none;background:#00000040;border:2px solid #ffffff59;border-radius:50%;width:110px;height:110px;margin:-55px 0 0 -55px;position:absolute}.move-pad-knob{will-change:transform;background:#5ec4ff;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #00000059}.aim-pad{background:radial-gradient(circle,#ff78641a 0%,#0000 55%),linear-gradient(#48201a 0%,#281412 100%)}.aim-pad.active{background:radial-gradient(circle,#ff8c782e 0%,#0000 55%),linear-gradient(#5a2820 0%,#281412 100%)}.aim-pad.firing{background:radial-gradient(circle,#ff644647 0%,#0000 55%),linear-gradient(#7a3028 0%,#301816 100%)}.aim-pad.empty{background:radial-gradient(circle,#ffffff0d 0%,#0000 55%),linear-gradient(#2a2220 0%,#181414 100%)}.aim-knob{background:#ff7a5c}.aim-base{border-color:#ffb4a066}.controller-page{box-sizing:border-box;color:#eef3f7;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;height:100%;min-height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:#0d1218;flex-direction:column;font-family:IBM Plex Sans,Segoe UI,sans-serif;display:flex;position:relative;overflow:hidden}.controller-topbar{z-index:40;pointer-events:auto;touch-action:manipulation;background:#151c26;border-bottom:1px solid #ffffff14;flex:none;align-items:center;gap:8px;padding:8px 10px;display:flex;position:relative}.player-badge{letter-spacing:.06em;border-radius:8px;flex:none;padding:10px 12px;font-size:14px;font-weight:800}.player-badge.p1{color:#e8f4ff;background:#2f6a8a}.player-badge.p2{color:#fff4e8;background:#8a5a3d}.player-chip{letter-spacing:.06em;border-radius:4px;margin-right:8px;padding:4px 8px;font-size:13px;font-weight:800}.player-chip.p1{background:#2f6a8a}.player-chip.p2{background:#8a5a3d}.top-btn{color:#fff;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;padding:12px 14px;font-size:15px;font-weight:700}.top-btn:disabled{opacity:.4}.top-btn.recenter{background:#c9831a;flex:1}.top-btn.enable{background:#2f6fed;flex:1}.top-btn.stop{background:#6a3d4a;flex:1}.top-btn.leave{background:#8a3030;flex:none}.panel-overlay-actions{align-items:center;gap:8px;display:flex}.panel-overlay-actions .top-btn{padding:10px 12px;font-size:14px}.top-btn.toggle{background:#ffffff1a;flex:none;font-size:13px;font-weight:600}.top-btn.icon-btn{background:#ffffff1a;flex:none;justify-content:center;align-items:center;width:46px;height:46px;margin-left:auto;padding:0;display:inline-flex}.top-btn.icon-btn.open{background:#ffffff38}.mode-toggle{border:1px solid #ffffff2e;border-radius:8px;flex:none;display:flex;overflow:hidden}.mode-btn{color:#ffffffb3;font:inherit;letter-spacing:.04em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffff0f;border:none;padding:12px 14px;font-size:13px;font-weight:700}.mode-btn.active{color:#fff;background:#2f6fed}.controller-panel{z-index:30;touch-action:pan-y;background:#121820fa;border-bottom:1px solid #ffffff14;flex:none;max-height:min(42vh,360px);padding:10px 12px 12px;position:relative;overflow:auto}.controller-panel-overlay{z-index:35;box-sizing:border-box;width:100%;height:100%;max-height:none;padding:58px 14px calc(16px + env(safe-area-inset-bottom)) 14px;background:#0a0e14f7;border-bottom:none;flex-direction:column;flex:none;display:flex;position:absolute;inset:0;overflow:hidden}.panel-overlay-header{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-top:4px;display:flex}.panel-overlay-header h2{letter-spacing:.04em;margin:0;font-size:20px;font-weight:800}.controller-panel-overlay .status-grid{flex:none}.controller-panel-overlay .panel-actions{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow:auto}.join-screen{z-index:15;touch-action:manipulation;background:#0d1218;flex-direction:column;flex:1;justify-content:center;gap:20px;min-height:0;padding:20px 18px 28px;display:flex;overflow:hidden}.join-screen .join-form{gap:12px;width:100%;max-width:420px;margin:0 auto}.join-screen .join-form input{padding:16px 12px;font-size:clamp(24px,8vw,32px)}.join-screen .join-form .btn.primary{width:100%;padding:16px;font-size:18px}.join-status{width:100%;max-width:420px;margin:0 auto}.seat-picker{text-align:center;flex-direction:column;gap:16px;width:100%;max-width:420px;margin:0 auto;display:flex}.seat-picker-title{letter-spacing:.02em;margin:0;font-size:clamp(22px,6vw,28px);font-weight:800}.seat-picker-subtitle{opacity:.75;margin:0;font-size:15px}.seat-picker-buttons{flex-direction:column;gap:12px;display:flex}.seat-picker-btn{letter-spacing:.04em;color:#fff;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;width:100%;padding:18px 16px;font-size:20px;font-weight:800}.seat-picker-btn:disabled{opacity:.55}.seat-picker-btn.p1{background:#2f6a8a}.seat-picker-btn.p2{background:#8a5a3d}.seat-picker-back{align-self:center;margin-top:4px}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px;display:grid}.status-item{background:#ffffff0f;border-left:3px solid #6a7380;padding:6px 8px}.status-item.ok{border-left-color:#3caa68}.status-label{letter-spacing:.08em;text-transform:uppercase;opacity:.65;font-size:10px;display:block}.status-value{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px}.join-form{flex-direction:column;gap:8px;display:flex}.join-form label{opacity:.8;font-size:13px}.join-form input{letter-spacing:.28em;text-align:center;color:#fff;touch-action:manipulation;background:#0f141b;border:2px solid #4a5a6c;border-radius:8px;padding:12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:28px}.panel-actions{flex-direction:column;gap:10px;display:flex}.panel-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.leave-room-btn{background:#8a3030;flex:1 0 100%;order:-1;width:100%;padding:14px 16px;font-size:16px}.panel-links a,.linkish{color:#9cc7ef;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.btn{color:#fff;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;padding:14px 16px;font-size:18px;font-weight:700}.btn:disabled{opacity:.45}.btn.primary,.btn.motion{background:#2f6fed}.hint{opacity:.75;margin:0;font-size:12px;line-height:1.4}.join-or{text-align:center;opacity:.55!important;margin:4px 0!important;font-size:12px!important}.sens-label{justify-content:space-between;align-items:baseline;gap:8px;margin-top:10px;font-size:13px;font-weight:600;display:flex}.sens-label span{font-variant-numeric:tabular-nums;opacity:.8}.sens-slider{accent-color:#4cb0e8;width:100%;margin:4px 0 8px}.axis-panel{background:#00000047;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.axis-panel-title{letter-spacing:.04em;text-transform:uppercase;opacity:.75;margin:0 0 2px;font-size:12px;font-weight:700}.axis-row{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;display:grid}.axis-row.off{opacity:.45}.axis-toggle{cursor:pointer;flex-wrap:wrap;grid-column:1/-1;align-items:baseline;gap:8px;font-size:14px;font-weight:600;display:flex}.axis-toggle input{accent-color:#4cb0e8;width:18px;height:18px}.axis-name{min-width:7ch}.axis-hint{opacity:.65;font-size:12px;font-weight:500}.axis-sens{justify-self:end;margin:0;font-size:12px}.axis-row .sens-slider{grid-column:1/-1;margin:0 0 4px}.opt-toggle{border-top:1px solid #ffffff14;margin-top:4px;padding-top:8px}.error{color:#ff8f8f;margin:0;font-size:13px}.debug{background:#00000073;max-height:140px;margin:0;padding:8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;line-height:1.45;overflow:auto}.join-prompt{text-align:center;opacity:.85;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.play-layout{z-index:1;isolation:isolate;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.ammo-bar{background:#101820;border-bottom:1px solid #ffffff14;flex:none;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 14px;display:flex}.ammo-count{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800}.ammo-count small{opacity:.55;margin-left:2px;font-size:16px;font-weight:600}.ammo-count.empty{color:#ff8f8f}.ammo-hint{opacity:.55;font-size:13px}.controller-page .game-hud-toast{z-index:12}.controller-page .sideways-stage .game-hud-toast{top:50%}.shoot-zone{color:#fff;letter-spacing:.1em;touch-action:none;-webkit-tap-highlight-color:transparent;background:linear-gradient(#b83333 0%,#8e2424 100%);border:none;border-bottom:2px solid #00000059;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;min-height:0;margin:0;padding:0;font-size:clamp(36px,10vw,56px);font-weight:800;display:flex}.shoot-zone.reloading{background:linear-gradient(#3d4a55 0%,#2a343c 100%);box-shadow:inset 0 0 0 3px #8cb4dc47}.shoot-zone small{letter-spacing:0;opacity:.75;font-size:13px;font-weight:500}.shoot-zone.cooling{background:linear-gradient(#6e2a2a 0%,#4a1c1c 100%)}.shoot-zone.firing{background:linear-gradient(#e04a3a 0%,#b02820 100%);box-shadow:inset 0 0 0 3px #ffdcb459}.shoot-zone.locked,.shoot-zone:disabled{opacity:.55}.shoot-zone:active:not(:disabled){background:linear-gradient(#d64545 0%,#a52e2e 100%)}.shoot-zone.empty{background:linear-gradient(#4a4545 0%,#2e2a2a 100%)}.pad-zone{flex:1;min-height:0}.tilt-action-row{z-index:6;border-top:1px solid #ffffff1f;border-bottom:1px solid #00000059;flex:none;min-height:72px;display:flex}.stop-motion-zone,.set-neutral-zone{letter-spacing:.06em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;pointer-events:auto;color:#eef6ff;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;margin:0;padding:12px 10px;font-weight:800;display:flex}.stop-motion-zone{background:linear-gradient(#8a3a3a 0%,#5c2424 100%);border-right:1px solid #00000059;flex:0 0 25%;width:25%;font-size:clamp(14px,3.8vw,18px)}.stop-motion-zone.resuming{background:linear-gradient(#2f7a4a 0%,#1e5534 100%)}.set-neutral-zone{background:linear-gradient(#2a5f8a 0%,#1e4566 100%);flex:75%;width:75%;font-size:clamp(20px,5.5vw,30px)}.stop-motion-zone small,.set-neutral-zone small{letter-spacing:0;opacity:.7;font-size:11px;font-weight:500}.stop-motion-zone:active:not(:disabled){filter:brightness(1.12)}.set-neutral-zone:active:not(:disabled){background:linear-gradient(#3a78a8 0%,#2a5f8a 100%)}.stop-motion-zone:disabled,.set-neutral-zone:disabled{opacity:.5}.motion-gate{z-index:5;touch-action:manipulation;pointer-events:auto;background:#152033;border-bottom:1px solid #ffffff14;flex-direction:column;flex:none;align-items:center;gap:8px;padding:12px 16px;display:flex}.motion-gate .btn{width:min(100%,320px)}.sideways-stage{z-index:1;isolation:isolate;--stage-w:100%;--stage-h:100%;flex:1;min-height:0;position:relative;overflow:hidden}.sideways-content{width:var(--stage-h);height:var(--stage-w);touch-action:none;background:#0d1218;flex-direction:row;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.sideways-move,.sideways-aim{flex:1;min-width:0;min-height:0}.sideways-center{background:#101820;border-left:1px solid #ffffff14;border-right:1px solid #ffffff14;flex-direction:column;flex:0 0 88px;justify-content:center;align-items:stretch;gap:10px;display:flex}.sideways-ammo{text-align:center;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:10px 6px}.sideways-ammo .player-chip{margin-right:0}.sideways-ammo .ammo-hint{font-size:11px}.sideways-ready{margin:0 8px;padding:10px 8px;font-size:14px}body.controller-lock{touch-action:manipulation;width:100%;position:fixed;inset:0;overflow:hidden}.mobile-game-controls{z-index:10;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:absolute;inset:0}.mobile-game-controls.coach-open{z-index:50}.mobile-game-controls.disabled{opacity:.55}.mobile-look-layer{pointer-events:auto;touch-action:none;z-index:0;position:absolute;inset:0}.mobile-move-wrap{z-index:2;pointer-events:auto;width:48%;box-shadow:none;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);background:0 0;border-radius:0;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.mobile-move-wrap .move-pad{background:0 0;border:none;border-radius:0}.mobile-move-wrap .move-pad.active,.mobile-move-wrap .move-pad.running{background:0 0}.mobile-actions{right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));z-index:2;pointer-events:none;flex-direction:row;align-items:flex-end;gap:10px;display:flex;position:absolute}.mobile-actions.locked{opacity:.35}.mobile-pose{pointer-events:none;flex-direction:row;align-items:stretch;gap:8px;display:flex}.mobile-fire-col{pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex}.mobile-action-btn,.mobile-shoot{color:#fff;font:inherit;letter-spacing:.08em;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;pointer-events:auto;border:none;margin:0;font-weight:800;box-shadow:0 6px 20px #0006}.mobile-action-btn:disabled,.mobile-shoot:disabled{opacity:.5;pointer-events:none}.mobile-jump,.mobile-crouch{border-radius:16px;width:min(22vw,88px);height:min(22vw,88px);font-size:12px}.mobile-jump{background:#2a5a7a}.mobile-jump:active{background:#3a7aaa}.mobile-crouch{background:#3a4555}.mobile-crouch.active,.mobile-crouch:active{background:#5a6a80;box-shadow:inset 0 0 0 3px #ffffff47}.mobile-reload{background:#6a5a2a;border-radius:14px;width:min(28vw,108px);height:48px;font-size:13px}.mobile-reload:active{background:#8a7438}.mobile-shoot{background:#b83333;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:min(34vw,132px);height:min(34vw,132px);font-size:clamp(16px,4.5vw,22px);display:flex}.mobile-shoot.firing{background:#e04a3a;box-shadow:inset 0 0 0 3px #ffdcb459,0 6px 20px #0006}.mobile-shoot.empty{background:#4a4545}.mobile-shoot.reloading{background:#3d4a55;box-shadow:inset 0 0 0 3px #8cb4dc47}.mobile-shoot-hint{letter-spacing:.04em;opacity:.85;font-size:9px;font-weight:700;line-height:1.1}.mobile-shoot:active:not(.empty){background:#d64545}.mobile-coach{z-index:20;pointer-events:auto;position:absolute;inset:0}.mobile-coach-dim{pointer-events:none;background:#04080e8c;position:absolute;inset:0}.mobile-coach-dim.dim-right{clip-path:inset(0 0 0 48%)}.mobile-coach-dim.dim-left{clip-path:inset(0 48% 0 0)}.mobile-coach-dim.dim-except-buttons{background:#04080e9e}.mobile-coach-region{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));box-sizing:border-box;cursor:pointer;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0}.mobile-coach-region.move{background:#2f6fed24;border-right:2px solid #78c8ff8c;width:48%;left:0;box-shadow:inset 0 0 0 2px #78c8ff59}.mobile-coach-region.aim{background:#b833331f;border-left:2px solid #ffaa5a8c;width:52%;right:0;box-shadow:inset 0 0 0 2px #ffaa5a59}.mobile-coach-region.buttons{left:auto;right:max(4px, env(safe-area-inset-right));top:auto;bottom:max(4px, env(safe-area-inset-bottom));background:#1f6b4a2e;border:2px solid #50c88ca6;border-radius:20px;justify-content:center;align-items:flex-start;width:min(58vw,280px);height:min(48vh,280px);padding:0;box-shadow:inset 0 0 0 2px #50c88c4d}.mobile-coach-region.buttons .mobile-coach-card{width:min(260px,78vw);position:absolute;bottom:calc(100% + 10px);right:0}.mobile-coach-card{text-align:center;pointer-events:auto;background:#0a0e14f0;border:1px solid #ffffff2e;border-radius:12px;width:min(240px,90%);padding:14px 14px 12px;box-shadow:0 12px 32px #00000073}.mobile-coach-step{letter-spacing:.12em;text-transform:uppercase;opacity:.55;margin-bottom:6px;font-size:11px;font-weight:700}.mobile-coach-title{margin-bottom:6px;font-size:18px;font-weight:800}.mobile-coach-copy{opacity:.85;margin:0 0 12px;font-size:13px;line-height:1.4}.mobile-coach-btn{color:#fff;width:100%;min-height:42px;font:inherit;cursor:pointer;background:#2f6fed;border:none;border-radius:10px;font-size:14px;font-weight:800}.mobile-coach-btn:active{background:#3d7ef5}@media (orientation:landscape) and (height<=480px){.mobile-move-wrap{width:42%}.mobile-coach-dim.dim-right{clip-path:inset(0 0 0 42%)}.mobile-coach-dim.dim-left{clip-path:inset(0 42% 0 0)}.mobile-coach-region.move{width:42%}.mobile-coach-region.aim{width:58%}.mobile-coach-region.buttons{width:min(50vw,240px);height:min(70vh,220px)}.mobile-coach-card{padding:10px 12px}.mobile-coach-title{font-size:15px}.mobile-coach-copy{margin-bottom:8px;font-size:12px}.mobile-coach-btn{min-height:36px;font-size:13px}.mobile-actions{right:max(8px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));gap:8px}.mobile-fire-col{gap:8px}.mobile-shoot{width:min(26vh,100px);height:min(26vh,100px)}.mobile-jump,.mobile-crouch{width:min(18vh,68px);height:min(18vh,68px);font-size:11px}.mobile-reload{width:min(22vh,88px);height:38px;font-size:11px}}.game-page{color:#f2f5f8;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:#1a222c;width:100%;height:100dvh;max-height:100dvh;font-family:IBM Plex Sans,Segoe UI,sans-serif;position:fixed;inset:0;overflow:hidden}.game-page input,.game-page textarea,.game-page [contenteditable=true]{-webkit-user-select:text;user-select:text}.game-canvas{position:absolute;inset:0}.game-canvas>div{width:100%!important;height:100%!important;position:absolute!important;inset:0!important}.game-canvas canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block;width:100%!important;height:100%!important}.player-badge{top:max(4.5rem, calc(env(safe-area-inset-top) + 3.25rem));z-index:5;letter-spacing:.04em;color:#f2f5f0;text-shadow:0 2px 12px #000000a6;pointer-events:none;opacity:.92;max-width:min(90vw,28rem);padding:0 max(12px, env(safe-area-inset-left)) 0 max(12px, env(safe-area-inset-right));text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.4rem,4vw,2.4rem);font-weight:800;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.split-divider{z-index:5;pointer-events:none;background:#ffffff59;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 12px #00000059}.crosshair{pointer-events:none;z-index:5;border:2px solid #fff3;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;box-shadow:0 0 0 1px #0000001f}.crosshair.left{left:25%}.crosshair.right{left:75%}.crosshair.solo{left:50%}.crosshair.third{top:48%}.score-health{opacity:.9;margin-top:2px;font-size:12px}.player-score.solo-hud{left:18px;right:auto}.game-page.touch-play .player-score.solo-hud{bottom:auto;top:max(4.5rem, calc(env(safe-area-inset-top) + 3.25rem));left:max(18px, env(safe-area-inset-left))}.game-page.touch-play .calibrate-banner{font-size:16px;top:18%}.game-page.touch-play{--touch-hud-clearance:max(72px, calc(env(safe-area-inset-top) + 56px))}.game-page.touch-play .game-hud{z-index:15}.game-page.touch-play .mobile-look-layer,.game-page.touch-play .mobile-move-wrap{top:var(--touch-hud-clearance)}.game-page.touch-play .player-score.solo-hud,.game-page.touch-play .kill-board{z-index:15}.game-page.touch-play .hud-view-btn,.game-page.touch-play .lobby-dock-leave{touch-action:manipulation}@media (orientation:landscape) and (height<=500px){.game-page.touch-play{--touch-hud-clearance:max(44px, calc(env(safe-area-inset-top) + 32px))}.game-page.touch-play .game-hud{padding:max(4px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 4px max(10px, env(safe-area-inset-left));background:linear-gradient(#0c12188c,#0000);gap:6px 10px}.game-page.touch-play .hud-block{flex-direction:row;align-items:baseline;gap:4px}.game-page.touch-play .hud-label{font-size:9px}.game-page.touch-play .hud-code{font-size:14px}.game-page.touch-play .hud-pill,.game-page.touch-play .hud-view-btn,.game-page.touch-play .hud-link{padding:2px 6px;font-size:11px}.game-page.touch-play .player-badge{display:none}.game-page.touch-play .player-score.solo-hud{top:max(2.25rem, calc(env(safe-area-inset-top) + 1.5rem));left:max(18px, env(safe-area-inset-left));padding:6px 10px}.game-page.touch-play .score-value{font-size:22px}.game-page.touch-play .game-help{display:none}}.game-error{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.game-error a{color:#cfe8ff}.game-action-error{left:50%;top:max(72px, calc(env(safe-area-inset-top) + 56px));z-index:20;color:#ffc4b8;text-align:center;pointer-events:none;background:#280c0ceb;border:1px solid #ff786473;border-radius:10px;max-width:min(420px,100vw - 32px);padding:10px 16px;font-size:14px;font-weight:600;position:absolute;transform:translate(-50%)}.lobby-shell{right:max(18px, env(safe-area-inset-right));top:max(72px, calc(env(safe-area-inset-top) + 56px));z-index:12;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute}.lobby-shell .map-confirm{z-index:30;position:fixed;inset:0}.lobby-shell>*{pointer-events:auto}.game-page.lobby-sheet-open .mobile-game-controls,.game-page.lobby-sheet-open .mobile-look-layer,.game-page.lobby-sheet-open .mobile-move-wrap,.game-page.lobby-sheet-open .mobile-actions{pointer-events:none!important}.game-page.lobby-sheet-open .mobile-game-controls.coach-open,.game-page.lobby-sheet-open .mobile-game-controls.coach-open .mobile-coach{pointer-events:auto!important}.lobby-panel{z-index:1;pointer-events:auto;background:#0a0e14c7;border:1px solid #ffffff29;width:100%;max-height:calc(100dvh - 120px);padding:14px 16px;position:relative;overflow-y:auto}.lobby-shell-mobile{right:max(12px, env(safe-area-inset-right));top:max(56px, calc(env(safe-area-inset-top) + 48px));bottom:max(12px, env(safe-area-inset-bottom));max-width:min(360px, calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));flex-direction:column;justify-content:flex-start;align-items:flex-end;gap:8px;display:flex}.lobby-dock{pointer-events:auto;align-self:flex-end;align-items:center;gap:8px;display:flex}.lobby-dock-stack{flex-direction:column;align-self:flex-end;align-items:stretch;width:max-content;max-width:none;overflow:visible}.lobby-dock-row{flex:none;align-items:center;gap:8px;width:max-content;padding:6px 6px 0 0;display:flex;overflow:visible}.lobby-dock-share,.lobby-dock-players,.lobby-dock-maps,.lobby-dock-leave{box-sizing:border-box;cursor:pointer;border-radius:12px;flex:none;place-items:center;width:48px;min-width:48px;max-width:48px;height:48px;min-height:48px;max-height:48px;margin:0;padding:0;line-height:1;display:grid;box-shadow:0 6px 18px #00000059}.lobby-dock-share,.lobby-dock-leave{overflow:hidden}.lobby-dock-share{color:#fff;font:inherit;letter-spacing:.02em;white-space:nowrap;background:#2f6fed;border:1px solid #0000;font-size:11px;font-weight:800}.lobby-dock-share:disabled{opacity:.45;cursor:not-allowed}.lobby-dock-share:not(:disabled):active{background:#3d7ef5}.lobby-body{flex-direction:column;align-self:flex-end;gap:8px;width:min(380px,52vw);display:flex}.lobby-body-sheet{width:min(360px,100vw - 24px);position:relative}.lobby-body-sheet .lobby-start,.lobby-body-sheet .lobby-start-waiting{z-index:2;position:relative}.lobby-body.hidden,.lobby-body[hidden]{display:none}.lobby-start{box-sizing:border-box;color:#fff;width:100%;height:60px;min-height:60px;font:inherit;letter-spacing:.05em;cursor:pointer;white-space:nowrap;background:#1f6b4a;border:none;border-radius:12px;flex:none;margin:0;padding:0 18px;font-size:17px;font-weight:800;box-shadow:0 6px 18px #00000059}.lobby-start:disabled{opacity:.45;cursor:not-allowed}.lobby-start:not(:disabled):hover{background:#25855c}.lobby-start:not(:disabled):active{background:#2a9668}.lobby-start-waiting{box-sizing:border-box;opacity:.85;white-space:nowrap;background:#0a0e14c7;border:1px solid #ffffff29;border-radius:12px;justify-content:center;align-items:center;width:100%;height:60px;min-height:60px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.lobby-dock-players,.lobby-dock-maps{color:#e8eef4;background:#0a0e14e0;border:1px solid #fff3;position:relative;overflow:visible}.lobby-dock-players.active,.lobby-dock-maps.active{background:#284664f2;border-color:#78b4e673}.lobby-dock-icon{opacity:.92;display:block}.lobby-dock-count{z-index:2;color:#0a1018;pointer-events:none;background:#4cb0e8;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:800;line-height:1;display:grid;position:absolute;top:-6px;right:-6px;box-shadow:0 2px 6px #00000059}.lobby-panel.lobby-panel-sheet{background:#0a0e14f0;border-radius:12px;align-self:flex-end;width:100%;max-height:min(62vh,100dvh - 200px);box-shadow:0 12px 36px #00000073}.lobby-panel.lobby-panel-sheet.hidden,.lobby-panel.lobby-panel-sheet[hidden]{display:none}@media (orientation:landscape) and (height<=500px){.lobby-shell-mobile{top:max(36px, calc(env(safe-area-inset-top) + 28px))}.lobby-dock-share,.lobby-dock-players,.lobby-dock-maps,.lobby-dock-leave{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;max-height:44px}.lobby-start,.lobby-start-waiting{height:52px;min-height:52px;font-size:15px}.lobby-panel.lobby-panel-sheet{max-height:min(62vh,100dvh - 160px)}}.lobby-panel h2{margin:0 0 12px;font-family:Fraunces,Times New Roman,serif;font-size:16px}.lobby-panel p{opacity:.85;margin:0 0 10px;font-size:13px;line-height:1.4}.lobby-slots{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.lobby-slot{background:#ffffff0f;border:1px solid #ffffff1a;grid-template-columns:36px minmax(48px,1fr) auto;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:grid}.lobby-invite{border-top:1px solid #ffffff14;grid-column:1/-1;align-items:center;gap:12px;margin-top:4px;padding-top:8px;display:flex}.lobby-invite-code{flex-direction:column;gap:2px;display:flex}.lobby-invite-label{opacity:.65;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.lobby-invite-code strong{letter-spacing:.12em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:22px}.invite-qr{flex-direction:column;align-items:center;gap:4px;margin:0;display:flex}.invite-qr img{background:#fff;border-radius:6px;display:block}.invite-qr figcaption{opacity:.75;font-size:11px}.invite-qr-fallback{opacity:.7;background:#ffffff14;border-radius:6px;place-items:center;font-size:12px;display:grid}.lobby-slot.closed,.lobby-slot.empty{opacity:.55}.lobby-slot.host,.lobby-slot.local,.lobby-slot.online,.lobby-slot.bot{border-color:#4cb0e859}.lobby-slot.open{opacity:.7;border-color:#e8c44c4d}.lobby-slot-id{letter-spacing:.04em;font-weight:700}.lobby-mode-header{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.lobby-mode-label{letter-spacing:.1em;text-transform:uppercase;opacity:.65;font-size:11px}.lobby-mode-toggle{gap:6px;display:flex}.lobby-mode-btn{color:#c8d4e0;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:8px;flex:1;padding:8px 10px;font-size:12px;font-weight:700}.lobby-mode-btn.active{color:#e8f4ff;background:#4cb0e833;border-color:#4cb0e88c}.lobby-mode-btn:disabled{opacity:.55;cursor:default}.lobby-slot.team-blue{background:#3d6b8a1f;border-left:3px solid #3d6b8a}.lobby-slot.team-red{background:#8a4a4a1f;border-left:3px solid #8a4a4a}.lobby-team-badge{border-radius:4px;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:11px;display:inline-flex}.lobby-team-badge.team-blue{color:#b8d8f0;background:#3d6b8a59}.lobby-team-badge.team-red{color:#f0c8c8;background:#8a4a4a59}.lobby-slot-btn.lobby-team-switch{border-color:#ffffff40;min-width:auto}.lobby-slot-controls{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.lobby-slot-btn{color:#e8eef4;font:inherit;cursor:pointer;pointer-events:auto;touch-action:manipulation;z-index:2;background:#ffffff0f;border:1px solid #fff3;border-radius:6px;min-width:4.5rem;min-height:36px;padding:6px 10px;font-size:12px;font-weight:700;position:relative}.lobby-slot-btn.lobby-slot-cycle.fill-closed{background:#ffffff14;border-color:#ffffff38}.lobby-slot-btn.lobby-slot-cycle.fill-bot{background:#5a4a2a;border-color:#8a7438}.lobby-slot-btn.lobby-slot-cycle.fill-open{background:#1f6b4a;border-color:#26855c}.lobby-slot-btn:disabled{opacity:.4;cursor:not-allowed}.lobby-ready{color:#7dcea0;text-transform:uppercase;font-size:11px}.lobby-wait{color:#e8c44c;text-transform:uppercase;font-size:11px}.lobby-actions{flex-direction:column;gap:8px;display:flex}.lobby-dock-leave{color:#e8eef4;pointer-events:auto;background:#0a0e14e0;border:1px solid #fff3;position:relative}.lobby-dock-leave:hover,.lobby-dock-leave:active{background:#782828eb;border-color:#e8787873}.game-hud .lobby-dock-leave{width:48px;height:48px;margin-left:auto}.leave-confirm{z-index:20;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#060a109e;place-items:center;display:grid;position:absolute;inset:0}.leave-confirm-inner{text-align:center;background:#0a0e14f5;border:1px solid #ffffff2e;border-radius:14px;width:min(340px,100%);padding:20px 20px 18px;box-shadow:0 18px 48px #00000073}.leave-confirm-inner h2{margin:0 0 8px;font-family:Fraunces,Times New Roman,serif;font-size:18px}.leave-confirm-inner p{opacity:.8;margin:0 0 16px;font-size:14px;line-height:1.4}.leave-confirm-actions{gap:10px;display:flex}.leave-confirm-actions-stack{flex-direction:column}.leave-confirm-actions-stack .lobby-btn{flex:none;width:100%;min-height:44px;font-size:15px}.leave-confirm-hint{color:#ffffff8c;text-align:center;margin:-4px 0 4px;font-size:12px;line-height:1.35}.lobby-btn-refresh{background:#3a4555}.lobby-btn-refresh:hover{background:#4a5668}.refresh-notice{top:max(12px, env(safe-area-inset-top));z-index:24;color:#e8eef5;pointer-events:none;background:#141c26eb;border:1px solid #ffffff1f;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.spectator-overlay{z-index:19;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));pointer-events:none;background:#060a1073;place-items:center;display:grid;position:absolute;inset:0}.spectator-overlay-inner{text-align:center;pointer-events:auto;background:#0a0e14f5;border:1px solid #ffffff2e;border-radius:14px;width:min(380px,100%);padding:20px 20px 18px;box-shadow:0 18px 48px #00000073}.spectator-title{margin:0 0 10px;font-family:Fraunces,Times New Roman,serif;font-size:18px}.spectator-message{opacity:.88;margin:0 0 16px;font-size:14px;line-height:1.45}.spectator-leave-btn{width:100%;min-height:44px;font-size:15px}.leave-confirm-actions .lobby-btn{flex:1;min-height:44px;font-size:15px}.lobby-btn.lobby-btn-leave-confirm,.lobby-btn-leave-confirm{background:#c62828}.lobby-btn.lobby-btn-leave-confirm:hover,.lobby-btn-leave-confirm:hover{background:#e53935}.lobby-btn-stay{background:#3a4555}.lobby-btn-stay:hover{background:#4a5668}.lobby-btn{color:#fff;font:inherit;cursor:pointer;background:#1f6b4a;border:none;border-radius:6px;padding:10px 12px;font-size:13px;font-weight:600}.lobby-btn-share{letter-spacing:.04em;background:#2f6fed;border-radius:10px;width:100%;min-height:52px;padding:14px 16px;font-size:16px;font-weight:800;box-shadow:0 6px 18px #00000047}.lobby-btn-share:hover:not(:disabled){background:#3d7ef5}.lobby-btn-share:disabled{opacity:.45;cursor:not-allowed}.lobby-btn-start{background:#1a5f8a;padding:12px;font-size:14px}.lobby-btn-start:hover{background:#2174a8}.lobby-btn:hover:not(.lobby-btn-start):not(.lobby-btn-share):not(.lobby-btn-leave-confirm):not(.lobby-btn-stay){background:#26855c}.lobby-hint{opacity:.75;margin:0;font-size:12px;line-height:1.35}.lobby-maps-hint{opacity:.75;margin:0 0 10px;font-size:12px;line-height:1.35}.lobby-map-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lobby-map-card{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:#ffffff0a;border:1px solid #ffffff24;border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.lobby-map-card.selected{background:#4aa0782e;border-color:#78dcaa80}.lobby-map-card:disabled{cursor:default}.lobby-map-card:not(:disabled):hover{background:#ffffff0f}.lobby-map-card.selected:not(:disabled):hover{background:#4aa07838}.lobby-practice-banner{background:#4aa07829;border:1px solid #78dcaa59;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 10px;font-size:12px;display:flex}.lobby-practice-leave{color:inherit;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff29;border-radius:6px;align-items:center;gap:4px;padding:6px 8px;font-size:11px;font-weight:700;display:inline-flex}.lobby-practice-leave:hover{background:#ffffff1a}.lobby-map-name{font-size:14px;font-weight:700}.lobby-map-desc{opacity:.78;font-size:12px;line-height:1.3}.lobby-map-meta{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.lobby-map-selected,.lobby-map-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.lobby-map-selected{color:#b8f0d4;background:#78dcaa40}.lobby-map-badge{color:#f0d890;background:#dcb45033}.results-panel{width:min(920px, calc(96vw - env(safe-area-inset-left) - env(safe-area-inset-right)));max-height:min(88vh, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px), 900px);text-align:center;z-index:10;background:#0a0e14eb;border:1px solid #fff3;flex-direction:column;gap:12px;padding:22px 24px 20px;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.results-panel h2{flex:none;margin:0;font-family:Fraunces,Times New Roman,serif;font-size:clamp(22px,4vw,28px)}.results-sub{opacity:.8;flex:none;margin:0;font-size:14px}.results-layout{text-align:left;flex:auto;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;gap:18px;min-height:0;display:grid;overflow:visible}@media (width<=720px){.results-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;min-height:0;overflow:hidden}.results-podium{min-height:180px;overflow:visible}}.results-podium{grid-template-columns:1fr 1.15fr 1fr;align-self:end;align-items:end;gap:10px;min-width:0;min-height:220px;padding:8px 4px 0;display:grid;overflow:visible}.results-side{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;gap:14px;min-width:0;min-height:0;max-height:100%;padding-right:2px;display:flex;overflow:hidden auto}.podium-slot{flex-direction:column;align-items:center;gap:6px;display:flex}.podium-slot.empty{opacity:.25}.podium-avatar{color:#fff;border:2px solid #ffffff40;border-radius:50%;place-items:center;width:52px;height:52px;font-size:20px;font-weight:800;display:grid;box-shadow:0 6px 18px #00000059}.podium-slot.place-1 .podium-avatar{border-color:#e8c44cbf;width:68px;height:68px;font-size:26px}.podium-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:700;overflow:hidden}.podium-kills{opacity:.7;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.podium-block{background:#ffffff14;border:1px solid #ffffff1f;border-radius:10px 10px 4px 4px;place-items:center;width:100%;display:grid}.podium-block.place-1{background:linear-gradient(#e8c44c59,#e8c44c1f);border-color:#e8c44c66;height:110px}.podium-block.place-2{background:linear-gradient(#b4c4d24d,#788ca01a);height:78px}.podium-block.place-3{background:linear-gradient(#b4785047,#7850321a);height:58px}.podium-rank{opacity:.85;font-size:28px;font-weight:800}.results-player-cell{align-items:center;gap:8px;display:inline-flex}.results-mini-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:800;display:inline-grid}.final-kill-combat-toast{top:max(16%, calc(env(safe-area-inset-top) + 72px));z-index:9;pointer-events:none;max-width:min(92vw,420px);position:absolute;left:50%;transform:translate(-50%)}.final-kill-combat-row{border-radius:8px;justify-content:center;padding:8px 14px;font-size:14px;animation:.35s ease-out combat-in;box-shadow:0 8px 24px #00000059}.game-page.final-kill-hold .game-canvas{filter:saturate(.88)}.game-page.final-kill-hold .game-canvas:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#04060a59 100%);position:absolute;inset:0}.results-tables{text-align:left;flex-direction:column;flex:1;gap:14px;min-height:0;display:flex;overflow:auto}.results-table{border-collapse:collapse;width:100%;font-size:13px}.results-table caption{caption-side:top;text-align:left;letter-spacing:.12em;text-transform:uppercase;opacity:.65;margin-bottom:6px;font-size:11px}.results-table th,.results-table td{border-bottom:1px solid #ffffff1a;padding:7px 10px}.results-table th{opacity:.7;letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600}.results-table tbody tr:last-child td{border-bottom:none}.results-table tr.winner td{background:#4cb0e824}.results-table tr.you td{background:#1f6b4a47;box-shadow:inset 3px 0 #3dba7a}.results-table tr.winner.you td{background:#4cb0e838;box-shadow:inset 3px 0 #4cb0e8}.results-table tr.headshot td{color:#ffc9a0}.results-time{font-variant-numeric:tabular-nums;opacity:.9;font-family:IBM Plex Mono,ui-monospace,monospace}.results-empty{text-align:center;opacity:.55;font-style:italic}.results-elims{max-height:240px;display:block;overflow:auto}.results-elims thead,.results-elims tbody,.results-elims tr{table-layout:fixed;width:100%;display:table}.results-panel .lobby-btn{align-self:center;margin-top:4px}.results-actions{background:linear-gradient(#0000,#0a0e14f5 28%);flex-wrap:wrap;flex:none;justify-content:stretch;align-items:center;gap:10px;margin-top:auto;padding-top:12px;display:flex;position:sticky;bottom:0}.results-actions .lobby-btn{flex:auto;min-width:120px;margin-top:0}.results-waiting{opacity:.75;text-align:left;flex:auto;margin:0;font-size:13px}.crosshair:before,.crosshair:after{content:"";background:#fff3;position:absolute}.crosshair:before{width:2px;height:30px;margin-left:-1px;top:-6px;left:50%}.crosshair:after{width:30px;height:2px;margin-top:-1px;top:50%;left:-6px}.player-score{bottom:max(48px, calc(env(safe-area-inset-bottom) + 16px));z-index:6;pointer-events:none;background:#0a0e148c;border:1px solid #ffffff29;flex-direction:column;gap:2px;min-width:88px;padding:10px 14px;display:flex;position:absolute}.player-score.left{left:max(18px, env(safe-area-inset-left));border-color:#4cb0e873}.player-score.right{right:max(18px, env(safe-area-inset-right));text-align:right;border-color:#e89a4c73}.kill-board{right:max(18px, env(safe-area-inset-right));top:max(72px, calc(env(safe-area-inset-top) + 56px));z-index:6;pointer-events:none;background:#0a0e149e;border:1px solid #ffffff29;flex-direction:column;gap:6px;min-width:140px;max-width:min(220px,46vw);padding:10px 12px;display:flex;position:absolute}.kill-board-title{letter-spacing:.1em;text-transform:uppercase;opacity:.7;font-size:11px}.kill-board-row{justify-content:space-between;gap:16px;font-size:13px;display:flex}.kill-board-row.dead{opacity:.45}.kill-board-row.you .kill-board-name{color:#9fd4ff;font-weight:700}.kill-board-name{opacity:.9;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem;overflow:hidden}.kill-board-meta{align-items:baseline;gap:10px;display:flex}.kill-board-hp{opacity:.75;text-align:right;min-width:3.2em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.kill-board-kills{font-family:IBM Plex Mono,ui-monospace,monospace;font-weight:700}.team-score-board{right:max(18px, env(safe-area-inset-right));top:max(72px, calc(env(safe-area-inset-top) + 56px));z-index:6;pointer-events:auto;min-width:160px;max-width:min(240px,50vw);position:absolute}.team-score-widget{background:#0a0e149e;border:1px solid #ffffff29;border-radius:4px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.team-score-widget.compact{cursor:pointer}.team-score-row{grid-template-columns:3.2rem 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.team-score-row.you{border-radius:4px;outline:1px solid #9fd4ff59;margin:-2px -4px;padding:2px 4px}.team-score-label{text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.team-score-bar-track{background:#ffffff1a;border-radius:3px;height:6px;overflow:hidden}.team-score-bar-fill{border-radius:3px;height:100%;transition:width .2s}.team-score-num{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:700}.team-score-overlay-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.team-score-overlay{background:#0c1016f2;border:1px solid #ffffff26;border-radius:10px;width:100%;max-width:420px;max-height:80vh;padding:20px 24px;overflow-y:auto}.team-score-overlay-title{margin:0 0 16px;font-size:1.1rem}.team-score-section{margin-bottom:16px}.team-score-section.your-team{border-radius:8px;outline:1px solid #9fd4ff40;padding:8px}.team-score-section h3{text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:.85rem}.team-score-table{border-collapse:collapse;width:100%;font-size:13px}.team-score-table th,.team-score-table td{text-align:left;border-bottom:1px solid #ffffff14;padding:4px 8px}.team-score-table tr.you td{color:#9fd4ff;font-weight:700}.team-score-overlay-hint{opacity:.55;text-align:center;margin:12px 0 0;font-size:11px}.results-team-banner{text-align:center;border:2px solid;border-radius:8px;margin-bottom:12px;padding:16px 24px}.results-team-score{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.25rem;font-weight:700}.results-team-pill{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}.kill-board-rows{flex-direction:column;gap:6px;display:flex}.game-page.touch-play .kill-board-rows.tail-fade{--kill-board-fade-rows:3;--kill-board-row-h:19px;--kill-board-row-gap:6px;--kill-board-fade-span:calc(var(--kill-board-row-h) * var(--kill-board-fade-rows) + var(--kill-board-row-gap) * (var(--kill-board-fade-rows) - 1));-webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 calc(100% - var(--kill-board-fade-span)), #000000d1 calc(100% - var(--kill-board-fade-span) * .72), #00000094 calc(100% - var(--kill-board-fade-span) * .48), #00000061 calc(100% - var(--kill-board-fade-span) * .26), #0000003d 100%);-webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 calc(100% - var(--kill-board-fade-span)), #000000d1 calc(100% - var(--kill-board-fade-span) * .72), #00000094 calc(100% - var(--kill-board-fade-span) * .48), #00000061 calc(100% - var(--kill-board-fade-span) * .26), #0000003d 100%);mask-image:linear-gradient(to bottom, #000 0%, #000 calc(100% - var(--kill-board-fade-span)), #000000d1 calc(100% - var(--kill-board-fade-span) * .72), #00000094 calc(100% - var(--kill-board-fade-span) * .48), #00000061 calc(100% - var(--kill-board-fade-span) * .26), #0000003d 100%)}.damage-vignette{z-index:7;pointer-events:none;background:radial-gradient(#0000 35%,#7800008c 100%),linear-gradient(#a0141440,#0000 40% 60%,#780a0a4d);animation:.28s ease-out forwards damage-flash;position:absolute;inset:0}@keyframes damage-flash{0%{opacity:1}to{opacity:0}}.hit-marker{z-index:8;pointer-events:none;width:14px;height:14px;margin:-7px 0 0 -7px;animation:.18s ease-out forwards hit-marker-pop;position:absolute;top:50%;left:50%}.hit-marker:before,.hit-marker:after{content:"";background:#f2f2f0;position:absolute;box-shadow:0 0 4px #000000b3}.hit-marker:before{width:2px;height:100%;margin-left:-1px;top:0;left:50%}.hit-marker:after{width:100%;height:2px;margin-top:-1px;top:50%;left:0}@keyframes hit-marker-pop{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.35)}}.combat-log{right:max(18px, env(safe-area-inset-right));top:max(220px, calc(env(safe-area-inset-top) + 180px));z-index:8;pointer-events:none;flex-direction:column;gap:4px;max-width:min(220px,38vw);display:flex;position:absolute;bottom:auto;left:auto}.game-page.touch-play .combat-log{left:max(12px, env(safe-area-inset-left));top:auto;right:auto;bottom:max(132px, calc(env(safe-area-inset-bottom) + 118px));max-width:min(200px,46vw);max-height:28vh;overflow:hidden}.combat-log-row{background:#080c12b8;border:1px solid #ffffff1a;align-items:baseline;gap:6px;padding:4px 8px;font-size:12px;animation:.25s ease-out combat-in;display:flex}.combat-killer{color:#9fd4ff;font-weight:700}.combat-verb{opacity:.65;text-transform:uppercase;letter-spacing:.04em;font-size:10px}.combat-verb.hs{color:#e8c44c;opacity:1}.combat-victim{color:#ffb4a8;font-weight:700}@keyframes combat-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.death-overlay{z-index:9;text-align:center;pointer-events:none;text-shadow:0 2px 16px #000000b3;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.death-title{letter-spacing:.08em;text-transform:uppercase;opacity:.9;font-size:clamp(1.4rem,4vw,2rem);font-weight:800}.death-killer{letter-spacing:.04em;opacity:.85;margin-top:10px;font-size:clamp(1.1rem,3vw,1.5rem);font-weight:600}.death-countdown{font-variant-numeric:tabular-nums;margin:6px 0;font-size:clamp(3rem,10vw,5rem);font-weight:800;line-height:1}.death-hint{opacity:.75;font-size:14px}.match-countdown-overlay{z-index:10;pointer-events:none;text-shadow:0 4px 28px #000000bf;background:radial-gradient(#080c1259,#0000 65%);place-content:center;display:grid;position:absolute;inset:0}.match-countdown-num{font-variant-numeric:tabular-nums;letter-spacing:.04em;text-align:center;font-size:clamp(4.5rem,18vw,9rem);font-weight:800;line-height:.9;animation:.35s ease-out match-count-pop}.match-countdown-num.go{letter-spacing:.12em;color:#ffe08a}.match-countdown-hint{text-align:center;letter-spacing:.22em;text-transform:uppercase;opacity:.8;margin-top:10px;font-size:clamp(.85rem,2.2vw,1.1rem)}.world-loading-overlay{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080c12b8;place-content:center;display:grid;position:absolute;inset:0}.world-loading-card{background:#121820eb;border-radius:14px;flex-direction:column;align-items:center;gap:12px;min-width:min(320px,88vw);padding:28px 36px;display:flex;box-shadow:0 12px 40px #00000073}.world-loading-spinner{border:3px solid #ffffff26;border-top-color:#8ec5ff;border-radius:50%;width:44px;height:44px;animation:.85s linear infinite world-loading-spin}.world-loading-title{letter-spacing:.02em;margin:0;font-size:1.15rem;font-weight:600}.world-loading-hint{opacity:.7;margin:0;font-size:.85rem}@keyframes world-loading-spin{to{transform:rotate(360deg)}}.username-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080c12d1;place-content:center;padding:24px;display:grid;position:fixed;inset:0}.game-page.username-required .lobby-shell,.game-page.username-required .game-hud{filter:blur(5px);opacity:.42;pointer-events:none}.username-overlay-card{text-align:center;background:#121820f2;border-radius:14px;flex-direction:column;align-items:stretch;gap:12px;width:min(360px,92vw);padding:28px 32px;display:flex;box-shadow:0 12px 40px #00000073}.username-overlay-title{margin:0;font-size:1.25rem;font-weight:700}.username-overlay-hint{opacity:.78;margin:0;font-size:.9rem;line-height:1.45}.username-overlay-label{text-align:left;opacity:.85;margin:8px 0 0;font-size:.8rem;font-weight:600}.username-overlay-input{width:100%;font:inherit;text-align:center;color:#f2f5f8;background:#ffffff14;border:1px solid #ffffff38;border-radius:10px;outline:none;padding:12px 14px;font-size:1rem;font-weight:600}.username-overlay-input:focus{background:#ffffff1f;border-color:#78b4e6a6}.username-overlay-error{color:#ff9b9b;margin:0;font-size:.85rem}.username-overlay-btn{font:inherit;color:#0a1018;cursor:pointer;background:linear-gradient(#6eb5ff 0%,#4a8fd4 100%);border:none;border-radius:10px;margin-top:4px;padding:12px 16px;font-size:1rem;font-weight:700}.username-overlay-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes match-count-pop{0%{opacity:.35;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.crosshair.hidden{opacity:0}.score-label{letter-spacing:.1em;text-transform:uppercase;opacity:.7;font-size:11px}.score-value{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:32px;font-weight:700;line-height:1}.score-ammo{opacity:.85;margin-top:2px;font-size:13px}.game-hud{padding:max(14px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 14px max(18px, env(safe-area-inset-left));z-index:6;pointer-events:none;background:linear-gradient(#0c1218b8,#0000);flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex;position:absolute;top:0;left:0;right:0}.hud-block{flex-direction:column;gap:2px;display:flex}.hud-label{letter-spacing:.08em;text-transform:uppercase;opacity:.7;font-size:11px}.hud-code{letter-spacing:.18em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:28px;font-weight:700}.hud-pill{text-transform:uppercase;letter-spacing:.04em;background:#ffffff1f;border-radius:4px;padding:2px 8px;font-size:13px;display:inline-block}.hud-pill.ok,.hud-pill.connected{background:#2f7d4a}.hud-pill.wait,.hud-pill.connecting{background:#8a6a20}.hud-pill.disconnected{background:#8a3030}.hud-link{pointer-events:auto;color:#cfe8ff;margin-left:auto;font-size:13px}.hud-view-btn{pointer-events:auto;color:#fff;font:inherit;cursor:pointer;text-transform:none;letter-spacing:0;background:#ffffff1f;border:1px solid #ffffff59;border-radius:4px;padding:4px 10px;font-size:13px}.hud-view-btn:hover{background:#ffffff38}.hud-view-btn.active{background:#4cb0e859;border-color:#4cb0e88c}.hud-view-btn.warn{background:#e88c4c59;border-color:#e88c4c8c}.phone-qr-panel{z-index:12;pointer-events:auto;background:#060a108c;place-items:center;display:grid;position:absolute;inset:0}.phone-qr-panel-inner{text-align:center;background:#0a0e14eb;border:1px solid #ffffff2e;flex-direction:column;align-items:center;gap:10px;width:min(320px,92vw);padding:18px 20px;display:flex}.phone-qr-panel-inner h2{margin:0;font-family:Fraunces,Times New Roman,serif;font-size:17px}.phone-qr-panel-inner p{opacity:.85;margin:0;font-size:13px;line-height:1.4}.calibrate-banner{text-align:center;z-index:6;pointer-events:auto;background:#0a0e14c7;border:1px solid #ffffff2e;max-width:min(560px,90vw);padding:16px 36px 16px 20px;font-size:18px;line-height:1.4;position:absolute;top:22%;left:50%;transform:translate(-50%)}.calibrate-banner-close{color:#ffffffbf;cursor:pointer;background:0 0;border:none;border-radius:8px;width:32px;height:32px;padding:0;font-size:22px;line-height:1;position:absolute;top:6px;right:6px}.calibrate-banner-close:hover{color:#fff;background:#ffffff1a}.calibrate-hint{opacity:.75;margin-top:10px;font-size:13px}.client-hint{left:50%;bottom:max(52px, calc(env(safe-area-inset-bottom) + 20px));z-index:6;pointer-events:none;white-space:nowrap;background:#0a0e14b3;border:1px solid #ffffff24;padding:8px 14px;font-size:13px;position:absolute;transform:translate(-50%)}.game-help{padding:10px max(16px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));opacity:.8;z-index:6;pointer-events:none;background:linear-gradient(#0000,#0c1218a6);font-size:12px;position:absolute;bottom:0;left:0;right:0}.dismissible-toast{pointer-events:auto}.dismissible-toast-close{z-index:1;width:22px;height:22px;color:inherit;font:inherit;cursor:pointer;opacity:0;background:#ffffff24;border:none;border-radius:6px;place-items:center;padding:0;font-size:15px;font-weight:700;line-height:1;transition:opacity .15s,background .15s;display:grid;position:absolute;top:6px;right:6px}.dismissible-toast:hover .dismissible-toast-close,.dismissible-toast:focus-within .dismissible-toast-close{opacity:.9}.dismissible-toast-close:hover{background:#ffffff3d}@media (hover:none){.dismissible-toast-close{opacity:.6}}.home-page{box-sizing:border-box;width:100%;height:100%;min-height:100dvh;max-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));color:#f2f5f8;background:#1a222c;flex-direction:column;justify-content:center;align-items:center;font-family:IBM Plex Sans,Segoe UI,sans-serif;display:flex;position:relative;overflow:hidden}.menu-backdrop{z-index:0;pointer-events:none;filter:blur(28px)saturate(1.15);transform-origin:50%;position:absolute;inset:0;transform:scale(1.12)}.menu-backdrop canvas{pointer-events:none!important}.menu-backdrop>div{width:100%!important;height:100%!important}.home-scrim{z-index:1;pointer-events:none;background:radial-gradient(70% 55% at 50% 45%,#080c1259,#080c12b8),linear-gradient(#080c1240,#080c128c);position:absolute;inset:0}.home-panel{z-index:2;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;background:#0a0e149e;border:1px solid #ffffff24;border-radius:14px;flex-direction:column;flex:none;align-items:center;gap:14px;width:min(420px,100%);padding:22px 22px 24px;display:flex;position:relative;box-shadow:0 18px 48px #00000059}.home-brand{letter-spacing:-.02em;text-align:center;margin:0 0 2px;font-family:Fraunces,Times New Roman,serif;font-size:clamp(24px,6vw,34px);font-weight:700;line-height:1.15}.home-btn{color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;padding:12px 18px;font-family:inherit;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.home-btn.game{background:#1f6b4a;width:100%;padding:14px 18px;font-size:15px}.home-btn.game:hover{background:#25855c}.home-btn.join{background:#1a5f8a;flex:none;min-width:5.5rem;padding:12px 14px;font-size:13px}.home-btn.join:hover:not(:disabled){background:#2174a8}.home-btn:disabled{opacity:.45;cursor:not-allowed}.home-join{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.home-join-label{letter-spacing:.04em;text-transform:none;opacity:.85;text-align:center;font-size:11px;font-weight:600}.home-or{align-items:center;gap:12px;width:100%;margin:2px 0;display:flex}.home-or-line{background:#fff3;flex:auto;height:1px}.home-or-text{letter-spacing:.14em;text-transform:uppercase;opacity:.55;flex:none;font-size:11px;font-weight:700}.home-join-row{align-items:stretch;gap:10px;width:100%;display:flex}.home-join-input{letter-spacing:.28em;text-align:center;color:#f2f5f8;background:#ffffff1a;border:1px solid #ffffff38;border-radius:10px;outline:none;flex:auto;width:100%;min-width:0;padding:12px 14px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:18px;font-weight:700}.home-join-input::placeholder{color:#f2f5f859;letter-spacing:.28em}.home-join-input:focus{background:#ffffff24;border-color:#78b4e6a6}.home-username-input{width:100%;max-width:220px;font:inherit;text-align:center;color:#f2f5f8;background:#ffffff1a;border:1px solid #ffffff38;border-radius:8px;outline:none;margin:0 auto;padding:10px 12px;font-size:14px;font-weight:600}.home-username-input::placeholder{color:#f2f5f859;font-weight:500}.home-username-input:focus{background:#ffffff24;border-color:#78b4e6a6}.home-panel-locked{flex-direction:column;align-items:center;gap:14px;width:100%;transition:filter .25s,opacity .25s;display:flex}.home-panel-locked--active{filter:blur(4px);opacity:.38;pointer-events:none;-webkit-user-select:none;user-select:none}.home-privacy-link{letter-spacing:.02em;color:#f2f5f8a6;text-underline-offset:3px;margin-top:4px;font-size:12px;font-weight:600;text-decoration:underline}.home-privacy-link:hover{color:#f2f5f8f2}.home-join-toast-overlay{z-index:20;pointer-events:none;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.home-join-toast{text-align:center;color:#ffc8b8;letter-spacing:.02em;background:#080a0eeb;border:1px solid #ffa0786b;border-radius:12px;max-width:340px;margin:0;padding:16px 30px 16px 22px;font-size:clamp(15px,3.8vw,18px);font-weight:700;line-height:1.45;animation:4.2s ease-out forwards home-join-toast-show;position:relative;box-shadow:0 12px 36px #00000073}@keyframes home-join-toast-show{0%{opacity:0;transform:translateY(8px)scale(.96)}8%{opacity:1;transform:translateY(0)scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.privacy-page{box-sizing:border-box;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:max(24px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));color:#f2f5f8;background:radial-gradient(70% 50% at 50% 0,#2a3544,#1a222c 55%);justify-content:center;align-items:flex-start;font-family:IBM Plex Sans,Segoe UI,sans-serif;display:flex;position:absolute;inset:0;overflow:hidden auto}.privacy-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0e14b8;border:1px solid #ffffff24;border-radius:14px;width:min(640px,100%);margin:12px 0 24px;padding:22px 22px 28px;box-shadow:0 18px 48px #00000059}.privacy-back{color:#f2f5f8b3;margin-bottom:14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.privacy-back:hover{color:#fff}.privacy-title{letter-spacing:-.02em;margin:0 0 6px;font-family:Fraunces,Times New Roman,serif;font-size:clamp(26px,6vw,34px);font-weight:700;line-height:1.15}.privacy-updated{opacity:.55;margin:0 0 20px;font-size:12px}.privacy-section{margin-bottom:18px}.privacy-section h2{margin:0 0 8px;font-size:15px;font-weight:700}.privacy-section p,.privacy-section li{opacity:.88;margin:0;font-size:14px;line-height:1.55}.privacy-section ul{flex-direction:column;gap:8px;margin:0;padding-left:1.15rem;display:flex}.privacy-section+.privacy-section{border-top:1px solid #ffffff14;margin-top:4px;padding-top:16px}*,:before,:after{box-sizing:border-box}html,body,#root{touch-action:manipulation;overscroll-behavior:none;width:100%;height:100dvh;max-height:100dvh;margin:0;overflow:hidden}body{color:#eef3f7;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:#10161d;font-family:IBM Plex Sans,Segoe UI,sans-serif}a{color:inherit}
