.challenge-main{max-width:1240px;margin:auto;padding:32px}.challenge-heading{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:24px}.challenge-heading h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;letter-spacing:-1.5px;margin:0 0 12px}.challenge-heading p{color:var(--muted)}.challenge-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.challenge-controls button,.challenge-controls a{white-space:normal}.challenge-avatar{display:inline-flex;width:64px;height:64px;flex-shrink:0;vertical-align:middle}.challenge-avatar svg{width:100%;height:100%;filter:drop-shadow(0 3px 1px #0002)}.avatar-picker{margin:24px 0;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--white)}.avatar-picker h2{margin-top:0}.avatar-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border:0;padding:0;margin:18px 0}.avatar-choice{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;padding:12px;border:2px solid var(--line);border-radius:14px;cursor:pointer;font-size:.8125rem;background:var(--paper)}.avatar-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.avatar-choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.avatar-choice input{position:absolute;top:8px;left:8px;accent-color:var(--accent)}.challenge-box{padding:26px;border:1px solid var(--line);border-radius:20px;background:var(--white);margin:20px 0}.challenge-box h2{margin-top:0}.challenge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.challenge-list .challenge-box{margin:0}.challenge-tag{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:750;color:var(--accent);background:var(--accent-soft);padding:5px 10px;border-radius:20px}.challenge-link{display:block;width:100%;padding:12px;border:1px solid var(--field-border);border-radius:8px;background:var(--field-bg);color:var(--ink)}.challenge-settings{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--accent-soft);margin:18px 0}.challenge-hud{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.challenge-hud>div{flex:1;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:var(--white)}.challenge-hud span{display:block;color:var(--muted);font-size:.75rem}.challenge-hud strong{overflow-wrap:anywhere;font-size:1.75rem;font-variant-numeric:tabular-nums}.challenge-timer{font-variant-numeric:tabular-nums}.challenge-error{color:var(--warning-text);background:var(--warning-bg);padding:12px;border-radius:10px}.challenge-rules{font-size:.875rem;color:var(--muted);max-width:80ch}.race-scene{position:relative;isolation:isolate;overflow:hidden;background:#121e39;color:#edf7ff;border:1px solid #43557b;border-radius:24px;padding:28px;box-shadow:0 18px 45px #0c153224}.race-scene::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 90% 0,#703e9a66,transparent 55%),radial-gradient(ellipse at 0 0,#087e9b88,transparent 50%)}.race-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #526380;padding-bottom:20px;margin-bottom:12px}.race-banner h2{font-size:1.75rem;letter-spacing:-.6px;margin:5px 0}.race-banner p{margin:0;color:#c8dcf3}.race-badge{color:#b9f17f;letter-spacing:2px;font-weight:800;font-size:.75rem}.race-clock{font-size:clamp(2rem,5vw,4rem);font-weight:850;line-height:1;font-variant-numeric:tabular-nums;color:#b9f17f}.race-scale{display:flex;justify-content:space-between;padding:4px 78px 4px 164px;color:#bacde7;font-size:.7rem;letter-spacing:1px}.race-lanes{min-height:240px}.race-empty{display:grid;place-content:center;min-height:240px;text-align:center;color:#c8dcf3}.race-lane{display:grid;grid-template-columns:150px minmax(0,1fr) 64px;gap:14px;align-items:center;min-height:102px;border-bottom:1px solid #415273}.race-driver{min-width:0;display:flex;gap:9px;align-items:center;font-size:.8125rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}.race-rank{color:#b9f17f;min-width:26px;font-size:1.125rem;font-variant-numeric:tabular-nums}.race-road{position:relative;height:88px;border-bottom:3px solid #87a3b5;background:repeating-linear-gradient(90deg,#a6cbe033 0 18px,transparent 18px 36px) center 65%/100% 2px no-repeat}.race-road::after{content:"";position:absolute;right:4px;top:8px;bottom:0;width:12px;background:conic-gradient(#f5fbff 25%,#18253a 0 50%,#f5fbff 0 75%,#18253a 0) 0 0/12px 12px;opacity:.9}.race-kart{position:absolute;z-index:1;bottom:0;width:90px;height:83px;left:calc((100% - 90px)*var(--progress,0));transition:left .85s cubic-bezier(.22,.75,.2,1);filter:drop-shadow(0 5px 5px #0006)}.race-kart .challenge-avatar{position:absolute;left:22px;top:0;width:49px;height:49px;transform:rotate(5deg)}.kart-body{position:absolute;left:8px;right:3px;bottom:8px;height:30px;border-radius:10px 20px 9px 9px;background:var(--kart-color);box-shadow:inset 0 -7px #0003;border:2px solid #192e46}.kart-body::after{content:"";position:absolute;right:5px;top:6px;width:12px;height:5px;border-radius:3px;background:white}.kart-wheel{position:absolute;bottom:-9px;left:9px;width:20px;height:20px;border:5px solid #162338;border-radius:50%;background:#94a5b8}.kart-wheel+ .kart-wheel{left:auto;right:8px}.race-kart.boost::before{content:"";position:absolute;left:-12px;bottom:12px;width:30px;height:14px;background:linear-gradient(90deg,transparent,#ffe89b);clip-path:polygon(0 0,100% 20%,100% 80%,0 100%,30% 50%)}.race-progress{font-weight:800;font-size:1rem;text-align:right;color:#e4f4ff;font-variant-numeric:tabular-nums}.race-progress small{display:block;color:#bacde7;font-size:.625rem;font-weight:450}.race-winner{padding:20px;border:1px solid #c6e994;border-radius:16px;background:linear-gradient(110deg,#386b4833,#8b714055);margin:18px 0;display:flex;gap:18px;align-items:center}.race-winner h3{font-size:1.75rem;margin:0 0 4px;color:#e3ffaa}.race-winner p{margin:0;color:#e4efff}.race-podium{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.race-podium>div{flex:1;min-width:180px;border:1px solid #506382;border-radius:14px;padding:14px;background:#ffffff0a}.race-podium strong{display:block}.race-podium p{margin:4px 0;color:#c8dcf3;font-size:.8125rem}.race-demo-label{color:#ffe7a7;font-weight:750}.race-screen:fullscreen{background:var(--paper);overflow:auto;padding:24px;max-width:none}.race-screen:fullscreen .challenge-heading{margin-bottom:12px}.race-screen:fullscreen .race-scene{min-height:75vh}.challenge-question fieldset{padding:0;border:0;margin:22px 0}.challenge-question legend{font-size:1.2rem;font-weight:700;line-height:1.5;margin-bottom:20px}.challenge-question .activity-option{margin:10px 0}.challenge-question input[type=text],.challenge-question input[type=number],.challenge-question select{width:100%;padding:14px;font:inherit;border:1px solid var(--field-border);border-radius:9px;background:var(--field-bg);color:var(--ink)}.challenge-question img{max-width:100%;max-height:220px}.challenge-question .order-step{display:flex;gap:12px;align-items:center;justify-content:space-between}.challenge-question .order-controls{display:flex;gap:6px}.challenge-question .order-button{min-width:44px;min-height:44px}.challenge-review{border-top:1px solid var(--line);padding:16px 0}.challenge-review p{color:var(--muted)}main[data-challenge-page]:focus{outline:none}
@media(min-width:1400px){.race-screen:fullscreen .race-lane{min-height:115px}.race-screen:fullscreen .race-driver{font-size:1rem}.race-screen:fullscreen .race-kart-shell{transform:scale(1.1);transform-origin:bottom left}}
@media(max-width:700px){.challenge-main{padding:24px 16px}.challenge-heading{flex-direction:column}.challenge-list{grid-template-columns:1fr}.race-scene{padding:16px}.race-lane{grid-template-columns:92px minmax(0,1fr) 44px;gap:8px}.race-driver{font-size:.6875rem;gap:3px}.race-rank{min-width:18px}.race-kart{width:64px;left:calc((100% - 64px)*var(--progress,0))}.race-kart .challenge-avatar{left:12px;width:42px}.kart-wheel{width:17px;height:17px}.race-scale{padding:6px 50px 6px 100px;letter-spacing:0}.race-banner h2{font-size:1.25rem}.race-clock{font-size:2.1rem}.race-progress{font-size:.8125rem}.challenge-box{padding:18px}.avatar-options{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-hud{gap:8px}.challenge-hud>div{padding:12px;min-width:110px}.challenge-controls>*{flex:1}.race-winner h3{font-size:1.25rem}.race-winner{padding:12px;gap:10px}}
@media(prefers-reduced-motion:reduce){.race-kart{transition:none}.race-kart.boost::before{display:none}}

.race-compact .race-scale{display:none}
@media(min-width:900px){.race-compact .race-lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.race-compact .race-lane{grid-template-columns:100px minmax(0,1fr) 45px;min-height:72px;gap:8px}.race-compact .race-driver{font-size:.75rem;gap:5px}.race-compact .race-road{height:65px}.race-compact .race-kart{width:64px;height:66px;left:calc((100% - 64px)*var(--progress,0))}.race-compact .race-kart .challenge-avatar{left:12px;top:0;width:40px;height:40px}.race-compact .race-progress{font-size:.8125rem}.race-compact .kart-wheel{width:17px;height:17px}.race-compact .kart-body{height:25px}.race-screen:fullscreen>.challenge-heading,.race-screen:fullscreen>.challenge-rules{display:none}.race-screen:fullscreen .race-compact .race-kart-shell{transform:none}}
@media(min-width:1200px){.race-compact .race-lanes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){#challenge-clock{font-size:1.125rem}.challenge-box,.challenge-review{overflow-wrap:anywhere}}
@media(min-width:900px){.race-screen:fullscreen .race-compact .race-lane{min-height:68px}.race-screen:fullscreen .race-compact .race-road{height:62px}.race-screen:fullscreen .race-compact .race-driver{font-size:.75rem}.race-screen:fullscreen .race-compact .race-banner{padding-bottom:12px}.race-screen:fullscreen .race-compact .race-banner h2{font-size:1.5rem}}

.race-screen:fullscreen>.section-navigation{display:none}
.challenge-heading>div{min-width:0}.challenge-heading h1{overflow-wrap:anywhere}
@media(max-width:420px){.race-banner{flex-wrap:wrap;gap:12px}.race-clock{min-width:0}.race-lane{grid-template-columns:70px minmax(0,1fr) 38px;gap:5px}.race-driver{overflow-wrap:anywhere}.race-progress{font-size:.75rem}}

.race-lobby-player{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:10px 0;flex-wrap:wrap}.race-lobby-player>svg{width:38px;height:38px;flex:0 0 38px}.race-lobby-player>span{margin-left:auto;color:var(--muted);font-size:.875rem}.race-lobby-player.is-ready>span{color:var(--success-text);background:var(--success-bg);padding:5px 9px;border-radius:12px}.challenge-connection{font-size:.8125rem;color:var(--muted)}

#race-lobby-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 24px;max-height:36vh;overflow:auto} .race-lobby-player strong{overflow-wrap:anywhere;min-width:0}

/* Team identity uses text as well as colour, in every theme. */
[data-team-color="1"]{--team-color:#3284d1}[data-team-color="2"]{--team-color:#d58a25}[data-team-color="3"]{--team-color:#9b75d3}[data-team-color="4"]{--team-color:#42a37a}[data-team-color="5"]{--team-color:#cf76a3}[data-team-color="6"]{--team-color:#31a4b2}[data-team-color="7"]{--team-color:#bb9c36}[data-team-color="8"]{--team-color:#cc6262}
.race-lane[data-team-color]:not([data-team-color=""]){border-inline-start:5px solid var(--team-color)}
.race-contribution-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:.65rem;max-height:45vh;overflow:auto}
.race-contribution{display:grid;grid-template-columns:38px minmax(0,1fr);gap:.2rem .65rem;align-items:center;padding:.7rem;border:1px solid var(--line);border-inline-start:4px solid var(--team-color);border-radius:10px}
.race-contribution>.challenge-avatar{width:36px;height:36px;grid-row:span 3}.race-contribution>span,.race-contribution>small{grid-column:2}.race-contribution strong{overflow-wrap:anywhere}.challenge-team-name{display:block;font-weight:700}
.challenge-hud:has(#challenge-team-progress){grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.challenge-new{margin-bottom:22px}
.challenge-new>summary{display:grid;gap:4px;cursor:pointer;list-style:none}
.challenge-new>summary::-webkit-details-marker{display:none}
.challenge-new>summary h2{margin:0;display:flex;align-items:center;gap:10px}
.challenge-new>summary h2::before{content:"+";display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:1.2rem}
.challenge-new[open]>summary h2::before{content:"−"}
.challenge-new>summary span{color:var(--muted)}
.challenge-new form{margin-top:16px}
.challenge-new-topic label{display:grid;gap:6px;font-weight:700;max-width:520px}
.challenge-new-topic select{min-height:42px}
.challenge-new-exercises{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:12px 14px}
.challenge-new-exercises legend{font-weight:700;padding:0 4px}
.challenge-new-count{font-weight:700;margin:10px 0 14px}
.challenge-new-count.is-warning{color:#b45309}
:root[data-theme=dark] .challenge-new-count.is-warning{color:#fbbf24}
.challenge-relaunch{display:inline}
.challenge-notice{background:var(--accent-soft);color:var(--ink);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px}

/* Quick Challenge setup: essential choice first, optional controls on demand. */
.challenge-quick-fields{display:grid;grid-template-columns:minmax(220px,320px) minmax(240px,1fr);gap:16px;align-items:end;margin:18px 0}.challenge-quick-fields>label{display:grid;gap:6px;font-weight:700}.challenge-quick-fields small{font-weight:400;color:var(--muted)}.challenge-quick-preview{display:grid;gap:5px;align-self:stretch;align-content:center;padding:14px 18px;border-radius:12px;background:var(--accent-soft);color:var(--ink)}.challenge-quick-preview span{font-size:.9rem;color:var(--muted)}.challenge-customize{margin:14px 0;padding:12px 16px}.challenge-customize>summary{cursor:pointer;font-weight:750}.challenge-customize>summary span{margin-left:8px;font-weight:400;color:var(--muted)}.challenge-customize[open]>summary{margin-bottom:14px}.challenge-create-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.challenge-create-actions a{font-weight:650}@media(max-width:680px){.challenge-quick-fields{grid-template-columns:1fr}.challenge-customize>summary span{display:block;margin:4px 0 0}}
.challenge-new .work-form-grid label,.challenge-new-topic label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:600;min-width:0}
.challenge-new .work-form-grid input,.challenge-new .work-form-grid select,.challenge-new-topic select{width:100%;min-width:0;box-sizing:border-box;font-size:1rem}
.challenge-new .work-form-grid small{font-weight:400;color:var(--muted)}
