*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none;width:0;height:0}:root{color-scheme:dark;--lime:#c4f16d;--lime-strong:#d5ff86;--lime-ink:#18200f;--bg:#0d131d;--bg-2:#111a26;--panel:#151e2b;--panel-2:#1a2634;--line:#354253;--line-2:#273244;--text:#f4f6f8;--muted:#a4afbf;--muted-2:#8290a3;--danger:#ffa8a8;--gold:#f9d379;--font:Inter,"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--mint:var(--lime)}*{box-sizing:border-box}html,body{height:100%}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:var(--panel-2);border:1px solid #4a5a70;border-radius:10px;padding:12px 20px;font-weight:700;transition:.18s}button:hover:not(:disabled){border-color:var(--lime);background:#263544}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.primary{color:var(--lime-ink);background:var(--lime);border-color:var(--lime)}.primary:hover:not(:disabled){background:var(--lime-strong);color:var(--lime-ink);box-shadow:0 6px 24px #c4f16d22}.ghost{background:transparent}.small{font-size:14px;padding:8px 14px}.muted{color:var(--muted)}.lime{color:var(--lime)}.eyebrow{display:block;color:var(--lime);font-size:13px;letter-spacing:3px;font-weight:700;text-transform:uppercase}h1{font-size:clamp(30px,3.8vw,48px);letter-spacing:-1px;line-height:1.2;margin:8px 0 12px;font-weight:800}h2{font-size:24px;line-height:1.4;margin:0 0 8px;font-weight:700}h3{font-size:20px;margin:0}p{margin:8px 0 0}kbd{border:1px solid #556174;padding:2px 8px;border-radius:5px;background:#1b2838;font-size:13px}#app{min-height:100dvh;display:flex;flex-direction:column}.topbar{height:56px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4vw;border-bottom:1px solid var(--line);background:#0c121ceb;position:relative;z-index:3}.logo{border:0;background:none;padding:0;display:flex;align-items:center;gap:10px;font-size:22px;font-weight:900;letter-spacing:-1px}.logo:hover{background:none!important}.mark{width:34px;height:36px;border-radius:10px;background:var(--lime);color:#172111;display:grid;place-items:center;font-size:24px}.logo b{color:var(--lime)}.top-actions{display:flex;gap:12px;align-items:center}.build-tag{font-size:12px;letter-spacing:3px;color:var(--muted)}main{flex:1;max-width:1440px;width:100%;margin:auto;padding:40px 4vw 48px}.page[hidden]{display:none}.page{animation:appear .28s ease-out}@keyframes appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.back{margin-bottom:24px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px}.row{display:flex;align-items:center;gap:12px}.wrap{flex-wrap:wrap}.grid{display:grid;gap:24px}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.badge{display:inline-flex;align-items:center;border:1px solid #3c5261;color:var(--muted);padding:4px 12px;border-radius:30px;font-size:13px;white-space:nowrap}.badge.green{border-color:#789b46;color:var(--lime);background:#c4f16d0a}.footer{min-height:60px;padding:16px 4vw;display:flex;justify-content:space-between;gap:16px;color:var(--muted-2);font-size:12px;letter-spacing:2px;border-top:1px solid var(--line-2)}.note{font-size:13px;color:var(--muted);margin-top:16px}.error{color:var(--danger);min-height:22px;font-size:14px;margin-top:8px}.hero{min-height:min(640px,calc(100dvh - 180px));position:relative;display:flex;align-items:center;margin:-40px -4vw -48px;padding:48px 4vw;overflow:hidden}.hero-art{position:absolute;top:0;right:0;bottom:0;left:36%;background-image:url(/ui_home_hero.png);background-size:auto 100%;background-position:right center;opacity:.92;-webkit-mask-image:linear-gradient(90deg,transparent,#000 42%);mask-image:linear-gradient(90deg,transparent,#000 42%)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#0d131d 30%,#0d131dcc 44%,#0d131d20 66%,transparent 82%)}.hero-content{position:relative;z-index:1;width:680px;max-width:64%}.hero h1{font-size:clamp(40px,5.3vw,72px);line-height:1.18;margin:20px 0 16px}.hero-intro{color:#c1ccda;font-size:18px}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px}.mode-card{padding:24px;text-align:left;min-height:220px;background:linear-gradient(145deg,#192738f5,#111a26f5);display:flex;flex-direction:column;align-items:start;border:1px solid #566376;border-radius:16px}.mode-card:first-child{border-color:var(--lime);box-shadow:inset 0 0 0 1px #c4f16d66}.mode-icon{font-size:24px;color:var(--lime);margin-bottom:12px;font-weight:700}.mode-card h2{font-size:24px}.mode-card p{font-size:14px;color:#b5c1cf;font-weight:400;line-height:1.6}.mode-cta{margin-top:auto;padding-top:20px;color:var(--lime);font-size:16px}.hint{margin-top:32px;color:#8998aa;font-size:14px}.stage-card{padding:0;overflow:hidden;text-align:left;background:#131d2a;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column}.stage-card:hover{box-shadow:0 0 0 2px var(--lime)}.stage-card[aria-pressed=true]{outline:2px solid var(--lime);border-color:var(--lime)}.scene{background:#0e1723 center top/cover no-repeat;aspect-ratio:1.5;width:100%}.stage-card .scene{aspect-ratio:1.3}.stage-info{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}.stage-info h3{font-size:16px}.stage-info small{font-size:12px;color:var(--muted);font-weight:400}.stage-info .best{color:var(--lime);font-size:12px}.preview .scene{border-radius:11px;margin:16px 0}.launch-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}.launch-bar .primary{padding:16px 32px}.field-inline{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted);margin-top:16px}.field-inline select{flex:1}.mini-facts{display:flex;gap:24px;font-size:14px;margin-top:12px;color:var(--muted)}.form-field{display:grid;gap:8px;margin-bottom:24px}label,.field-label{font-weight:600;font-size:15px}input,select{width:100%;background:#0e1723;color:#fff;border:1px solid #4b5b70;border-radius:9px;padding:12px 14px;min-height:48px}input::placeholder{color:var(--muted-2)}.segments{display:flex;gap:8px;flex-wrap:wrap}.segments button{flex:1;min-width:56px;padding:10px 12px;font-size:14px}.segments button.active{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}.join-layout{grid-template-columns:1.15fr 1fr;margin-bottom:24px}.join-input{display:flex;gap:12px;margin-top:8px}.join-input button{white-space:nowrap}.room-list{padding:0;overflow:hidden}.list-head{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.list-head h2{margin:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:13px;letter-spacing:1px;color:#8f9cb0;padding:12px 20px;font-weight:500}td{padding:14px 20px;border-top:1px solid #2d3b4d;font-size:15px;white-space:nowrap}tbody tr:hover{background:#20304355}.room-name{font-weight:700}.room-sub{font-size:12px;color:#96a7bc;margin-top:4px}.empty{padding:40px;text-align:center;color:var(--muted);margin:0}.empty[hidden]{display:none}.create-grid{grid-template-columns:1fr 1fr}#create-form .primary{width:100%;padding:16px}.code-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;padding:20px 24px}.code{font-size:30px;color:var(--lime);letter-spacing:5px;font-weight:800}.waiting-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.slot{min-height:168px;background:linear-gradient(#1a293b,#111b29);border:1px solid #3c4e63;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;gap:10px;text-align:center}.slot.empty-slot{border-style:dashed;background:#111b2877;color:#76869c}.slot.absent{opacity:.55;border-style:dashed}.empty-symbol{font-size:40px;font-weight:200;line-height:1;margin:12px 0}.slot-name{font-size:14px;font-weight:700}.slot-sub{font-size:12px;color:var(--muted)}.slot .badge{font-size:11px;padding:2px 10px}.badge.gold{color:var(--gold);border-color:#846937}.portrait{display:block;flex-shrink:0;background-repeat:no-repeat;filter:drop-shadow(0 4px 10px #0007)}.picker-panel{margin-top:16px}#character-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px}#character-picker button{position:relative;padding:10px 4px 8px;border:1px solid var(--line);border-radius:10px;background:#161d29;color:#dfe7f2;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;overflow:hidden}#character-picker button[aria-pressed=true]{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime);background:#1d2a1f}.picker-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px}.picker-heading small{color:var(--lime);text-align:right;font-size:13px}.map-small{height:fit-content}.map-small .scene{border-radius:9px;margin:16px 0}#series-standings{margin-top:20px}#series-list{margin:0;padding-left:20px;font-size:14px;line-height:1.9}#series-list li span{float:right;color:var(--lime)}#series-list li.cpu{color:var(--muted)}.launch-bar.panel{margin-top:24px}#start{padding:16px 36px;white-space:nowrap}.leaderboard{margin:12px 0 0;padding-left:20px;font-size:13px;line-height:1.8;color:#b8c4d4}.leaderboard:empty{display:none}.leaderboard li span{float:right;color:var(--lime)}.leaderboard li.head{list-style:none;margin-left:-20px;color:var(--muted-2);letter-spacing:1px;font-size:12px}.page-game{display:flex;flex-direction:column;gap:8px;height:calc(100dvh - 66px);min-height:420px}#app[data-page=game] main{padding:8px 12px 10px;max-width:none}#app[data-page=game] .footer,#app[data-page=game] .build-tag{display:none}#app[data-page=game] .topbar{height:48px;padding:0 16px;gap:12px}#app[data-page=game] .logo{font-size:21px;gap:9px}#app[data-page=game] .mark{width:28px;height:32px;border-radius:8px;font-size:23px}#app[data-page=game] .top-actions button{padding:5px 12px;font-size:14px}.page-game .arena-toolbar{min-height:36px}.page-game .arena-toolbar>span:first-child{display:flex;align-items:center;gap:14px;min-width:0}#mode-label{font-size:17px;font-weight:700;color:var(--text);white-space:nowrap}#game-tip{display:inline-flex;align-items:center;border:1px solid #789b46;color:var(--lime);background:#c4f16d0a;padding:2px 10px;border-radius:30px;font-size:13px;letter-spacing:0}.page-game .arena-toolbar .row{gap:8px}.page-game .arena-footer{justify-content:center;gap:24px;min-height:20px;font-size:14px}.arena-toolbar,.arena-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted)}.status-light{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lime);margin-right:8px;box-shadow:0 0 8px var(--lime)}#clock{font-family:ui-monospace,monospace;font-size:14px;color:var(--text)}#game-wrap{position:relative;flex:1;min-height:0;width:100%;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#162139}#game{position:absolute;top:0;right:0;bottom:0;left:0}#game canvas{display:block;width:100%!important;height:100%!important}#game-tip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#game-tip span{color:var(--lime);margin-left:6px}.arena-footer b{color:var(--lime);font-size:20px}#finish{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,92%);max-height:92%;overflow:auto;background:#0f1824f2;border:1px solid var(--line);border-radius:16px;padding:28px;z-index:18;box-shadow:0 20px 60px #000a}#finish[hidden]{display:none}#finish h2{font-size:28px}#results{margin:12px 0 0;padding-left:22px;line-height:1.9;font-size:14px}#results li span+span{float:right;color:var(--lime)}#finish .row{margin-top:20px}#finish .series-note{margin:12px 0 0;font-size:13px;color:var(--lime)}#touch-controls,#rotate-hint{display:none}#app:not([data-page=game]) #touch-controls,#app:not([data-page=game]) #rotate-hint{display:none!important}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--lime);color:#172111;font-weight:700;padding:12px 20px;border-radius:9px;z-index:20;max-width:90vw;box-shadow:0 10px 45px #0009;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.dialog{position:fixed;top:0;right:0;bottom:0;left:0;background:#03070edb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;z-index:30;padding:24px}.dialog-card{max-width:520px;width:100%;padding:32px;max-height:90dvh;overflow:auto}.dialog-card h2{font-size:28px}.dialog-card p{margin:12px 0 20px;color:var(--muted)}.dialog-card .primary{width:100%;margin-top:16px}@media(max-width:1100px){.grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-content{max-width:78%}.waiting-grid,.launch-grid,.create-grid,.join-layout{grid-template-columns:1fr}}@media(max-width:700px){.topbar{height:50px;padding:0 16px}.build-tag{display:none}.logo{font-size:20px}.mark{width:34px;height:36px;font-size:22px}main{padding:24px 16px 32px}.hero{margin:-24px -16px -32px;padding:32px 16px;min-height:auto}.hero-art{top:0;right:0;bottom:0;left:0}.hero:after{background:linear-gradient(90deg,#0d131df2,#0d131dcc 60%,#0d131d80)}.hero-content{max-width:100%}.mode-grid{grid-template-columns:1fr}.grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}.heading{flex-direction:column;align-items:start}.slots{grid-template-columns:1fr 1fr}.slot{min-height:150px}.code{font-size:22px;letter-spacing:3px}.code-panel{flex-direction:column;align-items:start}.launch-bar{flex-direction:column;align-items:stretch}.page-game{height:calc(100dvh - 130px)}.footer{flex-direction:column;gap:4px}}@media(max-height:520px){.topbar{height:44px;padding:0 12px}.build-tag,.footer,#help{display:none}.logo{font-size:18px;gap:8px}.mark{width:30px;height:32px;font-size:20px;border-radius:8px}main{padding:4px 12px}#app[data-page=game] main{padding:4px 12px}.page-game{height:calc(100dvh - 62px);gap:4px;min-height:0}.page-game .arena-toolbar{min-height:26px}#mode-label{font-size:14px}.page-game .arena-footer{min-height:16px;font-size:11px}.arena-toolbar,.arena-footer{font-size:11px}.arena-footer b{font-size:15px}#live-ranking,#game-tip{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.track-progress{position:absolute;right:9px;top:15px;bottom:15px;width:3px;background:#ffffff15;border-radius:5px;display:flex;align-items:flex-end}#progress-fill{width:100%;background:var(--lime);border-radius:5px;height:0}@media(pointer:coarse),(max-width:850px){#game-wrap{height:calc(100% - 64px);aspect-ratio:640/760}#game-tip{font-size:8px;padding:5px 9px;top:9px}#touch-controls{display:flex;position:fixed;inset:auto max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));justify-content:space-between;pointer-events:none;z-index:10}.direction-pad,.action-pad{display:flex;gap:8px;align-items:flex-end;pointer-events:auto}.direction-pad{display:grid;grid-template-columns:56px 56px;grid-template-rows:56px 48px;gap:5px}.direction-pad [data-control=left]{grid-column:1;grid-row:1}.direction-pad [data-control=right]{grid-column:2;grid-row:1}.direction-pad [data-control=down]{grid-column:1/3;grid-row:2;justify-self:center;width:56px;height:48px}#touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;background:#263747d9;border:1px solid #596f7b;color:#d9e6e6;border-radius:16px;width:56px;height:56px;font-size:18px}#touch-controls button.held{background:#8bb453;color:#112010}#touch-controls .jump-button{width:76px;height:76px;border-radius:50%;background:#c5f2a1dc;color:#23371d;border-color:#d3fbbb;font-size:13px;font-weight:700}#touch-controls .jump-button span{display:block;font-size:25px}#touch-controls #item{font-size:10px;width:56px;height:56px}}@media(max-width:600px)and (orientation:portrait){#rotate-hint{display:block;position:fixed;top:53px;left:50%;transform:translate(-50%);white-space:nowrap;color:var(--lime);font-size:11px;text-align:center}#rotate-hint small{display:block;color:var(--muted);font-size:9px;margin-top:5px}#touch-controls{bottom:15px}#touch-controls .direction-pad{grid-template-columns:48px 48px}#touch-controls button{width:48px;height:48px}}@media(pointer:coarse),(max-width:850px){.direction-pad{grid-template-rows:56px 56px}.direction-pad [data-control=down]{height:56px}}@media(max-width:600px)and (orientation:portrait){#touch-controls .direction-pad{grid-template-columns:56px 56px}#touch-controls button{width:56px;height:56px}}@media(pointer:coarse),(max-width:850px){#touch-controls{align-items:flex-end}#touch-controls button.auto-direction{width:84px;height:84px;font-size:26px;pointer-events:auto}#touch-controls button.auto-direction small{display:block;font-size:10px;margin-top:4px}}#live-ranking{position:absolute;left:10px;top:52px;margin:0;padding:8px 10px;list-style:none;background:#101a28dc;border:1px solid #435064;border-radius:9px;font-size:10px;line-height:1.9;pointer-events:none;max-width:170px}#live-ranking li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#live-ranking .you{color:var(--lime);font-weight:700}#countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:72px;font-weight:900;color:var(--lime);text-shadow:0 4px 25px #000;background:#10151f55;pointer-events:none}#item-status{position:absolute;right:18px;bottom:15px;padding:10px;border-radius:9px;background:#131e2be8;border:1px solid #617848;color:var(--lime);font-size:11px;pointer-events:none;white-space:pre-line;line-height:1.7}#item-touch small{display:block;font-size:10px;margin-top:5px}@media(pointer:coarse),(max-width:850px){#touch-controls #item-touch{pointer-events:auto;width:74px;height:74px;border-radius:50%;background:#354929e8;border-color:#93af71;font-size:20px;margin-right:18px}#touch-controls{justify-content:initial;gap:12px}#touch-controls [data-control=left]{margin-right:auto}#touch-controls #item-touch{order:1}#touch-controls [data-control=right]{order:2}#live-ranking{top:36px;left:5px;font-size:8px;padding:4px 6px;max-width:115px}#item-status{right:8px;bottom:8px;font-size:8px;padding:5px}#countdown{font-size:48px}}@media(max-width:600px)and (orientation:portrait){#touch-controls #item-touch{width:64px;height:64px;margin-right:0}#touch-controls button.auto-direction{width:64px;height:64px}}@media(pointer:coarse),(max-width:850px){#touch-controls #item-touch{font-size:12px;font-weight:700;padding:6px}#touch-controls #item-touch.ready{background:#c5f277;color:#213119;box-shadow:0 0 20px #c5f27730}}#live-ranking{top:15px;left:12px}#item-status{bottom:12px;right:22px}@media(pointer:coarse),(max-width:850px){#live-ranking{font-size:8px;top:8px;left:8px}#game-tip{top:8px;max-width:55%;overflow:hidden;text-overflow:ellipsis}#item-status{bottom:8px;right:12px}#touch-controls{bottom:max(45px,env(safe-area-inset-bottom));left:18px;right:18px}#touch-controls button.auto-direction{width:62px;height:62px;font-size:22px}#touch-controls #item-touch{width:58px;height:58px;margin-right:8px}#rotate-hint{display:none}}@media(max-width:600px)and (orientation:portrait){#rotate-hint{display:block;top:75px;font-size:9px;z-index:5;pointer-events:none}#game-tip{display:none}#touch-controls{bottom:45px}}.item-picture{display:block;width:52px;height:52px;flex:none;overflow:hidden;filter:drop-shadow(0 2px 5px #0005);pointer-events:none}.item-copy{display:flex;flex-direction:column;gap:4px;text-align:left;pointer-events:none}.item-copy strong{font-size:12px;color:#e8f4da}.item-copy small{font-size:10px;color:#a9bb98}.item-empty{display:grid;place-items:center;width:52px;height:52px;border:1px dashed #6a7e5b;border-radius:9px;font-size:24px;color:#899e78}#item-status{display:flex;align-items:center;gap:10px;pointer-events:auto;white-space:normal;bottom:12px;min-width:164px;padding:9px;border-radius:12px}#item-status:disabled{opacity:.65}#item-status.ready{border-color:#c5f277}#item-effect{position:absolute;right:22px;bottom:96px;background:#111d2bef;color:#d8edbf;border-radius:7px;padding:6px 10px;font-size:11px;pointer-events:none}.item-guide{margin:15px 0;font-size:11px;color:#adbaa5}.item-guide summary{cursor:pointer}.item-guide-row{display:flex;align-items:center;gap:12px;margin:14px 0}.item-guide-row p{margin:0;line-height:1.7}.item-guide-row .item-picture{width:38px;height:38px}@media(pointer:coarse),(max-width:850px){#touch-controls #item-touch{display:flex;align-items:center;justify-content:center;width:68px;height:68px;padding:8px;position:relative}#item-touch .item-picture{width:48px;height:48px}#item-touch .item-copy{display:none}#item-touch .item-empty{border:0;width:44px;height:44px}#item-status{right:12px;bottom:auto;top:55px;min-width:0;padding:5px;gap:6px;max-width:190px}#item-status .item-picture,#item-status .item-empty{width:32px;height:32px}#item-status .item-copy strong{font-size:10px}#item-status .item-copy small{font-size:8px}#item-effect{right:12px;bottom:auto;top:106px;font-size:9px}}#ink-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:12}#ink-overlay img{position:absolute;object-fit:fill}#live-ranking,#item-status,#item-effect{z-index:14}#countdown{z-index:15}#item-effect{max-width:min(460px,65%);line-height:1.5}#clock.urgent{color:#ffae78;font-weight:800}#self-rank{position:absolute;left:14px;top:12px;z-index:14;pointer-events:none;background:#101a28dc;border:1px solid #536779;border-radius:12px;padding:8px 14px;min-width:94px;color:#c5f277}#self-rank>span{display:block;font-size:10px;color:#b4c5d1;letter-spacing:2px}#self-rank strong{font-size:44px;line-height:1.1;font-style:italic}#self-rank small{font-size:14px;color:#a7b9c5;margin-left:8px}#live-ranking{top:103px;font-size:11px;max-width:150px}#opponent-markers{position:absolute;top:0;right:0;bottom:0;left:0;z-index:14;pointer-events:none}.opponent-marker{position:absolute;width:38px;height:38px;transform:translate(-50%,-50%);color:var(--racer)}.racer-avatar{display:block;border-radius:50%;width:38px;height:38px;border:2px solid var(--racer);background:linear-gradient(140deg,var(--racer),#24384e);box-shadow:0 2px 10px #000a;position:relative}.racer-avatar i{position:absolute;top:12px;left:10px;width:6px;height:7px;border-radius:50%;background:#fff}.racer-avatar i+i{left:20px}.racer-avatar i:after{content:"";position:absolute;right:1px;top:2px;width:3px;height:4px;background:#162336;border-radius:50%}.marker-arrow{position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;font-size:18px;display:flex;justify-content:flex-end;align-items:center;transform-origin:center;text-shadow:0 1px 4px #000}.opponent-marker b{position:absolute;right:-5px;bottom:-3px;border-radius:8px;background:#101a28;border:1px solid var(--racer);padding:0 4px;font-size:11px}.opponent-marker small{position:absolute;top:43px;left:50%;transform:translate(-50%);font-size:10px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 4px #000;background:#101a28ba;border-radius:4px;padding:1px 4px}@media(max-width:850px){#self-rank{left:8px;top:8px;padding:5px 9px;min-width:66px}#self-rank strong{font-size:30px}#self-rank>span{font-size:8px}#self-rank small{font-size:11px}#live-ranking{top:75px;max-width:110px;font-size:8px}.opponent-marker small{font-size:8px}}#finish-countdown{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:16;font-size:clamp(30px,5vw,62px);font-weight:900;color:#ffcf6d;text-shadow:0 3px 12px #000;pointer-events:none;background:#141923da;padding:3px 22px;border-radius:12px}@media(min-width:851px)and (pointer:fine){#touch-controls{display:none!important}}#loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#141826;color:#c5f277;font-size:14px;letter-spacing:1px;z-index:5}#loading[hidden]{display:none}.loading-bar{width:180px;height:6px;border-radius:3px;background:#2a3140;overflow:hidden}#loading-fill{height:100%;width:0;background:#c5f277;transition:width .1s}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.solo-head{display:flex;align-items:center;gap:5vw;margin-bottom:20px}.solo-head .back{margin:0}.solo-head h1{font-size:38px;margin:2px 0}.solo-head .badge{margin-left:auto}.solo-layout{display:grid;grid-template-columns:1.58fr 1fr;gap:16px}.solo-panel{border:1px solid var(--line);border-radius:12px;padding:20px;background:linear-gradient(135deg,#101d29aa,#0c1722);min-width:0}.section-label{display:flex;align-items:center;gap:16px;margin-bottom:16px}.section-label h2{font-size:24px;margin:0;white-space:nowrap}.section-label strong{font-size:30px;color:var(--lime)}.section-label span{font-size:14px;color:var(--muted);margin-left:auto}.maps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.map-choice{padding:0;overflow:hidden;text-align:left;position:relative;background:#101e2b;border-color:var(--line);border-radius:12px;display:flex;flex-direction:column}.map-art{display:block;position:relative;overflow:hidden;aspect-ratio:174/136;background:#152337 center top/cover no-repeat}.map-copy{padding:10px 12px;display:grid;gap:2px}.map-copy small,.map-copy span{font-size:13px;color:var(--muted);font-weight:400}.map-copy b{font-size:16px}.map-copy span.best{color:var(--lime)}.map-choice.custom .map-copy small{color:var(--lime);letter-spacing:1px}.map-choice.custom .map-art:after{content:"✎";position:absolute;left:8px;top:8px;background:#0d131dcc;color:var(--lime);border:1px solid var(--lime);border-radius:8px;padding:0 8px;font-size:14px}.picked{outline:2px solid var(--lime);border-color:var(--lime)!important}.picked:after{content:"✓";position:absolute;right:8px;top:8px;background:var(--lime);color:#102014;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:700}.map-summary{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-top:16px;min-height:108px}.map-summary .map-art{width:31%;flex-shrink:0;aspect-ratio:auto}.map-summary>div{padding:14px 20px;min-width:0}.map-summary h2{font-size:24px;margin:0}.map-summary p{font-size:15px;color:var(--muted)}.solo-panel #character-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.solo-panel #character-picker button{padding:12px 4px;gap:6px;font-size:16px;font-weight:700}.solo-panel #character-picker button .portrait{height:80px!important;width:auto}.solo-panel #character-picker button small{display:none}#character-picker button.picked{outline:2px solid var(--lime);border-color:var(--lime)}.character-info{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;margin-top:16px;min-height:112px}.character-info h3{font-size:20px;margin:0}.character-info p{font-size:14px;color:var(--muted);margin:4px 0 0}.character-info>div:nth-child(2){min-width:0;flex:1}.stats{margin-left:auto;min-width:38%}.stat{display:grid;grid-template-columns:32px 1fr 14px;gap:8px;align-items:center;font-size:14px;margin:6px 0}.stat i{display:block;height:10px;border-radius:5px;background:#243447;overflow:hidden}.stat i b{display:block;height:100%;background:var(--lime);border-radius:5px}.stat span:last-child{text-align:right;color:var(--muted)}.launch-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;text-align:center}.launch-options button{width:100%;font-size:20px;min-height:60px}.launch-options p{font-size:13px;color:var(--muted);margin-top:8px}@media(min-width:1200px)and (max-height:850px){.solo-head{margin-bottom:12px}.solo-panel{padding:16px}.map-art{aspect-ratio:174/124}.character-info{margin-top:12px;padding:10px;min-height:100px}.launch-options{margin-top:12px}.section-label{margin-bottom:12px}.solo-panel #character-picker button .portrait{height:64px!important}}@media(max-width:1100px){.solo-layout{grid-template-columns:1fr}.solo-head{gap:24px}}@media(max-width:600px){.topbar a{white-space:nowrap}.solo-panel #character-picker button small{font-size:12px;letter-spacing:0}.solo-panel #character-picker button{font-size:14px}.solo-panel #character-picker button .portrait{height:60px!important}.solo-head{flex-wrap:wrap;gap:12px}.solo-head h1{font-size:30px}.solo-head .badge{display:none}.solo-panel{padding:16px}.maps{grid-template-columns:repeat(2,minmax(0,1fr))}.section-label{gap:10px;flex-wrap:wrap}.section-label span{margin-left:0;width:100%}.solo-panel #character-picker{gap:8px}.map-summary .map-art{display:none}.character-info{flex-wrap:wrap}.stats{width:100%;margin-left:0}.launch-options{grid-template-columns:1fr}}.topbar .build-tag{display:none}.top-actions{gap:10px}.top-actions .game-only{display:none}#app[data-page=game] .top-actions .game-only{display:inline-block}.top-actions .text-nav{border:0;background:transparent;font-weight:500;color:inherit;text-decoration:none;padding:8px 12px;border-radius:10px;font-size:15px;white-space:nowrap}.top-actions .text-nav:hover{color:var(--lime);background:#1a2634}.top-actions .primary.small{padding:7px 14px;font-size:14px}.account-button{display:inline-flex;align-items:center;gap:8px;max-width:220px;padding:5px 14px 5px 6px}.account-avatar{width:28px;height:28px;flex-shrink:0;overflow:hidden;display:inline-flex;align-items:flex-start;justify-content:center;background:#253d58;border-radius:50%;vertical-align:middle}.account-avatar canvas{width:100%;height:100%;display:block}.account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-create{display:inline-block;margin-top:24px;color:var(--muted);background:none;border:0;padding:0;font-weight:400;font-size:15px}.home-create:hover:not(:disabled){background:none;color:var(--lime);transform:none}.auth-card{position:relative}.auth-card .close-auth{position:absolute;right:12px;top:12px;border:0;background:transparent;font-size:24px;padding:4px 10px;line-height:1}.auth-card h2{margin:16px 0 0;font-size:29px}.auth-card>p{font-size:15px;margin:10px 0 22px;color:var(--muted)}.auth-card .form-field{margin-bottom:16px}.auth-card label .muted{font-weight:400;font-size:13px;margin-left:6px}.auth-card .primary{width:100%;margin-top:10px}.auth-card .error{color:var(--danger);min-height:22px;font-size:14px;margin:4px 0 0}.password-wrap{position:relative}.password-wrap input{padding-right:72px}.password-wrap button{position:absolute;right:6px;top:7px;padding:6px 10px;border:0;font-size:13px}.auth-forgot{text-align:right;margin-top:-6px}.text-link{border:0;background:transparent;padding:3px;color:var(--lime);font-size:14px;font-weight:600}.text-link:hover:not(:disabled){background:transparent;transform:none;text-decoration:underline}.auth-links{display:flex;justify-content:center;gap:12px;margin-top:16px}.local-note{color:var(--muted);font-size:13px;margin:12px 0 0;line-height:1.6}@media(max-width:750px){.top-actions{gap:4px}.top-actions .text-nav{font-size:13px;padding:7px 8px}.account-button{max-width:140px}.auth-card{padding:24px}}@media(max-width:600px){.top-actions .text-nav{display:none}.top-actions button{white-space:nowrap;font-size:13px;padding:8px 10px}.top-actions .primary.small{padding:8px 12px}.account-button{padding:4px;gap:0;max-width:none}.account-name{display:none}.logo span{white-space:nowrap}}.back-link{display:inline-block;margin-bottom:16px;color:var(--lime);background:transparent;border:0;padding:6px 0;font-weight:600}.back-link:hover:not(:disabled){background:transparent;transform:none;text-decoration:underline}.solo-layout{grid-template-columns:1.7fr 1fr;align-items:stretch}.solo-heading{display:flex;align-items:baseline;gap:22px;margin-bottom:16px}.solo-heading h1{font-size:clamp(28px,3vw,40px);margin:0;letter-spacing:-1px}.solo-heading p{margin:0;font-size:15px}.source-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}.source-tabs .tab{border:0;border-radius:0;padding:12px;font-size:19px;color:var(--muted);background:transparent;font-weight:600}.source-tabs .tab:hover:not(:disabled){transform:none;background:#1a2634}.source-tabs .tab[aria-pressed=true]{color:var(--lime);background:#12211d;box-shadow:inset 0 -4px var(--lime);font-weight:700}.preview{position:relative;height:clamp(300px,26vw,440px);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#152337}.preview .art{position:absolute;top:0;right:0;bottom:0;left:0;background:#152337 center/cover no-repeat;transition:background-image .2s}.preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent 30%,#0d131def);pointer-events:none}.preview-tools{position:absolute;z-index:2;top:14px;right:14px;display:flex;gap:8px}.preview-tools button{background:#0d131ddf;padding:9px 14px;font-size:14px}.preview-copy{position:absolute;z-index:1;bottom:22px;left:24px;right:24px}.preview-copy h2{font-size:clamp(26px,2.8vw,38px);margin:0 0 8px;line-height:1.2}.preview-copy .meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:8px;font-size:14px;color:var(--muted)}.preview-copy .badge{border-color:var(--lime);color:var(--lime)}.preview-copy .saved{color:var(--lime)}.preview-copy p{margin:0;font-size:14px;max-width:70ch}.preview-copy .leaderboard{margin:8px 0 0;padding:0;list-style:none;display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.preview-copy .leaderboard:empty{display:none}#stage-grid.maps{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;margin-top:14px}.map-card{overflow:hidden;text-align:left;position:relative;padding:0;background:#101e2b;border-color:var(--line);border-radius:10px;display:flex;flex-direction:column}.map-card.picked{outline:3px solid var(--lime);outline-offset:-3px;border-color:var(--lime)}.map-card .thumb-art{display:block;height:104px;background:#152337 center/cover no-repeat}.map-card .map-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px;font-weight:600;font-size:15px;min-width:0}.map-card .map-title small{color:var(--lime);font-size:12px;font-weight:600;white-space:nowrap}.create-map{min-height:150px;border-style:dashed;color:var(--muted);background:transparent;font-weight:600}.create-map span{display:block;font-size:44px;font-weight:200;line-height:1.3}.solo-panel.right{display:flex;flex-direction:column;gap:16px}.character-heading{display:flex;justify-content:space-between;align-items:center}.character-heading h2{font-size:26px;margin:0}.help{position:relative}.help-button{border:2px solid var(--muted);border-radius:50%;width:26px;height:26px;padding:0;font-weight:800;background:transparent;display:grid;place-items:center}.tooltip{display:none;position:absolute;top:36px;right:0;width:250px;background:#1a2634;border:1px solid #41647b;padding:12px 14px;border-radius:9px;font-size:14px;line-height:1.7;box-shadow:0 8px 24px #0006;z-index:10;color:var(--text)}.help:hover .tooltip,.help:focus-within .tooltip{display:block}.solo-panel .character-info{margin-top:0}.modes-title{font-size:19px;margin:0 0 8px}.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode{padding:14px 8px;font-weight:700;font-size:17px;background:transparent}.mode[aria-pressed=true]{border-color:var(--lime);color:var(--lime);background:#12211d}.mode-note{margin:8px 0 0;font-size:13px;text-align:center}.start{width:100%;min-height:96px;margin-top:auto;font-size:30px;letter-spacing:1px}.start span{margin-left:14px}@media(min-width:1200px)and (max-height:850px){.preview{height:clamp(240px,22vw,340px)}.map-card .thumb-art{height:76px}.start{min-height:72px;font-size:24px}.solo-panel.right{gap:12px}}@media(max-width:1150px){.solo-layout{grid-template-columns:1.35fr 1fr}.solo-heading{display:block}.solo-heading p{margin-top:8px}.map-card .map-title{font-size:13px;padding:8px}}@media(max-width:1100px){.solo-layout{grid-template-columns:1fr}}@media(max-width:600px){.preview{height:320px}.preview-copy{left:14px;right:14px;bottom:14px}.preview-tools{top:10px;right:10px}.preview-tools button{font-size:12px;padding:8px}.preview-copy .meta{gap:10px;font-size:13px}#stage-grid.maps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}.map-card .map-title{font-size:13px}.source-tabs .tab{font-size:16px;padding:10px}.modes{gap:8px}.mode{font-size:15px;padding:12px 6px}.start{min-height:80px;font-size:26px}.character-heading h2{font-size:22px}}.lobby{width:min(980px,100%);margin:0 auto}.lobby-intro{text-align:center;margin:8px 0 24px}.lobby-intro .title-row{display:flex;justify-content:center;align-items:center;gap:16px}.lobby-intro h1{font-size:clamp(32px,4vw,46px);margin:0;letter-spacing:1px}.lobby-intro p{margin:12px 0 0;font-size:18px}.lobby-intro .help-button{width:34px;height:34px;font-size:22px;border-color:#6e8ea9}.lobby-intro .tooltip{width:260px;text-align:left}.lobby-card{padding:26px clamp(16px,4vw,38px);border-radius:18px}.nickname-field{max-width:680px;margin:0 auto 18px}.lobby-tabs{display:flex;max-width:680px;margin:0 auto 24px;padding:5px;border:1px solid var(--line);border-radius:12px;gap:5px}.lobby-tabs .tab{flex:1;border:0;background:transparent;color:var(--muted);font-size:20px;padding:12px;border-radius:9px;font-weight:700}.lobby-tabs .tab:hover:not(:disabled){transform:none;background:#1a2634}.lobby-tabs .tab[aria-selected=true]{background:var(--lime);color:#132008}.lobby-card label{display:block;font-weight:700;margin-bottom:10px;font-size:17px}.input-row{display:flex;gap:14px}.input-row input{font-size:18px;padding:15px 18px;min-height:56px}.input-row .primary{min-width:140px;font-size:20px;white-space:nowrap}#room-code{text-transform:uppercase;letter-spacing:2px}.room-section{border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-heading h2{font-size:24px;margin:0}.more{padding:6px 0 6px 16px;border:0;background:transparent;color:var(--muted);font-weight:500;font-size:14px}.more:hover:not(:disabled){background:transparent;transform:none;color:var(--text)}.rooms{display:grid;gap:12px}.room{display:grid;grid-template-columns:1.2fr 1.1fr .7fr 130px;gap:16px;align-items:center;padding:12px 14px 12px 22px;border:1px solid var(--line);border-radius:11px;background:#0d131d80}.room .room-name{font-size:18px;font-weight:700}.room-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:15px}.icon{width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.join-room{border-color:var(--lime);font-size:17px;padding:10px 20px}.join-room:hover:not(:disabled){background:#c4f16d15;border-color:var(--lime)}.lobby .empty{padding:28px;text-align:center;color:var(--muted)}.lobby .empty[hidden]{display:none}.create-panel{padding:6px 0 4px;max-width:680px;margin:0 auto}.create-panel h2{font-size:24px;margin:0}.create-panel p{line-height:1.8;margin:8px 0 22px}.create-panel .primary{margin-top:16px;width:100%;padding:16px;font-size:19px}@media(max-width:650px){.lobby-intro p{font-size:15px}.lobby-card{padding:18px 14px}.lobby-tabs .tab{font-size:16px;padding:10px 8px}.input-row{gap:10px}.input-row input{font-size:16px;padding:13px 12px}.input-row .primary{min-width:82px;padding:12px;font-size:16px}.room{grid-template-columns:1fr auto;gap:10px;padding:14px}.room .room-name{font-size:16px}.room-map{grid-column:1;grid-row:2;font-size:13px}.room-people{grid-column:2;grid-row:1;justify-content:end;font-size:13px}.join-room{grid-column:2;grid-row:2;padding:8px 18px;font-size:14px}.section-heading h2{font-size:20px}}.visibility{min-width:0;margin:20px 0 0;padding:0;border:0}.visibility legend{margin-bottom:10px;padding:0;font-size:17px;font-weight:700}.visibility-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.visibility-option{position:relative;display:block;margin:0;cursor:pointer}.visibility-option input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.visibility-card{display:flex;align-items:center;gap:16px;min-height:92px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#0d131d70;transition:border-color .15s,background-color .15s}.visibility-option:hover .visibility-card{border-color:var(--muted)}.visibility-card svg{flex:0 0 30px;width:30px;height:30px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.visibility-copy{flex:1;min-width:0}.visibility-copy strong{display:block;font-size:17px}.visibility-copy small{display:block;margin-top:5px;color:var(--muted);font-size:13px;font-weight:400;line-height:1.5}.radio-indicator{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border:2px solid #7890a8;border-radius:50%}.radio-indicator:after{content:"";width:12px;height:12px;border-radius:50%;background:var(--lime);transform:scale(0);transition:transform .15s}.visibility-option input:checked+.visibility-card{border-color:var(--lime);box-shadow:inset 0 0 0 1px var(--lime);background:#c4f16d10}.visibility-option input:checked+.visibility-card svg{stroke:var(--lime)}.visibility-option input:checked+.visibility-card .radio-indicator{border-color:var(--lime)}.visibility-option input:checked+.visibility-card .radio-indicator:after{transform:scale(1)}.visibility-option input:focus-visible+.visibility-card{outline:3px solid var(--lime);outline-offset:4px}@media(max-width:650px){.visibility-options{grid-template-columns:1fr;gap:10px}.visibility-card{min-height:80px;padding:14px}}.room-details{margin-top:14px}.room-details .stats{min-width:34%}#rating-stars{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}#rating-stars button{min-height:44px;padding:8px 10px;color:#ffe17a}#map-rating{padding:12px 0;border-block:1px solid #ffffff20;margin-bottom:12px}#rating-status{font-size:13px}#app[data-page=awards] main{max-width:1800px;padding:16px 2.7% 20px}.awards-page{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;min-height:calc(100vh - 92px);min-height:calc(100dvh - 92px)}.awards-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}.awards-heading h1{grid-column:2;margin:0;font-size:clamp(28px,3vw,44px);letter-spacing:2px}.awards-heading .badge{justify-self:end;padding:11px 18px;border:1px solid #3b532b;background:#17231bc9;color:var(--lime);border-radius:50px;font-size:14px;white-space:nowrap}.awards .boards{min-height:0;display:grid;grid-template-columns:1fr 1.05fr;gap:20px}.awards .panel{min-width:0;min-height:0;border:1px solid var(--line);border-radius:15px;background:linear-gradient(130deg,#0e2030c9,#0b1926e6)}.celebrate{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:20px 22px 14px}.celebrate h2{position:relative;z-index:1;margin:0;text-align:center;color:var(--lime);font-size:clamp(22px,2.3vw,34px);font-weight:800}.podium{position:relative;z-index:1;flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end;padding-top:12px}.winner{height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center}.figure{height:clamp(110px,19vh,195px);display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:10px;flex-shrink:0}.figure .portrait{width:auto}.second .figure{height:clamp(100px,15vh,160px)}.third .figure{height:clamp(85px,13vh,135px)}.crown{width:60px;height:44px;fill:var(--lime);filter:drop-shadow(0 0 13px #c6f56570)}.winner-name{margin:12px 0 4px;font-size:clamp(13px,1.4vw,20px);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.winner-score{margin:0 0 16px;font-size:clamp(22px,2vw,30px);font-weight:750}.winner-score small{font-size:13px;color:var(--muted);font-weight:400;margin-left:5px}.plinth{width:100%;border-radius:13px 13px 0 0;border:1px solid #62819a;border-bottom:0;background:linear-gradient(130deg,#40566a,#203447);height:27%;min-height:55px;display:flex;justify-content:center;padding-top:16px;font-size:clamp(38px,4vw,64px);color:#c1d9ef;font-weight:650;box-shadow:inset 0 3px #ffffff1a;flex-shrink:0}.first .plinth{height:37%;background:linear-gradient(130deg,#4c6927,#253d20);color:var(--lime);border-color:#81a543}.third .plinth{height:21%;background:linear-gradient(130deg,#674934,#382b25);border-color:#a97755;color:#e6af86}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;container-type:size}.confetti i{position:absolute;display:block;width:7px;height:13px;opacity:.75;transform:rotate(var(--r,28deg));animation:confetti-fall 9s linear infinite;will-change:transform,opacity}@keyframes confetti-fall{0%{transform:translate3d(0,-18cqh,0) rotate(var(--r,28deg));opacity:0}8%{opacity:.8}25%{transform:translate3d(var(--sway,12px),12cqh,0) rotate(calc(var(--r,28deg) + 150deg))}50%{transform:translate3d(0,41cqh,0) rotate(calc(var(--r,28deg) + 300deg))}75%{transform:translate3d(calc(-1 * var(--sway,12px)),70cqh,0) rotate(calc(var(--r,28deg) + 450deg))}92%{opacity:.8}to{transform:translate3d(0,100cqh,0) rotate(calc(var(--r,28deg) + 600deg));opacity:0}}.ranking{padding:12px 16px;display:grid;grid-template-rows:1fr;overflow:auto}.ranking table{border-collapse:separate;border-spacing:0 4px;width:100%;height:100%;table-layout:fixed;font-variant-numeric:tabular-nums}.ranking caption{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.ranking thead{height:36px}.ranking th{text-align:left;color:var(--muted);font-size:16px;font-weight:500;padding:0 12px}.ranking th:first-child{width:15%;text-align:center}.ranking th:last-child{width:19%;text-align:right}.ranking td{padding:3px 12px;border-top:1px solid transparent;border-bottom:1px solid transparent;font-size:clamp(15px,1.4vw,21px)}.ranking td:first-child{border-left:1px solid transparent;border-radius:10px 0 0 10px;text-align:center;font-weight:750;font-size:clamp(20px,1.9vw,28px)}.ranking td:last-child{border-right:1px solid transparent;border-radius:0 10px 10px 0;text-align:right;font-weight:750;font-size:clamp(20px,1.9vw,29px)}.ranking tbody tr:nth-child(odd){background:#172a3b75}.ranking tr.me{background:#22382066;color:var(--lime)}.ranking tr.me td{border-top-color:#829f45;border-bottom-color:#829f45}.ranking tr.me td:first-child{border-left-color:#829f45}.ranking tr.me td:last-child{border-right-color:#829f45}.ranking .player{display:flex;gap:14px;align-items:center;min-width:0}.ranking .player .portrait{width:auto;flex-shrink:0}.player-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking .you{font-size:.82em;margin-left:5px}.awards-actions{display:flex;justify-content:space-between;align-items:stretch;gap:16px;flex-wrap:wrap}.action-group{display:flex;gap:14px;align-items:stretch}.awards .btn{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #52748e;background:#0e2030;border-radius:12px;padding:12px 22px;font-size:18px;font-weight:650;white-space:nowrap}.awards .btn:hover:not(:disabled){background:#173045;border-color:#adc4d9;transform:none}.awards .btn svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6}.awards .btn.primary{background:var(--lime);border:0;color:#142007;font-size:26px;padding:10px 32px;min-width:240px}.awards .btn.primary:hover:not(:disabled){background:var(--lime-strong)}.awards .btn.primary:disabled{opacity:.5}.awards .arrow{font-size:30px;margin-left:8px}.text-btn{border:0;background:transparent;color:var(--muted);padding:10px 8px;font-size:16px;display:flex;align-items:center;gap:10px}.text-btn:hover:not(:disabled){background:transparent;color:var(--text);transform:none}.text-btn .q{border:2px solid currentColor;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:15px}.awards-dialog .dialog-card{max-width:780px;width:100%}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-head h2{margin:0;font-size:24px}.dialog-head .x{border:0;background:#1c3447;width:34px;height:34px;border-radius:50%;font-size:22px;padding:0;line-height:1}.dialog-copy{line-height:1.8;color:var(--muted);margin:14px 0 0}.detail-wrap{overflow-x:auto;margin-top:16px}.round-details{border-collapse:collapse;width:100%;white-space:nowrap}.round-details td,.round-details th{padding:9px 12px;text-align:center;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;font-size:15px}.round-details td:first-child,.round-details th:first-child{text-align:left}.round-details th{font-size:13px;color:var(--muted);font-weight:500}.round-details tr.me{color:var(--lime);background:#273f243f}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.rule-grid div{padding:12px;background:#1b3244;border-radius:10px;text-align:center;color:var(--muted);font-size:14px}.rule-grid strong{display:block;font-size:24px;color:var(--lime);margin-top:4px}.awards .note{font-size:13px;color:var(--muted);line-height:1.7;margin:12px 0 0}.dialog-footer{display:flex;justify-content:flex-end;margin-top:18px}.dialog-footer .btn{min-width:130px;font-size:16px;padding:9px 20px}@media(min-width:901px){#app[data-page=awards] main{height:100vh;height:100dvh;padding-top:12px;box-sizing:border-box;overflow:auto}.awards-page{height:calc(100vh - 88px);height:calc(100dvh - 88px);min-height:0}}@media(min-width:901px)and (max-height:800px){.awards-page{gap:10px}.awards-heading h1{font-size:30px}.awards-heading .badge{padding:8px 14px;font-size:13px}.celebrate{padding:14px 18px 10px}.celebrate h2{font-size:25px}.figure{gap:6px;height:130px}.second .figure{height:100px}.third .figure{height:88px}.crown{width:46px;height:34px}.winner-name{margin:8px 0 3px;font-size:15px}.winner-score{font-size:22px;margin-bottom:10px}.plinth{padding-top:9px;font-size:44px}.ranking{padding:8px 12px}.ranking th{font-size:13px}.ranking td{font-size:16px;padding:2px 10px}.ranking td:first-child,.ranking td:last-child{font-size:22px}.awards .btn{font-size:16px;padding:9px 18px}.awards .btn.primary{font-size:22px;min-width:210px}.text-btn{font-size:14px}}@media(min-width:901px)and (max-width:1150px){.awards-heading{grid-template-columns:auto 1fr}.awards-heading h1{grid-column:1}.awards .boards{gap:14px}.ranking .player{gap:9px}.player-name{font-size:15px}.celebrate h2{font-size:24px}.awards .btn{padding-left:16px;padding-right:16px;font-size:16px}.awards .btn.primary{min-width:190px;font-size:22px}.action-group{gap:10px}}@media(max-width:900px){.awards-page{min-height:0;gap:18px}.awards-heading{grid-template-columns:1fr auto}.awards-heading h1{grid-column:1;font-size:30px}.awards-heading .badge{font-size:12px;padding:9px 12px}.awards .boards{grid-template-columns:1fr;gap:16px}.celebrate{height:420px}.ranking{min-height:470px;overflow:visible}.figure{height:130px}.second .figure{height:100px}.third .figure{height:90px}.winner-name{font-size:15px}.winner-score{font-size:24px;margin-bottom:10px}.plinth{font-size:44px;padding-top:10px}.awards-actions{flex-direction:column;gap:12px}.action-group{justify-content:center}.action-group:last-child{order:-1}.action-group:last-child .btn{flex:1}.awards .btn.primary{min-width:0;font-size:23px}.awards .btn{font-size:16px;padding:13px 18px}.player-name{white-space:normal}}@media(max-width:480px){.awards-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}.awards-heading h1{font-size:26px}.celebrate{height:350px;padding:16px 10px 10px}.celebrate h2{font-size:22px}.podium{gap:8px}.figure{height:104px;gap:6px}.crown{height:30px;width:42px}.second .figure{height:76px}.third .figure{height:66px}.winner-name{font-size:12px;white-space:normal;line-height:1.4;min-height:34px;display:flex;align-items:center;justify-content:center;margin:6px 0 2px}.winner-score{font-size:20px;margin-bottom:8px}.plinth{font-size:36px;padding-top:8px}.ranking{min-height:0;padding:10px 8px}.ranking th{font-size:12px;padding:0 6px}.ranking td{font-size:14px;padding:4px 6px}.ranking td:first-child,.ranking td:last-child{font-size:20px}.ranking .player{gap:8px}.awards .btn{font-size:15px;padding:11px 12px}.awards .btn.primary{font-size:20px}.awards .arrow{font-size:24px;margin-left:0}.text-btn{font-size:13px}.rule-grid{gap:7px}.rule-grid div{font-size:12px;padding:10px 5px}.rule-grid strong{font-size:20px}}@media(min-width:1101px){#app[data-page=solo]{height:100vh;height:100dvh;min-height:0;overflow:hidden}#app[data-page=solo] main{flex:1 1 0;min-height:0;height:auto;max-width:none;padding:12px 3vw 14px;display:flex;flex-direction:column;overflow:auto;box-sizing:border-box}}#app[data-page=solo] .topbar{display:none}.page[data-page=solo] .visually-hidden{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}.page[data-page=solo]{display:flex;flex-direction:column;flex:1;min-height:0}.page[data-page=solo] .back-link{margin:0 0 4px;padding:2px 0;font-size:14px;align-self:flex-start;text-align:left}.page[data-page=solo] .solo-heading{margin:0 0 10px;align-items:baseline}.page[data-page=solo] .solo-heading h1{font-size:clamp(22px,2.4vw,30px)}.page[data-page=solo] .solo-heading p{font-size:14px}.page[data-page=solo] .solo-layout{flex:1 0 auto;min-height:0;gap:14px}.page[data-page=solo] .solo-panel{min-height:0;display:flex;flex-direction:column;padding:14px 16px}.page[data-page=solo] .solo-section-head,.page[data-page=solo] .character-heading{margin-bottom:10px}.page[data-page=solo] .solo-section-head h2,.page[data-page=solo] .character-heading h2{font-size:clamp(18px,1.8vw,24px)}.page[data-page=solo] .preview{flex:1;min-height:140px;height:auto}.page[data-page=solo] .preview-copy{bottom:14px;left:16px;right:16px}.page[data-page=solo] .preview-copy h2{font-size:clamp(22px,2.4vw,34px);margin-bottom:4px}.page[data-page=solo] #stage-grid.maps{margin-top:10px;padding:8px;gap:8px;flex:0 0 auto}.page[data-page=solo] .map-card .thumb-art{height:clamp(56px,9vh,96px)}.page[data-page=solo] .map-card .map-title{padding:6px 10px;font-size:13px}.page[data-page=solo] #solo-stage-order{margin:8px 0 0;flex:0 0 auto}.page[data-page=solo] .solo-panel.right{gap:10px}.page[data-page=solo] #character-picker{gap:8px}.page[data-page=solo] #character-picker button{padding:8px 4px;gap:4px;font-size:14px}.page[data-page=solo] #character-picker button .portrait{height:clamp(44px,7.5vh,76px)!important;width:auto}.page[data-page=solo] .character-info{margin-top:0;min-height:0;padding:8px 12px;flex:0 0 auto;gap:12px}.page[data-page=solo] .character-info .portrait{height:56px!important;width:auto}.page[data-page=solo] .character-info h3{font-size:18px}.page[data-page=solo] .character-info p{font-size:13px}.page[data-page=solo] .stat{margin:2px 0;font-size:12px}.page[data-page=solo] .stats{min-width:40%}.page[data-page=solo] .solo-mode-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.page[data-page=solo] .modes-title{font-size:15px;margin:0}.page[data-page=solo] #solo-mode-hint{margin:0;font-size:12px;color:var(--muted)}.page[data-page=solo] .mode{padding:9px 8px;font-size:15px}.page[data-page=solo] .start{min-height:clamp(52px,8vh,84px);font-size:clamp(20px,2.2vw,28px);margin-top:auto}@media(max-height:760px){.page[data-page=solo] .solo-heading p,.page[data-page=solo] #solo-mode-hint{display:none}.page[data-page=solo] .map-card .map-title{padding:4px 8px;font-size:12px}}@media(max-height:660px){.page[data-page=solo] .solo-heading,.page[data-page=solo] .character-info{display:none}}@media(max-width:1100px){#app[data-page=solo]{height:auto;min-height:100dvh;overflow:visible}#app[data-page=solo] main{height:auto;overflow:visible;display:block;padding:16px 16px 32px}.page[data-page=solo]{display:block}.page[data-page=solo] .preview{min-height:220px;height:clamp(240px,45vw,360px);flex:0 0 auto}.page[data-page=solo] .solo-panel{overflow:visible}.page[data-page=solo] .start{min-height:72px;margin-top:16px}}#app[data-page=solo] #character-picker{gap:8px}#app[data-page=solo] #character-picker button{padding:8px 4px!important;gap:4px!important;font-size:14px;min-height:0!important;height:auto!important;aspect-ratio:auto!important;line-height:1.3}#app[data-page=solo] #character-picker button span:not(.portrait){line-height:1.3}#app[data-page=solo] #character-picker button .portrait{height:clamp(44px,7.5vh,72px)!important;width:auto}#app[data-page=solo] .character-info{margin-top:0;min-height:0;padding:8px 12px;gap:12px}#app[data-page=solo] .character-info .portrait{height:52px!important;width:auto}#app[data-page=solo] .character-info h3{font-size:17px;margin:0}#app[data-page=solo] .character-info p{font-size:12px;margin:2px 0 0}#app[data-page=solo] .stat{margin:2px 0;font-size:12px;grid-template-columns:28px 1fr 30px}#app[data-page=solo] .stat i{height:8px}#app[data-page=solo] .solo-mode-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}#app[data-page=solo] .modes-title{font-size:15px;margin:0}#app[data-page=solo] #solo-mode-hint{margin:0;font-size:12px}#app[data-page=solo] .mode{padding:9px 8px;font-size:15px;min-height:0}#app[data-page=solo] .start{min-height:clamp(52px,8vh,84px);font-size:clamp(20px,2.2vw,28px)}
