*{box-sizing:border-box}body{margin:0;background:#101b2c;color:#eff6fb;font:16px/1.5 system-ui,sans-serif}button,input,a{font:inherit}a{color:#91e4e6}button,a.primary{cursor:pointer}button{border:0}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:4px}button,input{min-height:48px;border-radius:10px}input{padding:13px 16px;background:#0c1727;border:1px solid #607285;color:white;width:100%}label{display:block;margin:10px 0 7px;font-weight:650}h1{font-size:clamp(28px,4vw,44px);line-height:1.1;margin:12px 0 22px}h2{font-size:23px}.primary,.secondary{display:inline-block;text-align:center;text-decoration:none;padding:15px 24px;font-weight:850}.primary{background:#c4f178;color:#13282c;box-shadow:0 5px 0 #5f7d3f}.secondary{background:#293e55;color:#edf6fa}.muted{color:#b5c8d8}.eyebrow{font-size:14px;letter-spacing:.14em;font-weight:850;color:#c4f178}.title-page{background:radial-gradient(ellipse at 50% 46%,#265d6b 0,#15283d 48%,#0b1224 100%);min-height:100dvh}.title-stage{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 20px 24px;overflow:hidden}.game-title{font-size:clamp(45px,9vw,116px);line-height:.88;text-align:center;font-weight:1000;font-style:italic;letter-spacing:-.055em;text-shadow:0 7px 0 #152333;margin:0 0 38px;z-index:1}.game-title span{color:#c4f178;letter-spacing:.025em}.title-karts{display:flex;align-items:end;justify-content:center;height:clamp(180px,29vh,330px);width:min(920px,100%);order:-1;margin-bottom:12px}.title-karts canvas{width:28%;max-height:100%;object-fit:contain;filter:drop-shadow(0 15px 13px #07111ba0)}.title-karts canvas:nth-child(2){width:36%;z-index:1}.title-stage section{text-align:center;z-index:1;width:min(680px,100%)}#titleStart{min-width:250px}#cover p{color:#c4d7e4}.mode-choices{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mode-choices a{border-radius:12px;font-size:21px}.mode-choices span{display:block;font-size:14px;font-weight:500;margin-top:6px}.mode-choices .friends{background:#79dfe6;box-shadow:0 5px 0 #286877}.lobby-shell{max-width:1100px;margin:auto;padding:28px 26px 60px}.menu-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:38px}.wordmark{color:white;text-decoration:none;font-weight:950;font-size:24px;font-style:italic;letter-spacing:-.05em}.wordmark span{color:#c4f178}.connection-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:25px}.connection-choices article{background:#1b2d42;border:1px solid #3c5368;padding:24px;border-radius:16px}.connection-choices h2{margin-top:0}#driverName{max-width:420px}.join{display:flex;gap:12px}.join input{min-width:0;text-transform:uppercase}.join button{flex-shrink:0}#status{color:#91e4e6;min-height:24px}#status.error{color:#ffb4a1}.room-top{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.room-top>div{margin-right:auto}.room-top .eyebrow{display:block}#roomCode{font-size:32px;letter-spacing:.14em}.player-slots{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;gap:10px;margin:24px 0 34px}.player-slots li{border-left:4px solid var(--slot-color);padding:10px 13px;background:#1b2e43;border-radius:6px;min-width:0}.player-slots b{display:block;overflow-wrap:anywhere}.player-slots small{font-size:14px;color:#becfdc}.character-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:24px 0}.character-card{position:relative;background:#1c3045;color:white;border:3px solid transparent;padding:8px 6px;min-width:0}.character-card canvas{display:block;width:100%;height:auto}.character-card strong{display:block;font-size:14px}.character-card.claimed{border-color:var(--slot-color);background:color-mix(in srgb,var(--slot-color) 15%,#142238);opacity:1}.player-badge{position:absolute;top:4px;left:5px;color:#122235;background:var(--slot-color);border-radius:5px;padding:1px 6px;font-size:14px;font-weight:850}.course-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.course-card{display:flex;align-items:center;gap:16px;text-align:left;color:#e8f2f7;background:#1c3045;border:2px solid #40576b;padding:16px 20px;font-weight:750}.course-card.selected{border-color:#c4f178;background:#2d453d}.course-order{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#0d1a29;color:#c4f178;flex-shrink:0}.playlist{padding-left:24px;color:#c4f178}.playlist:empty{display:none}.menu-actions{display:flex;flex-wrap:wrap;gap:15px}#loadingPanel{padding:34px 0}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;margin:24px 0;text-align:left}th{font-size:14px;color:#aec5d6}th,td{padding:14px 12px;border-bottom:1px solid #334e65}td:nth-child(2){border-left:4px solid var(--slot-color)}tr.champion{background:#293f3b}.download-note{font-size:14px;color:#a4bdce;margin-top:44px}#celebration{text-align:center;position:relative;padding-top:24px}#winnerKart{display:block;width:min(400px,80%);height:auto;margin:auto;filter:drop-shadow(0 14px 22px #c4f13225)}.trophy{position:absolute;top:30px;left:calc(50% + 92px);font-size:90px;z-index:1}#congratulations{color:#d3f29b}#raceView{position:fixed;inset:0;z-index:20;background:#101b2c}#raceFrame{border:0;width:100%;height:100%}#exitRace{position:absolute;right:4%;top:74px;font-size:14px;padding:8px 12px;min-height:38px}#raceRound{position:absolute;left:50%;top:20px;transform:translateX(-50%);color:#fff;background:#152b3bcf;padding:6px 14px;border-radius:20px;font-size:14px;pointer-events:none}[hidden]{display:none!important}@media(max-width:760px){.character-grid{grid-template-columns:repeat(4,1fr)}.player-slots{grid-template-columns:repeat(2,1fr)}.connection-choices{grid-template-columns:1fr}.menu-header{align-items:start}.wordmark{font-size:20px}.course-list{grid-template-columns:1fr}.lobby-shell{padding:20px 16px 45px}#raceRound{top:75px;left:20px;transform:none}}@media(max-width:440px){.character-grid{grid-template-columns:repeat(3,1fr);gap:8px}.mode-choices{grid-template-columns:1fr}.mode-choices a{font-size:18px}.title-karts{height:190px}.join{flex-direction:column}.menu-header{flex-direction:column;gap:10px}.trophy{font-size:66px;left:calc(50% + 70px)}#raceRound{top:115px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

#raceView[data-loading=true]{visibility:hidden;pointer-events:none}
