.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:20px;border:2px solid #e4def1;background:#f7f5fc}.mode-card>strong{font:900 25px Nunito,sans-serif}.mode-card>span:last-child{font-size:14px;font-weight:400;line-height:1.5}.mode-card[aria-pressed=true]{border-color:#7752c6;box-shadow:0 0 0 3px #7752c625;background:#efe8ff}.mode-icon{display:grid;place-items:center;width:42px;height:42px;background:#30275f;color:#ffd84d;border-radius:13px;font-size:25px}.mode-card.mode-race .mode-icon{background:#12645d;color:#b2ffe6}.mode-card.mode-teams .mode-icon{background:#562d91;color:#ffc8f0}.mode-card.mode-coop .mode-icon{background:#802759;color:#ffdc7c}#mode-error{color:#a32344}.mode-lobby{display:flex;gap:20px;align-items:center;justify-content:space-between;text-align:left;background:#ffffff10;border:1px solid #ffffff25;border-radius:18px;padding:18px;margin:20px 0}.mode-lobby p{font-size:14px;margin:10px 0 0;max-width:740px}.panel .mode-lobby{background:#f0eafa;border-color:#ded2f3}.game-badge{display:inline-block;background:#fff1b4;color:#30275f;white-space:nowrap}.team-label{display:block;font-size:12px;margin-top:5px;color:#aaffea}.team-label.team-1{color:#ffc2f0}.panel .team-label{color:#087568}.panel .team-label.team-1{color:#922477}.game-board{border-radius:24px;padding:28px;margin:0 0 28px;overflow:hidden;color:#fff;background:#17143b;position:relative;border:1px solid #ffffff25}.game-board .eyebrow{color:#c3b3ee}.game-board h2{margin:7px 0 12px}.game-board p{color:#e5dcf7;max-width:850px}.game-board .hint{color:#c8bddb;font-size:13px}.game-board-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.mode-emblem{font-size:54px;line-height:1;color:#ffd84d}.mode-race.game-board{background:linear-gradient(130deg,#102d3c,#17143b 75%)}.race-lanes{display:grid;gap:14px}.race-lane{border-radius:14px;background:#ffffff09;padding:10px 16px}.race-lane.my-lane{outline:2px solid #ffd84d}.racer-label{display:flex;justify-content:space-between;gap:12px;font-size:14px}.racer-label strong{overflow-wrap:anywhere}.racer-label>span{white-space:nowrap;color:#b7f9e7}.race-track{height:59px;position:relative;border-bottom:2px dashed #62dac060;margin:5px 0}.race-track:before{content:'';position:absolute;inset:20px 0 8px;background:linear-gradient(90deg,#52d9bd08,#52d9bd20);border-radius:100px}.track-finish{position:absolute;right:0;top:6px;font-size:32px;color:#ffd84d}.racing-duck{position:absolute;top:2px;left:var(--distance);animation:duck-dash 1.6s cubic-bezier(.2,.7,.3,1) both}.racing-duck .duck-avatar{width:48px;height:48px;box-shadow:0 4px 15px #0004}.team-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.team-score{text-align:center;border-radius:20px;padding:24px;background:#0b6b6333;border:1px solid #63efd360}.team-score.team-1{background:#aa3e9526;border-color:#f286d560}.team-score .duck-large{width:95px;height:95px;margin:auto}.team-score h3{font-size:23px;margin:14px 0 8px;color:#b9fff0}.team-score.team-1 h3{color:#ffbeed}.team-points{display:block;font:900 52px Nunito,sans-serif;color:#fff;margin:10px 0}.team-score>span{font-size:13px}.team-meter,.party-meter{height:12px;background:#ffffff13;border-radius:20px;overflow:hidden;margin:18px 0 0}.team-meter i,.party-meter i{display:block;height:100%;background:#5de5c3;border-radius:20px;animation:meter-fill 1.3s ease-out both}.team-1 .team-meter i{background:#f58cd3}.mode-coop.game-board{background:radial-gradient(ellipse at 40% 25%,#63277c,#211536 65%)}.disco-scene{position:relative;min-height:250px;display:flex;align-items:center;justify-content:center;gap:45px;padding:25px}.dance-floor{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:290px;transform:perspective(500px) rotateX(30deg) rotateZ(-8deg);padding:15px;background:#130c26;border-radius:15px}.dance-floor i{height:40px;border-radius:5px;background:#342a46;border:1px solid #574669;transition:background 1s}.dance-floor i.lit{background:#f087c9;box-shadow:0 0 14px #f087c966}.dance-floor i.lit:nth-child(3n){background:#6cdbc8;box-shadow:0 0 14px #6cdbc866}.dance-floor i.lit:nth-child(3n+1){background:#f6d673;box-shadow:0 0 14px #f6d67366}.dj-duck{position:absolute;left:calc(50% - 170px);top:0;z-index:1;transform:rotate(-8deg)}.dj-duck .duck-large{width:100px;height:100px}.party-percent{font:900 60px Nunito,sans-serif;color:#ffe482;white-space:nowrap}.party-percent small{display:block;font:800 10px 'DM Sans',sans-serif;letter-spacing:.15em;text-align:center;margin-top:5px}.party-meter{height:15px;margin:0 0 20px}.party-meter i{background:linear-gradient(90deg,#6cdbc8,#ee80c7,#ffe482)}.party-milestones{display:flex;gap:10px;flex-wrap:wrap}.party-milestones span{border:1px solid #8c739d;border-radius:100px;padding:5px 12px;font-size:11px;letter-spacing:.08em;color:#c1accc}.party-milestones .reached{background:#ffe482;color:#351b44;border-color:#ffe482}.party-unlocked .dj-duck{animation:duck-groove 2.2s ease-in-out infinite}.party-unlocked .disco-ball{animation:duck-groove 3s ease-in-out infinite}.round-identity{flex-wrap:wrap}.game-board .avatar{flex-shrink:0}@keyframes duck-dash{from{left:var(--from,0%);transform:rotate(-8deg)}to{left:var(--distance);transform:rotate(0)}}@keyframes meter-fill{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes duck-groove{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-9px) rotate(8deg)}}@media(max-width:650px){.mode-grid{grid-template-columns:1fr}.mode-card{padding:16px}.game-board{padding:18px}.game-board h2{font-size:26px}.team-score-grid{gap:10px}.team-score{padding:14px 7px}.team-score h3{font-size:18px}.team-points{font-size:36px}.team-score .duck-large{width:65px;height:65px}.mode-lobby{align-items:flex-start;flex-direction:column}.disco-scene{gap:15px;padding:25px 0;min-height:210px}.dance-floor{width:210px;gap:5px;padding:9px}.dance-floor i{height:30px}.party-percent{font-size:38px}.dj-duck{left:20px}.dj-duck .duck-large{width:75px;height:75px}.racer-label{font-size:12px}.mode-emblem{font-size:38px}}@media(prefers-reduced-motion:reduce){.racing-duck,.team-meter i,.party-meter i,.party-unlocked .dj-duck,.party-unlocked .disco-ball{animation:none}.dance-floor i{transition:none}}

/* Keep the game and the top three together on classroom displays. */
.stage:has(.game-board) .top-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;gap:12px;margin:12px 0}.stage:has(.game-board) .top-three li{display:flex;flex-wrap:wrap;padding:12px;gap:9px}.stage:has(.game-board) .top-three li strong{flex:1;min-width:60px}.stage:has(.game-board) .top-three li>span:last-child{font-size:13px}.stage:has(.game-board) .lobby-footer{margin-top:18px}.stage:has(.game-board) .lobby-footer p{margin:0}.stage .game-board{padding:20px;margin-bottom:16px}.stage .team-score{padding:15px}.stage .team-score .duck-large{width:65px;height:65px}.stage .team-points{font-size:40px;margin:5px 0}.stage .team-score h3{margin:8px 0}.race-lanes{gap:7px}.race-lane{padding:6px 12px}.race-track{height:43px}.racing-duck .duck-avatar{width:36px;height:36px}.track-finish{font-size:25px}@media(max-width:650px){.stage:has(.game-board) .top-three{grid-template-columns:1fr}.stage .game-board{padding:14px}.stage .team-score{padding:12px 5px}.stage .team-points{font-size:28px}}

.race-track{margin-right:40px}.track-finish{right:-32px}.sound-toggle{font-size:12px;padding:5px 10px;margin-left:8px;background:#fff;color:#30275f}.stage .sound-toggle{min-height:0}
