:root{--pulse-violet: #9d8aff;--pulse-violet-glow: rgba(157, 138, 255, .45);--pulse-blue: #5f8dff;--pulse-cyan: #4edcf2;--pulse-cyan-glow: rgba(78, 220, 242, .45);--pulse-gold: #ffbe00;--bg-glass: rgba(12, 16, 28, .65);--border-glass: rgba(255, 255, 255, .12);--border-glass-glow: rgba(78, 220, 242, .3);--text-main: #f0f4fc;--text-dim: #94a3b8;--font-family: "Outfit", "Noto Sans KR", -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none}html,body{width:100%;height:100%;overflow:hidden;background-color:#070913;font-family:var(--font-family);color:var(--text-main)}#game-container{position:relative;width:100%;height:100%}canvas{display:block}#webgl-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#speedlines-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.glass-panel{background:var(--bg-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-glass);border-radius:14px;box-shadow:0 8px 32px #0000005e;transition:all .25s ease}#crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:15;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.crosshair-dot{width:5px;height:5px;background:#fff;border-radius:50%;box-shadow:0 0 8px #fff}.crosshair-ring{position:absolute;width:28px;height:28px;border:1.5px solid rgba(255,255,255,.3);border-radius:50%;transition:border-color .2s ease}#crosshair.aiming .crosshair-ring{width:28px;height:28px;border-color:var(--pulse-cyan);box-shadow:0 0 14px var(--pulse-cyan-glow);transform:rotate(45deg)}#hud-top-left{position:absolute;top:20px;left:20px;padding:16px 22px;display:flex;flex-direction:column;gap:14px;z-index:20}.brand-lockup{display:flex;align-items:center;gap:12px}.pulse-mark{width:38px;height:38px;filter:drop-shadow(0 0 8px var(--pulse-violet-glow))}.badge-text{display:flex;flex-direction:column}.badge-title{font-size:1.15rem;font-weight:900;letter-spacing:2px;background:linear-gradient(135deg,#ff4d6d,#ff2a5f);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.badge-sub{font-size:.65rem;font-weight:700;letter-spacing:2.5px;color:var(--pulse-cyan);opacity:.85}.telemetry-grid{display:flex;gap:18px}.telemetry-item{display:flex;flex-direction:column;min-width:90px}.tele-label{font-size:.65rem;font-weight:700;letter-spacing:1.5px;color:var(--text-dim)}.tele-val-box{display:flex;align-items:baseline;gap:4px;margin:2px 0 6px}.tele-val{font-size:1.7rem;font-weight:900;color:#fff;font-variant-numeric:tabular-nums;line-height:1}.tele-unit{font-size:.7rem;font-weight:700;color:var(--pulse-cyan)}.tele-bar{width:100%;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.tele-fill{width:0%;height:100%;background:linear-gradient(90deg,var(--pulse-cyan),var(--pulse-violet));border-radius:2px;transition:width .1s linear}#web-status-pill{position:absolute;top:25px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 18px;border-radius:30px;z-index:20}.status-dot{width:10px;height:10px;border-radius:50%;background:#0f8;box-shadow:0 0 10px #0f8}.status-dot.swinging{background:var(--pulse-violet);box-shadow:0 0 12px var(--pulse-violet);animation:pulse-red .6s infinite alternate}@keyframes pulse-red{0%{opacity:.6;transform:scale(.9)}to{opacity:1;transform:scale(1.2)}}#web-status-text{font-size:.8rem;font-weight:800;letter-spacing:2px}#controls-guide{position:absolute;bottom:25px;left:20px;padding:16px 20px;width:320px;max-height:min(62vh,560px);overflow-y:auto;z-index:20}.guide-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.guide-header h3{font-size:.95rem;font-weight:800;color:var(--text-main)}.guide-hint{font-size:.68rem;color:var(--text-dim)}.guide-list{display:flex;flex-direction:column;gap:8px}.guide-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.key-badge{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);padding:3px 8px;border-radius:6px;font-size:.72rem;font-weight:800;color:#fff;white-space:nowrap}.guide-desc{font-size:.78rem;color:var(--text-dim);text-align:right}.key-accent{color:var(--pulse-cyan);font-weight:700}.guide-setting{display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--text-dim);font-size:.76rem;cursor:pointer}.guide-setting input{accent-color:var(--pulse-cyan)}#camera-mode-toast{position:absolute;top:86px;left:50%;z-index:30;padding:9px 16px;border:1px solid var(--border-glass);border-radius:999px;background:#0c101cd1;color:var(--text-main);font-size:.78rem;font-weight:800;letter-spacing:.04em;opacity:0;pointer-events:none;transform:translate(-50%,-6px);transition:opacity .18s ease,transform .18s ease}#camera-mode-toast.visible{opacity:1;transform:translate(-50%)}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#05070ed9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:50;transition:opacity .4s ease}.overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.overlay-card{padding:40px 50px;max-width:480px;text-align:center;display:flex;flex-direction:column;align-items:center;border:1px solid rgba(255,42,95,.3);box-shadow:0 0 50px #ff2a5f33}.hero-emblem{font-size:3.5rem;margin-bottom:8px;animation:float 2.5s infinite ease-in-out}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.overlay-card h1{font-size:2.4rem;font-weight:900;letter-spacing:4px;background:linear-gradient(135deg,#fff,#ff4d6d,#ff2a5f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}.overlay-card h2{font-size:1.05rem;font-weight:800;letter-spacing:6px;color:var(--pulse-cyan);margin-bottom:12px}.overlay-tagline{font-size:.88rem;color:var(--text-dim);margin-bottom:24px;line-height:1.5}.start-instruction{display:flex;align-items:center;gap:10px;font-size:.82rem;color:#cdd9ed;background:#ffffff0d;padding:10px 18px;border-radius:20px;margin-bottom:24px}.start-btn{background:linear-gradient(135deg,#ff2a5f,#c71644);border:none;color:#fff;padding:14px 34px;border-radius:30px;font-size:.95rem;font-weight:800;letter-spacing:1.5px;cursor:pointer;box-shadow:0 4px 20px var(--pulse-violet-glow);transition:all .25s ease}.start-btn:hover{transform:scale(1.05);box-shadow:0 6px 28px #ff2a5fb3}.start-btn:active{transform:scale(.97)}.loading-box{padding:36px 44px;text-align:center;display:flex;flex-direction:column;align-items:center;width:360px}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--pulse-violet);border-left-color:var(--pulse-cyan);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:18px}@keyframes spin{to{transform:rotate(360deg)}}#loading-title{font-size:1.25rem;font-weight:800;margin-bottom:6px}#loading-desc{font-size:.8rem;color:var(--text-dim);margin-bottom:18px}.loading-bar-wrap{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-bottom:8px}#loading-bar-fill{width:0%;height:100%;background:linear-gradient(90deg,var(--pulse-cyan),var(--pulse-violet));border-radius:3px;transition:width .2s ease}#loading-pct{font-size:.85rem;font-weight:800;color:var(--pulse-cyan)}.hidden{display:none!important}.overlay{padding:16px;overflow-y:auto}.overlay-card{width:min(480px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;flex-shrink:0}.loading-box{width:min(360px,100%)}button,select{font:inherit}button:focus-visible,select:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--pulse-cyan);outline-offset:3px}#btn-start-drag,#btn-restart,#btn-leave-match,#btn-retry-load,select{background:#1c293d;color:var(--text-main);border:1px solid #64748b;border-radius:8px;padding:8px 12px;cursor:pointer}#btn-restart{margin-bottom:8px}a{color:#7deeff}.data-credit{font-size:.7rem;color:var(--text-dim);margin-top:12px;line-height:1.6}#loading-recovery{margin-top:16px;font-size:.8rem;display:grid;gap:12px}#session-hud{position:absolute;right:20px;bottom:25px;z-index:20;padding:10px 14px;display:flex;flex-direction:column;gap:8px;font-size:.8rem}#minimap-panel{position:absolute;right:20px;bottom:20px;z-index:22;width:238px;padding:12px;border-radius:24px;pointer-events:none}.minimap-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 3px 9px}.minimap-header>div{display:grid;gap:1px}.minimap-header strong{color:#fff;font:900 .82rem/1 Outfit,sans-serif;letter-spacing:1.7px}.minimap-header div span{color:var(--pulse-cyan);font:800 .52rem/1.2 Outfit,sans-serif;letter-spacing:1.4px}#minimap-status{color:#06121b;background:#1ff2a4;border-radius:999px;padding:4px 7px;font:900 .54rem/1 Outfit,sans-serif;letter-spacing:.7px;box-shadow:0 0 12px #1ff2a46b}#minimap-status[data-ready=false]{color:#fff;background:#eb9e2d;box-shadow:none}#player-markers{position:absolute;inset:0;pointer-events:none;z-index:25;overflow:hidden}.player-position-marker{position:absolute;transform:translate(-50%,-100%);max-width:250px;padding:8px 12px;border:2px solid #ffce67;border-radius:7px;background:#081019db;color:#ffce67;font:800 15px/1.3 system-ui,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px #000}.player-position-marker[data-team=police]{border-color:#41d9ff;color:#41d9ff}.player-position-marker[data-team=ally]{border-color:#7cffa9;color:#7cffa9}.minimap-legend em{color:#ffce67;font-style:normal}.minimap-wrap{position:relative;width:100%;aspect-ratio:1}#minimap-canvas{display:block;width:100%;height:100%;border-radius:50%;background:#07111d;box-shadow:inset 0 0 30px #000000a6,0 10px 30px #00000047}.minimap-north{position:absolute;top:8px;left:50%;transform:translate(-50%);color:#ff4d6d;font:900 .7rem/1 Outfit,sans-serif;text-shadow:0 1px 4px #000}.minimap-range-label{position:absolute;right:13px;bottom:17px;display:grid;color:#8ba3b7;font:700 .47rem/1.1 Outfit,sans-serif;letter-spacing:.7px;text-align:right;text-shadow:0 1px 4px #000}.minimap-range-label b{color:#fff;font-size:.62rem}#minimap-coordinates{display:block;padding-top:8px;color:#cfe8f3;font:700 .61rem/1.2 Outfit,sans-serif;letter-spacing:.35px;text-align:center}#session-hud{bottom:326px}#game-notice{position:absolute;left:50%;top:130px;transform:translate(-50%);z-index:80;width:max-content;max-width:calc(100% - 24px);padding:10px 16px;background:#122139;border:1px solid #64748b;border-radius:10px;text-align:center;opacity:0;pointer-events:none;font-size:.85rem}#game-notice.visible{opacity:1}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}@media(max-width:700px){#hud-top-left{top:10px;left:10px;padding:10px;gap:8px}.badge-title{font-size:.9rem}.badge-sub{font-size:.52rem;letter-spacing:1px}.pulse-mark{width:26px;height:26px}.telemetry-item{min-width:70px}.tele-val{font-size:1.35rem}#web-status-pill{top:115px;font-size:.7rem}#camera-mode-toast{top:154px}#game-notice{top:195px}#controls-guide{left:10px;bottom:10px;width:min(300px,calc(100% - 20px));max-height:32vh;padding:10px}#session-hud{bottom:calc(32vh + 20px);right:10px;max-width:calc(100% - 20px)}#minimap-panel{right:10px;bottom:10px;width:clamp(154px,35vw,190px);padding:9px;border-radius:19px}#session-hud{bottom:220px;right:10px;max-width:170px}.minimap-header strong{font-size:.69rem}.minimap-header div span{display:none}.overlay-card{padding:24px 20px}.overlay-card h1{font-size:clamp(1.45rem,7vw,2.4rem);letter-spacing:2px}.overlay-card h2{font-size:.8rem;letter-spacing:2px}.start-btn{padding:12px 18px;font-size:.8rem}.start-instruction{padding:10px;line-height:1.6}}@media(max-height:650px)and (min-width:701px){#controls-guide{max-height:45vh;padding:10px 16px}.overlay-card{padding:18px 30px}.hero-emblem{font-size:2rem}.overlay-tagline,.start-instruction{margin-bottom:12px}}@media(prefers-reduced-motion:reduce){.hero-emblem,.loading-spinner{animation:none}}#online-overlay{z-index:60;background:#050a14c4}#loading-screen:not(.hidden){z-index:70}.online-card{width:min(580px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;padding:30px;border:1px solid rgba(75,211,255,.35);border-radius:22px;box-shadow:0 24px 80px #00000080;background:#091425f0}.online-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.online-mark{display:grid;place-items:center;width:62px;height:62px;flex:0 0 62px;border-radius:18px;background:#de2954;font-size:35px}.online-header small{color:#70dff3;letter-spacing:2px;font-size:10px;font-weight:800}.online-header h1{margin:4px 0 2px;font-size:clamp(22px,5vw,31px);line-height:1.2}#online-status{color:#9eb2c5;font-size:13px}.online-field{display:grid;gap:7px;color:#bdcadb;font-size:13px;font-weight:700;margin-bottom:12px}.online-field input,.online-field select,.online-inline input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid #53667d;background:#111e30;color:#fff;font:inherit;user-select:text;-webkit-user-select:text}.online-grid{display:grid;grid-template-columns:1fr 105px;gap:12px}.online-card button{cursor:pointer;border:1px solid #6b8196;border-radius:10px;padding:10px 14px;background:#1c3047;color:#fff;font-weight:800}.online-card button:hover{filter:brightness(1.18)}.online-card button:disabled{opacity:.45;cursor:not-allowed}.online-card .online-primary{border:0;background:#e32857}#create-room{width:100%;padding:13px}#play-solo{width:100%;padding:13px;margin-bottom:9px;border-color:#72dcf1;background:#16415b}.online-divider{text-align:center;margin:20px 0 13px;color:#93a9be;font-size:12px}.online-inline{display:flex;gap:9px}.online-inline input{text-transform:uppercase;letter-spacing:3px;font-weight:900}.online-inline button{min-width:76px;white-space:nowrap}.online-card h2{font-size:16px;margin:22px 0 10px}.room-list{display:grid;gap:7px;max-height:160px;overflow:auto}.room-list-item{width:100%;text-align:left}.empty-rooms{color:#94a9bd;font-size:13px;padding:10px}#room-details{color:#a9bfd0;font-size:13px;margin-bottom:16px}.room-code-line{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed #587890;border-radius:12px;color:#afc5d7}.room-code-line strong{color:#fff;font-size:21px;letter-spacing:4px;margin-right:auto}.player-list{display:grid;gap:7px;margin-top:16px;max-height:260px;overflow:auto}.player-row{display:flex;justify-content:space-between;padding:10px 12px;background:#13243a;border-radius:9px;font-size:14px}.player-row strong{color:#84eac1}#room-message{margin:14px 0;color:#c9d5e1;font-size:13px;line-height:1.45}.room-actions{display:flex;flex-wrap:wrap;gap:9px}#match-hud{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:#071222d9;border:1px solid #4b6984;box-shadow:0 8px 30px #0000004d;font-size:13px;white-space:nowrap}#match-role{color:#71ddf2}#match-health{color:#ffb4c3;font-weight:800}#match-help{border:1px solid #567186;background:#1a3045;color:#fff;border-radius:8px;padding:4px 8px;cursor:pointer}#controls-guide:not(.hidden){position:absolute;z-index:65;top:50%;left:50%;bottom:auto;width:min(460px,calc(100vw - 32px));max-height:min(75vh,650px);transform:translate(-50%,-50%);background:#0a1425f7;border:1px solid #5d91a8;box-shadow:0 20px 80px #000a}@media(max-width:700px){.online-card{padding:19px}#match-hud{top:9px;left:9px;right:9px;transform:none;flex-wrap:wrap;gap:6px 12px;white-space:normal;font-size:11px}}:root{--pulse-violet: #9d8aff;--pulse-cyan: #4edcf2;--text-main: #f5f4f0;--text-dim: #9baabd}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#online-overlay{padding:0;align-items:stretch;overflow-y:auto;background:linear-gradient(90deg,#050a15e8,#050a15a3 49%,#050a15cc),linear-gradient(0deg,#08111d 0%,transparent 49%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}#online-overlay:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background:repeating-linear-gradient(115deg,transparent 0 155px,rgba(117,231,236,.13) 156px,transparent 157px),radial-gradient(circle at 31% 47%,rgba(237,49,85,.55),transparent 31%)}.lobby-shell{position:relative;z-index:1;width:min(100%,1500px);min-height:100dvh;margin:auto;padding:28px clamp(24px,4vw,68px) 20px;display:flex;flex-direction:column}.lobby-topline,.lobby-footer{display:flex;align-items:center;justify-content:space-between;gap:18px}.lobby-topline{min-height:42px;padding-bottom:19px;border-bottom:1px solid rgba(255,255,255,.18)}.lobby-brand{font:900 18px/1 Outfit,sans-serif;letter-spacing:.17em;white-space:nowrap}.lobby-brand b{color:#ef3e5e}.brand-mark{display:inline-grid;place-items:center;vertical-align:-3px;width:28px;height:28px;margin-right:8px;border:2px solid #ef3e5e;border-radius:50%;color:#ef3e5e;font-size:21px;line-height:1}.lobby-edition{font:800 10px Outfit,sans-serif;letter-spacing:.28em;color:#c9d9e5}#online-status{font-size:11px;color:#9ce5df;background:#14484f73;border:1px solid rgba(107,225,220,.25);padding:7px 12px;border-radius:2px;white-space:nowrap}.lobby-stage{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,450px);align-items:center;gap:clamp(30px,6vw,100px);padding:44px 0}.lobby-hero{position:relative;align-self:stretch;min-height:490px;display:flex;flex-direction:column;justify-content:center;isolation:isolate}.lobby-hero:before{content:"01";position:absolute;left:-22px;top:0;z-index:-1;font:900 clamp(180px,26vw,380px)/.8 Outfit,sans-serif;letter-spacing:-.11em;color:#ffffff09}.lobby-eyebrow,.menu-index,.room-kicker{font:900 11px Outfit,sans-serif;letter-spacing:.28em;color:#8ce7e8}.lobby-eyebrow i{display:inline-block;width:29px;height:2px;margin:0 12px 3px 0;background:#eb3859}.lobby-hero h1{margin:22px 0 25px;font:900 clamp(64px,7.3vw,112px)/.96 "Noto Sans KR",sans-serif;letter-spacing:-.09em;text-shadow:0 10px 50px #02050b}.lobby-hero h1 em{font-style:normal;color:#f24663}.lobby-hero>p{color:#d1dce4;font-size:clamp(14px,1.2vw,18px);line-height:1.9;text-shadow:0 2px 10px #08101e}.lobby-hero-actions{margin-top:40px}.hero-play{width:min(365px,100%);min-height:88px;display:flex;align-items:center;gap:16px;padding:16px 21px;border:1px solid #ff7890;background:linear-gradient(125deg,#ed3155,#a91237);color:#fff;box-shadow:0 22px 55px #790d2a52;cursor:pointer;text-align:left;clip-path:polygon(0 0,100% 0,100% 79%,94% 100%,0 100%);transition:transform .2s,filter .2s}.hero-play:hover{transform:translateY(-4px);filter:brightness(1.12)}#play-solo.hero-play{width:min(365px,100%);min-height:88px;margin:0;padding:16px 21px;border-color:#ff7890;border-radius:0;background:linear-gradient(125deg,#ed3155,#a91237)}.play-triangle{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.75);border-radius:50%;font-size:14px}.hero-play>span:nth-child(2){display:grid;gap:3px}.hero-play b{font-size:20px;font-weight:900}.hero-play small{color:#ffe0e7;font-size:11px}.action-arrow{margin-left:auto;font-size:27px}.lobby-statline{display:flex;gap:clamp(16px,3vw,48px);margin-top:auto;padding-top:45px;color:#8192a3;font:800 10px Outfit,sans-serif;letter-spacing:.2em}.lobby-footer{padding-top:18px;border-top:1px solid rgba(255,255,255,.16);color:#708396;font:700 10px Outfit,sans-serif;letter-spacing:.15em}.lobby-footer b{color:#ee3e5e}.online-card{width:100%;max-height:min(700px,calc(100dvh - 145px));padding:27px;border:1px solid rgba(167,202,219,.21);border-top:3px solid #ed3155;border-radius:2px;background:#08111ee8;box-shadow:0 30px 100px #0000007a;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.online-header{display:block;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.12)}.online-header h2{margin:9px 0 5px;font-size:29px;font-weight:900;letter-spacing:-.045em}.online-header p{color:#9daebe;font-size:12px}.online-field{gap:7px;margin-bottom:15px;color:#a9bccb;font-size:11px;letter-spacing:.06em}.online-field input,.online-field select,.online-inline input{height:43px;border-radius:2px;border:1px solid #33485a;background:#0d1d2ee6;color:#f6f9fb;font-size:13px}.online-field input:focus,.online-field select:focus,.online-inline input:focus{border-color:#75e7ec;outline:1px solid #75e7ec}.mode-heading{display:flex;justify-content:space-between;margin:6px 0 10px;color:#a9bccb;font-size:11px;font-weight:800}.mode-heading span{color:#6d889a;letter-spacing:.15em}.mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.online-card .mode-option{min-height:87px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;text-align:left;border:1px solid #34485b;border-radius:2px;background:#102035}.online-card .mode-option.selected{border-color:#f24a68;background:linear-gradient(135deg,#7e18319e,#162437);box-shadow:inset 0 0 0 1px #f24a684d}.mode-icon{color:#fa5573;font-size:19px;line-height:1}.mode-option b{font-size:13px}.mode-option small{color:#9db0bf;font-size:10px}.online-grid{grid-template-columns:1fr 100px;gap:9px}.online-card #create-room{display:flex;justify-content:space-between;align-items:center;width:100%;height:45px;padding:0 16px;border-radius:2px;background:#ed3155;font-size:13px}.online-card #create-room span{font-size:21px}.online-divider{position:relative;margin:17px 0 11px;color:#8196a8;font-size:10px;letter-spacing:.1em}.online-divider:before,.online-divider:after{content:"";display:inline-block;width:28%;height:1px;margin:0 9px 4px;background:#2d4051}.online-inline input{min-width:0}.online-card #join-code{min-width:93px;border-radius:2px;border-color:#527b86;background:#163341;font-size:11px}.room-list-heading{display:flex;align-items:baseline;justify-content:space-between;margin-top:17px}.room-list-heading h3{margin:0 0 8px;font-size:13px}.room-list-heading span{color:#658091;font:800 9px Outfit,sans-serif;letter-spacing:.15em}.room-list{max-height:133px}.online-card .room-list-item{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid #30465a;border-radius:2px;background:#162b3fa6}.room-list-icon{display:grid;place-items:center;width:30px;height:30px;background:#ed315526;color:#f35b76;font-size:19px}.room-list-text{display:grid;gap:2px}.room-list-text strong{font-size:11px}.room-list-text small{color:#9aaebd;font-size:10px;font-weight:500}.room-list-count{margin-left:auto;color:#8de2df;font-size:11px;white-space:nowrap}.empty-rooms{border:1px dashed #304557;padding:12px;font-size:11px}#room-panel h2{margin:12px 0 5px;font-size:24px}.room-code-line{border-radius:2px;border-style:solid;background:#112438}.player-row{border:1px solid #263d50;border-radius:2px}.online-card .room-actions button{flex:1;min-width:120px;border-radius:2px}#hud-top-left,#session-hud,#web-status-pill,#combat-status{display:none!important}body.in-game #hud-top-left{display:block!important;top:auto;bottom:26px;left:24px;width:264px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}body.in-game #hud-top-left .brand-lockup{display:none}.telemetry-grid{display:grid;gap:11px}.telemetry-item{min-width:0}.tele-label{color:#e6e8ec;font:800 10px Outfit,sans-serif;letter-spacing:.16em;text-shadow:0 2px 6px #000}.tele-val-box{margin:2px 0 6px}.tele-val{font-size:38px;font-style:italic;letter-spacing:-.07em;text-shadow:0 3px 15px #000}.tele-unit{color:#a6f3f0;font-size:10px;margin-left:5px}.tele-bar{height:3px;border-radius:0;background:#ffffff40}.tele-fill{border-radius:0;background:#ed3155}body.in-game #web-status-pill{display:flex!important;top:auto;left:24px;bottom:215px;transform:none;padding:7px 0;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#web-status-text{font:900 11px Outfit,sans-serif;letter-spacing:.2em;text-shadow:0 2px 8px #000}.status-dot{width:7px;height:7px}body.in-game #session-hud{display:flex!important;inset:95px auto auto 24px;width:230px;padding:13px 16px;border:1px solid rgba(155,203,215,.25);border-left:3px solid #ed3155;border-radius:1px;background:#081624c2;box-shadow:0 12px 35px #0005;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}body.room-game #session-hud{display:none!important}#session-hud>span:nth-child(3),#performance-status{color:#8fa5b6;font-size:10px}#minimap-panel{bottom:26px;right:24px;width:320px;padding:10px;border-radius:2px;border:1px solid rgba(161,202,214,.35);background:#081522c7;box-shadow:0 18px 50px #0007;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}#minimap-canvas{border-radius:2px}.minimap-legend{position:absolute;bottom:10px;left:9px;color:#92bbc8;font:700 9px Outfit,sans-serif;text-shadow:0 1px 4px #000}.minimap-legend b{color:#fff;padding-left:4px}.minimap-legend i{color:#ffce67;font-style:normal;padding-left:4px}#minimap-status{border-radius:2px}#match-hud{top:21px;left:24px;right:24px;width:auto;transform:none;justify-content:center;gap:18px;padding:9px 17px;border-radius:2px;border:1px solid rgba(142,185,204,.28);border-top:2px solid #ec3858;background:#07111ec7;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px)}.hud-district{margin-right:auto;color:#b5c9d4;font:800 10px Outfit,sans-serif;letter-spacing:.18em}.hud-district i{display:inline-block;width:3px;height:3px;margin:0 7px 2px;background:#ef3d5d}#match-role{color:#fff;font-size:13px}#match-health,#match-timer,#match-count{padding-left:17px;border-left:1px solid #395063;font-size:11px}#match-health{color:#f597a8}#match-help{width:56px;margin-left:auto;border-radius:2px}#match-help span{font-size:10px}#gameplay-quickbar{display:none;position:absolute;z-index:24;left:50%;bottom:25px;transform:translate(-50%);gap:16px;padding:8px 13px;background:#06111cad;border:1px solid rgba(151,197,210,.23);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#becfdb;font-size:10px;white-space:nowrap}body.in-game #gameplay-quickbar{display:flex}#gameplay-quickbar kbd{color:#fff;font:900 10px Outfit,sans-serif;letter-spacing:.07em;margin-right:3px}#crosshair .crosshair-ring{border-color:#ffffffbf}#game-notice{top:83px;border-radius:2px;border-color:#f2506ab3;background:#0a1726eb}#overlay-click-to-play{background:linear-gradient(90deg,#050a15eb,#050a159e);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.overlay-card{align-items:stretch;text-align:left;width:min(500px,100%);max-width:500px;margin-right:auto;margin-left:clamp(0px,6vw,110px);padding:32px 35px;border:1px solid rgba(152,198,213,.23);border-top:3px solid #ed3155;border-radius:2px;background:#07121feb;box-shadow:0 30px 90px #0009}.pause-eyebrow{color:#8ee8e7;font:900 10px Outfit,sans-serif;letter-spacing:.24em}.overlay-card h1{margin-top:14px;color:#fff;background:none;-webkit-text-fill-color:currentColor;font:900 clamp(38px,5vw,54px)/1.1 "Noto Sans KR",sans-serif;letter-spacing:-.07em}.overlay-card h1 em{color:#ee4261;font-style:normal}.overlay-card h2{margin:8px 0 0;color:#e1e9ed;font:800 15px Noto Sans KR,sans-serif;letter-spacing:0}.overlay-tagline{margin:5px 0 20px;font-size:12px}.start-instruction{margin-bottom:20px;padding:11px 13px;border-left:2px solid #507282;border-radius:0;background:#102339;color:#afc3d0;font-size:11px;line-height:1.6}.mouse-icon{display:none}.start-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-radius:2px;background:#ed3155;font-size:14px;box-shadow:none}.start-btn b{font-size:22px}#btn-start-drag{width:100%;margin-top:7px;border-radius:2px;background:#173245;font-size:11px}.pause-secondary{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.pause-secondary button{flex:1 1 auto;margin:0!important;border-radius:10px!important;font-size:11px}.pause-secondary button:disabled{opacity:.45;cursor:not-allowed}.pause-settings{display:grid;gap:0;margin-top:20px;border-top:1px solid #304457}.settings-title{padding:12px 0 6px;color:#819bad;font:800 10px Outfit,sans-serif;letter-spacing:.18em}#reduced-motion,.pause-settings .guide-setting{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:37px;margin:0;padding:6px 0;border:0;border-bottom:1px solid #243a4b;border-radius:0;background:none;color:#dde9ed;font-size:11px;text-align:left;cursor:pointer}.setting-value{color:#92e5e4;font-weight:900}.pause-settings select{min-width:88px;padding:5px 8px;border-color:#486276;border-radius:2px;background:#162b40;font-size:11px}.data-credit{margin-top:15px;font-size:10px}.loading-box{width:min(420px,100%);padding:34px;border:1px solid #39566a;border-top:3px solid #ed3155;border-radius:2px;background:#0b192a}.loading-spinner{border-radius:50%}.loading-bar-wrap,#loading-bar-fill{border-radius:0}#controls-guide:not(.hidden){width:min(520px,calc(100vw - 32px));max-height:min(80vh,720px);padding:23px;border:1px solid #496577;border-top:3px solid #ed3155;border-radius:2px;background:#081321fa}.guide-header{padding-bottom:12px;border-bottom:1px solid #2d4253;gap:10px;flex-wrap:wrap;align-items:center}.guide-header h3{font-size:18px}.guide-hint{flex:1;text-align:right}#btn-close-guide{padding:5px 9px;border:1px solid #496274;border-radius:2px;background:#172c40;color:#fff;cursor:pointer}#btn-close-guide:focus-visible{outline:2px solid #94f7e0;outline-offset:3px}.guide-row{padding:6px 0;border-bottom:1px solid rgba(111,153,173,.13);align-items:flex-start}.key-badge{min-width:68px;flex:0 0 84px;white-space:normal;overflow-wrap:anywhere;border-radius:2px;border-color:#496274;background:#172c40;text-align:center}.guide-desc{color:#c4d2dc;flex:1;min-width:0;text-align:left;line-height:1.5}@media(max-width:950px){.lobby-stage{grid-template-columns:1fr;gap:22px;padding:30px 0}.lobby-hero{min-height:0}.lobby-hero h1{font-size:clamp(52px,10vw,86px);margin:15px 0}.lobby-hero-actions{margin-top:22px}.lobby-statline{display:none}.online-card{max-height:none}.lobby-footer{margin-top:auto}}@media(max-width:650px){.lobby-shell{padding:18px 16px}.lobby-edition,.lobby-footer span:last-child{display:none}#online-status{max-width:47%;overflow:hidden;text-overflow:ellipsis}.lobby-stage{padding:32px 0}.lobby-hero h1{font-size:clamp(48px,15vw,72px)}.lobby-hero>p{font-size:13px}.hero-play{min-height:70px}.online-card{padding:20px}.mode-picker{gap:5px}.online-card .mode-option{padding:9px}.online-divider:before,.online-divider:after{width:22%}#match-hud{top:8px;left:8px;right:8px;justify-content:flex-start;gap:5px 9px;padding:8px}.hud-district{width:100%}#match-health,#match-timer,#match-count{padding-left:8px}#match-help{margin-left:auto}body.in-game #session-hud{top:90px;left:8px;width:175px}body.in-game #hud-top-left{left:10px;bottom:15px;width:133px}body.in-game #web-status-pill{left:10px;bottom:170px}.tele-val{font-size:27px}#minimap-panel{right:8px;bottom:8px;width:clamp(190px,46vw,240px)}#gameplay-quickbar{display:none!important}.overlay-card{margin:auto;padding:23px 20px}}@media(max-height:700px)and (min-width:951px){.lobby-stage{padding:20px 0}.lobby-hero{min-height:0}.lobby-hero h1{font-size:clamp(54px,6vw,86px);margin:12px 0}.lobby-hero-actions{margin-top:20px}.online-card{max-height:calc(100dvh - 105px)}}#overlay-click-to-play .overlay-card{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}#extended-settings details,.player-progress{border-bottom:1px solid #304457;padding:10px 0;color:#dceaf2;font-size:12px}#extended-settings summary,.player-progress summary{cursor:pointer;min-height:28px}.setting-row{display:flex;align-items:center;gap:10px;justify-content:space-between;min-height:38px;border-bottom:1px solid #243a4b}.setting-row span{flex:1}.setting-row input[type=range]{width:105px;accent-color:#8ee8e7}.setting-row output{min-width:28px}.setting-row button{margin:0;padding:6px 10px;min-width:74px}.player-progress button{margin:7px 4px 0 0;padding:8px}.player-progress select{max-width:180px}#anchor-preview{position:fixed;z-index:7;pointer-events:none;width:16px;height:16px;border:2px solid #88f7e0;border-radius:50%;transform:translate(-50%,-50%);display:none;box-shadow:0 0 0 3px #071c29aa}#hand-status{position:fixed;bottom:74px;left:50%;transform:translate(-50%);z-index:7;pointer-events:none;color:#b9fff0;font:12px system-ui;text-shadow:0 1px 4px #000}#boundary-warning,#pursuit-hud{position:fixed;top:155px;left:50%;transform:translate(-50%);z-index:7;max-width:90vw;color:#ffe299;background:#102339e0;padding:6px 12px;font:12px system-ui;pointer-events:none}#pursuit-hud{top:115px;color:#d4f7ff}#boundary-warning:empty,#pursuit-hud:empty{display:none}#spectate-next{position:fixed;bottom:85px;left:50%;transform:translate(-50%);z-index:12}body:not(.in-game) #anchor-preview,body:not(.in-game) #hand-status,body:not(.in-game) #boundary-warning,body:not(.in-game) #pursuit-hud{visibility:hidden}body.hud-quiet #hud-top-left{opacity:.35}body.hud-combat #session-hud{opacity:.45}#hud-top-left,#minimap-panel,#session-hud{transform-origin:bottom left}#minimap-panel{transform-origin:bottom right}.city-picker{margin-top:24px;width:min(365px,100%)}.city-picker>span{display:block;margin-bottom:9px;color:#c3d0dc;font-size:12px}.city-options{display:flex;gap:10px}.city-options a{flex:1;min-width:0;padding:12px 14px;border:1px solid #6c8298;border-radius:4px;background:#101e30;color:#f4f7fb;text-decoration:none}.city-options a:hover{background:#22334a;border-color:#fff}.city-options a:focus-visible{outline:3px solid #fff;outline-offset:3px}.city-options a[aria-current=page]{border-color:#ff7890;background:#4b1e31;box-shadow:inset 0 0 0 1px #ff7890}.city-options b,.city-options small{display:block}.city-options b{font-size:15px}.city-options small{margin-top:5px;color:#c3d0dc;font-size:11px}.loading-city-picker{margin:20px auto 0}#minimap-actors{position:absolute;inset:0;z-index:2;pointer-events:none}.minimap-player-marker{--marker-color:#ffce67;position:absolute;width:24px;height:24px;transform:translate(-50%,-50%)}.minimap-player-marker[data-team=police]{--marker-color:#41d9ff}.minimap-player-marker[data-team=ally]{--marker-color:#7cffa9}.minimap-player-icon{display:grid;place-items:center;width:24px;height:24px;border:3px solid white;border-radius:50%;background:#081321;color:var(--marker-color);font:900 18px/1 system-ui;box-shadow:0 0 0 3px #081321,0 0 14px var(--marker-color)}.minimap-player-label{position:absolute;top:29px;left:50%;transform:translate(-50%);width:max-content;max-width:145px;padding:4px 6px;border:1px solid var(--marker-color);border-radius:4px;background:#081321f5;color:#fff;font:800 12px/1.3 system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.minimap-player-marker[data-side=left] .minimap-player-label{left:0;transform:none}.minimap-player-marker[data-side=right] .minimap-player-label{left:auto;right:0;transform:none}.minimap-player-marker[data-bottom=true] .minimap-player-label{top:auto;bottom:29px}.minimap-player-marker.offscreen .minimap-player-icon{border-color:var(--marker-color)}.minimap-player-marker.last-known .minimap-player-label{border-style:dashed}#combat-feedback{position:fixed;left:50%;top:58%;transform:translate(-50%);max-width:80vw;padding:8px 12px;color:#e8f6ff;background:#0a1722d1;border:1px solid #91b3c8;border-radius:6px;font:600 12px/1.5 system-ui;text-align:center;pointer-events:none;z-index:25}#combat-feedback[hidden]{display:none}#combat-feedback.confirmed{color:#fff;border-color:#56ffd6;box-shadow:0 0 16px #56ffd670;font-size:16px}#combat-hitmarker{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);color:#70ffcf;font:700 44px/1 system-ui;text-shadow:0 0 5px #102632;pointer-events:none;z-index:50}#combat-hitmarker[hidden]{display:none}button,select,input{font:inherit}button,select{color:#e9f3fa;background:#152637;border:1px solid #3b5368;border-radius:10px;min-height:36px;padding:8px 14px;transition:background .15s,border-color .15s,transform .15s}button{cursor:pointer}button:hover{background:#243d50;border-color:#83d4df}button:active{transform:translateY(1px)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #87e6ef;outline-offset:3px}button:disabled{opacity:.45;cursor:default}.setting-row button{min-width:92px;font-weight:600;background:#172c3f}input[type=checkbox]{appearance:none;width:38px;height:22px;border-radius:99px;background:#33475a;cursor:pointer;position:relative;flex:0 0 38px}input[type=checkbox]:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#e8f2f9;transition:transform .15s}input[type=checkbox]:checked{background:#197f8a}input[type=checkbox]:checked:after{transform:translate(16px)}input[type=range]{accent-color:#65cfdd}#world-map{margin:auto;padding:20px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);color:#e7f1fa;background:#0d1b29;border:1px solid #3a576c;border-radius:20px;box-shadow:0 24px 90px #0009}#world-map::backdrop{background:#030911c9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#world-map header,#world-map footer{display:flex;align-items:center;justify-content:space-between;gap:20px}#world-map header{margin-bottom:12px}#world-map small{color:#8ddbe4;letter-spacing:.15em}#world-map h2{margin:4px 0;font-size:22px}#world-map canvas{display:block;max-width:100%;height:auto;border-radius:12px}#world-map footer{margin-top:12px;font-size:11px;color:#a6bece;flex-wrap:wrap}#world-map kbd{margin-left:8px;font-size:11px;color:#a6bece}@media(prefers-reduced-motion:reduce){button,input[type=checkbox]:after{transition:none}}#overlay-click-to-play .overlay-card{border-radius:20px;scrollbar-width:thin;scrollbar-color:#486579 transparent}#overlay-click-to-play button,#overlay-click-to-play select,#btn-start-game,#btn-start-drag,#btn-close-guide,#match-help{border-radius:10px}#extended-settings .setting-row button{background:#172c3f;border:1px solid #45667d;color:#e9f4fc;border-radius:9px;min-height:34px}#extended-settings .setting-row button:hover{background:#244a60;border-color:#83d4df}#world-map .map-attribution{display:block;margin-top:8px;color:#b6d6e4;font-size:11px;text-align:right}#world-map .map-attribution[hidden]{display:none}#touch-controls{position:fixed;inset:0;z-index:40;pointer-events:none;--touch-edge: max(16px, env(safe-area-inset-right));--stick-size: 132px;--control-lift: max(48px, calc(env(safe-area-inset-bottom) + 28px) );--action-bottom: var(--control-lift)}#touch-controls[hidden],#touch-controls [hidden]{display:none!important}#touch-controls button,.touch-move-zone{pointer-events:auto;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}#touch-controls button{min-width:48px;min-height:48px;padding:6px;border:1px solid #d6e9f28c;border-radius:50%;background:#10202cb8;color:#fff;font:600 11px/1.15 var(--font-family);text-shadow:0 1px 3px #000;box-shadow:inset 0 0 0 3px #e0f3ff0a,0 2px 8px #0002;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}#touch-controls button svg{width:24px;height:24px;pointer-events:none}#touch-controls button span{pointer-events:none;white-space:nowrap}#touch-controls button.pressed{background:#356c82ed;border-color:#b5f6ff;transform:scale(.96)}#touch-controls button:disabled{opacity:.4}#touch-controls button:focus-visible{outline:2px solid #acffe6;outline-offset:3px}.touch-toolbar{position:absolute;top:max(12px,env(safe-area-inset-top));right:var(--touch-edge);display:flex;gap:8px}#touch-controls .touch-toolbar button{border-radius:12px;min-height:44px;font-size:11px;background:#102638cc}.touch-move-zone{position:absolute;left:env(safe-area-inset-left);bottom:env(safe-area-inset-bottom);width:44%;height:54%}.touch-stick{position:fixed;left:max(24px,calc(env(safe-area-inset-left) + 16px));bottom:var(--control-lift);width:var(--stick-size);height:var(--stick-size);border:1px solid #e0f4ff66;border-radius:50%;background:#15263430;box-shadow:inset 0 0 0 18px #d9f0ff08;display:grid;place-items:center;pointer-events:none}.touch-stick-knob{width:54px;height:54px;border:1px solid #e3f5ffbb;border-radius:50%;background:#c1dfea60;box-shadow:0 3px 10px #0003;pointer-events:none}.touch-stick-caption{position:absolute;bottom:10px;font:10px var(--font-family);color:#e2f0f5c9;pointer-events:none}.touch-sprint-mark{position:absolute;top:-22px;color:#e0f5efbb;font-size:10px;letter-spacing:1px}.touch-stick.sprinting{border-color:#8ff5dc;box-shadow:inset 0 0 0 18px #62d8b51a}.touch-stick.sprinting .touch-sprint-mark{color:#acffe6}#touch-controls .touch-mode{position:absolute;left:max(24px,calc(env(safe-area-inset-left) + 16px));bottom:calc(var(--control-lift) + var(--stick-size) + 32px);width:56px;height:56px}#touch-controls .touch-mode[aria-pressed=true]{background:#286b7799;border-color:#a1f9de}.touch-actions{position:absolute;right:var(--touch-edge);bottom:var(--action-bottom);width:160px;height:224px;pointer-events:none}#touch-controls .touch-actions button{position:absolute;width:60px;height:60px}#touch-controls .touch-actions .touch-primary{right:0;top:66px;width:84px;height:84px;border:2px solid #d8f4ffb3;background:#203b4bc7}#touch-controls .touch-primary svg{width:31px;height:31px}#touch-controls .touch-actions .touch-jump{right:0;bottom:0;width:68px;height:68px;border-color:#f3dba5cc;background:#463c29b8}.touch-zip{left:0;top:74px}.touch-guard{left:0;top:6px}.touch-heavy{right:0;top:0}.touch-dodge{left:0;bottom:0}#touch-controls .touch-more{right:0;top:0;font-size:23px;line-height:.7}#touch-controls .touch-more span{font-size:10px;line-height:1.2}#touch-controls[data-combat=true] .touch-actions{height:292px}#touch-controls[data-combat=true] .touch-primary{top:134px}#touch-controls[data-combat=true] .touch-zip{top:142px}#touch-controls[data-combat=true] .touch-heavy{top:68px}.touch-extra{position:absolute;right:var(--touch-edge);bottom:calc(var(--action-bottom) + 236px);display:grid;grid-template-columns:repeat(3,60px);gap:8px;padding:10px;background:#0b1b27f0;border:1px solid #7599b180;border-radius:16px;pointer-events:auto}#touch-controls[data-combat=true] .touch-extra{bottom:calc(var(--action-bottom) + 304px)}#touch-controls .touch-extra button{position:static;border-radius:12px;width:60px;height:56px}body.touch-device #webgl-canvas{touch-action:none}body.touch-device.in-game #gameplay-quickbar,body.touch-device.in-game #hand-status,body.touch-device.in-game #session-hud{display:none!important}body.touch-device.in-game #hud-top-left{top:max(74px,calc(env(safe-area-inset-top) + 62px));bottom:auto;left:max(12px,env(safe-area-inset-left));width:110px}body.touch-device.in-game .tele-val{font-size:24px}body.touch-device.in-game .tele-label{font-size:8px}body.touch-device.in-game .tele-bar{display:none}body.touch-device.in-game #web-status-pill{display:none!important}body.touch-device.in-game #match-hud{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:auto;width:calc(100vw - 148px - env(safe-area-inset-left) - env(safe-area-inset-right));min-height:42px;padding:6px 9px;gap:6px;justify-content:flex-start;border-radius:12px;font-size:10px}body.touch-device.in-game #match-help,body.touch-device.in-game #match-count,body.touch-device.in-game .hud-district{display:none}body.touch-device.in-game #match-role,body.touch-device.in-game #match-health,body.touch-device.in-game #match-timer{font-size:10px;padding:0}body.touch-device.in-game #minimap-panel{width:112px;top:max(68px,calc(env(safe-area-inset-top) + 58px));bottom:auto;right:max(12px,env(safe-area-inset-right));padding:5px;border-radius:12px}body.touch-device.in-game #minimap-panel .minimap-header,body.touch-device.in-game #minimap-coordinates,body.touch-device.in-game #minimap-panel .minimap-footer{display:none}body.touch-device.in-game #game-notice{top:max(60px,calc(env(safe-area-inset-top) + 52px));max-width:65vw;font-size:10px}body.touch-device.in-game #boundary-warning,body.touch-device.in-game #pursuit-hud{top:max(188px,calc(env(safe-area-inset-top) + 178px));font-size:10px}body.touch-device #overlay-click-to-play .overlay-card{width:min(500px,calc(100vw - 24px));margin:auto}@media(max-width:374px){#touch-controls{--stick-size: 112px;--touch-edge: max(10px, env(safe-area-inset-right))}.touch-stick{left:max(12px,env(safe-area-inset-left))}#touch-controls .touch-mode{left:max(18px,env(safe-area-inset-left))}}@media(max-height:500px)and (orientation:landscape){#touch-controls{--stick-size: 112px;--control-lift: max(20px, calc(env(safe-area-inset-bottom) + 12px) )}.touch-stick{left:max(32px,calc(env(safe-area-inset-left) + 12px))}#touch-controls .touch-mode{left:max(32px,calc(env(safe-area-inset-left) + 12px));bottom:calc(var(--control-lift) + var(--stick-size) + 24px)}.touch-toolbar{right:max(116px,calc(env(safe-area-inset-right) + 108px))}.touch-extra,#touch-controls[data-combat=true] .touch-extra{grid-template-columns:repeat(2,60px);right:calc(var(--touch-edge) + 174px);bottom:var(--action-bottom)}body.touch-device.in-game #minimap-panel{width:88px;top:max(12px,env(safe-area-inset-top))}body.touch-device.in-game #hud-top-left{display:none!important}#touch-controls[data-combat=true] .touch-actions{height:224px;width:228px}#touch-controls[data-combat=true] .touch-primary{top:66px}#touch-controls[data-combat=true] .touch-zip{left:68px;top:74px}#touch-controls[data-combat=true] .touch-guard{left:0;top:74px}#touch-controls[data-combat=true] .touch-heavy{right:92px;top:0}#touch-controls[data-combat=true] .touch-dodge{left:68px}#touch-controls[data-combat=true] .touch-extra{right:calc(var(--touch-edge) + 242px)}}@media(max-height:360px)and (orientation:landscape){#touch-controls{--stick-size: 104px;--control-lift: max(12px, env(safe-area-inset-bottom))}body.touch-device.in-game #minimap-panel{width:68px}}.touch-menu-hint,.touch-guide-row{display:none}body.touch-device .touch-menu-hint{display:block;color:#b9d5e2;font-size:12px;line-height:1.7;margin:12px 0 20px}body.touch-device #overlay-click-to-play .start-instruction,body.touch-device #btn-start-drag{display:none}body.touch-device .touch-guide-row{display:flex}body.touch-device #controls-guide .guide-row:not(.touch-guide-row){display:none}#touch-controls .touch-web{font-size:11px;padding:5px}#touch-controls .touch-toolbar button{min-height:44px!important}#touch-controls[data-spectating=true] .touch-move-zone,#touch-controls[data-spectating=true] .touch-mode,#touch-controls[data-spectating=true] .touch-actions,#touch-controls[data-spectating=true] .touch-extra,body.touch-device.in-game #minimap-panel .minimap-legend,body.touch-device.in-game #minimap-panel .minimap-range-label,body.touch-device.touch-solo #match-timer{display:none}body.touch-device.in-game #combat-status{bottom:max(20px,env(safe-area-inset-bottom))!important;padding:6px 10px!important;font-size:10px!important}body.in-game #combat-status:not(.hidden){display:block!important;position:fixed;z-index:8;top:146px;bottom:auto;left:24px;transform:none;max-width:min(420px,calc(100vw - 48px));text-align:left;padding:10px 16px;border-radius:12px;background:#14202de8;color:#fff;font:12px system-ui;pointer-events:none}body.touch-device.in-game #combat-status:not(.hidden){top:max(220px,calc(env(safe-area-inset-top) + 212px));bottom:auto!important;left:max(12px,env(safe-area-inset-left));max-width:calc(100vw - 148px - env(safe-area-inset-left) - env(safe-area-inset-right))}@media(max-height:500px)and (orientation:landscape){body.touch-device.in-game #combat-status:not(.hidden){top:max(118px,calc(env(safe-area-inset-top) + 110px))}}#touch-controls .touch-web{word-break:keep-all}body.touch-device.in-game #match-hud{width:fit-content;max-width:calc(100vw - 148px - env(safe-area-inset-left) - env(safe-area-inset-right))}html,body{width:100%;height:100%;height:100dvh;overscroll-behavior:none}body{position:fixed;inset:0}#game-container{width:100%;height:100%}#webgl-canvas,#speedlines-canvas{width:100%!important;height:100%!important}html:fullscreen,html:-webkit-full-screen{width:100%;height:100%;background:#07121d}#match-fullscreen{margin-left:auto;color:#fff;background:#173245;min-height:40px;border-radius:10px}#match-fullscreen+#match-help{margin-left:0}.lobby-fullscreen{flex-shrink:0;font-size:11px;min-height:40px}#fullscreen-help{margin:auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;overflow-y:auto;color:#e7f1fa;background:#0d1b29;border:1px solid #49677b;border-radius:20px}#fullscreen-help::backdrop{background:#020812cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#fullscreen-help h2{font-size:21px;margin-bottom:16px}#fullscreen-help p{color:#bdd1de;font-size:13px;line-height:1.7;margin:14px 0}#fullscreen-help button{width:100%;min-height:48px}body.touch-device.in-game #match-fullscreen{display:none}body.touch-device.in-game #match-hud{max-width:calc(100vw - 228px - env(safe-area-inset-left) - env(safe-area-inset-right))}#touch-controls [data-ui=fullscreen]{font-size:10px;min-width:66px}body.touch-device .lobby-fullscreen{margin-left:auto;min-height:44px}body.touch-device #overlay-click-to-play button,body.touch-device #world-map button{min-height:44px}@media(max-width:700px){.lobby-topline{flex-wrap:wrap;gap:10px}.lobby-topline .lobby-brand{flex:1}.lobby-topline #online-status{order:3;width:100%;text-align:right}.lobby-topline .lobby-fullscreen{margin-left:auto}}#combat-aim-zone{position:fixed;left:42%;top:39%;width:16%;height:22%;box-sizing:border-box;border:1px dashed rgba(255,255,255,.5);border-radius:0;pointer-events:none;z-index:21}#combat-aim-zone[data-ready=true]{border:2px solid #7cffa9;background:#7cffa90e}#combat-aim-zone[hidden]{display:none}.attack-guide{font-size:12px;line-height:1.65;color:#bbc8d4;margin:12px 0}.attack-guide summary{cursor:pointer;color:#eef5ff}.player-row select{max-width:120px;background:#152230;color:#fff;border:1px solid #64788b;border-radius:6px;padding:6px}.player-position-marker[data-team=red]{color:#ff8191;border-color:#ff8191}.player-position-marker[data-team=blue]{color:#71bfff;border-color:#71bfff}.mode-picker{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.mode-picker{grid-template-columns:1fr}.mode-option{min-height:60px}.room-code-line{flex-wrap:wrap}}#open-admin{flex-shrink:0;border:1px solid rgba(117,231,236,.35);background:#14484f73;color:#9ce5df;font:800 10px Outfit,sans-serif;letter-spacing:.14em;padding:7px 12px;cursor:pointer}#admin-overlay{z-index:80;align-items:flex-start;overflow:auto}.admin-card{width:min(640px,100%);margin:24px auto;padding:22px;border:1px solid rgba(167,202,219,.28);border-top:3px solid #75e7ec;background:#08111ef5;color:#e7f1fa}.admin-card h2{margin:8px 0 6px;font-size:28px}.admin-card p{color:#9daebe}.admin-card .online-field input{width:100%;height:43px;margin-top:7px;padding:0 12px;border:1px solid #33485a;background:#0d1d2ee6;color:#fff}.admin-card button{cursor:pointer;border:1px solid #527b86;border-radius:2px;padding:10px 14px;background:#163341;color:#fff;font-weight:800}.admin-card .online-primary{width:100%;border:0;background:#ed3155}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px;margin:16px 0}.admin-stat{display:grid;gap:2px;min-height:78px;padding:10px;border:1px solid #30465a;background:#102035cc}.admin-stat b{color:#f4f8fb;font:900 26px/1 Outfit,sans-serif}.admin-stat span{color:#d5e4ee;font-size:12px;font-weight:800}.admin-stat small,.admin-note,.admin-room-meta,.admin-summary{color:#8ea3b5;font-size:11px;line-height:1.45}.admin-summary{margin:0 0 10px}.admin-rooms{display:grid;gap:8px}.admin-room{padding:10px;border:1px solid #30465a;background:#0c1828b8}.admin-room-title{display:flex;justify-content:space-between;gap:12px}.admin-room-title span{color:#8de2df;font:800 12px Outfit,sans-serif;letter-spacing:.08em}.admin-players{margin:8px 0 0;padding-left:18px}.admin-players li{margin:3px 0;color:#d5e2ec;font-size:12px}.admin-actions{display:flex;gap:8px;margin-top:14px}.admin-actions button{flex:1}.room-code-line{flex-wrap:wrap}.room-code-line button{white-space:nowrap}.player-row{gap:8px;flex-wrap:wrap;align-items:center}.player-row>span{overflow-wrap:anywhere;min-width:0}.online-card,.lobby-shell,.lobby-stage>*{min-width:0}.player-position-marker.targeted{outline:2px solid #7cffa9;box-shadow:0 0 12px #7cffa955}.player-position-marker:after{content:"";position:absolute;bottom:0;left:0;height:3px;width:var(--hp-value,100%);background:currentColor}#combat-feedback{top:96px;max-width:min(720px,calc(100vw - 24px))}@media(max-width:650px){#combat-feedback{top:116px;font-size:10px;padding:6px 8px}}.player-position-marker.compact{max-width:220px;padding:4px 8px;font-size:11px}.city-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.city-options a{position:relative;min-height:94px;padding:13px 12px;border-radius:13px;border:1px solid #ffffff21;background:linear-gradient(145deg,#ffffff08,#ffffff02);transition:background .18s,transform .18s}.city-options a:before{content:"";display:block;width:27px;height:3px;margin-bottom:10px;border-radius:2px;background:var(--map-accent,#87d8ea);box-shadow:0 0 12px var(--map-accent)}.city-options a:hover{transform:translateY(-2px);background:#ffffff10;border-color:var(--map-accent)}.city-options a[aria-current=page]{border-color:var(--map-accent);background:linear-gradient(145deg,#ffffff16,#ffffff04);box-shadow:inset 0 0 0 1px #ffffff08}.city-options small{font-size:10px;line-height:1.5}.map-tag{display:block;color:var(--map-accent);font-size:9px;letter-spacing:.04em;margin-bottom:4px}.loading-city-picker{max-width:600px;width:100%}.loading-box{max-height:95dvh;overflow:auto}.language-switch{position:fixed;right:18px;top:max(14px,env(safe-area-inset-top));z-index:150;display:flex;gap:2px;padding:3px;border:1px solid #ffffff30;border-radius:24px;background:#111c2cde;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.language-switch a{padding:6px 10px;font:600 11px system-ui;color:#b6c5d5;text-decoration:none;border-radius:20px}.language-switch a[aria-current]{background:#c1efe9;color:#142b33}body.in-game .language-switch{display:none}.world-map-destinations{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0}.world-map-destinations a{font-size:11px;padding:7px 10px;border:1px solid #567782;border-radius:20px;color:#cfdee8;text-decoration:none}.world-map-destinations a[aria-current]{color:#91fff0;border-color:#91fff0}#game-notice{top:88px;border:0;border-radius:30px;padding:12px 24px;max-width:min(680px,85vw);background:linear-gradient(90deg,#101e2be8,#203349e8);box-shadow:0 8px 32px #0004,inset 0 1px #ffffff24;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);line-height:1.6}#combat-feedback{border:0;border-radius:22px;padding:9px 18px;background:#101c2de0;box-shadow:inset 0 1px #ffffff20,0 8px 25px #0003}@media(max-width:650px){.city-options{grid-template-columns:repeat(2,minmax(0,1fr))}.city-options a{min-height:82px;padding:10px}.language-switch{right:8px;top:8px}}@media(prefers-reduced-motion:reduce){.city-options a{transition:none}}.pause-atlas .city-options{margin-top:12px}.pause-atlas p,.district-online-note{font-size:11px;line-height:1.6;color:#aabecd}#world-map{overflow:auto}.world-map-destinations a{min-height:30px;display:inline-flex;align-items:center}body.in-game .language-in-menu,.language-in-menu{position:static;display:inline-flex;margin:14px 0;-webkit-backdrop-filter:none;backdrop-filter:none}.district-route{font-size:10px!important;line-height:1.7!important;color:#a6c4cd!important;margin:12px 0 0!important}@media(max-width:650px){body:not(.in-game)>.language-switch{top:max(68px,calc(env(safe-area-inset-top) + 60px));right:16px}}#online-overlay:before{display:none}#online-overlay .lobby-shell{width:min(100%,1040px);padding:24px 32px 18px}.lobby-shell[data-view=solo] .online-card,.lobby-shell[data-view=online] .lobby-hero{display:none}.lobby-shell[data-simplified] .lobby-stage{display:flex;justify-content:center;align-items:center;padding:28px 0}.lobby-shell[data-simplified] .lobby-hero{width:min(100%,440px);min-height:0;align-self:auto}.lobby-shell[data-simplified] .lobby-hero:before,.lobby-shell[data-simplified] .lobby-eyebrow,.lobby-shell[data-simplified] .lobby-hero>p,.lobby-shell[data-simplified] .lobby-statline,.lobby-shell[data-simplified] .lobby-edition{display:none}.lobby-shell[data-simplified] .lobby-hero h1{margin:0 0 18px;font-size:clamp(25px,4vw,38px);line-height:1.35;letter-spacing:-.045em;text-shadow:none;font-weight:700}.lobby-shell[data-simplified] .lobby-topline{gap:12px;border:0;padding-bottom:0;flex-wrap:nowrap}.lobby-shell[data-simplified] .lobby-brand{font-size:13px;letter-spacing:.08em;margin-right:auto}.lobby-shell[data-simplified] .brand-mark{display:none}.lobby-topline .language-switch{position:static;z-index:auto;-webkit-backdrop-filter:none;backdrop-filter:none;flex-shrink:0}.lobby-shell[data-simplified] .lobby-fullscreen{min-height:34px;padding:6px 10px;background:transparent;border:1px solid #ffffff24;border-radius:20px;font-size:10px}.lobby-shell[data-simplified] .city-picker{margin:0;width:100%}.district-silhouette{display:flex;align-items:flex-end;gap:5px;height:120px;padding:20px 20px 0;margin-bottom:20px;overflow:hidden;border-bottom:1px solid #ffffff23;background:radial-gradient(ellipse at 50% 100%,#85c5de13,transparent 70%)}.district-silhouette span{flex:1;max-width:50px;background:linear-gradient(0deg,#16303b,var(--district-color));opacity:.5;border-radius:2px 2px 0 0;box-shadow:inset -4px 0 #07121d44}.map-selector{border:1px solid #ffffff28;border-radius:12px;background:#132330a8}.map-selector>summary{position:relative;display:grid;gap:5px;padding:16px 18px;list-style:none;cursor:pointer}.map-selector>summary::-webkit-details-marker{display:none}.map-selector>summary small{font-size:10px;color:#8faab8;letter-spacing:.05em}.map-selector>summary strong{font-size:18px;color:#f1f6f8;font-weight:600}.map-change{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:11px;color:#a7c6d1}.map-change:after{content:"⌄";display:inline-block;margin-left:8px}.map-selector[open] .map-change:after{rotate:180deg}.map-selector .city-options{grid-template-columns:1fr;padding:0 10px 10px;gap:3px}.map-selector .city-options a{min-height:0;padding:11px 12px;border:0;border-radius:7px;display:flex;align-items:center;gap:10px;background:transparent;box-shadow:none}.map-selector .city-options a:before{width:5px;height:5px;border-radius:50%;margin:0;box-shadow:none;flex-shrink:0}.map-selector .city-options a b{font-size:12px;font-weight:600}.map-selector .city-options a small,.map-selector .map-tag{display:none}.map-selector .city-options a[aria-current]{background:#ffffff0c}.map-selector .city-options a[aria-current]:after{content:"✓";margin-left:auto;color:#a9e5d7}.lobby-shell[data-simplified] .lobby-hero-actions{display:grid;gap:10px;margin-top:20px}.lobby-shell[data-simplified] #play-solo{width:100%;min-height:56px;padding:14px 18px;border:0;border-radius:10px;clip-path:none;background:#d8465c;box-shadow:none;gap:12px}.lobby-shell[data-simplified] #play-solo:hover{transform:none;background:#e35469}.lobby-shell[data-simplified] #play-solo .play-triangle{display:none}.lobby-shell[data-simplified] #play-solo small{display:none}.lobby-shell[data-simplified] #play-solo .action-arrow{font-size:21px}#open-multiplayer{min-height:48px;border:1px solid #ffffff2c;border-radius:10px;background:#ffffff05;color:#d9e6ec;font-family:inherit;font-weight:600;font-size:14px;cursor:pointer}#open-multiplayer:hover{background:#ffffff0e}.lobby-shell[data-simplified] .online-card{width:min(100%,520px);max-height:none;border:0;border-radius:14px;background:#101e2be8;box-shadow:none;padding:24px}#lobby-back{padding:4px 0;margin:0 0 20px;border:0;background:none;color:#a9c4cf;font-size:12px}#lobby-back[hidden],.lobby-shell[data-simplified] .online-header .menu-index,.lobby-shell[data-simplified] .district-online-note{display:none}.lobby-shell[data-simplified] .online-header h2{margin:0 0 8px;font-size:25px}.lobby-shell[data-simplified] .online-header>p:not(.district-online-note){margin:0 0 16px;line-height:1.6;font-size:12px}.lobby-shell[data-simplified] #online-status{display:block;width:fit-content;padding:0;margin:0 0 22px;border:0;background:none;color:#8ba6b4;font-size:10px;white-space:normal}.room-setup{border-top:1px solid #ffffff1c;margin-top:20px;padding-top:16px}.room-setup>summary{cursor:pointer;color:#b9e7e2;font-size:13px;font-weight:600;padding:6px 0}.room-setup[open]>summary{margin-bottom:15px}.lobby-shell[data-simplified] .online-divider{display:none}.lobby-shell[data-simplified] .online-field{margin-bottom:16px}.lobby-shell[data-simplified] .lobby-footer{border:0;font-size:9px;letter-spacing:.04em;padding-top:16px}.lobby-shell[data-simplified] .lobby-footer span:nth-child(2){display:none}.lobby-shell[data-simplified] #open-admin{background:none;border:0;color:#718996;font-size:10px;padding:4px}@media(max-width:650px){#online-overlay .lobby-shell{padding:18px 20px;min-height:100dvh}.lobby-shell[data-simplified] .lobby-stage{padding:34px 0}.lobby-shell[data-simplified] .lobby-brand{font-size:11px;letter-spacing:.02em}.lobby-topline .language-switch a{padding:6px 8px;font-size:10px}.lobby-shell[data-simplified] .lobby-fullscreen{display:none}.district-silhouette{height:100px}.lobby-shell[data-simplified] .online-card{padding:20px}.lobby-shell[data-simplified] .lobby-hero h1{font-size:26px}}@media(max-height:600px){.district-silhouette{display:none}.lobby-shell[data-simplified] .lobby-stage{padding:20px 0}.lobby-shell[data-simplified] .lobby-hero h1{font-size:26px;margin-bottom:14px}}.loading-atlas>summary{cursor:pointer;font-size:12px;color:#9ab4c3;padding:12px}.loading-atlas[open] .city-options{margin-top:8px}#open-multiplayer:focus-visible,.map-selector summary:focus-visible,#lobby-back:focus-visible{outline:2px solid #b2e9df;outline-offset:4px}#touch-controls[data-simple=true][data-combat=false] .touch-actions{width:146px;height:190px}#touch-controls[data-simple=true][data-combat=false] .touch-actions .touch-primary{top:0;right:0;width:90px;height:90px;background:#1b494bc9;border-color:#a3d6d6}#touch-controls[data-simple=true][data-combat=false] .touch-actions .touch-jump{width:70px;height:70px;right:0;bottom:0}#touch-controls[data-simple=true][data-combat=false] .touch-actions .touch-more{inset:auto auto 36px 0;width:48px;height:48px}#touch-controls[data-simple=true][data-combat=false] .touch-actions .touch-guard{left:0;top:0;width:48px;height:48px}#touch-controls[data-simple=true][data-wire-connected=true] .touch-primary{background:#366657e8!important;border-color:#9ff6c8!important;box-shadow:0 0 0 5px #92dfbc18}#touch-controls[data-simple=true][data-wire-ready=true][data-combat=false] .touch-primary{border-color:#9ce9cf}#touch-controls[data-simple=true] .touch-extra .touch-mode{position:static;min-width:60px;width:60px;height:56px}#touch-controls[data-simple=true][data-combat=false] .touch-extra{bottom:calc(var(--action-bottom) + 204px);max-height:calc(100dvh - 140px);overflow-y:auto}#touch-anchor{position:fixed;pointer-events:none;width:18px;height:18px;transform:translate(-50%,-50%);border:2px solid #b3ffe1;border-radius:50%;box-shadow:0 0 0 4px #19433e77,0 0 14px #8defc855}#touch-anchor:after{content:"";position:absolute;inset:5px;border-radius:50%;background:#d7fff0}body:not(.touch-device) #touch-anchor{display:none}body.touch-device.mobile-traversal.in-game #crosshair{opacity:.35}@media(max-height:500px)and (orientation:landscape){#touch-controls[data-simple=true][data-combat=false] .touch-extra{right:calc(var(--touch-edge) + 158px);bottom:var(--action-bottom);max-height:calc(100dvh - 94px)}#touch-controls[data-simple=true][data-combat=false] .touch-actions{height:170px}#touch-controls[data-simple=true][data-combat=false] .touch-primary{width:82px;height:82px}}.player-position-marker{--health-color:#e7798c;padding:6px 10px 15px;border:1px solid #ffffff26;border-radius:6px;background:#0a141fe0;color:#e3ebf0;font:600 11px/1.35 system-ui,sans-serif;letter-spacing:.015em;box-shadow:0 3px 12px #0003;pointer-events:none}.player-position-marker[data-team]{border-color:#ffffff26;color:#e3ebf0}.player-position-marker[data-team=ally]{--health-color:#90d5bc}.player-position-marker:before,.player-position-marker:after{content:"";position:absolute;left:10px;bottom:6px;height:4px;border-radius:2px}.player-position-marker:before{right:10px;background:#ffffff1c}.player-position-marker:after{width:calc((100% - 20px) * var(--hp-ratio,1));background:var(--health-color);transition:width .22s ease-out,background-color .22s ease-out}.player-position-marker:not(.has-health):before,.player-position-marker:not(.has-health):after{display:none}.player-position-marker.low-health{--health-color:#ffb66b}.player-position-marker.targeted{border-color:#e7798c;outline:1px solid #e7798c44;box-shadow:0 0 12px #e7798c20}.player-position-marker.offscreen{border-style:dashed}.player-position-marker.compact{padding:4px 8px 13px;font-size:10px}.player-position-marker.compact:before,.player-position-marker.compact:after{bottom:5px}@media(prefers-reduced-motion:reduce){.player-position-marker:after{transition:none}}#solo-objective{position:absolute;z-index:12;left:max(20px,env(safe-area-inset-left));top:max(110px,calc(env(safe-area-inset-top) + 100px));width:min(290px,calc(100vw - 40px));padding:12px 14px;color:#f2f1ec;background:#101a24ed;border-left:3px solid #e5b46a;pointer-events:none;font:14px/1.5 -apple-system,BlinkMacSystemFont,sans-serif}#solo-objective[hidden],body:not(.in-game) #solo-objective,body.help-open #solo-objective{display:none!important}#solo-objective strong{display:block;font-weight:650}#solo-objective p{margin:6px 0 8px;color:#d1d8df;overflow-wrap:anywhere}#solo-objective progress{display:block;width:100%;height:4px;accent-color:#e5b46a}body.touch-device #solo-objective{top:max(190px,calc(env(safe-area-inset-top) + 180px));left:max(12px,env(safe-area-inset-left));width:min(245px,calc(100vw - 32px));padding:8px 10px;font-size:12px}@media(max-height:500px){body.touch-device #solo-objective{top:max(55px,env(safe-area-inset-top));width:215px;font-size:11px}}:root{--font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif;--ui-accent: #e5b46a;--ui-surface: #131b22;--ui-line: #ffffff26;--text-main: #f2f1ec;--text-dim: #b4bdc5;color-scheme:dark}#game-container,#fullscreen-help{font-family:var(--font-family);font-synthesis:none}#game-container button,#game-container input,#game-container select,#game-container output,#game-container kbd,.language-switch a{font-family:var(--font-family)!important}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:disabled{cursor:not-allowed;filter:saturate(.3)}input,textarea{user-select:text;-webkit-user-select:text}#game-container :is(button,a,input,select,summary):focus-visible{outline:2px solid var(--ui-accent);outline-offset:4px}#game-container :is(input,select){accent-color:var(--ui-accent)}#online-overlay{background:linear-gradient(90deg,#0b1118f2,#0b1118cc 55%,#0b11185c);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}#online-overlay .lobby-shell{width:min(100%,1280px);padding:28px clamp(20px,5vw,64px) 24px}.lobby-shell[data-simplified] .lobby-topline{gap:16px;min-height:44px}.lobby-shell[data-simplified] .lobby-brand{font:750 16px/1.3 var(--font-family);letter-spacing:.1em}.lobby-brand b{color:var(--ui-accent)}.lobby-shell[data-simplified] .lobby-stage{justify-content:flex-start;padding:48px 0}.lobby-shell[data-simplified] .lobby-hero{width:min(100%,440px)}.lobby-shell[data-simplified] .lobby-hero h1{font:700 clamp(30px,4vw,44px)/1.2 var(--font-family);letter-spacing:-.045em;margin:0 0 12px}.lobby-shell[data-simplified] .lobby-hero>p{display:block;color:#bec6cd;font-size:15px;line-height:1.65;margin-bottom:32px;text-shadow:none}.lobby-shell[data-simplified] .lobby-fullscreen,.language-switch{border-radius:4px;border-color:var(--ui-line);background:#111a23;font-size:12px}.lobby-topline .language-switch a{font-size:12px;padding:9px 12px;letter-spacing:0}.language-switch a[aria-current]{background:#dfb776;color:#141b22;border-radius:2px}.map-selector{background:#141e28;border:1px solid #526170;border-radius:4px}.map-selector>summary{padding:16px 18px;gap:8px}.map-selector>summary small{color:#bbc5ce;font-size:12px;letter-spacing:0}.map-selector>summary strong{font-size:20px;font-weight:650;padding-right:96px}.map-change{color:#e2e6e9;font-size:13px}.map-selector .city-options{padding:0 8px 8px}.map-selector .city-options a{flex-wrap:wrap;gap:6px 10px;padding:13px 12px;border-radius:2px}.map-selector .city-options a b{font-size:14px}.map-selector .city-options a small{display:block;width:100%;padding-left:15px;color:#b5c0c8;font-size:12px;line-height:1.5}.map-selector .city-options a[aria-current]{background:#ffffff0c;border-left:2px solid var(--ui-accent)}.map-selector .city-options a[aria-current]:after{content:none}.selected-map-description{margin:12px 0 0;color:#bac4cc;font-size:13px;line-height:1.65}.lobby-shell[data-simplified] .lobby-hero-actions{margin-top:28px;gap:10px}.lobby-shell[data-simplified] #play-solo,.online-card #create-room,#btn-start-game{min-height:54px;border:1px solid #f2ca8f;border-radius:4px;color:#161b20;background:var(--ui-accent);box-shadow:none;text-shadow:none}.lobby-shell[data-simplified] #play-solo:hover,.online-card #create-room:hover,#btn-start-game:hover{background:#f0c687;filter:none}.lobby-shell[data-simplified] #play-solo b{font-size:16px;font-weight:700}#open-multiplayer{min-height:50px;border-radius:4px;background:#18222ce6;font-size:15px;border-color:#677583}.lobby-shell[data-simplified] .lobby-footer{color:#b6c0c9;font:500 12px/1.5 var(--font-family);letter-spacing:.025em}.lobby-shell[data-simplified] #open-admin{font-size:12px;color:#aebbc6;min-height:36px}.lobby-shell[data-view=online] .lobby-stage{justify-content:center}.lobby-shell[data-simplified] .online-card{width:min(100%,580px);padding:28px;background:#131d27f5;border:1px solid #526170;border-radius:4px;-webkit-backdrop-filter:none;backdrop-filter:none}.lobby-shell[data-simplified] .online-header h2{font-size:26px;letter-spacing:-.035em}.lobby-shell[data-simplified] .online-header>p:not(.district-online-note),.lobby-shell[data-simplified] #online-status{font-size:13px;line-height:1.6;color:#bdc8d0}#lobby-back{font-size:14px;min-height:40px;margin-bottom:16px;color:#e1e6eb}.online-field,.mode-heading{font-size:13px;color:#d4dce3;letter-spacing:0}.online-field input,.online-field select,.online-inline input{font-size:16px;height:46px;background:#0c141e;border-color:#657483;border-radius:3px}.online-card #join-code{min-height:46px;font-size:14px;background:#263543;border-color:#6c8092}.online-card .mode-option{background:#18232d;border-color:#536473;min-height:90px}.online-card .mode-option.selected{background:#e5b46a14;border-color:var(--ui-accent);box-shadow:inset 0 -2px var(--ui-accent)}.mode-icon{display:none}.mode-option b{font-size:14px;line-height:1.5}.mode-option small{font-size:12px;line-height:1.5}.room-setup>summary{color:var(--ui-accent);font-size:15px;min-height:40px}.room-list-heading h3{font-size:15px}.room-list-heading span,.empty-rooms{font-size:12px;color:#bac6d0}.online-card .room-list-text strong{font-size:14px}.online-card .room-list-text small,.online-card .room-list-count{font-size:12px}.attack-guide{font-size:13px}body.in-game #hud-top-left{left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:max-content;min-width:88px;padding:12px 14px;background:#101a24e8;border:1px solid var(--ui-line);border-radius:4px;opacity:1;transform-origin:bottom left}#alt-readout{position:absolute;z-index:21;display:none;pointer-events:none;top:max(68px,calc(env(safe-area-inset-top) + 56px));right:max(20px,env(safe-area-inset-right));min-width:72px;margin:0;padding:0;text-align:right;transform-origin:top right;text-shadow:0 1px 4px #000,0 1px 10px #000}#alt-readout .tele-label{display:block;color:#e0e6eb;font:500 10px/1.3 var(--font-family);letter-spacing:.12em}#alt-readout .tele-val-box{display:flex;justify-content:flex-end;align-items:baseline;gap:4px;margin:1px 0 0}#alt-readout .tele-val{color:#fff;font:600 24px/1 var(--font-family);font-variant-numeric:tabular-nums;letter-spacing:-.035em}#alt-readout .tele-unit{color:#c6d0d8;font:500 10px/1 var(--font-family)}#alt-readout .tele-bar{display:none}body.in-game.hud-swing:not(.hud-covered) #alt-readout{display:block}body:has(#connection-warning:not([hidden])) #alt-readout{top:max(124px,calc(env(safe-area-inset-top) + 112px))}#hud-top-left .telemetry-grid{grid-template-columns:minmax(0,1fr)}#hud-top-left .tele-label{color:#cbd4dc;font:500 12px/1.4 var(--font-family);letter-spacing:0;text-shadow:none}#hud-top-left .tele-val{font:600 28px/1.2 var(--font-family);font-variant-numeric:tabular-nums;letter-spacing:-.035em;text-shadow:none}#hud-top-left .tele-unit{font-size:10px;color:#c6d0d8}#hud-top-left .tele-fill{background:var(--ui-accent)}#hud-top-left .tele-bar{height:2px}body.in-game #session-hud{display:none!important}body.in-game.show-performance #session-hud{display:flex!important;top:84px;padding:6px 10px;border:1px solid var(--ui-line);border-radius:3px}body.in-game #web-status-pill{bottom:122px;left:max(20px,env(safe-area-inset-left));padding:6px 10px;border-radius:3px;background:#101a24e8;gap:8px}#web-status-text{font:600 12px/1.5 var(--font-family);letter-spacing:0}#hand-status{bottom:76px;font:500 12px/1.6 var(--font-family);color:#f1f4f6;padding:5px 10px;border-radius:3px;background:#101a24db;white-space:nowrap;max-width:calc(100% - 32px)}#match-hud{background:#101a24eb;border:1px solid var(--ui-line);border-radius:3px;min-height:50px;box-shadow:none}#match-hud .hud-district{font:600 12px/1.5 var(--font-family);color:#c3cfd8;letter-spacing:0}#match-hud :is(strong,span,button){font-size:12px;letter-spacing:0}#match-health{color:#f0c185;font-variant-numeric:tabular-nums}#gameplay-quickbar{bottom:20px;padding:9px 14px;gap:14px;border-radius:3px;font-size:12px;background:#101a24e8}#gameplay-quickbar kbd{font-size:11px;font-weight:600}#minimap-panel{border-radius:4px;background:#101a24ee;border:1px solid var(--ui-line);transform-origin:bottom right}.minimap-header strong{font:650 14px/1.5 var(--font-family);letter-spacing:0}.minimap-header span,.minimap-header #minimap-status{font:500 11px/1.5 var(--font-family);letter-spacing:0}#minimap-coordinates{font-size:11px;font-variant-numeric:tabular-nums}.minimap-legend,.minimap-range-label{font-size:11px}body.in-game #combat-status:not(.hidden){display:block!important;position:fixed;left:50%;bottom:110px;top:auto;transform:translate(-50%);max-width:calc(100vw - 32px);padding:10px 14px;background:#131b22f2;border:1px solid var(--ui-accent);border-radius:3px;font-size:13px;line-height:1.6}#game-notice{width:max-content;max-width:min(560px,calc(100% - 32px));padding:12px 18px;font-size:14px;line-height:1.6;border-radius:4px;background:#111c27f2;border:1px solid #667685;box-shadow:0 4px 20px #0003}#overlay-click-to-play{background:#08111bc2;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}#overlay-click-to-play .overlay-card{width:min(560px,100%);max-width:560px;padding:28px;border:1px solid #526170;border-radius:4px;background:#131d27fa;box-shadow:0 12px 40px #0005}.pause-eyebrow{font:600 12px/1.5 var(--font-family);letter-spacing:.1em;color:#c3ccd4}#overlay-click-to-play .overlay-card h1{margin-top:14px;font:700 32px/1.3 var(--font-family);letter-spacing:-.04em}#overlay-click-to-play .overlay-card h2{font:500 14px/1.5 var(--font-family);color:#bfcad3}.overlay-tagline{font-size:13px;line-height:1.6}.start-instruction{font-size:12px;background:none;padding:0;border:0;color:#cad4dd}.start-instruction small{display:block;font-size:11px;margin-top:6px;color:#abb9c5}#btn-start-drag{font-size:13px;min-height:44px;background:#253543;border:1px solid #617484;border-radius:4px}.pause-secondary{gap:8px}.pause-secondary button{min-height:42px;border-radius:4px!important;font-size:12px}#open-admin-pause{flex:0 0 auto;color:#a9b8c4;background:none;border:0}.settings-title{font:600 13px/1.5 var(--font-family);color:#b7c6d1;letter-spacing:0}#reduced-motion,.pause-settings .guide-setting,.setting-row{min-height:46px;font-size:13px;line-height:1.5;color:#e2e7ec}.setting-row{grid-template-columns:minmax(120px,1fr) minmax(80px,140px) 56px;gap:12px}.setting-row output{font-size:12px;font-variant-numeric:tabular-nums;text-align:right;color:#edc68c}.setting-row button{min-height:38px;font-size:12px}#extended-settings summary,.player-progress summary{font-size:14px;min-height:46px;padding:12px 0;color:#e0e5ea;cursor:pointer}#extended-settings p,.player-progress p{font-size:12px;line-height:1.75;color:#bac6d0}.pause-settings select{font-size:13px;min-height:38px}#controls-guide{background:#111c27f7;border:1px solid #627180;border-radius:4px}.guide-header{position:sticky;top:0;z-index:1;background:#111c27;gap:12px;padding-bottom:12px}.guide-header h3{font-size:17px}.guide-header .guide-hint{display:none}#btn-close-guide{margin-left:auto;font-size:13px;min-height:40px}.guide-group{border-top:1px solid #ffffff20}.guide-group>summary{padding:14px 0;font-size:14px;font-weight:600;color:#edc68c;cursor:pointer}.guide-row{grid-template-columns:110px minmax(0,1fr);gap:14px;padding:10px 0}.key-badge{font-size:12px;letter-spacing:0;color:#f2f1ec;background:#253440;border-radius:3px;border-color:#536675}.guide-desc,.guide-desc.key-accent{font-size:13px;line-height:1.75;color:#cbd5dd}.loading-box{border-radius:4px;background:#131d27;border:1px solid #657584;box-shadow:none}.loading-box h2{font-size:20px;letter-spacing:-.02em}#loading-desc{font-size:14px;line-height:1.65;color:#c4ced7}#loading-bar-fill{background:var(--ui-accent);box-shadow:none}#loading-pct{color:#edc68c;font-variant-numeric:tabular-nums}@media(max-width:1000px){#gameplay-quickbar{left:236px;right:20px;width:fit-content;transform:none;gap:10px}#gameplay-quickbar>span:nth-child(4){display:none}}@media(max-width:650px){#online-overlay .lobby-shell{padding:max(18px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom))}.lobby-shell[data-simplified] .lobby-stage{padding:36px 0}.lobby-shell[data-simplified] .lobby-brand{font-size:14px;letter-spacing:.05em}.lobby-shell[data-simplified] .lobby-hero h1{font-size:30px}.lobby-shell[data-simplified] .online-card{padding:20px}.lobby-topline .language-switch a{padding:9px}#overlay-click-to-play .overlay-card{margin:auto;padding:22px 18px}.setting-row{gap:8px;grid-template-columns:minmax(100px,1fr) minmax(65px,110px) 45px}#hand-status{font-size:11px;white-space:normal;text-align:center;bottom:64px}body:not(.touch-device).in-game #hud-top-left{width:max-content;left:12px;bottom:12px}body:not(.touch-device).in-game #web-status-pill{left:12px;bottom:112px}#game-container #gameplay-quickbar{display:none}.guide-row{grid-template-columns:88px minmax(0,1fr);gap:10px}.guide-desc{font-size:12px}}@media(prefers-reduced-motion:reduce){#game-container :is(button,a,.glass-panel,.crosshair-ring){transition:none;animation:none}.loading-spinner{animation-duration:2s}}body:not(.in-game) #minimap-panel{visibility:hidden}.loading-spinner{border-color:#ffffff1c;border-top-color:var(--ui-accent);border-right-color:var(--ui-accent)}@media(max-width:650px){body.touch-device.in-game #combat-status:not(.hidden){bottom:auto;top:110px;max-width:calc(100vw - 32px);font-size:12px}}.online-inline input,.online-inline input::placeholder{font-size:14px;letter-spacing:.02em;font-weight:500}@media(max-width:650px){#online-overlay{background:#101820f5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}#controls-guide:not(.hidden){border:1px solid #627180;border-top:2px solid var(--ui-accent);border-radius:4px;background:#111c27fa}.guide-header .guide-hint{display:block;order:3;flex:0 0 100%;color:#bac8d4;font-size:12px;line-height:1.5;text-align:left}.guide-row{display:grid}body:has(#controls-guide:not(.hidden)) #game-notice{visibility:hidden}body:has(#controls-guide:not(.hidden)) #hand-status{visibility:hidden}body:not(.in-game) #game-notice{visibility:hidden}#connection-warning{position:absolute;z-index:15;top:max(75px,calc(env(safe-area-inset-top) + 65px));right:max(16px,env(safe-area-inset-right));max-width:min(340px,80vw);padding:9px 12px;background:#372a17ed;color:#ffdfa5;font-size:13px;pointer-events:none}#connection-warning[hidden],body:not(.in-game) #connection-warning{display:none!important}body.touch-device:has(#solo-objective:not([hidden])) #hud-top-left{visibility:hidden}#journey-result{color:#edc68c;overflow-wrap:anywhere}#exploration-menu button[hidden]{display:none!important}#exploration-menu button:disabled{opacity:.45;cursor:default}#loading-wait{min-height:2.8em;font-size:13px;line-height:1.5;color:#c4ced7}#hud-actions{position:absolute;z-index:24;bottom:20px;left:236px;right:12px;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}#hud-actions #hand-status{position:static;transform:none;width:max-content;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}#hud-actions #gameplay-quickbar{position:static;transform:none;width:fit-content;max-width:100%;flex-wrap:wrap;justify-content:center;white-space:normal;gap:8px 12px}#hud-actions #gameplay-quickbar>span{white-space:nowrap}#minimap-panel,#hud-top-left{transition:none}body:not(.in-game) #hud-actions,body.touch-device #hud-actions{display:none}@media(max-height:500px){body:not(.touch-device) #minimap-panel .minimap-header,body:not(.touch-device) #minimap-coordinates{display:none}}body.touch-device.in-game #hud-top-left{width:128px;padding:8px 10px;transform-origin:top left}body.touch-device #hud-top-left .telemetry-grid{grid-template-columns:minmax(0,1fr);gap:8px}body.touch-device #hud-top-left .telemetry-item{min-width:0}body.touch-device #hud-top-left .tele-label{font-size:10px;line-height:1.3}body.touch-device #hud-top-left .tele-val-box{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 5px;min-width:0}body.touch-device #hud-top-left .tele-val{font-size:20px;line-height:1.1}body.touch-device #hud-top-left .tele-unit{font-size:9px;line-height:1.2;white-space:nowrap}body.touch-device.in-game #minimap-panel{transform-origin:top right}body.in-game #match-hud{top:max(16px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));min-height:40px;padding:0;gap:14px;justify-content:flex-start;background:none;border:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:0 1px 4px #000,0 1px 12px #000}#match-hud .hud-district{margin-right:8px;color:#e2e8ed}#match-hud #match-role{color:#f2f1ec}#match-hud #match-timer{color:#d0d9e1}#match-hud #match-count:empty,#match-hud #match-health:empty{display:none}#match-hud #match-fullscreen{margin-left:auto}#match-hud :is(#match-fullscreen,#match-help){min-height:36px;padding:7px 12px;border-radius:4px;background:#101a24c9;border:1px solid #ffffff26;box-shadow:none}body.combat-hud-active #match-health{display:none}body.in-game #combat-status.vitals-hud:not(.hidden){position:absolute;z-index:12;top:auto;bottom:170px;left:max(20px,env(safe-area-inset-left));transform:none;width:194px;max-width:calc(100% - 40px);padding:12px 14px;border:1px solid #ffffff26;border-radius:4px;background:#101a24e8;font:12px/1.4 var(--font-family);pointer-events:none}.vitals-mode{margin-bottom:10px;font-size:11px;font-weight:600;color:#d4dee6}.vitals-row{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;align-items:center;gap:10px;margin-top:7px;color:#e4e9ed}.vitals-row output{text-align:right;font-size:11px;font-variant-numeric:tabular-nums}.vitals-row meter{display:block;appearance:none;width:100%;height:5px;border:0;background:#ffffff25;border-radius:2px;overflow:hidden}.vitals-row meter::-webkit-meter-bar{background:#ffffff25;border:0;border-radius:2px;height:5px}.vitals-health::-webkit-meter-optimum-value{background:#e3e9e7}.vitals-stamina::-webkit-meter-optimum-value{background:#e5b46a}.vitals-health::-moz-meter-bar{background:#e3e9e7}.vitals-stamina::-moz-meter-bar{background:#e5b46a}.is-low-health .vitals-health::-webkit-meter-optimum-value{background:#f47d76}.is-low-health .vitals-health-value,.is-low-stamina .vitals-stamina-value{color:#ffb58d}#game-notice{top:72px;border:1px solid #ffffff26;border-radius:4px;background:#101a24eb;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;padding:9px 14px;font-size:12px}body:not(.show-performance) #session-hud{display:none!important}@media(max-width:650px){body.in-game #match-hud{left:12px;right:12px;gap:10px}#match-hud .hud-district{display:none}#match-hud #match-timer{font-size:11px}body:not(.touch-device).in-game #combat-status.vitals-hud:not(.hidden){left:12px;width:170px}}body.touch-device.in-game #combat-status.vitals-hud:not(.hidden){left:max(12px,env(safe-area-inset-left));top:max(78px,calc(env(safe-area-inset-top) + 68px));bottom:auto!important;width:min(180px,calc(100vw - 160px));padding:9px 10px}body.touch-device .vitals-mode{margin-bottom:5px}body.touch-device .vitals-row{gap:6px;grid-template-columns:24px minmax(0,1fr) 22px}#match-hud #match-help{width:auto;margin-left:0;white-space:nowrap;flex-shrink:0}body:not(.touch-device) #minimap-panel{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 4px 16px #0003}body.combat-hud-active #web-status-pill,body.combat-hud-active #hand-status{display:none!important}body:not(.touch-device).in-game #hud-top-left{background:none;border-color:transparent;padding:8px 0 0;text-shadow:0 1px 4px #000,0 1px 10px #000}body:not(.touch-device) #hud-top-left .tele-label{color:#e0e6eb;font-size:10px;text-shadow:inherit}body:not(.touch-device) #hud-top-left .tele-val{font-size:24px;text-shadow:inherit}body:not(.touch-device) #hud-top-left .tele-bar{display:none}@media(max-width:650px){body:not(.touch-device) #minimap-panel{padding:7px}body:not(.touch-device) .minimap-header{gap:4px;padding-bottom:5px}body:not(.touch-device) .minimap-header strong{font-size:10px;white-space:nowrap}body:not(.touch-device) .minimap-header :is(span,#minimap-status),body:not(.touch-device) #minimap-coordinates,body:not(.touch-device) .minimap-legend{display:none}body:not(.touch-device) .minimap-range-label{font-size:9px}}@media(orientation:portrait){body.touch-device.in-game #game-notice{top:272px;max-width:calc(100% - 32px)}}@media(max-height:500px)and (orientation:landscape){body.touch-device.in-game #game-notice{top:64px;max-width:min(300px,calc(100vw - 420px))}}body.touch-device.in-game #combat-status.vitals-hud:not(.hidden){padding:6px 8px;font-size:11px;line-height:1.3}body.touch-device .vitals-mode{font-size:10px;line-height:1.2;margin-bottom:4px}body.touch-device .vitals-row{grid-template-columns:max-content minmax(10px,1fr) 24px;align-items:center;gap:5px;margin:2px 0;font-size:10px;line-height:1.3}body.touch-device .vitals-row output{font-size:11px;line-height:1.3}body.touch-device.in-game :is(#pursuit-hud,#connection-warning,#boundary-warning,#game-notice){padding:6px 8px;font-size:11px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}#speed-wash,#hurt-vignette{position:fixed;inset:0;z-index:12;pointer-events:none;opacity:0}#speed-wash{background:radial-gradient(ellipse at center,transparent 46%,rgba(4,8,16,.5) 100%)}#hurt-vignette{box-shadow:inset 0 0 90px 18px #b0182a9e}body.hud-swing:not(.reduced-motion) #speed-wash{opacity:1}body.hud-low #hurt-vignette{opacity:1}@media(prefers-reduced-motion:reduce){#speed-wash{opacity:0!important}}body.in-game #crosshair{width:18px;height:18px}body.in-game #crosshair .crosshair-dot{width:3px;height:3px;box-shadow:none}body.in-game #crosshair .crosshair-ring{width:18px;height:18px;border-width:1px}body.in-game #crosshair.aiming .crosshair-ring{width:22px;height:22px}body.in-game #crosshair.hit .crosshair-ring{border-color:#fff;box-shadow:0 0 12px #fff;transform:scale(1.45)}#world-marker{position:fixed;z-index:16;display:grid;justify-items:center;gap:4px;transform:translate(-50%,-50%);pointer-events:none;color:#f6e7bc;font:700 13px/1 var(--font-family);text-shadow:0 1px 4px #000}#world-marker[hidden]{display:none!important}.world-marker-gem{width:12px;height:12px;background:#e7c56a;transform:rotate(45deg);box-shadow:0 0 0 2px #101820,0 0 12px #e7c56aaa}.world-marker-aim{display:none;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:8px solid #e7c56a;transform:rotate(var(--aim, 0rad));transform-origin:0 4px}#world-marker.is-edge .world-marker-aim{display:block}#ability-bar{display:none;position:fixed;z-index:18;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%);gap:12px;align-items:end;pointer-events:none}body.in-game.skills-hud:not(.touch-device) #ability-bar,body.in-game.combat-hud-active:not(.touch-device) #ability-bar{display:flex}.ability{position:relative;width:58px;height:64px;display:grid;place-items:center;color:#f4f0ff;background:linear-gradient(180deg,#1c2433e8,#0c121ae8);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);filter:drop-shadow(0 8px 12px #0008)}.ability svg{width:24px;height:24px;transform:translateY(-7px)}.ability kbd{position:absolute;left:50%;bottom:9px;transform:translate(-50%);font:700 10px/1 var(--font-family);letter-spacing:.04em;color:#efe7ff}.ability-time{position:absolute;left:0;right:0;top:0;height:68%;display:grid;place-items:center;background:#070b12c4;color:#fff;font:700 13px/1 var(--font-family)}.ability-time:empty{display:none}.ability.is-dry{color:#8e95a6}.ability.is-cooling kbd{color:#fff}#ability-bar[data-mode=web] .ability.is-active{color:#e7fff6;filter:drop-shadow(0 0 8px #7dffe066) drop-shadow(0 8px 12px #0008)}#ability-bar[data-mode=combat] .ability.is-active{color:#ffe4ea;filter:drop-shadow(0 0 8px #ff8fa366) drop-shadow(0 8px 12px #0008)}.ability.is-unavailable{color:#7c8494;filter:none}body.in-game:not(.hud-swing) #hud-top-left{display:none!important}body.hud-swing.touch-device #hud-top-left{visibility:visible}body.in-game:not(.touch-device) :is(#web-status-pill,#hand-status,#gameplay-quickbar){display:none!important}body.in-game.hud-web:not(.touch-device) #web-status-pill{display:flex!important}body.vitals-active #match-health{display:none}body.in-game #combat-status.vitals-hud:not(.hidden){left:max(18px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));transform:none;width:auto;min-width:0;max-width:min(300px,calc(100vw - 210px));display:flex!important;align-items:center;gap:12px;padding:0;border:0;background:none;box-shadow:none}.vitals-emblem{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 50% 42%,#2a2044d0,#0c1018ee 70%);box-shadow:0 0 0 1px #c9b8ff66,0 8px 18px #0007}.vitals-emblem svg{width:46px;height:46px}.vitals-stack{display:grid;gap:6px;min-width:168px}.vitals-mode{display:none;margin:0}.vitals-hud.is-wire .vitals-mode,.vitals-hud.is-combat .vitals-mode{display:block;font-size:11px;font-weight:700;text-shadow:0 1px 3px #000}.vitals-hud.is-wire .vitals-mode{color:#b7f3e2}.vitals-hud.is-combat .vitals-mode{color:#ffc4ce}.vitals-hud.is-warning .vitals-mode,.vitals-hud.is-spectating .vitals-mode{display:block;color:#ffd7b0;font-size:11px;font-weight:700;text-shadow:0 1px 3px #000}.vitals-hud.is-spectating .vitals-mode{color:#d5e4f2}.vitals-row{display:grid;grid-template-columns:max-content minmax(72px,1fr) auto;align-items:center;gap:8px;margin:0}.vitals-row span{font:700 10px/1 var(--font-family);letter-spacing:.08em;color:#ffc4ce;text-shadow:0 1px 3px #000}.vitals-stack .vitals-row:last-child span{color:#ddd2ff}.vitals-row output{min-width:62px;text-align:right;font:600 12px/1 var(--font-family);font-variant-numeric:tabular-nums;color:#f7f4ff;text-shadow:0 1px 3px #000}.vitals-row meter,.vitals-row meter::-webkit-meter-bar{height:6px;border-radius:99px;background:#ffffff2e}.vitals-health::-webkit-meter-optimum-value{background:linear-gradient(90deg,#ff4d6d,#ff8fa3)}.is-low-health .vitals-health::-webkit-meter-optimum-value{background:#ff2a4a}.vitals-stamina::-webkit-meter-optimum-value{background:linear-gradient(90deg,#7c5cff,#c4b0ff)}.vitals-health::-moz-meter-bar,.is-low-health .vitals-health::-moz-meter-bar{background:#ff5d7a}.vitals-stamina::-moz-meter-bar{background:#a78bfa}body.in-game:not(.touch-device) #minimap-panel{width:176px!important;height:176px;padding:0;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.32);background:#071018d8;box-shadow:0 12px 28px #0007}body.in-game:not(.touch-device) #minimap-panel :is(.minimap-header,#minimap-coordinates,.minimap-legend,.minimap-range-label){display:none!important}body.in-game:not(.touch-device) #minimap-panel .minimap-wrap{height:100%;aspect-ratio:auto}body.in-game:not(.touch-device) #minimap-canvas{border-radius:50%}body.in-game:not(.touch-device) .minimap-north{top:12px;color:#f2f5f8;font-size:11px;letter-spacing:.08em}body.in-game #solo-objective:not([hidden]){display:grid;grid-template-columns:18px minmax(0,1fr) auto;column-gap:10px;row-gap:2px;align-items:center}body.in-game:not(.touch-device) #solo-objective:not([hidden]){top:max(68px,calc(env(safe-area-inset-top) + 58px));width:min(360px,calc(100vw - 240px));padding:10px 14px 11px;border:0;border-radius:3px;background:linear-gradient(90deg,#101820ee,#101820b0);box-shadow:0 10px 24px #0005}#solo-objective .objective-mark{grid-column:1;grid-row:1 / span 2;width:12px;height:12px;justify-self:center;background:#e7c56a;transform:rotate(45deg);box-shadow:0 0 0 3px #e7c56a33}#solo-objective strong{grid-column:2;grid-row:1}#solo-objective .objective-range{grid-column:3;grid-row:1;color:#f6e7bc;font:700 13px/1 var(--font-family);font-variant-numeric:tabular-nums}#solo-objective .objective-range:empty{display:none}#solo-objective p{grid-column:2 / -1;grid-row:2;margin:0 0 6px;font-size:12px}#solo-objective progress{grid-column:1 / -1;grid-row:3}body.touch-device.in-game #combat-status.vitals-hud:not(.hidden){display:flex!important;width:min(230px,calc(100vw - 132px));gap:8px;padding:0;border:0;background:none}body.touch-device .vitals-emblem{width:40px;height:40px;flex-basis:40px}body.touch-device .vitals-emblem svg{width:32px;height:32px}body.touch-device .vitals-stack{min-width:0;gap:4px}body.touch-device .vitals-row{grid-template-columns:max-content minmax(36px,1fr) auto;gap:5px}body.touch-device .vitals-row output{min-width:52px;font-size:10px}body.hud-covered #solo-objective,body.hud-covered :is(#ability-bar,#world-marker,#hud-top-left,#alt-readout,#minimap-panel,#crosshair,#speed-wash,#hurt-vignette,#match-hud),body.hud-covered.in-game #combat-status.vitals-hud:not(.hidden),body.hud-covered.in-game.hud-web:not(.touch-device) #web-status-pill{display:none!important}@media(max-width:900px){body.in-game:not(.touch-device) #ability-bar{gap:8px}body.in-game:not(.touch-device) .ability{width:48px;height:54px}body.in-game:not(.touch-device) .vitals-emblem{width:48px;height:48px;flex-basis:48px}body.in-game:not(.touch-device) .vitals-emblem svg{width:38px;height:38px}body.in-game:not(.touch-device) .vitals-stack{min-width:140px}body.in-game:not(.touch-device) #minimap-panel{width:148px!important;height:148px}}@media(max-width:700px){body.in-game.skills-hud:not(.touch-device) #ability-bar{bottom:max(96px,calc(env(safe-area-inset-bottom) + 88px))}}@media(max-width:560px){body.in-game:not(.touch-device) #minimap-panel{width:112px!important;height:112px}body.in-game:not(.touch-device) .ability{width:42px;height:48px}}#ability-bar{pointer-events:auto;gap:9px}button.ability{width:60px;height:64px;padding:0;clip-path:none;border:1px solid #a7b9ce45;border-radius:13px;overflow:hidden;cursor:pointer;box-shadow:0 5px 18px #0008;background:#0b111d}.ability-art{position:absolute;inset:0;background-image:url(/images/ability-atlas-v2.jpg);background-size:400% 100%;background-position:0 50%}[data-ability=zip] .ability-art{background-position:33.333% 50%}[data-ability=heavy] .ability-art{background-position:66.667% 50%}[data-ability=guard] .ability-art{background-position:100% 50%}button.ability kbd{bottom:4px;z-index:1;padding:3px 6px;border-radius:4px;background:#060b14d9;font-size:10px}button.ability:disabled{cursor:default}button.ability.is-unavailable .ability-art,button.ability.is-dry .ability-art{filter:grayscale(.8) brightness(.38)}button.ability:focus-visible{outline:2px solid #a6fff2;outline-offset:3px}#match-fullscreen,#match-help{width:38px;height:38px;min-height:38px;padding:9px;display:grid;place-items:center;border:1px solid #d5e8f32c;background:#0b1725c9;border-radius:11px}#match-fullscreen svg,#match-help svg{width:20px;height:20px}#world-map{width:min(560px,calc(100vw - 24px));padding:16px;border-radius:18px}#world-map canvas{margin:0 auto}#world-map h2{font-size:19px}#world-map header button{min-height:36px;font-size:12px;padding:7px 10px}#world-map header button kbd{display:none}.map-toolbar{display:flex;justify-content:space-between;align-items:center;color:#a6bece;font-size:11px;margin-bottom:8px}.map-toolbar[hidden]{display:none}.map-toolbar>div{display:flex;gap:8px;align-items:center}.map-toolbar button{width:30px;height:30px;padding:0;font-size:18px;border-radius:8px}.map-toolbar button:disabled{opacity:.3}#world-map footer{gap:6px;font-size:10px}#world-map .world-map-destinations{gap:5px;padding-bottom:0}#world-map .world-map-destinations a{font-size:10px;padding:5px 8px}@media(max-height:550px){#world-map{width:min(680px,calc(100vw - 24px))}#world-map canvas{float:left;margin-right:15px}#world-map .world-map-destinations{max-width:240px}}#ability-bar[data-mode=combat] [data-ability=zip] .ability-art{background-position:66.667% 50%;filter:hue-rotate(45deg)}#ability-bar[data-mode=combat] [data-ability=zip]:disabled .ability-art{filter:hue-rotate(45deg) grayscale(.8) brightness(.38)}#ability-bar .ability[hidden]{display:none}[data-ability=wall] .ability-art{background-position:33.333% 50%}
