html,body{background:#4099ff;width:100%;height:100%;margin:0;padding:0;overflow:hidden}#application-canvas{width:100%;height:100%;display:block}:root{--hud-font:"Titan One", "Arial Rounded MT Bold", system-ui, sans-serif;--ink:#1d1638;--housing:#2a2346;--housing-edge:#140f28;--pink:#ff5fa2;--yellow:#ffd23f;--lamp-stage:#fff4b8;--lamp-amber:#ffb31a;--lamp-green:#33ff5a;--lamp-red:#ff2626}.hud{pointer-events:none;font-family:var(--hud-font);color:#fff;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.hud button{pointer-events:auto;font-family:var(--hud-font)}.tree-hud{z-index:2;transform-origin:50% 0;opacity:1;transition:transform .35s cubic-bezier(.34,1.56,.64,1),opacity .3s;position:absolute;top:18vh;left:50%;transform:translate(-50%)scale(1)}.tree-hud.hidden{opacity:0;transform:translate(-50%)scale(.4)}.tree{--post:6vh;--bulb:5.2vh;--arm:2.2vh;filter:drop-shadow(0 1.2vh #140f288c)drop-shadow(0 2vh 3vh #00000059);flex-direction:column;align-items:center;gap:.7vh;padding-top:.4vh;display:flex;position:relative}.tree-post{width:var(--post);z-index:0;background:linear-gradient(90deg,#26232c,#0c0b10 45%,#1a1820);border-radius:.6vh;justify-content:center;align-items:flex-end;padding-bottom:2vh;display:flex;position:absolute;top:0;bottom:2.5vh;left:50%;transform:translate(-50%)}.tree-logo{writing-mode:vertical-rl;letter-spacing:.06em;color:#fff;margin-bottom:1vh;font-size:4.2vh;font-style:italic;line-height:1}.tree-stand{background:linear-gradient(90deg,#333,#0c0b10);width:1.2vh;height:2.5vh;margin-top:-.7vh}.tree-bar{z-index:1;width:calc(var(--post) + 4 * var(--bulb));text-align:center;letter-spacing:.05em;color:#fff;background:linear-gradient(#26232c,#0c0b10);border-radius:.5vh;padding:.35vh 0;font-size:1.9vh;font-style:italic;position:relative}.tree-row{z-index:1;justify-content:center;gap:var(--post);display:flex;position:relative}.tree-row.small{gap:calc(var(--post) + 1.5vh);margin-top:-.5vh}.bulb-pair{gap:.9vh;display:flex}.bulb-arm{align-items:center;display:flex}.bulb-arm.left{flex-direction:row}.bulb-arm.right{flex-direction:row-reverse}.bulb-arm:after{content:"";width:var(--arm);background:linear-gradient(#3a3740,#111015);height:2.2vh}.bulb{--c:#888;width:var(--bulb);height:var(--bulb);background:radial-gradient(circle at 32% 30%, #ffffff59 0 14%, transparent 16%), radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--c) 30%, #1a1420), color-mix(in srgb, var(--c) 12%, #07060a));border:.5vh solid #111015;border-radius:50%;transition:background 40ms,box-shadow 40ms;display:block}.bulb.small{border-width:.35vh;border-radius:50% 50% 46% 46%;width:2.8vh;height:3.2vh}.bulb.on{background:radial-gradient(circle at 32% 30%, #fffffff2 0 14%, transparent 18%), radial-gradient(circle at 50% 55%, color-mix(in srgb, var(--c) 70%, #fff), var(--c) 55%, color-mix(in srgb, var(--c) 70%, #000));box-shadow:0 0 2.5vh var(--c), 0 0 6vh color-mix(in srgb, var(--c) 60%, transparent)}.bulb.stage{--c:var(--lamp-stage)}.bulb.amber{--c:var(--lamp-amber)}.bulb.green{--c:var(--lamp-green)}.bulb.red{--c:var(--lamp-red)}.tree-names{justify-content:space-between;gap:2vh;margin-top:1.8vh;display:flex}.lane-tag{min-width:10vh;color:var(--ink);text-align:center;border:.45vh solid var(--ink);box-shadow:0 .5vh 0 var(--ink);background:#fff;border-radius:99px;padding:.6vh 1.4vh;font-size:1.9vh}.lane-tag.you{background:var(--yellow)}.lane-tag small{opacity:.7;font-size:1.3vh;display:block}.banner{white-space:nowrap;color:#fff;-webkit-text-stroke:1.1vh var(--ink);paint-order:stroke fill;text-shadow:0 .9vh 0 var(--ink);letter-spacing:.02em;font-size:7vh;position:absolute;top:7vh;left:50%;transform:translate(-50%)}.banner.pop{animation:.45s cubic-bezier(.34,1.56,.64,1) pop}.banner.win{color:var(--yellow)}.banner.lose{color:#c9c3e8}.banner.red{color:var(--lamp-red)}@keyframes pop{0%{transform:translate(-50%)scale(.3)rotate(-6deg)}70%{transform:translate(-50%)scale(1.12)rotate(2deg)}to{transform:translate(-50%)scale(1)rotate(0)}}.race-controls{align-items:center;gap:3vh;display:flex;position:absolute;bottom:7vh;left:50%;transform:translate(-50%)}.race-controls[hidden]{display:none}.go-button,.nos-button{border:.8vh solid var(--ink);color:#fff;-webkit-text-stroke:.6vh var(--ink);paint-order:stroke fill;box-shadow:0 1.2vh 0 var(--ink);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;justify-content:center;align-items:center;transition:transform 80ms,box-shadow 80ms,opacity .2s;display:flex;position:relative}.go-button{background:var(--pink);border-radius:99px;width:30vh;height:12vh;font-size:6vh}.nos-button{background:#1f6bff;border-radius:50%;width:13vh;height:13vh;font-size:3.2vh}.go-button.pressed,.nos-button.pressed{box-shadow:0 .2vh 0 var(--ink);transform:translateY(1vh)}.go-button.pressed{background:#33d65a}.nos-button.pressed{background:#6fd8ff}.go-button.warn{background:#ff2626;animation:.35s ease-in-out infinite alternate hold-warn}@keyframes hold-warn{to{transform:scale(1.08)}}.go-button:disabled,.nos-button:disabled{opacity:.35;cursor:default}.go-button .hint,.nos-button .hint{-webkit-text-stroke:0;color:#fff;text-shadow:0 .3vh 0 var(--ink);white-space:nowrap;font-size:1.8vh;position:absolute;bottom:-4.6vh;left:50%;transform:translate(-50%)}.nos-gauge{border:.3vh solid var(--ink);background:#00000059;border-radius:99px;width:70%;height:1.1vh;margin-top:.5vh;display:block;overflow:hidden}.nos-gauge span{background:linear-gradient(90deg,#7fd8ff,#fff);width:100%;height:100%;display:block}.speedo{border:.6vh solid var(--ink);box-shadow:0 .8vh 0 var(--ink);background:#140f28cc;border-radius:2vh;padding:1.2vh 2.2vh 1.4vh;transition:opacity .25s,transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;bottom:5vh;left:3vh}.speedo.hidden{opacity:0;transform:translateY(4vh)scale(.8)}.speedo-readout{align-items:baseline;gap:1vh;display:flex}.speedo-value{text-align:right;min-width:3ch;color:var(--yellow);-webkit-text-stroke:.6vh var(--ink);paint-order:stroke fill;font-size:7vh;line-height:1}.speedo-unit{font-size:2.4vh}.speedo-bar{background:#ffffff26;border-radius:99px;height:1.2vh;margin-top:.8vh;overflow:hidden}.speedo-bar span{background:linear-gradient(90deg,#33d65a,#ffd23f 60%,#ff2626);width:0;height:100%;display:block}.again-button{border:.6vh solid var(--ink);background:var(--yellow);color:var(--ink);box-shadow:0 .9vh 0 var(--ink);cursor:pointer;border-radius:99px;padding:1.6vh 3.2vh;font-size:2.6vh;position:absolute;bottom:4vh;right:3vh}.again-button:active{box-shadow:0 .2vh 0 var(--ink);transform:translateY(.7vh)}.again-button[hidden]{display:none}.garage{pointer-events:auto;background:#1d163873;place-items:center;transition:opacity .25s;display:grid;position:absolute;inset:0}.garage.hidden{opacity:0;pointer-events:none}.garage-card{width:min(94vw,130vh);max-height:96vh;color:var(--ink);border:.8vh solid var(--ink);box-shadow:0 1.4vh 0 var(--ink);text-align:center;background:#fff;border-radius:3vh;padding:1.8vh 2.6vh 1.6vh;animation:.45s cubic-bezier(.34,1.56,.64,1) card-pop;overflow-y:auto}.garage-welcome{letter-spacing:.08em;color:#1f3fb3;margin-bottom:.6vh;font-size:2vh}.garage-welcome b{color:#e31e2e;font-weight:400}.garage h1{color:var(--pink);-webkit-text-stroke:.7vh var(--ink);paint-order:stroke fill;margin:0 0 .6vh;font-size:4.4vh;font-weight:400}.garage h2{letter-spacing:.08em;margin:1vh 0 .6vh;font-size:1.9vh;font-weight:400}.garage-row{grid-template-columns:repeat(var(--cols,4), 1fr);gap:1vh;display:grid}.part-card{border:.5vh solid var(--ink);color:var(--ink);box-shadow:0 .7vh 0 var(--ink);cursor:pointer;text-align:left;background:#f1eefc;border-radius:1.8vh;flex-direction:column;gap:.3vh;padding:.9vh 1vh;transition:transform .12s cubic-bezier(.34,1.56,.64,1),background .12s;display:flex}.part-card:hover{transform:translateY(-.4vh)}.part-card.selected{background:var(--yellow);transform:translateY(-.6vh)rotate(-1deg)}.part-card strong{font-size:1.9vh;font-weight:400}.part-card span{font-family:system-ui,sans-serif;font-size:1.4vh;font-weight:600}.part-card .plus{color:#138a3a}.part-card .minus{color:#b3203a}.garage-note{max-width:80%;margin:1.2vh auto 1vh;font-family:system-ui,sans-serif;font-size:1.7vh}.ready-button{border:.7vh solid var(--ink);background:var(--pink);color:#fff;-webkit-text-stroke:.5vh var(--ink);paint-order:stroke fill;box-shadow:0 1vh 0 var(--ink);cursor:pointer;border-radius:99px;padding:1.4vh 6vh;font-size:4vh}.ready-button:active{box-shadow:0 .2vh 0 var(--ink);transform:translateY(.8vh)}.garage-hint{opacity:.6;margin:1.6vh 0 0;font-size:1.5vh}@keyframes card-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.timing-slip{--u:1vh;width:calc(var(--u) * 46);padding:calc(var(--u) * 1.6) calc(var(--u) * 2);color:#22202e;border:calc(var(--u) * .5) solid var(--ink);border-radius:calc(var(--u) * 1.4);box-shadow:0 calc(var(--u) * 1) 0 var(--ink);font-family:ui-monospace,Consolas,monospace;font-size:calc(var(--u) * 1.9);background:#fffdf4;animation:.5s cubic-bezier(.34,1.56,.64,1) both slip-in}.timing-slip.compact{--u:.78vh}.slip-header{text-align:center;padding-bottom:calc(var(--u) * .8);border-bottom:calc(var(--u) * .3) dashed #22202e;margin-bottom:calc(var(--u) * .8)}.slip-title{font-family:var(--hud-font);font-size:calc(var(--u) * 2.8);color:var(--pink);-webkit-text-stroke:calc(var(--u) * .35) var(--ink);paint-order:stroke fill}.slip-sub{font-size:calc(var(--u) * 1.5);letter-spacing:.12em}.slip-row{grid-template-columns:22% 39% 39%;align-items:baseline;display:grid}.slip-row span:not(:first-child){text-align:right}.slip-sides{font-size:calc(var(--u) * 1.3);letter-spacing:.1em;opacity:.6}.slip-lanes{margin-bottom:calc(var(--u) * .6);align-items:start}.slip-lane{text-align:right;line-height:1.25}.slip-name{font-family:var(--hud-font);font-size:calc(var(--u) * 2.1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.slip-lane.you .slip-name{color:#d19a00}.slip-lane-no{font-size:calc(var(--u) * 1.25);opacity:.7}.red-badge{padding:0 calc(var(--u) * .5);border-radius:calc(var(--u) * .4);background:var(--lamp-red);color:#fff;opacity:1;display:inline-block}.slip-rows .slip-row{padding:calc(var(--u) * .15) 0}.slip-rows .red{color:#e01010;font-weight:700}.slip-row.total{margin-top:calc(var(--u) * .5);padding-top:calc(var(--u) * .5);border-top:calc(var(--u) * .3) dashed #22202e;font-weight:700}.slip-footer{margin-top:calc(var(--u) * .8);padding-top:calc(var(--u) * .8);border-top:calc(var(--u) * .3) dashed #22202e;text-align:center}.slip-winner b{font-family:var(--hud-font);font-weight:400;font-size:calc(var(--u) * 2.6);color:#138a3a}.slip-margin{font-size:calc(var(--u) * 1.6)}@keyframes slip-in{0%{opacity:0;transform:translateY(8vh)rotate(-8deg)scale(.7)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.player-slip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-1.5deg)}.player-slip.hidden,.heat-results.hidden{display:none}.heat-results{background:#1d16388c;flex-direction:column;justify-content:center;align-items:center;gap:1.6vh;display:flex;position:absolute;inset:0}.heat-results h1,.heat-footer{-webkit-text-stroke:.9vh var(--ink);paint-order:stroke fill;text-shadow:0 .7vh 0 var(--ink);margin:0;font-size:5.5vh;font-weight:400;animation:.45s cubic-bezier(.34,1.56,.64,1) pop-center}.heat-footer{color:var(--yellow);font-size:4vh}.heat-grid{grid-template-columns:repeat(2,auto);gap:1.6vh 2.4vh;display:grid}@keyframes pop-center{0%{transform:scale(.3)}70%{transform:scale(1.1)}to{transform:scale(1)}}.replay-badge{border:.6vh solid var(--ink);color:#fff;box-shadow:0 .8vh 0 var(--ink);background:#e31e2e;border-radius:99px;padding:1vh 2.4vh;font-size:3vh;animation:1s ease-in-out infinite replay-pulse;position:absolute;top:3vh;left:3vh}.replay-badge[hidden]{display:none}@keyframes replay-pulse{50%{opacity:.75;transform:scale(.96)}}.name-tags{z-index:0;position:absolute;inset:0;overflow:hidden}.name-tag{--car:#888;--lift:1.3vh;will-change:transform;position:absolute;top:0;left:0}.name-tag span{border:.45vh solid var(--ink);color:var(--ink);white-space:nowrap;box-shadow:inset 0 -.7vh 0 var(--car), 0 .5vh 0 var(--ink);transform-origin:50% 120%;margin-bottom:var(--lift);background:#fff;border-radius:99px;padding:.5vh 1.3vh;font-size:1.8vh;transition:transform .28s cubic-bezier(.34,1.56,.64,1);display:block;position:relative;transform:scale(0)translateY(2vh)}.name-tag.raised{--lift:5.4vh}.name-tag.raised span:before{content:"";width:.45vh;height:calc(var(--lift) - .2vh);background:var(--ink);position:absolute;top:100%;left:50%;transform:translate(-50%)}.name-tag span:after{content:"";background:var(--car);border-right:.45vh solid var(--ink);border-bottom:.45vh solid var(--ink);width:1.2vh;height:1.2vh;position:absolute;bottom:-1.35vh;left:50%;transform:translate(-50%)rotate(45deg)}.name-tag.shown span{transform:scale(1)translateY(0)}.name-tag.you span{background:var(--yellow);font-size:2.2vh}.temp-gauge{flex-direction:column;align-items:center;gap:.4vh;display:flex;position:relative}.temp-label{color:#fff;text-shadow:0 .3vh 0 var(--ink);font-size:1.5vh}.temp-tube{border:.5vh solid var(--ink);width:3.2vh;height:11vh;box-shadow:0 .6vh 0 var(--ink);background:#140f28bf;border-radius:99px;display:block;position:relative;overflow:hidden}.temp-tube span{background:linear-gradient(#ff2626,#ffd23f 45%,#33d65a) bottom/100% 11vh;height:0;position:absolute;bottom:0;left:0;right:0}.temp-gauge.hot .temp-tube{border-color:#ff7a00}.temp-gauge.overheated .temp-tube{animation:.25s steps(2,end) infinite overheat}@keyframes overheat{50%{box-shadow:0 0 2vh #ff2626, 0 .6vh 0 var(--ink);border-color:#ff2626}}.temp-damage{white-space:nowrap;color:#ff2626;-webkit-text-stroke:.35vh var(--ink);paint-order:stroke fill;font-size:1.6vh;position:absolute;top:-3.6vh;left:50%;transform:translate(-50%)}.bracket-screen{z-index:5;pointer-events:auto;background:#140f28d1;flex-direction:column;align-items:center;padding:3vh 3vh 12vh;display:flex;position:absolute;inset:0}.bracket-screen.hidden,.upnext.hidden,.podium.hidden{display:none}.bracket-screen h1,.upnext h1,.podium h1{color:var(--yellow);-webkit-text-stroke:.8vh var(--ink);paint-order:stroke fill;text-shadow:0 .7vh 0 var(--ink);margin:0;font-size:5vh;font-weight:400;animation:.45s cubic-bezier(.34,1.56,.64,1) pop-center}.bm-sub{color:#fff;margin:.6vh 0 1.6vh;font-size:2.2vh}.bm-scroll{flex:1;width:100%;overflow:auto}.bm-grid{gap:2.4vh;width:max-content;min-height:100%;margin:0 auto;display:flex}.bm-column{flex-direction:column;min-width:17vh;display:flex}.bm-round{text-align:center;color:#b9b0e0;margin-bottom:.8vh;font-size:1.8vh}.bm-matches{flex-direction:column;flex:1;justify-content:space-around;gap:.8vh;display:flex}.bm-match{border:.35vh solid var(--ink);box-shadow:0 .4vh 0 var(--ink);background:#fff;border-radius:1vh;overflow:hidden}.bm-match.bye{opacity:.75}.bm-side{color:var(--ink);white-space:nowrap;padding:.35vh 1vh;font-size:1.55vh}.bm-side+.bm-side{border-top:.2vh solid #d9d4ee}.bm-side.won{color:#0d7a2c;background:#d8ffe0}.bm-side.lost{color:#9b95b8;text-decoration:line-through}.bm-side.empty{color:#b9b0e0}.bm-side.you{background:var(--yellow)}.upnext{z-index:5;background:#140f288c;place-items:center;display:grid;position:absolute;inset:0}.un-card{text-align:center}.un-kicker{color:#fff;letter-spacing:.2em;font-size:2.6vh}.un-heat{color:#fff;margin-top:.6vh;font-size:2.4vh}.un-pairs{grid-template-columns:repeat(2,auto);gap:1.6vh 2.4vh;margin-top:2.4vh;display:grid}.un-pair{border:.5vh solid var(--ink);color:var(--ink);box-shadow:0 .7vh 0 var(--ink);background:#fff;border-radius:1.6vh;padding:1.2vh 2vh;animation:.45s cubic-bezier(.34,1.56,.64,1) both slip-in}.un-pair.you{background:var(--yellow)}.un-id{color:#6b6590;font-size:1.5vh}.un-names{align-items:center;gap:1.4vh;font-size:2.6vh;display:flex}.un-names b{color:#e31e2e;font-size:1.8vh;font-weight:400}.podium{z-index:5;pointer-events:auto;background:#140f28b3;flex-direction:column;justify-content:center;align-items:center;gap:2vh;display:flex;position:absolute;inset:0}.pd-steps{align-items:flex-end;gap:2vh;display:flex}.pd-step{flex-direction:column;align-items:center;animation:.6s cubic-bezier(.34,1.56,.64,1) both slip-in;display:flex}.pd-step.first{animation-delay:.4s}.pd-step.third{animation-delay:.2s}.pd-medal{font-size:6vh}.pd-name{color:#fff;-webkit-text-stroke:.5vh var(--ink);paint-order:stroke fill;margin:.8vh 0;font-size:2.8vh}.pd-step.you .pd-name{color:var(--yellow)}.pd-block{border:.7vh solid var(--ink);color:#fff;-webkit-text-stroke:.7vh var(--ink);paint-order:stroke fill;border-radius:1.4vh 1.4vh 0 0;place-items:center;width:20vh;font-size:7vh;display:grid}.pd-step.first .pd-block{background:#ffd23f;height:26vh}.pd-step.second .pd-block{background:#c9d3e6;height:19vh}.pd-step.third .pd-block{background:#e59b5a;height:14vh}.status-badge{border:.5vh solid var(--ink);color:var(--ink);box-shadow:0 .6vh 0 var(--ink);background:#fff;border-radius:99px;padding:.9vh 2vh;font-size:2vh;position:absolute;top:3vh;right:3vh}.status-badge[hidden]{display:none}.bm-grid{min-height:max(56vh, calc(var(--rows,1) * 6vh));position:relative}.bm-lines{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.bm-lines path{fill:none;stroke:#ffffffbf;stroke-width:3px}.bm-column{z-index:1;position:relative}.bm-center{min-width:24vh}.bm-center .bm-matches{justify-content:center;gap:4vh}.bm-champ,.bm-consolation{text-align:center;flex-direction:column;align-items:stretch;gap:.6vh;display:flex}.bm-champ-label{color:var(--yellow);font-size:1.7vh}.bm-champ-name{color:#fff;-webkit-text-stroke:.5vh var(--ink);paint-order:stroke fill;font-size:3vh}.bm-champ-name.small{font-size:2vh}.bm-match.final{box-shadow:0 0 2.5vh #ffd23f99, 0 .5vh 0 var(--ink);border-width:.5vh}.bm-match.final .bm-side{padding:.6vh 1.2vh;font-size:2vh}.lobby{z-index:6;pointer-events:auto;background:radial-gradient(#140f2859,#140f28bf);place-items:center;display:grid;position:absolute;inset:0}.lobby.hidden,.identity.hidden{display:none}.lobby-card{text-align:center;width:min(92vw,100vh);color:var(--ink);border:.8vh solid var(--ink);box-shadow:0 1.4vh 0 var(--ink);background:#fff;border-radius:3vh;padding:3vh 4vh;animation:.45s cubic-bezier(.34,1.56,.64,1) card-pop}.lobby-kicker{letter-spacing:.2em;color:#1f3fb3;font-size:2.4vh}.lobby-card h1{color:#e31e2e;-webkit-text-stroke:.8vh var(--ink);paint-order:stroke fill;margin:.4vh 0;font-size:6vh;font-weight:400;line-height:1.05}.lobby-sub{margin-bottom:2.4vh;font-family:system-ui,sans-serif;font-size:1.9vh}.lobby-card{box-sizing:border-box;max-width:calc(100vw - 32px);max-height:96vh;overflow-y:auto}@media (width<=600px){.lobby-card{padding:2.4vh 2.2vh}.lobby-card h1{font-size:4.6vh}.join-button{padding:1.4vh 6vh}}.how-to{text-align:left;border:.3vh solid var(--ink);background:#f2efff;border-radius:1.6vh;max-width:78vh;margin:2.6vh auto 0;padding:1.4vh 2.2vh}.how-to-title{text-align:center;color:#2b44c8;margin-bottom:.6vh;font-size:2.2vh}.how-to ol{margin:0;padding-left:2.6vh;font-family:system-ui,sans-serif;font-size:1.75vh;line-height:1.45}.how-to li+li{margin-top:.4vh}.how-to kbd{border:.2vh solid var(--ink);font:inherit;background:#fff;border-radius:.5vh;padding:0 .6vh;font-weight:700}.how-green{color:#1a9d3a}.how-red{color:#e31e2e}.join-button{padding:1.6vh 9vh;font-size:6vh;animation:1.2s ease-in-out infinite join-bounce}@keyframes join-bounce{50%{transform:translateY(-.6vh)scale(1.04)}}.lobby-in{border:.6vh solid var(--ink);color:#fff;-webkit-text-stroke:.5vh var(--ink);paint-order:stroke fill;background:#33d65a;border-radius:99px;padding:1.4vh 4vh;font-size:4vh;display:inline-block}.lobby-timer{margin-top:2vh;font-size:3vh}.lobby-count{color:#e31e2e;min-width:2ch;font-size:5vh;display:inline-block}.lobby-wait{color:#6b6590;margin-top:2vh;font-size:2.2vh}.lobby-players{flex-wrap:wrap;justify-content:center;gap:.8vh;max-height:22vh;margin-top:2vh;display:flex;overflow-y:auto}.lobby-empty,.lobby-count-line{color:#6b6590;font-family:system-ui,sans-serif;font-size:1.7vh}.lobby-count-line{margin-top:1vh}.p-chip{border:.35vh solid var(--ink);background:#f1eefc;border-radius:99px;align-items:center;gap:.6vh;padding:.4vh 1.2vh;font-size:1.8vh;display:inline-flex}.p-chip.you{background:var(--yellow)}.p-chip i,.bm-side i,.dot{border:.25vh solid var(--ink);vertical-align:middle;border-radius:50%;width:1.4vh;height:1.4vh;margin-right:.5vh;display:inline-block}.host-panel{z-index:8;border:.4vh solid var(--yellow);color:#fff;pointer-events:auto;background:#140f28e6;border-radius:1.4vh;width:26vh;padding:1.4vh 1.6vh;font-size:1.7vh;position:absolute;bottom:2vh;left:2vh}.host-panel[hidden]{display:none}.host-title{width:100%;color:var(--yellow);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:.8vh;padding:0;display:block}.host-panel.collapsed{width:auto;padding:.8vh 1.4vh}.host-panel.collapsed .host-title{margin-bottom:0}.host-row{margin:.5vh 0;font-family:system-ui,sans-serif;display:block}.host-row select{font:inherit}.host-button{border:.4vh solid var(--ink);background:var(--pink);color:#fff;width:100%;font-family:var(--hud-font);cursor:pointer;border-radius:99px;margin-top:1vh;padding:1vh;font-size:2.2vh;display:block}.host-link{word-break:break-all;opacity:.8;margin-top:1vh;font-family:system-ui,sans-serif;font-size:1.4vh}.spectating-badge,.connection-note{color:var(--yellow);white-space:nowrap;background:#140f28d9;border-radius:99px;padding:.8vh 2vh;font-size:1.8vh;position:absolute;bottom:2vh;left:50%;transform:translate(-50%)}.connection-note{z-index:9;white-space:normal;text-align:center;border-radius:2vh;width:max-content;max-width:calc(100vw - 32px);padding:1.6vh 3vh;font-size:3vh;top:45%;bottom:auto}.spectating-badge[hidden],.connection-note[hidden]{display:none}.mute-button{z-index:9;border:.4vh solid var(--ink);cursor:pointer;pointer-events:auto;background:#fff;border-radius:50%;width:5.6vh;height:5.6vh;font-size:2.6vh;position:absolute;bottom:2vh;right:2vh}.music-button{right:9vh}.music-button.off{opacity:.4;text-decoration:line-through}.identity-card{width:min(92vw,70vh)}.id-label{letter-spacing:.08em;margin:1.4vh 0 .6vh;font-size:2vh;display:block}.id-name{border:.5vh solid var(--ink);width:80%;font-family:var(--hud-font);text-align:center;color:var(--ink);border-radius:1.4vh;padding:1vh 1.6vh;font-size:3.4vh}.id-swatches{grid-template-columns:repeat(8,1fr);gap:1vh;width:80%;margin:0 auto;display:grid}.id-swatch{aspect-ratio:1;border:.45vh solid var(--ink);cursor:pointer;box-shadow:0 .4vh 0 var(--ink);border-radius:1vh}.id-swatch.selected{outline:.5vh solid var(--yellow);transform:translateY(-.5vh)scale(1.12)}.id-timer{margin-top:1.6vh;font-size:2.4vh}.id-timer span{color:#e31e2e;font-size:3.4vh}.lobby-room{letter-spacing:.15em;color:#6b6590;min-height:1.6vh;font-size:1.6vh}.lobby-host{letter-spacing:.12em;color:#6b6590;margin:.4vh 0 1.2vh;font-size:1.8vh}.lobby-host span{letter-spacing:.04em;color:#2b44c8;font-size:2.6vh}.host-invite{border-top:.2vh solid #fff3;margin-top:1.2vh;padding-top:1vh}.host-invite-label{color:var(--yellow);font-size:1.5vh}.host-invite-link{word-break:break-all;-webkit-user-select:all;user-select:all;margin:.4vh 0;font-family:system-ui,sans-serif;font-size:1.8vh;font-weight:700}.host-button.copy{background:#1f6bff;font-size:1.8vh}.host-login-error{color:#e31e2e;min-height:2.4vh;margin:.6vh 0 1vh;font-family:system-ui,sans-serif;font-size:1.8vh;font-weight:700}.lobby-private{background:var(--ink);color:var(--yellow);letter-spacing:.08em;border-radius:99px;margin-bottom:.8vh;padding:.4vh 1.4vh;font-size:1.6vh;display:inline-block}.lobby-private[hidden],.lobby-full[hidden]{display:none}.lobby-full{color:#b3203a;margin:1vh 0;font-family:system-ui,sans-serif;font-size:2vh;font-weight:600}.brand-pill{background:var(--ink);color:#fff;letter-spacing:.08em;border-radius:99px;margin-bottom:1vh;padding:.5vh 1.8vh;font-size:1.8vh;text-decoration:none;display:inline-block}.mode-buttons{grid-template-columns:repeat(2,1fr);gap:2vh;margin:1vh 0 2vh;display:grid}.mode-button{border:.7vh solid var(--ink);box-shadow:0 1vh 0 var(--ink);color:#fff;border-radius:2.4vh;flex-direction:column;gap:.6vh;padding:2.2vh 2vh;text-decoration:none;transition:transform .12s cubic-bezier(.34,1.56,.64,1);display:flex}.mode-button:hover{transform:translateY(-.5vh)rotate(-1deg)}.mode-button:active{box-shadow:0 .2vh 0 var(--ink);transform:translateY(.8vh)}.mode-button.solo{background:var(--pink)}.mode-button.friend{background:#2b44c8}.mode-name{-webkit-text-stroke:.45vh var(--ink);paint-order:stroke fill;font-size:3.6vh}.mode-desc{font-family:system-ui,sans-serif;font-size:1.8vh;font-weight:600}.mode-more{font-family:system-ui,sans-serif;font-size:1.8vh;line-height:1.5}.mode-more p{margin:.4vh 0}.mode-more a{color:#2b44c8;font-weight:700}.mode-streamer{border:.7vh solid var(--ink);box-shadow:0 1vh 0 var(--ink);color:var(--ink);background:linear-gradient(135deg,#ffd23f,#ff9f1c);border-radius:2.4vh;flex-direction:column;align-items:center;gap:.8vh;margin:0 0 2vh;padding:2.4vh 2.4vh 2.2vh;text-decoration:none;transition:transform .12s cubic-bezier(.34,1.56,.64,1);display:flex}.mode-streamer:hover{transform:translateY(-.5vh)rotate(.6deg)}.mode-streamer:active{box-shadow:0 .2vh 0 var(--ink);transform:translateY(.8vh)}.mode-streamer .mode-name{color:#fff;font-size:4vh}.mode-streamer .mode-desc{max-width:60vh;font-size:1.9vh}.streamer-badge{background:var(--ink);color:var(--yellow);letter-spacing:.1em;border-radius:99px;padding:.3vh 1.4vh;font-size:1.6vh}.streamer-cta{border:.5vh solid var(--ink);color:#fff;-webkit-text-stroke:.3vh var(--ink);paint-order:stroke fill;background:#e31e2e;border-radius:99px;margin-top:.6vh;padding:1vh 2.4vh;font-size:2.2vh}@media (width<=600px){.mode-buttons{grid-template-columns:1fr}}.credits{color:#6b6590;margin-top:2vh;font-family:system-ui,sans-serif;font-size:1.5vh;line-height:1.5}.credits b{color:var(--ink)}@media (width<=600px){.garage-card{box-sizing:border-box;width:calc(100vw - 16px);padding:1.4vh 1.6vh 0}.garage-row{grid-template-columns:repeat(2,1fr)}.garage .id-timer{background:#fff;padding:1vh 0 1.4vh;position:sticky;bottom:0}.timing-slip{--u:min(1vh, calc((100vw - 40px) / 51))}.timing-slip.compact{--u:min(.78vh, calc((100vw - 40px) / 51))}.heat-results{justify-content:safe center;padding:3vh 0 14vh;overflow-y:auto}.heat-grid{grid-template-columns:1fr}}
