:root{color-scheme:dark;--ink:#eee9dc;--muted:#aeb2a8;--gold:#e4b165;--dark:#131a18;--line:#ffffff24;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0;background:#1a211e;color:var(--ink);overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0;background:var(--gold);color:#20251f;font-weight:800;font-size:12px;letter-spacing:1px;transition:background .15s,transform .15s}button:hover{background:#f6ca87}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.6}button span{font-size:22px;margin-left:25px}button:focus-visible,input:focus-visible{outline:2px solid #f6cf94;outline-offset:4px}[hidden]{display:none!important}#game{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none}#shade{position:fixed;inset:0;background:linear-gradient(90deg,#0e1718ed 0%,#112020c9 29%,#111c1c50 65%,#0e151726),linear-gradient(0deg,#0d141bcc,transparent 25%);pointer-events:none}#brand{position:fixed;top:34px;left:42px;display:flex;gap:13px;align-items:center;font-size:20px;letter-spacing:4px;font-weight:900;z-index:3}#brand small{display:block;font-family:monospace;font-size:9px;letter-spacing:2px;color:#a0aaa1;margin-top:7px}.brand-mark{display:grid;place-items:center;width:42px;height:45px;color:var(--gold);border:2px solid var(--gold);font-size:31px;font-style:italic;letter-spacing:-3px;padding-right:6px}#top-status{position:fixed;right:38px;top:45px;display:flex;align-items:center;gap:9px;font-family:monospace;letter-spacing:1.2px;font-size:10px;z-index:3}.dot{width:6px;height:6px;border-radius:50%;background:#aacf94;box-shadow:0 0 15px #92c385}.eyebrow{font-family:monospace;font-size:10px;letter-spacing:2px;color:var(--gold);display:flex;align-items:center;gap:9px}.eyebrow>span{display:inline-block;height:1px;width:28px;background:var(--gold)}#lobby{position:fixed;top:50%;transform:translateY(-43%);left:8.3vw;max-width:620px}h1{font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(50px,6.3vw,90px);letter-spacing:-1px;line-height:1.03;margin:22px 0 22px;font-weight:900}h1 em{font-style:normal;color:var(--gold)}.intro{color:#bdc4be;font-size:14px;line-height:1.9;margin-bottom:31px}#join-form{max-width:494px}#join-form label{font-family:monospace;font-size:9px;letter-spacing:1.5px;display:flex;justify-content:space-between;margin-bottom:10px}#join-form label span{color:#8f9c95;font-size:8px}.join-row{display:flex;gap:8px}.join-row input{width:55%;min-width:0;background:#111d1ec2;border:1px solid #7a878452;color:#fff;padding:17px 16px;font-size:13px}.join-row button{flex:1;white-space:nowrap;padding:0 16px}.join-row button span{margin-left:14px}#join-message{min-height:16px;margin:10px 0 0;font-size:10px;color:#9ba8a1}.arena-info{display:flex;gap:30px;margin-top:35px;padding-top:22px;border-top:1px solid var(--line)}.arena-info>div{display:flex;flex-direction:column;gap:8px}.arena-info b{font-size:15px;font-weight:700;letter-spacing:1px}.arena-info span{font:8px monospace;letter-spacing:1.1px;color:#93a49c}#briefing{position:fixed;right:5vw;bottom:17vh;width:220px;border-left:1px solid #c1baa34a;padding-left:23px}#briefing h2{font-size:18px;font-weight:500;margin:18px 0 12px}#briefing p{font-size:11px;line-height:1.8;color:#c1c4b9}.brief-line{width:30px;height:2px;background:var(--gold);margin:22px 0}#briefing .small{font-size:9px;opacity:.75}#lobby-controls{position:fixed;bottom:30px;left:42px;right:42px;border-top:1px solid var(--line);padding-top:18px;display:flex;gap:35px;font:9px monospace;color:#bac1b9;letter-spacing:1px}kbd{font:9px monospace;color:#e2e4d9;background:#283230a6;padding:5px 7px;border:1px solid #ffffff24;border-radius:2px;margin-right:6px}body.playing #brand{top:23px;left:25px;font-size:15px}body.playing .brand-mark{height:33px;width:30px;font-size:23px}body.playing #brand small{font-size:8px;margin-top:5px}body.playing #top-status{top:32px;right:25px;font-size:9px}#hud{position:fixed;inset:0;pointer-events:none;text-shadow:0 2px 5px #000a}#match{position:absolute;top:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:6px;background:#17201bb3;padding:10px 35px;border-top:2px solid var(--gold)}#match .eyebrow{font-size:8px;letter-spacing:1.5px}#clock{font:26px monospace;letter-spacing:3px}#online{font:9px monospace;color:#ccd2c6}#radar{position:absolute;top:92px;left:26px;width:145px;height:145px;border:1px solid #d6d7b939;background:#141c18bf;border-radius:50%}#feed{position:absolute;right:25px;top:88px;display:flex;align-items:flex-end;flex-direction:column;gap:7px}.feed-line{font-size:11px;background:#111b1ccc;padding:8px 12px;border-right:2px solid var(--gold)}.feed-line b{color:var(--gold)}.feed-line em{font-style:normal;color:#a7b5a5;font-size:9px;padding:0 10px}#crosshair{position:absolute;top:50%;left:50%;width:2px;height:2px;background:#d4efbb;filter:drop-shadow(0 1px 1px #000)}#crosshair i{position:absolute;background:#d4efbb}#crosshair i:nth-child(1){width:8px;height:2px;left:-13px}#crosshair i:nth-child(2){width:8px;height:2px;left:7px}#crosshair i:nth-child(3){width:2px;height:8px;top:-13px}#crosshair i:nth-child(4){width:2px;height:8px;top:7px}#hitmarker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:44px;font-weight:200;color:#fff;opacity:0;transition:opacity .12s}#damage{position:absolute;inset:0;box-shadow:inset 0 0 150px 45px #b62e21;opacity:0;transition:opacity .2s}#notification{position:absolute;top:34%;left:50%;transform:translateX(-50%);text-align:center;font:16px monospace;line-height:1.8;background:#14201ab0;padding:15px 24px;border-top:1px solid var(--gold);white-space:nowrap;display:none}#notification small{display:block;font-size:10px;color:#c4ccb9}.hud-label{font:9px monospace;letter-spacing:1.7px;color:#d3d8c6;display:block;margin-bottom:6px}#health-panel,#ammo-panel,#score-panel{position:absolute;bottom:49px;background:linear-gradient(90deg,#0f1a19dc,#17231c99);padding:15px 24px 12px;min-width:165px;border-bottom:2px solid #e4b1658c}#health-panel{left:27px}#health-panel b,#ammo-panel b{font:39px monospace}.health-icon{font-size:28px;color:var(--gold)}#health-track{height:3px;background:#ffffff22;margin-top:7px}#health-track i{height:100%;display:block;background:#b3cc93;transition:width .12s}#ammo-panel{right:27px;text-align:right}#ammo-panel .hud-label span{color:#8f9c8c;margin-left:15px}#ammo-panel b small{font-size:18px;color:#aab5a3;margin-left:8px}#reload-status{font:8px monospace;letter-spacing:2px;color:#b6c0ad;display:block;margin-top:8px}#score-panel{left:50%;transform:translateX(-50%);text-align:center;min-width:130px;background:linear-gradient(0deg,#17221bc9,#17221b50)}#my-score{font:27px monospace}#my-score small{font-size:15px;color:#a8b59f}#ping{font:8px monospace;display:block;color:#b4c2a9;margin-top:4px}#play-hints{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font:8px monospace;letter-spacing:.5px;color:#d0d9c9;white-space:nowrap}#play-hints span{padding:0 13px;color:#a8b298}#play-hints kbd{font-size:8px;padding:3px 5px}#pause,#scoreboard,#fatal{position:fixed;inset:0;z-index:8;display:grid;place-items:center;background:#0a141ab0;backdrop-filter:blur(9px)}.modal{width:480px;max-width:94vw;padding:32px;background:#141f20;border:1px solid #6e7c6c66;box-shadow:0 20px 100px #0005}.modal h2{font-size:29px;letter-spacing:-1px;margin:20px 0 10px}.modal>p{font-size:12px;color:#aebeb4;line-height:1.8}.modal button{width:100%;padding:13px}.sensitivity{display:flex;align-items:center;gap:12px;margin:25px 0;font:9px monospace;letter-spacing:.8px}.sensitivity input{min-width:40px;flex:1;accent-color:var(--gold)}.sensitivity output{min-width:30px}.controls{display:grid;grid-template-columns:140px 1fr;gap:12px;font-size:10px;border-top:1px solid var(--line);padding-top:20px}.controls dt{color:var(--gold);font-family:monospace}.controls dd{margin:0;color:#c6d0c6}.modal .small{font-size:10px;color:#99ada0;margin-top:22px}.modal .secondary{border:1px solid #91a28e4d;background:transparent;color:#b8c4b3;font-size:9px;padding:11px;margin-top:15px}#scoreboard{z-index:9;background:#0a141ab0}.score-card{width:590px;max-width:90vw;background:#172221ef;padding:30px;border-top:2px solid var(--gold)}.score-card h2{font-size:28px;margin:15px 0 25px}.table-head,.score-row{display:grid;grid-template-columns:1fr 70px 70px;align-items:center;gap:15px;padding:13px 12px;font-size:12px;border-bottom:1px solid #ffffff14}.table-head{font:9px monospace;color:#a3b19f;letter-spacing:1px}.score-row.mine{background:#d1b97c1e;border-left:2px solid var(--gold)}.score-row .bot-tag{font:8px monospace;color:#9bb18b;margin-left:9px;border:1px solid #6b875749;padding:3px}.score-row span:nth-child(n+2){font-family:monospace}.score-card>p{font:9px monospace;color:#90a487;line-height:1.7;margin-top:22px}body.disconnected #connection{color:#f1a390}body.disconnected .dot{background:#ef7764}@media(max-width:1050px){#briefing{display:none}#lobby{left:7vw}h1{font-size:70px}#lobby-controls{gap:15px}}@media(max-height:700px){#lobby{transform:translateY(-40%)}h1{font-size:56px;margin:15px 0}.intro{margin-bottom:18px}.arena-info{margin-top:20px;padding-top:15px}#brand{top:23px}#lobby-controls{bottom:16px}.modal{padding:22px}.controls{gap:8px}.sensitivity{margin:17px 0}}@media(max-width:650px){#brand{left:20px}#top-status{right:16px;font-size:8px}#lobby{left:6vw;right:6vw}h1{font-size:52px}.join-row{flex-direction:column}.join-row input{width:100%}.join-row button{padding:12px}#lobby-controls{left:20px;right:20px;flex-wrap:wrap;gap:12px}#lobby-controls span:nth-child(2){display:none}.arena-info{gap:17px}.arena-info span{font-size:7px}#radar{width:100px;height:100px}#health-panel,#ammo-panel{min-width:110px;padding:10px}#score-panel{display:none}}

.sound-control{display:flex;align-items:center;gap:14px;margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}#join-form .sound-control label{display:flex;align-items:center;gap:10px;justify-content:flex-start;margin:0;font:9px monospace;letter-spacing:1px;white-space:nowrap}#join-form .sound-control label span{font:9px monospace;color:#97a59d;min-width:20px}.sound-control .sound-hint{font:9px monospace;color:#91a59a;letter-spacing:0}#sound-toggle{-webkit-appearance:none;appearance:none;flex:none;width:52px;height:28px;border:1px solid #718174;background:#35463d;border-radius:20px;padding:3px;margin:0;cursor:pointer;touch-action:pan-y;transition:background .15s}#sound-toggle::-webkit-slider-runnable-track{height:20px;background:transparent}#sound-toggle::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#bec8bd;box-shadow:0 1px 3px #0006}#sound-toggle::-moz-range-track{height:20px;background:transparent}#sound-toggle::-moz-range-thumb{width:20px;height:20px;border:0;border-radius:50%;background:#bec8bd}#sound-toggle.enabled{background:var(--gold);border-color:var(--gold)}#sound-toggle.enabled::-webkit-slider-thumb{background:#202c24}#sound-toggle.enabled::-moz-range-thumb{background:#202c24}#join-form .sound-control label span.enabled{color:var(--gold)}

.touch-only{display:none}
body.touch-mode{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);-webkit-text-size-adjust:100%}
body.touch-mode .touch-only{display:block}
body.touch-mode .desktop-only,body.touch-mode #lobby-controls,body.touch-mode #play-hints,body.touch-mode #briefing{display:none}
body.touch-mode:not(.playing){min-height:100svh;overflow-x:hidden;overflow-y:auto;padding:calc(var(--safe-top) + 108px) calc(var(--safe-right) + 24px) calc(var(--safe-bottom) + 24px) calc(var(--safe-left) + 24px)}
body.touch-mode #brand{position:absolute;top:calc(var(--safe-top) + 20px);left:calc(var(--safe-left) + 24px);font-size:18px}
body.touch-mode #top-status{position:absolute;top:calc(var(--safe-top) + 80px);left:calc(var(--safe-left) + 24px);right:calc(var(--safe-right) + 24px);font-size:8px}
body.touch-mode #lobby{position:relative;top:auto;left:auto;right:auto;transform:none;max-width:560px;margin:0 auto}
body.touch-mode h1{font-size:clamp(40px,10vw,66px);margin:18px 0}
body.touch-mode .intro{font-size:13px;line-height:1.7;margin-bottom:24px}
body.touch-mode #join-form{max-width:none}
body.touch-mode .join-row input{font-size:16px;min-height:48px}
body.touch-mode .join-row button{min-height:48px}
body.touch-mode .arena-info{gap:20px;justify-content:space-between;margin-top:24px}
body.touch-mode .arena-info b{font-size:13px}
body.touch-mode .arena-info span{font-size:7px;line-height:1.6}
body.touch-mode .sound-control{flex-wrap:wrap;gap:12px}
#touch-lobby-hints{position:relative;max-width:560px;margin:28px auto 0;font:9px/1.9 monospace;letter-spacing:1px;color:#bdc9b9}
body.touch-mode.playing{height:100dvh;overflow:hidden;padding:0;overscroll-behavior:none}
body.touch-mode.playing #brand,body.touch-mode.playing #touch-lobby-hints{display:none}
body.touch-mode.playing #nl-badge-frame{display:none!important}
body.touch-mode.playing #top-status{position:fixed;top:calc(var(--safe-top) + 13px);left:calc(var(--safe-left) + 12px);right:calc(var(--safe-right) + 158px);font-size:7px;letter-spacing:.3px}
body.touch-mode #connection{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.touch-mode #match{top:calc(var(--safe-top) + 38px);width:144px;padding:8px 6px;gap:4px}
body.touch-mode #match .eyebrow{font-size:7px;letter-spacing:.4px}
body.touch-mode #clock{font-size:22px}
body.touch-mode #online{font-size:8px}
body.touch-mode #radar{top:calc(var(--safe-top) + 40px);left:calc(var(--safe-left) + 12px);width:76px;height:76px}
body.touch-mode #feed{right:calc(var(--safe-right) + 12px);top:calc(var(--safe-top) + 128px);max-width:calc(100% - 24px - var(--safe-left) - var(--safe-right));gap:4px}
body.touch-mode .feed-line{max-width:100%;font-size:9px;padding:5px 7px;overflow-wrap:anywhere}
body.touch-mode .feed-line em{font-size:8px;padding:0 6px}
body.touch-mode #health-panel,body.touch-mode #ammo-panel{bottom:calc(var(--safe-bottom) + 216px);min-width:108px;padding:8px 10px}
body.touch-mode #health-panel{left:calc(var(--safe-left) + 16px)}
body.touch-mode #ammo-panel{right:calc(var(--safe-right) + 16px)}
body.touch-mode #health-panel b,body.touch-mode #ammo-panel b{font-size:28px}
body.touch-mode .health-icon{font-size:22px}
body.touch-mode .hud-label{font-size:8px;letter-spacing:1px;margin-bottom:4px}
body.touch-mode #ammo-panel .hud-label span{margin-left:8px}
body.touch-mode #ammo-panel b small{font-size:14px}
body.touch-mode #reload-status{font-size:7px;letter-spacing:1px;margin-top:5px}
body.touch-mode #score-panel{display:none}
body.touch-mode #notification{top:32%;max-width:calc(100% - 32px);font-size:12px;padding:10px 12px;white-space:normal}
#touch-controls{position:absolute;inset:0;z-index:4;pointer-events:none;text-shadow:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#touch-controls [data-touch],#touch-controls button{position:absolute;pointer-events:auto;touch-action:none}
#touch-look{inset:0 0 0 38%}
#touch-controls button{min-height:44px;border:1px solid #e5d6ab77;border-radius:10px;background:#18251bd9;color:#eee9dc;font:700 10px Arial;letter-spacing:.5px;padding:10px;transition:none}
#touch-controls button.pressed{background:#e4b165cf;color:#18251b}
#touch-stick{left:calc(var(--safe-left) + 20px);bottom:calc(var(--safe-bottom) + 24px);width:124px;height:124px;border:1px solid #e4d7ac88;background:#16241b80;border-radius:50%;display:grid;place-items:center}
#touch-stick i{position:absolute;left:40px;top:40px;width:42px;height:42px;border:1px solid #eee1b2aa;border-radius:50%;background:#dcca9199;pointer-events:none}
#touch-stick span{position:absolute;bottom:12px;font:8px monospace;letter-spacing:1px;pointer-events:none;color:#e3dfc9}
#touch-controls #touch-fire{right:calc(var(--safe-right) + 24px);bottom:calc(var(--safe-bottom) + 84px);width:78px;height:78px;border-radius:50%;border:2px solid #e4b165bd;background:#8a622dbd;color:#fff1d1;font-size:13px}
#touch-controls #touch-fire.pressed{background:#e4b165e6;color:#18251b}
#touch-reload{right:calc(var(--safe-right) + 20px);bottom:calc(var(--safe-bottom) + 24px);width:66px}
#touch-jump{right:calc(var(--safe-right) + 96px);bottom:calc(var(--safe-bottom) + 24px);width:58px}
#touch-walk{left:calc(var(--safe-left) + 24px);bottom:calc(var(--safe-bottom) + 158px);width:64px}
#touch-menu{right:calc(var(--safe-right) + 12px);top:calc(var(--safe-top) + 8px);width:60px}
#touch-score{right:calc(var(--safe-right) + 80px);top:calc(var(--safe-top) + 8px);width:66px}
body.touch-mode #pause,body.touch-mode #scoreboard,body.touch-mode #fatal{padding:calc(var(--safe-top) + 12px) calc(var(--safe-right) + 12px) calc(var(--safe-bottom) + 12px) calc(var(--safe-left) + 12px)}
body.touch-mode .modal,body.touch-mode .score-card{width:480px;max-width:100%;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 24px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:22px}
body.touch-mode .modal h2{font-size:26px;margin-top:14px}
body.touch-mode .modal button,body.touch-mode #close-score{min-height:44px;touch-action:manipulation}
body.touch-mode .controls.touch-only{display:grid;grid-template-columns:110px 1fr;gap:12px;line-height:1.5}
body.touch-mode .sensitivity{flex-wrap:wrap;line-height:1.5}
body.touch-mode .sensitivity input{min-height:32px;touch-action:pan-y}
body.touch-mode #close-score{width:100%;padding:12px;margin-bottom:20px;position:sticky;top:0;z-index:1}
body.touch-mode .score-card h2{margin:12px 0 18px}
body.touch-mode .table-head,body.touch-mode .score-row{grid-template-columns:minmax(0,1fr) 42px 48px;gap:8px;padding:10px 5px;font-size:10px}
body.touch-mode .score-row>span:first-child{overflow-wrap:anywhere}
body.touch-mode .score-row .bot-tag{display:inline-block;margin-left:4px;font-size:7px}
@media(orientation:portrait){body.touch-mode #match{top:calc(var(--safe-top) + 62px)}}
@media(orientation:landscape) and (max-height:600px){
 body.touch-mode:not(.playing){padding-top:calc(var(--safe-top) + 90px)}
 body.touch-mode #top-status{top:calc(var(--safe-top) + 35px);left:auto;right:calc(var(--safe-right) + 24px)}
 body.touch-mode #lobby{max-width:620px}
 body.touch-mode h1{font-size:44px}
 body.touch-mode .join-row{flex-direction:row}
 body.touch-mode .join-row input{width:55%}
 body.touch-mode .intro{margin-bottom:16px}
 body.touch-mode .arena-info{margin-top:18px}
 body.touch-mode #health-panel,body.touch-mode #ammo-panel{bottom:calc(var(--safe-bottom) + 160px)}
 body.touch-mode #radar{width:64px;height:64px}
 body.touch-mode #feed{top:calc(var(--safe-top) + 60px);max-width:31%}
 body.touch-mode .feed-line:nth-last-child(n+3){display:none}
 body.touch-mode #notification{top:34%;font-size:11px}
 #touch-walk{left:calc(var(--safe-left) + 158px);bottom:calc(var(--safe-bottom) + 24px)}
 body.touch-mode .modal,body.touch-mode .score-card{width:540px;padding:18px}
}
@media(max-width:360px){
 body.touch-mode:not(.playing){padding-left:calc(var(--safe-left) + 16px);padding-right:calc(var(--safe-right) + 16px)}
 body.touch-mode .arena-info{gap:10px}
 body.touch-mode .arena-info b{font-size:11px}
 body.touch-mode #match{width:126px}
 body.touch-mode #radar{width:64px;height:64px}
 #touch-stick{left:calc(var(--safe-left) + 12px);width:112px;height:112px}
 #touch-stick i{left:34px;top:34px}
 #touch-jump{right:calc(var(--safe-right) + 92px);width:54px}
}

#chat{position:absolute;left:27px;bottom:164px;width:min(360px,calc(100% - 54px));z-index:5;pointer-events:none;font:12px/1.5 Arial;overflow-wrap:anywhere}
#chat-log{max-height:144px;overflow:hidden}
.chat-line{padding:4px 8px;background:#111b1cce;unicode-bidi:plaintext}
.chat-line b{color:var(--gold)}
#chat-toggle{pointer-events:auto;background:#16221cd9;color:#dedfcf;border:1px solid #c9d5b943;padding:7px 10px;margin-top:6px;font:10px monospace;letter-spacing:.5px}
#chat-toggle span{font:inherit;margin-left:6px}
#chat-form{pointer-events:auto;background:#141f20f2;padding:12px;border:1px solid #c9d5b966;text-shadow:none}
#chat-form label{display:block;font:9px monospace;letter-spacing:1px;color:var(--gold);margin-bottom:8px}
.chat-row{display:flex;gap:6px}
#chat-input{min-width:0;flex:1;background:#0e191a;color:#fff;border:1px solid #7a878466;padding:10px;font-size:13px}
.chat-row button{padding:8px;font-size:10px;letter-spacing:.5px}
.chat-row #chat-close{font-size:20px;background:#283630;color:#eee9dc}
#chat-status{font:9px/1.5 monospace;color:#bccbbd;margin:8px 0 0}
body.chatting #chat-log{overflow-y:auto;pointer-events:auto;overscroll-behavior:contain}
body.touch-mode #chat{left:calc(var(--safe-left) + 12px);bottom:calc(var(--safe-bottom) + 310px);width:min(360px,calc(100% - var(--safe-left) - var(--safe-right) - 24px));font-size:10px}
body.touch-mode #chat-log{max-height:66px}
body.touch-mode #chat-toggle{position:fixed;left:50%;bottom:calc(var(--safe-bottom) + 24px);transform:translateX(-50%);min-height:44px;margin:0;border-radius:10px;touch-action:manipulation}
body.touch-mode.chatting #chat{left:calc(var(--safe-left) + 12px);bottom:calc(var(--safe-bottom) + 12px);width:calc(100% - var(--safe-left) - var(--safe-right) - 24px)}
body.touch-mode.chatting #chat-log{max-height:min(140px,28dvh)}
body.touch-mode.chatting #chat-input{font-size:16px;min-height:44px}
body.touch-mode.chatting #touch-controls{visibility:hidden}
@media(orientation:landscape) and (max-height:600px){body.touch-mode:not(.chatting) #chat{left:calc(var(--safe-left) + 170px);bottom:calc(var(--safe-bottom) + 76px);width:calc(100% - var(--safe-left) - var(--safe-right) - 340px)}}
