:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e4e7dc;background:#101b19;font-synthesis:none;font-weight:400;--hud-gap: 20px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #e7c98a;outline-offset:4px}.game-screen{position:fixed;left:var(--viewport-left, 0px);top:var(--viewport-top, 0px);width:var(--viewport-width, 100%);height:var(--viewport-height, 100dvh);overflow:hidden;isolation:isolate;background:#34472c}#game{position:absolute;inset:0;overflow:hidden;cursor:default}#game canvas{display:block;image-rendering:pixelated}.hud-panel{position:absolute;z-index:10;border:1px solid #c7b48145;background:linear-gradient(145deg,#142119ed,#101b19df);box-shadow:0 4px 20px #0004;border-radius:3px;backdrop-filter:blur(6px)}.player-hud{top:max(var(--hud-gap),env(safe-area-inset-top));left:max(var(--hud-gap),env(safe-area-inset-left));display:flex;gap:14px;align-items:center;padding:12px 18px 12px 10px;pointer-events:none}.portrait{width:46px;height:46px;image-rendering:pixelated;object-fit:contain}.eyebrow{font-size:8px;letter-spacing:2px;color:#bca473;font-weight:600;margin:0 0 6px}h1{font:23px Georgia,serif;margin:0 0 6px;line-height:1}h1 span{font:8px ui-sans-serif,system-ui;letter-spacing:1.2px;color:#9eae93;margin-left:14px;vertical-align:middle}.connection{display:flex;align-items:center;gap:6px;font-size:7px;letter-spacing:1px;margin:0;color:#9db18e}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b4d091;box-shadow:0 0 8px #b4d09140}.weapon-hud{top:max(var(--hud-gap),env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;gap:4px;padding:6px;pointer-events:none}.weapon-slot{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 6px;border:1px solid transparent;border-radius:2px;font-size:9px;letter-spacing:.6px;color:#8d9a84;opacity:.62;transition:opacity .12s,border-color .12s,background .12s}.weapon-slot img{width:26px;height:26px;image-rendering:pixelated}.weapon-slot[aria-current=true]{opacity:1;color:#eee2bf;border-color:#d5b87980;background:#d5b8791a}.weapon-slot[aria-current=true][data-weapon=flamethrower]{border-color:#ff8a3a99;background:#ff7a2018}.stats-hud{top:max(var(--hud-gap),env(safe-area-inset-top));right:max(var(--hud-gap),env(safe-area-inset-right));display:flex;gap:22px;padding:14px 18px;pointer-events:none}.stat{display:flex;flex-direction:column;gap:6px;min-width:38px;text-align:center}.stat span{font-size:8px;letter-spacing:.5px;color:#9eae93}.stat strong{font:22px Georgia,serif;color:#eee2bf}.accuracy{position:relative;min-width:45px}.accuracy-track{height:2px;background:#46513b;margin-top:1px}.accuracy-track>div{height:100%;background:#bca473;width:0%;transition:width .2s}.radar-card{right:max(var(--hud-gap),env(safe-area-inset-right));bottom:max(var(--hud-gap),env(safe-area-inset-bottom));width:224px;padding:12px;pointer-events:none}.section-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#d0c4a0;margin-bottom:10px}.section-label>span{color:#8b9c80;letter-spacing:0}#minimap{display:block;width:100%;height:auto;image-rendering:pixelated;border:1px solid #a9ae7940}.legend{display:flex;gap:16px;font-size:8px;color:#a2b194;margin-top:9px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:4px;height:4px;border-radius:50%;display:inline-block}.you{background:#f3e2a6}.target{background:#d98c6a}.controls-hud{bottom:max(var(--hud-gap),env(safe-area-inset-bottom));left:max(var(--hud-gap),env(safe-area-inset-left));padding:11px 15px;font-size:9px;color:#a8b59b;max-width:calc(100% - 284px)}.control-hints{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.control-hints>span{white-space:nowrap}.control-hints button{border:0;background:none;color:inherit;padding:0;font-size:inherit}kbd{display:inline-grid;place-items:center;min-width:18px;height:19px;padding:0 5px;border:1px solid #c5b67d45;border-radius:3px;font:9px ui-monospace,monospace;color:#dbd9bc;background:#ffffff06;margin-right:4px}#session-status{display:block;font-size:8px;color:#788e72;margin-top:9px}.overlay{position:absolute;inset:0;z-index:20;background:#07100ab8;backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;overflow:auto}.overlay[hidden]{display:none}.start-card{text-align:center;padding:32px;max-width:480px;width:100%;background:linear-gradient(150deg,#17251ef5,#101b19fa);border:1px solid #c7b48145;box-shadow:0 20px 80px #0006}.crest{display:block;font:44px Georgia,serif;color:#c5a76b;margin:20px 0}.start-card h2{font:32px Georgia,serif;margin:0 0 18px}.start-card p:not(.eyebrow){font-size:13px;color:#aebb9f;line-height:1.9;margin:0}.start-card button{background:#c3a66c;color:#172116;border:1px solid #e3c78b;padding:15px 24px;font-size:13px;font-weight:600;margin:28px auto 24px;min-width:240px}.start-card button:hover{background:#dfc18a}.start-card button:disabled{opacity:.5;cursor:wait}.start-controls{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;font-size:10px;color:#b1bda3}.start-card small{display:block;font-size:8px;letter-spacing:1.5px;color:#71856b;margin-top:26px}@media(max-width:1180px){.weapon-slot span{display:none}.weapon-slot{padding:4px 6px}}@media(max-width:800px){.weapon-hud{top:calc(max(var(--hud-gap),env(safe-area-inset-top)) + 64px);left:max(var(--hud-gap),env(safe-area-inset-left));transform:none;padding:4px}.weapon-slot img{width:20px;height:20px}:root{--hud-gap: 12px}.player-hud{padding:9px 12px 9px 6px;gap:7px}.portrait{width:35px;height:40px}h1{font-size:20px}h1 span{display:none}.eyebrow{font-size:7px;letter-spacing:1px}.stats-hud{gap:12px;padding:10px 12px}.stat{min-width:27px}.stat strong{font-size:18px}.radar-card{width:180px;padding:9px}.section-label{font-size:7px}.controls-hud{padding:9px 11px;max-width:calc(100% - 216px)}.control-hints{gap:9px}#session-status{display:none}}@media(max-width:480px){.player-hud .eyebrow{font-size:6px}.stats-hud{gap:8px;padding:9px}.accuracy{display:none}.stat span{font-size:7px}.stat{min-width:25px}.radar-card{width:154px}.section-label{letter-spacing:0}.controls-hud{max-width:calc(100% - 186px);font-size:8px}.start-card{padding:24px 16px}.start-card h2{font-size:26px}.start-card button{min-width:210px}.start-controls{font-size:8px;gap:10px}}@media(max-height:500px){:root{--hud-gap: 10px}.radar-card{width:150px;padding:8px}.legend{margin-top:6px}.player-hud{padding:7px 10px;gap:8px}.portrait{width:32px;height:36px}.stats-hud{padding:8px 12px}.stat{gap:4px}.stat strong{font-size:18px}.start-card{padding:16px 24px}.crest{font-size:28px;margin:8px 0}.start-card h2{font-size:25px;margin-bottom:10px}.start-card button{margin:15px auto}.start-card small{margin-top:14px}}.level-choice{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:18px 0}.level-choice a,.level-switch{color:#e8d69c;font-size:12px;text-underline-offset:4px}#online-start{margin-top:12px;background:#315a70;color:#e4f4ff}body[data-screen=game] .game-screen{touch-action:none}@font-face{font-family:Raw Pixel;src:url(../assets/legacy-ui/RawPixel.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Raw Pixel;src:url(../assets/legacy-ui/RawPixel-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{font-family:Raw Pixel,system-ui,sans-serif;color:#f0d9a8}[hidden]{display:none!important}button,input,select,summary{font-family:inherit}button,select,input{font-size:15px}.hud-panel,.rune-panel,#match-hud{border:10px solid transparent;border-image:url(../assets/legacy-ui/rune-frame.png) 46 44 46 46 / 10px round stretch;background:#302013 url(../assets/legacy-ui/wood.png) repeat;background-size:90px 90px;color:#f0d9a8;box-shadow:0 5px 18px #0009;border-radius:0}.hud-panel{padding:8px}.eyebrow,.section-label{color:#cfaa66;font-family:inherit}.player-hud h1,.stat strong,.start-card h2{font-family:inherit}.player-hud h1{color:#f0d9a8}.stat strong{font-size:24px}.controls-hud{color:#e2d0ae}.control-hints,.section-label,.connection{font-size:12px}.control-hints button,kbd,.weapon-slot{color:#f0d9a8;background-color:#261a11;border-color:#765231}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #fbbf24;outline-offset:3px}.start-card{max-width:600px;border:24px solid transparent;border-image:url(../assets/legacy-ui/ornate-frame.png) 84 82 86 82 fill / 24px stretch;background:#302013;padding:20px;box-shadow:0 18px 90px #000b}.start-card .crest{font-family:inherit;color:#fbbf24}.start-card h2{color:#f0d9a8;font-size:32px}.start-card>p:not(.eyebrow),.start-card small{color:#c9b695}.start-card>button{border:1px solid #dbad55;color:#301d09;background:linear-gradient(#f3d08a,#c98e35);font-size:18px;box-shadow:inset 0 1px #fff6,0 2px 5px #0006}.start-card>button:hover{background:linear-gradient(#ffe0a2,#e3aa4e)}.level-choice a{color:#f0d9a8;border-color:#8d653e;background:#21170faa}.start-controls{font-size:13px}.nickname-label{display:grid;gap:5px;margin:12px 0;text-align:left}.nickname-label input,#server-debug input,#server-debug select{width:100%;padding:8px;color:#f0d9a8;background:#170f0a;border:1px solid #8d653e}#server-debug{text-align:left;margin:12px 0;padding:10px;color:#d0b88f;border:1px solid #765231;background:#1b120baa}#server-debug summary{cursor:pointer;color:#e0bd7b}#server-debug label{display:block;margin:10px 0 3px}#server-debug small{margin:8px 0 0;font-size:12px}#match-hud{position:fixed;z-index:20;top:88px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:6px 12px;pointer-events:none;max-width:min(430px,94vw)}#match-timer{color:#fbbf24;font-size:27px;font-variant-numeric:tabular-nums}#match-message{color:#e4d4ba;font-size:14px}#scoreboard{position:fixed;z-index:35;top:50%;left:50%;transform:translate(-50%,-50%);width:min(680px,94vw);max-height:80vh;padding:20px;border-width:24px;border-image-width:24px}#scoreboard h2{font-size:32px;color:#f6db99;margin:4px 0}#score-caption{color:#c9b695;margin:5px 0 18px}.score-scroll{overflow:auto;max-height:50vh}#scoreboard table{border-collapse:collapse;width:100%;font-size:17px}#scoreboard th{color:#d6ab59;text-align:left;font-size:14px;font-weight:400}#scoreboard td,#scoreboard th{padding:9px 6px;border-bottom:1px solid #b8945140}#scoreboard tr[data-own=true]{color:#fbbf24;background:#fbbf2412}#scoreboard small{display:block;margin-top:16px;color:#c9b695}@media(max-width:700px){.start-card{padding:10px;border-width:18px;border-image-width:18px}#match-hud{top:80px}#scoreboard{padding:8px;border-width:15px;border-image-width:15px}#scoreboard table{font-size:14px}}#kill-feed{position:fixed;z-index:21;right:var(--hud-gap);top:145px;list-style:none;padding:0;margin:0;max-width:330px;pointer-events:none}#kill-feed li{padding:7px 12px;margin-bottom:5px;color:#f0d9a8;font-size:16px;background:#21150eea;border-left:2px solid #d6ab59;text-shadow:1px 1px #000}.lobby-panel{margin:16px 0;text-align:left;border-top:1px solid #8d653e;padding-top:12px}.lobby-panel summary{cursor:pointer;color:#e0bd7b}.lobby-panel label{display:block;margin-top:12px}.lobby-panel p{font-size:14px!important;line-height:1.4!important;margin:12px 0!important}.lobby-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.lobby-actions button,#room-list button{min-width:0;margin:0;padding:8px 10px;font-size:14px;border-color:#8d653e;background:#332115;color:#f0d9a8}.lobby-actions input{min-width:0;width:160px;background:#170f0a;color:#f0d9a8;border:1px solid #8d653e;padding:8px;font-size:17px}#room-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}#room-list button{width:100%;text-align:left}#room-sharing{position:fixed;z-index:20;left:50%;top:145px;transform:translate(-50%);padding:4px 10px;display:flex;align-items:center;gap:8px;font-size:12px;max-width:90vw}#copy-room{font-size:12px;background:#24180f;color:#f0d9a8;border:1px solid #8d653e;padding:5px}.touch-mode body{overscroll-behavior:none;touch-action:manipulation}.touch-mode .overlay{padding:10px;align-items:start}.touch-mode .start-card{margin:auto;max-width:570px;padding:10px}.touch-mode .start-card>button{margin:10px auto;padding:10px 18px;font-size:16px}.touch-mode .start-card h2{font-size:27px;margin-bottom:10px}.touch-mode .start-card .crest{display:none}.touch-mode .controls-hud{inset:64px auto auto 6px;max-width:150px;padding:4px;font-size:11px;background:#20160ddb}.touch-mode .control-hints,.touch-mode .level-switch{display:none}.touch-mode #session-status{font-size:9px;max-width:140px;line-height:1.2}.touch-mode .controls-hud button{font-size:11px;padding:4px}.touch-mode .radar-card{width:125px;bottom:132px;right:6px;padding:5px}.touch-mode .radar-card .section-label{font-size:9px}.touch-mode .radar-card canvas{max-height:65px}.touch-mode #room-sharing{top:135px;font-size:10px;max-width:70vw}.touch-mode #match-hud{top:86px;font-size:11px;max-width:50vw;gap:5px;padding:4px}.touch-mode #match-timer{font-size:20px}.touch-mode #match-message{font-size:11px}.touch-mode #kill-feed{top:180px;font-size:10px}@media(max-width:600px){.touch-mode .player-hud{max-width:46vw;font-size:10px}.touch-mode .player-hud h1{font-size:17px}.touch-mode .stats-hud{padding:5px;gap:8px}.touch-mode .stats-hud .stat strong{font-size:19px}.touch-mode .stats-hud .stat span{font-size:10px}.touch-mode .stats-hud .accuracy{display:none}.touch-mode .weapon-hud{left:50%;top:60px;transform:translate(-50%)}.touch-mode #room-sharing{top:150px;max-width:60vw;flex-wrap:wrap;justify-content:center}.touch-mode #match-hud{top:101px;max-width:70vw}.touch-mode .control-hints{display:none}.touch-mode #scoreboard{max-height:70vh;overflow:auto}}.controls-hud>button{color:#f0d9a8;background:#24180f;border:1px solid #8d653e;padding:5px 8px;font-family:inherit}.touch-mode .controls-hud{top:104px}.touch-mode #session-status{display:none}@media(max-width:600px){.touch-mode .weapon-hud{left:8px;top:82px;transform:none;padding:4px}.touch-mode .controls-hud{top:82px;left:auto;right:8px;max-width:175px;display:flex;gap:4px;flex-wrap:wrap}.touch-mode #fullscreen{display:none}.touch-mode #leave-online{font-size:0}.touch-mode #leave-online:after{content:"Lobby";font-size:11px}.touch-mode #match-hud{top:145px;max-width:85vw}.touch-mode #room-sharing{top:193px}}html:has(body[data-screen=lobby]){height:auto;min-height:100%;overflow-y:auto}body[data-screen=lobby]{height:auto;min-height:100%;overflow:visible;background:#17120e}body[data-screen=lobby]>.game-screen{visibility:hidden;pointer-events:none}body[data-screen=lobby] #touch-controls{display:none!important}body[data-screen=game] .lobby-screen{display:none}.lobby-screen{min-height:100dvh;width:100%;padding:32px 42px 24px;color:#efdbb2;background:radial-gradient(ellipse at 82% 14%,#4e352337,transparent 48%),linear-gradient(135deg,#191b1a,#21180f 70%);font-family:Raw Pixel,serif}.lobby-layout{max-width:1240px;margin:auto;display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:24px 38px}.lobby-header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #75542d;padding-bottom:22px}.lobby-brand{color:#f6d28a;font-size:30px;text-decoration:none;letter-spacing:3px}.lobby-brand span{display:block;font-size:12px;letter-spacing:5px;color:#bc9b66;margin-top:6px}.lobby-edition{font-size:12px;color:#a98f6b;letter-spacing:2px}.lobby-intro{grid-column:1/-1;padding:8px 0}.lobby-screen .eyebrow{font-size:10px;letter-spacing:2px;color:#b99862;margin:0 0 8px}.lobby-intro h1{font-family:inherit;font-size:46px;margin:0 0 10px;color:#ffdf9d}.lobby-intro>p:last-child{margin:0;color:#bbae94;font-size:16px}.lobby-box{padding:24px;background:linear-gradient(#34261bdf,#261e17);border:1px solid #725131;box-shadow:inset 0 0 0 4px #1a120c,inset 0 0 0 5px #65472b}.profile-heading{display:flex;gap:12px;align-items:center}.step-number{border:1px solid #98713e;width:34px;height:34px;display:grid;place-items:center;color:#e6c07a}.lobby-screen h2{font-size:25px;margin:0}.lobby-screen h3{margin:0}.profile-preview{display:flex;align-items:center;gap:24px;padding:18px 6px;margin:12px 0;background:radial-gradient(ellipse,#6a4e273f,transparent 70%)}.profile-preview>img{width:90px;height:90px;image-rendering:pixelated;object-fit:contain}.profile-preview h3{font-size:23px;margin-bottom:9px}.profile-preview span,.field-note{font-size:12px;color:#b4a389;line-height:1.5}.lobby-label{display:block;font-size:14px;color:#e5cfa8;margin-top:18px}.lobby-label input,.lobby-label select{display:block;width:100%;margin-top:8px;padding:11px 12px;border:1px solid #755839;background:#17130e;color:#f9e2b2;font:inherit;font-size:18px;border-radius:0}.lobby-screen input:focus,.lobby-screen select:focus{outline:2px solid #e3b85e;outline-offset:2px}.field-note{margin:8px 0}.character-list-heading{display:flex;justify-content:space-between;margin:24px 0 12px;gap:10px;font-size:14px}.character-list-heading span{font-size:11px;color:#a89677}.character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-height:320px;overflow:auto;padding:3px;scrollbar-color:#98713e #17130e}.character-option{display:flex;align-items:center;flex-direction:column;gap:5px;min-width:0;padding:7px 3px;border:1px solid #564332;background:#1e1812;color:#c3b18f;font:inherit;cursor:pointer}.character-option img{width:42px;height:42px;image-rendering:pixelated;object-fit:contain}.character-option span{font-size:10px;max-width:100%;overflow-wrap:anywhere;line-height:1.2}.character-option[aria-pressed=true]{color:#ffe4a6;border-color:#e4b660;background:#6f4c22;box-shadow:0 0 0 1px #e4b660}.character-option:hover{border-color:#c8a16c;background:#45321d}.arenas-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.lobby-screen button{font-family:inherit}.refresh-button,.practice-button{background:transparent;color:#bea37b;border:1px solid #6d5236;padding:8px 12px;font-size:12px}.lobby-status{font-size:13px;color:#b6a78e;min-height:32px;margin:14px 0;line-height:1.4}.arena-card{border:1px solid #755131;background:#2c2119;margin-bottom:20px;display:grid;grid-template-columns:44% 1fr;overflow:hidden}.arena-preview{position:relative;min-height:218px;background:#1c2923;overflow:hidden}.arena-preview>img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;opacity:.88}.park-preview>img{object-fit:contain}.arena-preview:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 50px #0008;pointer-events:none}.arena-type{position:absolute;left:12px;top:12px;background:#17130ee6;border:1px solid #ac8952;padding:5px 8px;font-size:10px;letter-spacing:1px;z-index:1}.arena-seats{position:absolute;right:12px;bottom:12px;z-index:1;background:#15150ee8;border:1px solid #b99b63;padding:6px 10px;font-size:18px}.arena-details{padding:21px;display:flex;flex-direction:column;justify-content:center}.arena-details h3{font-size:26px;color:#f5dba5}.arena-details p{font-size:13px;color:#b4a68e;line-height:1.5;margin:10px 0 16px}.arena-phase{font-size:11px;color:#a9b891}.arena-buttons{margin-top:20px;display:grid;gap:8px}.arena-join{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#d9b36c,#98703a);color:#241b0e;border:1px solid #edce91;padding:11px 14px;font-size:16px}.arena-join:disabled{opacity:.4;cursor:not-allowed}.arena-rules{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:1px;color:#a89778;padding:8px 0}.lobby-footer{grid-column:1/-1;border-top:1px solid #513e28;margin-top:4px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#8e826f}@media(max-width:1000px){.lobby-screen{padding:22px}.lobby-layout{gap:20px;grid-template-columns:300px 1fr}.arena-card{grid-template-columns:1fr}.arena-preview{height:150px;min-height:150px}.arena-details{padding:16px}.arena-details h3{font-size:22px}}@media(max-width:680px){.lobby-screen{padding:18px 12px}.lobby-layout{grid-template-columns:1fr}.lobby-intro h1{font-size:36px}.profile-panel{padding:20px}.character-grid{grid-template-columns:repeat(5,minmax(0,1fr));max-height:210px}.arena-card{grid-template-columns:1fr}.arena-preview{height:190px;min-height:190px}.lobby-footer{flex-direction:column}.lobby-edition{font-size:10px}}.arenas-panel{min-width:0}.arena-viewport{overflow:hidden;touch-action:pan-y}.arena-track{display:flex;transition:transform .34s cubic-bezier(.22,.7,.25,1)}.arena-track>.arena-card{flex:0 0 100%;min-width:0;margin:0;grid-template-columns:1fr}.arena-track .arena-preview{height:260px;min-height:0}.arena-track .arena-details{justify-content:flex-start}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.carousel-arrow{flex:0 0 44px;min-height:44px;border:1px solid #98713e;background:#2c2119;color:#ffdf9d;font-size:23px;cursor:pointer}.carousel-arrow:hover:not(:disabled){background:#61431f;border-color:#e4b660}.carousel-arrow:disabled{opacity:.35;cursor:default}.carousel-position{text-align:center;color:#bea37b;font-size:12px;line-height:1.5}.carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;margin-top:5px}.carousel-dots button{width:28px;height:32px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}.carousel-dots button:after{content:"";width:7px;height:7px;background:#735b3b;border:1px solid #ac8952;transform:rotate(45deg)}.carousel-dots button[aria-pressed=true]:after{background:#ffdf9d;box-shadow:0 0 8px #e4b66066}.arena-carousel:focus-visible,.carousel-arrow:focus-visible,.carousel-dots button:focus-visible,.character-option:focus-visible{outline:2px solid #e4b660;outline-offset:-3px}.character-carousel .character-grid{position:relative;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 21px)/4);grid-template-rows:1fr;gap:7px;max-height:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:3px 0}.character-carousel .character-grid::-webkit-scrollbar{display:none}.character-carousel .character-option{scroll-snap-align:start}@media(max-width:680px){.arena-track .arena-preview{height:220px}.character-carousel .character-grid{grid-auto-columns:calc((100% - 28px)/5)}}@media(max-width:370px){.character-carousel .character-grid{grid-auto-columns:calc((100% - 21px)/4)}}@media(prefers-reduced-motion:reduce){.arena-track{transition:none}}:root{--dock-width: 261.6px;--minimap-height: 98.8px;--hud-card-height: 112.8px;--hud-inset: 12px}#hud-dock{position:absolute;top:max(var(--hud-inset),env(safe-area-inset-top));right:max(var(--hud-inset),env(safe-area-inset-right));z-index:38;width:var(--dock-width);display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:var(--minimap-height);gap:6px;padding:6px;border:1px solid #ba9050;border-radius:7px;background:#302013 url(../assets/legacy-ui/wood.png);box-shadow:0 3px 8px #0008}#hud-dock button{color:#f0d9a8;font-family:inherit;cursor:pointer}#hud-dock .radar-card{position:relative;inset:auto;grid-column:1;grid-row:1;width:100%;min-width:0;height:var(--minimap-height);padding:0;display:grid;place-items:center;border:0;border-radius:3px;background:#19241f;box-shadow:none;overflow:hidden;pointer-events:auto}.minimap-view{position:relative;display:block;--map-height: var(--minimap-height);width:min(100%,calc(var(--map-height) * var(--map-aspect, 1)));aspect-ratio:var(--map-aspect, 1);max-height:var(--map-height)}#minimap{display:block;width:100%;height:100%;border:0;image-rendering:pixelated}#game-menu{position:static;grid-column:2;grid-row:1;align-self:start}#menu-toggle{display:grid;place-items:center;min-width:44px;height:44px;padding:0;border:1px solid #75532f;border-radius:4px;background:#3b2b1d;font-size:23px}#menu-toggle{width:44px}#menu-toggle:hover,#menu-toggle[aria-expanded=true]{background:#665031}#game-menu-list{position:absolute;top:calc(100% + 8px);right:0;display:flex;flex-direction:column;gap:3px;width:242px;max-width:calc(100vw - 24px);max-height:calc(100dvh - var(--hud-card-height) - max(var(--hud-inset),env(safe-area-inset-top)) - 20px);overflow:auto;padding:8px;border:1px solid #ba9050;border-radius:6px;background:#302013 url(../assets/legacy-ui/wood.png);box-shadow:0 5px 18px #0009}.menu-crown{display:none}#game-menu-list button{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:10px;padding:8px;border:0;border-radius:3px;background:transparent;font-size:14px;text-align:left;white-space:nowrap}#game-menu-list button span{font-size:11px;color:#c4b18e}#game-menu-list button:hover{background:#f5c85a2e}#game-menu-list button:disabled{opacity:.5;cursor:not-allowed}#game-menu-list #leave-online:hover{background:#ef444442}#player-cards{--player-card-width: 96px;position:absolute;z-index:32;top:max(var(--hud-inset),env(safe-area-inset-top));left:max(var(--hud-inset),env(safe-area-inset-left));right:calc(var(--dock-width) + max(var(--hud-inset),env(safe-area-inset-right)) + 12px);display:flex;gap:4px;padding:0;min-width:0;overflow:visible}.player-card,.roster-card{display:grid;width:var(--player-card-width, 140px);flex:0 0 var(--player-card-width, 140px);height:var(--hud-card-height);grid-template-columns:minmax(0,1fr);grid-template-rows:57.2px 16px 18px;align-content:center;align-items:center;gap:1px;padding:5px;border:1px solid #75532f;border-radius:5px;background:#302013 url(../assets/legacy-ui/wood.png);color:#e5d1b0;box-shadow:inset 0 0 0 2px #17100c}.player-card[data-own=true],.roster-card[data-own=true]{border-color:#f6ce73}.player-card[data-connected=false],.roster-card[data-connected=false]{opacity:.55}.player-portrait{display:block;width:51.48px;height:57.2px;max-width:100%;object-fit:contain;justify-self:center;grid-column:1;grid-row:1;image-rendering:pixelated}.player-name{grid-column:1;grid-row:2;justify-self:center;max-width:100%;margin:0;min-width:0;font-size:12px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-score{grid-column:1;grid-row:3;justify-self:center;font-size:15px;line-height:18px;color:#f6ce73;font-variant-numeric:tabular-nums}#players-more{flex:0 0 44px;width:44px;height:var(--hud-card-height);border:1px solid #ba9050;border-radius:5px;background:#302013;color:#e5d1b0;font:16px Raw Pixel,sans-serif}#players-more[aria-expanded=true]{background:#665031}#player-overflow{position:absolute;top:calc(max(var(--hud-inset),env(safe-area-inset-top)) + var(--hud-card-height) + 8px);left:max(var(--hud-inset),env(safe-area-inset-left));z-index:39;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 100px);overflow:auto;padding:6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid #ba9050;border-radius:6px;background:#302013;box-shadow:0 6px 18px #0009}.roster-card{width:100%;height:var(--hud-card-height)}#health-hud{position:absolute;z-index:12;bottom:max(12px,env(safe-area-inset-bottom));top:auto;left:50%;transform:translate(-50%);width:196px;height:28px;display:flex;gap:10px;align-items:center;padding:0;background:none;border:0;box-shadow:none;pointer-events:none}.health-heart{width:22px;height:22px;flex:none;fill:#dc5549;filter:drop-shadow(0 1px 2px #0006)}.health-track{height:9px;flex:1;background:#171c16cc;border-radius:8px;overflow:hidden;box-shadow:0 1px 5px #0006}#health-fill{height:100%;width:100%;background:#9ac966;border-radius:8px}#health-hud[data-low=true] #health-fill{background:#e16448}#kill-feed{display:none!important}.touch-mode #fullscreen,.touch-mode #leave-online{display:flex;font-size:14px}.touch-mode #leave-online:after{content:none}@media(max-width:580px){:root{--dock-width: 225.2px;--hud-inset: 10px}#player-cards{--player-card-width: 84px}#health-hud{width:148px}}@media(max-width:350px){:root{--dock-width: 173.2px}#player-cards{--player-card-width: 66px}}#game-help{position:absolute;z-index:40;top:50%;left:50%;transform:translate(-50%,-50%);width:min(540px,94vw);max-height:85dvh;overflow:auto;padding:18px;box-shadow:0 10px 60px #000c}#game-help h2{margin:0 0 16px;color:#f6ce73}#game-help p{font-size:15px;line-height:1.4}#help-close{float:right;background:transparent;color:#f0d9a8;border:1px solid #967443;font-size:22px}.help-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.help-actions button{padding:6px 10px;color:#f0d9a8;background:#24180f;border:1px solid #8d653e}#game-help .stats-hud{position:static;display:flex;justify-content:space-around;gap:12px;margin-top:15px;transform:none;padding:12px}#game-help #session-status{display:block;font-size:12px;color:#c8b595;overflow-wrap:anywhere}#game-help #match-hud{position:static;transform:none;display:flex;max-width:none;border:0;padding:0;background:none;box-shadow:none;gap:12px;margin:12px 0}#game-help .dialog-close,#scoreboard .dialog-close{position:absolute;right:4px;top:4px;z-index:1;display:grid;place-items:center;width:44px;height:44px;padding:4px;border:0;background:transparent;float:none}.dialog-close img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated}.dialog-close:hover img{filter:brightness(1.2)}#help-title,#score-title{padding-right:38px}#minimap-player{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border:1px solid #21170a;border-radius:50%;background:#fff1a8;box-shadow:0 0 0 2px #fff1a855,0 0 7px #ffe08a;animation:minimap-locator-pulse 1.4s ease-in-out infinite;pointer-events:none}@keyframes minimap-locator-pulse{0%,to{transform:scale(.85);opacity:.6}50%{transform:scale(1.35);opacity:1}}@media(prefers-reduced-motion:reduce){#minimap-player{animation:none}}.ornament-panel:before{content:"";position:absolute;inset:-4px;border:11px solid transparent;border-image:url(../assets/legacy-ui/ornate-frame.png) 84 82 86 82 / 11px stretch;pointer-events:none;z-index:2}#health-hud{width:244px;height:54px;padding:10px 12px;border:1px solid #75532f;border-radius:3px;background:#302013 url(../assets/legacy-ui/wood.png);box-shadow:0 2px 8px #0007}#game-menu-list,#player-overflow{isolation:isolate}#game-help,#scoreboard{border-image-source:url(../assets/legacy-ui/ornate-frame.png)}@media(max-width:580px){#health-hud{width:220px}}#game-menu-list:before,#player-overflow:before{display:none}#game-menu-list,#player-overflow{border:10px solid transparent;border-image:url(../assets/legacy-ui/ornate-frame.png) 84 82 86 82 / 10px stretch;padding:6px}#game-help,#scoreboard{border-image:url(../assets/legacy-ui/ornate-frame.png) 84 82 86 82 / 10px stretch}.player-card,.roster-card{position:relative}.connection-signal{position:absolute;top:6px;right:5px;display:flex;align-items:flex-end;gap:2px;width:17px;height:14px;color:#b5b7b8;filter:drop-shadow(0 1px 1px #000)}.connection-signal i{width:4px;height:4px;background:currentColor;opacity:.2}.connection-signal i:nth-child(2){height:8px}.connection-signal i:nth-child(3){height:12px}.connection-signal[data-quality=good]{color:#79db72}.connection-signal[data-quality=fair]{color:#ffd45c}.connection-signal[data-quality=poor]{color:#ff7067}.connection-signal[data-quality=good] i,.connection-signal[data-quality=fair] i:nth-child(-n+2),.connection-signal[data-quality=poor] i:first-child{opacity:1}#touch-controls{position:absolute;inset:0;z-index:30;pointer-events:none;touch-action:none;user-select:none;-webkit-user-select:none}#touch-move-zone{position:absolute;left:max(8px,env(safe-area-inset-left));bottom:70px;width:45%;height:min(55%,250px);pointer-events:auto;touch-action:none}#touch-stick{position:absolute;left:max(74px,calc(env(safe-area-inset-left) + 64px));top:calc(100% - 70px);transform:translate(-50%,-50%);width:118px;height:118px;border:2px solid #d4ae6c99;border-radius:50%;background:#20241d99;box-shadow:inset 0 0 0 7px #e4c18d09;pointer-events:none;opacity:.7}#touch-stick.engaged{opacity:1}.stick-axis{position:absolute;left:16%;right:16%;top:50%;height:1px;background:#c4b28c33}.stick-axis.vertical{transform:rotate(90deg)}#touch-stick-knob{position:absolute;left:calc(50% - 24px);top:calc(50% - 24px);width:48px;height:48px;background:radial-gradient(at 35% 30%,#8b7047,#493c2c);border:2px solid #d4ae6c;border-radius:50%;box-shadow:0 4px 10px #0007}#touch-controls .touch-actions button{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:66px;height:66px;min-width:0;min-height:0;padding:0;border:2px solid #bd985fbb;border-radius:50%;background:#30271de8;box-shadow:0 3px 8px #0005;color:#f0d9a8;font-family:inherit;font-size:11px;pointer-events:auto;touch-action:none}#touch-controls .touch-actions button:active,#touch-controls .touch-actions button.pressed{background:#7b552b;border-color:#f8d084}.touch-icon{font-size:23px;line-height:25px}#touch-controls .touch-rocket{right:max(91px,calc(env(safe-area-inset-right) + 79px));bottom:max(170px,calc(env(safe-area-inset-bottom) + 158px))}#touch-controls .touch-grenade{right:max(20px,calc(env(safe-area-inset-right) + 8px));bottom:max(118px,calc(env(safe-area-inset-bottom) + 106px))}#touch-controls .touch-jump{width:76px;height:76px;right:max(113px,calc(env(safe-area-inset-right) + 101px));bottom:max(78px,calc(env(safe-area-inset-bottom) + 66px));border-color:#e7bf7a}body:has(#game-menu-list:not([hidden]),#game-help:not([hidden]),#scoreboard:not([hidden]),#player-overflow:not([hidden])) #touch-controls{visibility:hidden}@media(max-width:580px){#touch-move-zone{bottom:max(64px,calc(env(safe-area-inset-bottom) + 54px))}#touch-stick{width:106px;height:106px;left:max(71px,calc(env(safe-area-inset-left) + 61px));top:calc(100% - 67px)}#touch-controls .touch-actions button{width:60px;height:60px}#touch-controls .touch-rocket{right:max(72px,calc(env(safe-area-inset-right) + 62px));bottom:max(188px,calc(env(safe-area-inset-bottom) + 178px))}#touch-controls .touch-grenade{right:max(12px,calc(env(safe-area-inset-right) + 2px));bottom:max(124px,calc(env(safe-area-inset-bottom) + 114px))}#touch-controls .touch-jump{width:68px;height:68px;right:max(86px,calc(env(safe-area-inset-right) + 76px));bottom:max(78px,calc(env(safe-area-inset-bottom) + 68px))}}.touch-weapon-icon{width:24px;height:24px;object-fit:contain;image-rendering:pixelated}
