:root{--bg:#0b1710;--panel:#122419eb;--panel-solid:#122419;--panel-2:#1a3323;--panel-3:#22422e;--line:#ffffff17;--line-2:#ffffff29;--text:#eef7ef;--muted:#8fa995;--accent:#d4ff3a;--accent-2:#b5e01e;--accent-ink:#172008;--red:#f0454f;--blue:#3d8bfd;--gold:#ffd23f;--danger:#ff6b73;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}input{-webkit-user-select:text;user-select:text}body.in-game{touch-action:none;overflow:hidden}#stage,#stage canvas{display:block;position:fixed;inset:0}#stage:after{content:"";pointer-events:none;background:radial-gradient(#0000 58%,#00000073 100%);position:fixed;inset:0}#ui{position:fixed;inset:0;overflow:hidden auto}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:disabled{cursor:default}.muted{color:var(--muted)}.grow{flex:1}.row{gap:8px;display:flex}.screen{min-height:100%;padding:max(14px, var(--safe-t)) max(14px, var(--safe-r)) max(14px, var(--safe-b)) max(14px, var(--safe-l));background:radial-gradient(900px 500px at 85% -10%,#285f3773,#0000 60%),linear-gradient(#070f0ac7,#070f0ae6)}.screen.game{pointer-events:none;background:0 0;padding:0;position:fixed;inset:0}.loading{place-items:center;display:grid}.logo{letter-spacing:.03em;color:var(--accent);text-shadow:3px 3px #0009;font-size:26px;font-style:italic;font-weight:900;line-height:1}.logo.xl{font-size:clamp(40px,9vw,72px)}.logo-img{filter:drop-shadow(0 8px 24px #00000080);width:clamp(220px,34vw,420px);height:auto;display:block}.btn{background:var(--panel-2);border:1px solid var(--line-2);letter-spacing:.02em;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-weight:800;transition:transform 60ms,box-shadow 60ms,background .15s,opacity .15s;display:inline-flex;box-shadow:0 3px #00000073}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #00000073}.btn:disabled{opacity:.45}.btn.busy{opacity:.7}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-style:italic;font-weight:900;box-shadow:0 3px #7a961a}.btn.primary:active:not(:disabled){box-shadow:0 1px #7a961a}.btn.ghost{box-shadow:none;background:0 0}.btn.lg{min-height:50px;padding:0 26px;font-size:16px}.btn.ready-on{color:#d6ffe0;background:#2c6b3e;border-color:#4fae68}.icon-btn{border:1px solid var(--line-2);background:#0006;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;font-size:15px;display:grid}.icon-btn.ghost{background:0 0;border-color:#0000}.ico{flex:none;width:20px;height:20px;display:inline-grid}.ico.sm{width:15px;height:15px}.ico svg{width:100%;height:100%}.link{color:var(--muted);text-underline-offset:3px;padding:4px 0;font-size:13px;text-decoration:underline}.seg{background:#00000059;border-radius:11px;gap:3px;padding:3px;display:inline-flex}.seg button{min-width:52px;color:var(--muted);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:800}.seg button.on{background:var(--panel-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.field small{color:var(--muted);font-size:11px}.field input,.code-input{border:1px solid var(--line-2);height:44px;color:var(--text);font:inherit;background:#00000059;border-radius:10px;outline:none;padding:0 12px;font-size:15px}.field input:focus,.code-input:focus{border-color:var(--accent)}.field-row{flex-wrap:wrap;gap:14px;display:flex}.toggle{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-weight:600;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.toggle i{background:#ffffff26;border-radius:12px;flex:none;width:42px;height:24px;transition:background .15s;position:relative}.toggle i:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+i{background:var(--accent-2)}.toggle input:checked+i:after{transform:translate(18px)}.form-error{color:var(--danger);font-size:13px}.form-error:empty{display:none}.modal-backdrop{z-index:20;background:#0009;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{background:var(--panel-solid);border:1px solid var(--line-2);border-radius:18px;width:min(460px,100%);max-height:calc(100dvh - 32px);animation:.18s ease-out pop;overflow:auto;box-shadow:0 20px 60px #0009}.modal header{justify-content:space-between;align-items:center;padding:12px 12px 0 18px;display:flex}.modal h3{text-transform:uppercase;margin:0;font-size:17px;font-style:italic;font-weight:900}.modal-body{flex-direction:column;gap:14px;padding:14px 18px 18px;display:flex}.dev-box{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.toast{left:50%;top:max(14px, var(--safe-t));z-index:30;opacity:0;background:var(--panel-3);border:1px solid var(--line-2);pointer-events:none;border-radius:12px;padding:10px 16px;font-weight:700;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,-20px);box-shadow:0 8px 24px #00000080}.toast.show{opacity:1;transform:translate(-50%)}.toast.error{background:#4a1d22;border-color:#7d2f37}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.94)}}.auth{background:linear-gradient(90deg,#070f0a40 0%,#070f0ad9 60%),url(/img/keyart.jpg) 50%/cover no-repeat,linear-gradient(#070f0ac7,#070f0ae6);flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(20px,6vw,80px);display:flex}.auth-brand{max-width:380px}.auth-brand p{color:var(--muted);margin:12px 0 0;font-size:15px}.auth-panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:12px;width:min(360px,100%);padding:20px;display:flex}.auth-panel h2{text-transform:uppercase;margin:0;font-style:italic;font-weight:900}.auth-panel .row .btn{flex:1}.auth-panel>small{text-align:center}.invite-note{text-align:center;background:#d4ff3a1f;border:1px solid #d4ff3a4d;border-radius:10px;padding:10px 12px}.invite-note b{color:var(--accent);letter-spacing:.12em}.or{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line-2);flex:1;height:1px}.form-foot{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.menu{height:100%;padding:0;display:flex}.rail{width:calc(76px + var(--safe-l));padding:max(10px, var(--safe-t)) 6px max(10px, var(--safe-b)) calc(6px + var(--safe-l));border-right:1px solid var(--line);background:#050b07bf;flex-direction:column;flex:none;align-items:stretch;gap:4px;display:flex}.rail-logo img{border-radius:11px;width:44px;height:44px;box-shadow:0 4px 12px #00000080}.rail-logo{height:48px;color:var(--accent);text-shadow:2px 2px #0009;place-items:center;margin-bottom:6px;font-size:24px;font-style:italic;font-weight:900;display:grid}.rail-btn{color:var(--muted);border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;font-size:11px;font-weight:700;display:flex}.rail-btn .ico{width:22px;height:22px}.rail-btn.on{background:var(--panel-2);color:var(--accent);box-shadow:inset 0 0 0 1px var(--line-2)}.rail-spacer{flex:1}.menu-main{min-width:0;padding:max(10px, var(--safe-t)) max(14px, var(--safe-r)) max(12px, var(--safe-b)) 14px;flex-direction:column;flex:1;gap:10px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.tab-title{text-transform:uppercase;letter-spacing:.02em;margin:0;font-size:24px;font-style:italic;font-weight:900}.player-chip{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:9px;padding:5px 12px 5px 5px;display:flex}.chip-text b{text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:13px;display:block;overflow:hidden}.avatar{--av:#3a7;background:var(--av);border:2px solid #0009;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-weight:900;display:grid;box-shadow:inset 0 -3px #0003}.avatar.sm{width:30px;height:30px;font-size:13px}.avatar.lg{width:72px;height:72px;font-size:30px}.lvl{align-items:center;gap:6px;margin-top:2px;display:flex}.lvl-num{background:var(--accent);min-width:20px;height:18px;color:var(--accent-ink);border-radius:6px;place-items:center;padding:0 5px;font-size:11px;font-weight:900;display:grid}.xp{background:#ffffff1f;border-radius:3px;width:80px;height:5px;overflow:hidden}.xp span{background:var(--accent);height:100%;display:block}.tab-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.empty{text-align:center;color:var(--muted);padding:28px 12px}.play-tab{flex-direction:column;flex:1;justify-content:center;gap:12px;min-height:0;display:flex}.mode-cards{flex:1;grid-template-columns:repeat(3,1fr);gap:10px;min-height:120px;max-height:300px;display:grid}.mode-card{text-align:left;background:var(--panel);border:2px solid #0000;border-radius:16px;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px;padding:14px;transition:border-color .15s,transform .1s;display:flex;position:relative;overflow:hidden}.mode-card:before{content:"";position:absolute;inset:0}.mode-card{background-position:50% 30%;background-size:cover}.mode-card:not(.on){filter:saturate(.75)brightness(.85)}.mode-card.quick{background-image:url(/img/mode-quick.jpg)}.mode-card.ranked{background-image:url(/img/mode-ranked.jpg)}.mode-card.practice{background-image:url(/img/mode-practice.jpg)}.mode-card.quick:before{background:linear-gradient(#0000 35%,#060d08eb),linear-gradient(150deg,#d4ff3a38,#0000 60%)}.mode-card.ranked:before{background:linear-gradient(#0000 35%,#060d08eb),linear-gradient(150deg,#ffd23f40,#0000 60%)}.mode-card.practice:before{background:linear-gradient(#0000 35%,#060d08eb),linear-gradient(150deg,#3d8bfd40,#0000 60%)}.mode-card>*{position:relative}.mode-card .mode-ico{opacity:.85;width:44px;height:44px;display:none;position:absolute;top:12px;right:12px}.mode-card.quick .mode-ico{color:var(--accent)}.mode-card.ranked .mode-ico{color:var(--gold)}.mode-card.practice .mode-ico{color:#8ebcff}.mode-card b{text-transform:uppercase;font-size:18px;font-style:italic;font-weight:900;line-height:1.05}.mode-card small{color:var(--muted);font-size:12px}.mode-card.on{border-color:var(--accent);background-color:var(--panel-2);box-shadow:0 0 0 1px var(--accent), 0 8px 28px #d4ff3a2e}.mode-card:active{transform:scale(.98)}.play-bar{align-items:center;gap:12px;display:flex}.play-options{flex-wrap:wrap;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.opt-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.opt-rank{align-items:center;gap:8px;display:flex}.opt-rank small{color:var(--muted)}.play-btn{border-radius:16px;flex-direction:column;gap:0;min-width:190px;min-height:60px;line-height:1.05}.play-btn span{letter-spacing:.06em;font-size:24px}.play-btn small{opacity:.7;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-style:normal;font-weight:800}.rooms-tab{flex-direction:column;gap:10px;min-height:0;display:flex}.rooms-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.join-code{gap:6px;display:flex}.code-input{letter-spacing:.18em;text-transform:uppercase;width:128px;height:42px;font-weight:800}.code-input::placeholder{letter-spacing:.06em;font-weight:600}.room-list{flex-direction:column;gap:6px;display:flex}.room-row{background:var(--panel);border:1px solid var(--line);text-align:left;border-radius:12px;grid-template-columns:1fr auto auto 72px;align-items:center;gap:14px;padding:10px 14px;display:grid}.room-row:active{background:var(--panel-2)}.room-row.in_game{opacity:.6}.room-name{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.room-name b{font-size:14px}.room-name small{width:100%;color:var(--muted);font-size:11px}.room-mode{color:var(--accent);font-style:italic;font-weight:900}.room-count{font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:700;display:inline-flex}.room-count.full{color:var(--muted)}.room-status{text-transform:uppercase;color:var(--accent);background:#d4ff3a1f;border-radius:6px;justify-self:end;padding:4px 8px;font-size:11px;font-weight:800}.room-status.in_game{color:var(--muted);background:#ffffff14}.ranked-tab{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.rank-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.rank-card{background:linear-gradient(180deg, color-mix(in srgb, var(--tier) 18%, transparent), var(--panel) 70%);border:1px solid var(--line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;display:flex}.rank-card small{color:var(--muted)}.rank-queue{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.placements{gap:5px;display:flex}.placements i{background:#ffffff24;border-radius:3px;width:14px;height:6px}.placements i.done{background:var(--accent)}.rank-stats{color:var(--muted);gap:12px;font-size:11px;display:flex}.rank-stats b{color:var(--text);margin-right:3px;font-size:14px}.lb-wrap{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px}.lb-wrap h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:12px}.lb-row{border-top:1px solid var(--line);grid-template-columns:26px 1fr auto auto;align-items:center;gap:10px;padding:6px 4px;font-size:13px;display:grid}.lb-pos{color:var(--muted);font-weight:900}.lb-tier{font-size:12px;font-weight:800}.lb-lp{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.rank-badge{color:var(--tier);align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.rank-badge i{background:var(--tier);width:12px;height:12px;box-shadow:0 0 10px var(--tier);border-radius:2px;transform:rotate(45deg)}.rank-badge.lg{flex-direction:column;font-size:16px}.rank-badge.lg i{border-radius:6px;width:34px;height:34px;margin:8px 0 6px}.lp-bar{background:#ffffff1a;border-radius:4px;width:100%;height:8px;overflow:hidden}.lp-bar span{background:var(--accent);height:100%;transition:width 1.1s cubic-bezier(.3,.8,.3,1) .3s;display:block}.profile-tab{flex-direction:column;gap:12px;max-width:720px;display:flex}.profile-head{align-items:center;gap:16px;display:flex}.name-row{align-items:center;gap:4px;display:flex}.name-row h2{margin:0;font-size:22px}.lvl.big .xp{width:160px;height:7px}.lvl.big small{color:var(--muted);font-size:11px}.stats-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:2px;padding:10px;display:flex}.stat b{font-size:20px;font-weight:900}.stat small{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.guest-banner{background:linear-gradient(120deg, #d4ff3a24, var(--panel) 70%);border:1px solid #d4ff3a4d;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.guest-banner b{display:block}.guest-banner small{color:var(--muted)}.account-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.lobby{flex-direction:column;gap:10px;height:100%;display:flex}.lobby-head{align-items:center;gap:10px;display:flex}.lobby-title{flex:1;min-width:0}.lobby-title h1{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;margin:0;font-size:20px;font-style:italic;font-weight:900;display:flex;overflow:hidden}.lobby-title small{color:var(--muted)}.code-chip{background:var(--panel);border:1px dashed var(--line-2);border-radius:11px;align-items:center;gap:8px;padding:6px 12px;display:flex}.code-chip small{color:var(--muted);font-size:10px;font-weight:800}.code-chip b{letter-spacing:.16em;color:var(--accent);font-size:16px}.lobby-teams{flex:1;grid-template-columns:1fr auto 1fr .8fr;align-items:start;gap:10px;min-height:0;display:grid;overflow:auto}.lobby-vs{color:var(--accent);align-self:center;font-size:22px;font-style:italic;font-weight:900}.team-col{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--team,var(--line-2));border-radius:14px;flex-direction:column;gap:6px;padding:10px;display:flex}.team-col.red{--team:var(--red)}.team-col.blue{--team:var(--blue)}.team-col header{justify-content:space-between;align-items:baseline;padding:0 2px 2px;display:flex}.team-col header b{text-transform:uppercase;letter-spacing:.06em;font-size:12px}.team-col header small{color:var(--muted)}.member{background:#00000040;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:flex}.member.me{box-shadow:inset 0 0 0 1px #ffffff59}.member-name{flex:1;min-width:0}.member-name b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;display:block;overflow:hidden}.member-name small{color:var(--muted);font-size:11px}.host-tag{color:var(--gold);display:grid}.ready-dot{border:2px solid #fff3;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:grid}.member.ready .ready-dot{background:#3aa65a;border-color:#3aa65a}.member.ready .ready-dot .ico{width:12px;height:12px}.kick-btn{width:22px;height:22px;color:var(--muted);border-radius:6px;font-size:12px}.kick-btn:hover{color:var(--danger);background:#ff6b7333}.slot-empty{border:1px dashed var(--line-2);color:var(--muted);border-radius:10px;padding:10px 8px;font-size:12px;font-weight:700}.slot-empty:not(:disabled):active{background:var(--panel-2)}.lobby-foot{justify-content:flex-end;align-items:center;gap:14px;display:flex}.lobby-status{color:var(--muted);font-weight:600}.spectating{color:var(--muted);align-items:center;gap:6px;font-weight:700;display:inline-flex}.searching,.versus{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.searching h2{text-transform:uppercase;margin:0;font-style:italic;font-weight:900}.searching p{color:var(--muted);margin:0 0 8px}.spinner{border:5px solid #ffffff21;border-top-color:var(--accent);border-radius:50%;width:54px;height:54px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.versus small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.vs-row{align-items:center;gap:18px;width:min(760px,100%);display:flex}.vs-team{flex-direction:column;flex:1;gap:8px;display:flex}.vs-player{background:var(--panel);border-left:4px solid var(--team);border-radius:10px;align-items:center;gap:8px;padding:10px 12px;animation:.35s ease-out both slide-in;display:flex}.vs-team.red{--team:var(--red)}.vs-team.blue{--team:var(--blue)}.vs-team.blue .vs-player{border-left:0;border-right:4px solid var(--team);flex-direction:row-reverse;animation-name:slide-in-r}.vs-player.me{background:var(--panel-2);box-shadow:inset 0 0 0 1px #ffffff40}.vs-player .rank-badge,.vs-player .lvl-tag{margin-inline-start:auto}.vs-team.blue .vs-player .rank-badge,.vs-team.blue .vs-player .lvl-tag{margin-inline:0 auto}.lvl-tag{color:var(--muted);font-weight:700}@keyframes slide-in{0%{opacity:0;transform:translate(-30px)}}@keyframes slide-in-r{0%{opacity:0;transform:translate(30px)}}.vs{color:var(--accent);font-size:34px;font-style:italic;font-weight:900}.countdown{font-size:54px;font-style:italic;font-weight:900}.hud{top:max(8px, var(--safe-t));left:max(8px, var(--safe-l));right:max(8px, var(--safe-r));pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute}.hud .icon-btn{pointer-events:auto;background:#0009;width:36px;height:36px;font-size:15px}.hud-right{align-items:center;gap:6px;display:flex}.ping-chip{height:26px;color:var(--muted);font-variant-numeric:tabular-nums;background:#0009;border-radius:8px;align-items:center;gap:5px;padding:0 8px;font:700 11px ui-monospace,Menlo,monospace;display:inline-flex}.ping-chip i{background:var(--muted);border-radius:50%;width:7px;height:7px}.ping-chip.good i{background:#3ddc84}.ping-chip.ok i{background:var(--gold)}.ping-chip.bad i{background:var(--danger)}.install-hint{background:#d4ff3a1a;border:1px solid #d4ff3a47;border-radius:12px;align-items:center;gap:10px;padding:8px 8px 8px 12px;font-size:13px;display:flex}.install-hint>span{flex:1}.install-hint b{color:var(--accent)}.scoreboard{font-variant-numeric:tabular-nums;background:#000000a6;border-radius:10px;align-items:stretch;font-weight:900;display:flex;overflow:hidden;box-shadow:0 2px 10px #0006}.scoreboard .sc{text-align:center;min-width:38px;padding:4px 8px;font-size:20px}.scoreboard .sc.red{background:var(--red)}.scoreboard .sc.blue{background:var(--blue)}.scoreboard .clock{padding:6px 12px;font-size:16px}.scoreboard .clock.ot{color:var(--gold)}.net-debug{left:max(8px, var(--safe-l));bottom:max(8px, var(--safe-b));color:#b9f3c4;pointer-events:none;background:#000000a6;border-radius:6px;padding:4px 8px;font:600 11px ui-monospace,Menlo,monospace;position:absolute}.spectate-tag{top:calc(max(8px, var(--safe-t)) + 44px);letter-spacing:.12em;color:var(--muted);background:#0009;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:900;position:absolute;left:50%;transform:translate(-50%)}.banner{text-align:center;letter-spacing:.02em;text-shadow:4px 4px #000000a6;opacity:0;pointer-events:none;font-size:clamp(36px,9vw,80px);font-style:italic;font-weight:900;transition:opacity .2s,transform .25s cubic-bezier(.2,1.6,.4,1);position:absolute;top:34%;left:0;right:0;transform:scale(.6)}.banner.show{opacity:1;transform:scale(1)}.banner.red{color:#ff8c93}.banner.blue{color:#8ebcff}.banner.neutral{color:var(--accent);font-size:clamp(28px,6vw,56px)}.banner small{color:var(--text);text-shadow:1px 1px #000;font-size:15px;font-style:normal;font-weight:700;display:block}.controls{pointer-events:none;position:absolute;inset:0}.joy-zone{pointer-events:auto;touch-action:none;width:55%;position:absolute;top:0;bottom:0;left:0}.joy-base{opacity:0;pointer-events:none;background:#ffffff14;border:2px solid #ffffff38;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .12s;position:fixed;top:0;left:0}.joy-base.active{opacity:1}.joy-knob{background:#ffffffbf;border-radius:50%;width:50px;height:50px;margin:-25px 0 0 -25px;position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #00000080}.ctl-btn{pointer-events:auto;touch-action:none;letter-spacing:.04em;background:#00000054;border:2px solid #ffffff54;border-radius:50%;place-items:center;font-style:italic;font-weight:900;display:grid;position:absolute;overflow:hidden}.ctl-btn span{position:relative}.ctl-btn.pressed{background:#fff3}.ctl-kick{width:92px;height:92px;right:calc(max(18px, var(--safe-r)) + 4px);bottom:calc(max(18px, var(--safe-b)) + 4px);font-size:15px}.ctl-kick .charge{background:conic-gradient(var(--accent) calc(var(--charge,0) * 360deg), transparent 0);opacity:.55;position:absolute;inset:0}.ctl-kick.full{border-color:var(--gold);box-shadow:0 0 18px var(--gold)}.ctl-sprint{width:62px;height:62px;right:calc(max(18px, var(--safe-r)) + 112px);bottom:calc(max(18px, var(--safe-b)) + 8px);font-size:10px}.ctl-sprint .stamina{height:calc(var(--stamina,1) * 100%);background:#ffd23f40;position:absolute;bottom:0;left:0;right:0}@media (pointer:fine){.controls .ctl-btn,.joy-zone{display:none}}.rotate-hint{display:none}@media (orientation:portrait) and (pointer:coarse){body:not(.native) .rotate-hint{pointer-events:auto;z-index:5;background:#0c1a10f0;flex-direction:column;justify-content:center;align-items:center;gap:18px;font-weight:800;display:flex;position:absolute;inset:0}.rotate-hint .phone{border:4px solid var(--accent);border-radius:9px;width:44px;height:76px;animation:1.6s ease-in-out infinite rotate-phone}}@keyframes rotate-phone{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.result{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.result>small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.result h1{margin:0;font-size:clamp(36px,8vw,64px);font-style:italic;font-weight:900;line-height:1}.result.win h1{color:var(--accent)}.result.loss h1{color:#ff8c93}.final-score{gap:12px;font-size:30px;font-weight:900;display:flex}.final-score .red{color:var(--red)}.final-score .blue{color:var(--blue)}.result-body{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:14px;width:min(760px,100%);display:flex}.rank-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;align-items:center;gap:6px;min-width:190px;padding:12px 18px;display:flex}.rank-panel small{color:var(--muted)}.lp-delta{font-size:22px;font-weight:900}.lp-delta.pos{color:var(--accent)}.lp-delta.neg{color:#ff8c93}.promo{color:var(--gold);font-style:italic;font-weight:900}.promo.neg{color:#ff8c93}.stats{border-collapse:collapse;background:var(--panel);border-radius:14px;flex:1;min-width:260px;font-size:13px;overflow:hidden}.stats th,.stats td{text-align:center;padding:7px 10px}.stats th:first-child,.stats td:first-child{text-align:left}.stats th{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.stats tr.me td{background:#ffffff0f;font-weight:800}.stats .dot{border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block}.stats tr.red .dot{background:var(--red)}.stats tr.blue .dot{background:var(--blue)}.left-tag{color:#ffb3b8;background:#f0454f33;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:10px;font-weight:800}.xp-line{color:var(--muted);margin:4px 0;font-size:13px}.actions{gap:10px;display:flex}@media (height<=440px){.auth{flex-wrap:nowrap}.auth-brand .logo.xl{font-size:44px}.auth-panel{gap:10px;padding:16px}.tab-title{font-size:20px}.mode-card{padding:10px 12px}.mode-card b{font-size:15px}.mode-card .mode-ico{width:34px;height:34px}.play-btn{min-width:160px;min-height:54px}.play-btn span{font-size:21px}.result h1{font-size:34px}.btn.lg{min-height:44px}}@media (width<=640px){.mode-cards{flex:none;grid-template-columns:1fr}.mode-card{min-height:84px}.play-bar{flex-direction:column;align-items:stretch}.ranked-tab,.rank-cards{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(3,1fr)}.lobby-teams{grid-template-columns:1fr 1fr}.lobby-vs{display:none}.room-row{grid-template-columns:1fr auto auto}.room-status,.rail-btn span{display:none}.rail{width:calc(56px + var(--safe-l))}}
