@font-face{font-family:Barlow;src:url('assets/barlow.ttf')}@font-face{font-family:Barlow;src:url('assets/barlow-bold.ttf');font-weight:700}@font-face{font-family:Display;src:url('assets/display-italic.ttf');font-weight:900;font-style:italic}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#101110;color:#f0f0e8;font-family:Barlow,Arial,sans-serif}button{font:700 13px Barlow,sans-serif;cursor:pointer;color:inherit;border:1px solid #ffffff38;background:#101110ba;padding:12px 17px;touch-action:none}button:hover{background:#30312e}button:focus-visible{outline:3px solid #ff571c;outline-offset:4px}button:disabled{opacity:.65;cursor:wait}[hidden]{display:none!important}#game{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate}#world{display:block;width:100%;height:100%;outline:0}#vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#10111090,transparent 30%,transparent 70%,#10111060)}header{position:absolute;inset:24px 32px auto;display:flex;justify-content:space-between;align-items:center;z-index:6}header img{object-fit:contain;width:175px;height:auto;filter:drop-shadow(0 2px 10px #0008)}.top-actions{display:flex;gap:8px}.top-actions button{font-size:11px;letter-spacing:.06em;background:#101110b8}.screen{position:absolute;inset:0;background:linear-gradient(90deg,#101110e8 0%,#101110bc 31%,#10111020 64%,transparent)}.intro{position:absolute;top:50%;transform:translateY(-44%);left:6vw;width:560px;max-width:50vw}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700;display:flex;gap:10px;align-items:center}.eyebrow span{width:7px;height:7px;background:#ff571c;box-shadow:0 0 15px #ff571c}h1,h2{font:italic 900 clamp(54px,6.4vw,99px)/.92 Display,Impact,sans-serif;letter-spacing:-.025em;margin:24px 0}h1 em{color:#ff571c;font-style:inherit}.lead{font-size:19px;line-height:1.45;color:#dedfd7;margin:22px 0 28px}.primary{display:block;background:#ff571c;color:#101110;border:0;font-size:20px;font-weight:700;letter-spacing:.03em;min-width:300px;padding:21px 28px;text-align:left;box-shadow:0 6px 35px #ff571c20;transition:transform .15s,background .15s}.primary:hover{background:#ff7746;transform:translateY(-2px)}.race-facts{display:flex;gap:0;margin:20px 0 10px;font-size:11px;letter-spacing:.1em;font-weight:700}.race-facts span{padding:0 16px;border-right:1px solid #ffffff40}.race-facts span:first-child{padding-left:0}.race-facts span:last-child{border:0}.text-button{background:none;border:0;padding:14px 0;text-align:left;font-size:12px;letter-spacing:.08em}.text-button:hover{background:none;color:#ff571c}.text-button span{margin-left:25px}#instructions{font-size:13px;background:#101110de;padding:10px 16px;border-left:2px solid #ff571c;line-height:1.5;position:absolute;bottom:-18px;left:0;transform:translateY(100%);z-index:8;width:410px;max-width:90vw}#instructions p{margin:5px 0}kbd{border:1px solid #66675f;padding:2px 5px;border-radius:2px;font-size:11px;margin:0 2px}.best{font-size:11px;color:#babbb4;letter-spacing:.12em;margin-top:18px}.menu-corner{position:absolute;bottom:35px;right:35px;text-align:right;display:flex;flex-direction:column;gap:10px;text-shadow:0 2px 10px #000}.menu-corner span{font-size:10px;letter-spacing:.2em}.menu-corner strong{font:italic 900 31px Display}.position{position:absolute;top:104px;left:32px;display:flex;flex-direction:column;line-height:.9;text-shadow:0 3px 10px #0007}.position>strong{font:italic 900 76px Display}.position span{font:italic 900 28px Display;color:#f0f0e8b3}.position small{font-size:11px;font-weight:700;letter-spacing:.15em}.race-info{position:absolute;right:32px;top:104px;display:flex;gap:28px;text-shadow:0 3px 6px #000a}.race-info>div{display:flex;flex-direction:column;gap:5px}.race-info small{font-size:10px;letter-spacing:.13em}.race-info strong{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.race-info span{font-size:16px;opacity:.65}#standings{position:absolute;top:227px;left:32px;list-style:none;margin:0;padding:0;width:142px}#standings li{display:flex;gap:8px;padding:7px 9px;background:#10111091;border-bottom:1px solid #ffffff16;font-size:11px;font-weight:700;letter-spacing:.04em}#standings li.player{background:#ff571c;color:#101110}#standings i{height:7px;width:7px;display:inline-block;align-self:center}#standings .gap{margin-left:auto;opacity:.7;font-size:10px}#announcement{position:absolute;left:50%;top:27%;transform:translateX(-50%) skew(-5deg);font:italic 900 30px Display;text-align:center;text-shadow:0 3px 10px #000;white-space:nowrap;transition:opacity .18s}#announcement small{display:block;font:700 12px Barlow;margin-top:6px;letter-spacing:.1em}#countdown{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font:italic 900 140px Display;text-shadow:5px 8px 0 #10111080;color:#ff571c}.speedo{position:absolute;bottom:53px;left:32px;width:185px;text-shadow:0 2px 6px #0005}.speedo>strong{font:italic 900 57px Display}.speedo>small{font-size:10px;font-weight:700;letter-spacing:.1em;margin-left:9px}.boost-label{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.12em;margin:7px 0}.meter{height:8px;background:#101110a0;border:1px solid #ffffff30}.meter i{display:block;background:#ff571c;height:100%;width:85%;transition:width .15s}.drift-meter{height:3px;margin-top:4px;background:#10111060}.drift-meter i{display:block;height:100%;background:#f5ca63;width:0}.speedo>span{font-size:9px;display:block;letter-spacing:.1em;margin-top:6px}.map-panel{position:absolute;right:24px;bottom:43px;width:145px;text-align:center}.map-panel canvas{width:100%;height:auto}.map-panel small{font-size:8px;letter-spacing:.16em;text-shadow:0 2px 5px #000}.desktop-hint{position:absolute;bottom:17px;width:100%;text-align:center;font-size:10px;letter-spacing:.1em;opacity:.8}.desktop-hint b{padding:0 12px;color:#ff571c}.modal{position:absolute;inset:0;background:#101110bf;backdrop-filter:blur(12px);display:grid;place-items:center;z-index:10}.modal>div{padding:32px;max-width:550px;width:90vw;background:#101110ed;border-top:3px solid #ff571c}.modal h2{font-size:52px}.modal .primary{width:100%;min-width:0}.secondary{display:block;width:100%;margin-top:12px;padding:17px}.modal .text-button{display:block;margin:10px auto 0;text-align:center}.result-stats{display:flex;justify-content:space-between;gap:12px;border-block:1px solid #3b3d3b;padding:18px 0;margin:24px 0}.result-stats div{display:flex;flex-direction:column;gap:7px}.result-stats small{font-size:9px;letter-spacing:.08em}.result-stats strong{font-size:23px;font-weight:700}#result-order{list-style:none;padding:0;margin:0 0 25px}#result-order li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #ffffff14;font-size:13px}#result-order .player{color:#ff571c}#touch{display:none;position:absolute;inset:auto 15px 15px;justify-content:space-between;gap:10px;padding-bottom:env(safe-area-inset-bottom)}#touch>div{display:flex;gap:8px}#touch button{width:65px;height:64px;user-select:none;-webkit-user-select:none;background:#101110b5;font-size:22px;border:1px solid #ffffff70}#touch button[data-control=drift]{font-size:12px;width:61px}#touch .boost-touch{font-size:14px;background:#ff571cee;color:#101110;width:75px;border-color:#ff571c}#touch small{font-size:9px}.pressed{background:#f0f0e8!important;color:#101110!important}#speed-lines{position:absolute;inset:0;pointer-events:none;opacity:0;background:repeating-conic-gradient(from 20deg at 50% 55%,transparent 0deg 15deg,#fff2 15.1deg 15.3deg,transparent 15.5deg 24deg);mask-image:radial-gradient(ellipse,transparent 30%,#000 100%);transition:opacity .2s}body.racing #menu{display:none}@media(pointer:coarse),(max-width:760px){#touch{display:flex}.desktop-hint{display:none}.speedo{bottom:95px;left:22px;width:145px}.map-panel{bottom:100px;width:110px;right:17px}header{inset:15px 18px auto}header img{width:135px}.top-actions button{padding:10px;font-size:9px}#fullscreen{display:none}.position{top:85px;left:20px}.position>strong{font-size:57px}.race-info{right:18px;top:85px;gap:15px}.race-info strong{font-size:20px}#standings{left:20px;top:177px;width:112px}#standings li{font-size:9px;padding:6px}.position small{font-size:9px}.intro{left:7vw;max-width:86vw;width:540px;top:49%;transform:translateY(-40%)}h1{font-size:clamp(48px,10.8vw,76px)}.lead{font-size:17px;line-height:1.4;margin:19px 0 24px}.screen{background:linear-gradient(90deg,#101110de,#10111080 60%,#10111015)}.menu-corner{display:none}.primary{font-size:19px;min-width:275px;max-width:100%;padding:20px 24px}.best{font-size:9px}.eyebrow{font-size:10px}#announcement{top:32%;font-size:25px}#announcement small{font-size:10px}.speedo>strong{font-size:44px}.modal>div{padding:24px}.modal h2{font-size:42px}}@media(max-height:580px){header{inset:12px 20px auto}header img{width:127px}.intro{top:53%;left:5vw;transform:translateY(-43%)}h1{font-size:clamp(42px,7.7vh,58px);margin:12px 0}.lead{font-size:14px;margin:12px 0 18px}.primary{font-size:16px;padding:14px 24px}.eyebrow{font-size:9px}.race-facts{margin:14px 0 0;font-size:9px}.best{margin:7px 0;font-size:8px}.text-button{padding:9px 0}.position{top:66px}.position>strong{font-size:46px}#standings{top:141px}.race-info{top:65px}.map-panel{width:88px;bottom:90px}.speedo{bottom:91px;width:130px}.speedo>strong{font-size:36px}#announcement{top:23%}#countdown{font-size:95px}.modal>div{padding:18px;max-height:94%;overflow:auto}.modal h2{font-size:34px;margin:12px 0}.result-stats{margin:15px 0;padding:12px 0}#result-order{margin-bottom:12px}#instructions{position:fixed;bottom:8px;top:auto;left:50vw;transform:none;width:42vw;font-size:11px}}@media(prefers-reduced-motion:reduce){#speed-lines{display:none}button{transition:none}}

#instructions.modal{position:absolute;inset:0;width:auto;max-width:none;transform:none;padding:0;border:0;background:#101110bf;z-index:12;font-size:15px;line-height:1.7}#instructions.modal p{margin:10px 0}#instructions.modal .primary{margin-top:22px}#instructions.modal h2{margin:18px 0 25px}
@media(max-height:580px){#standings{display:none}.speedo{bottom:92px}.race-info{top:67px}#touch button{height:56px}.map-panel{bottom:82px}}

.asset-credits{border-top:1px solid #ffffff25;margin-top:17px;padding-top:10px;font-size:12px;color:#c6c7c0;line-height:1.5}.asset-credits summary{cursor:pointer;font-weight:700;padding:3px 0}.asset-credits a{color:#f0f0e8;text-underline-offset:3px}.asset-credits a:hover{color:#ff7746}.asset-credits summary:focus-visible,.asset-credits a:focus-visible{outline:2px solid #ff571c;outline-offset:3px}

#audio-status{font-size:12px;color:#c6c7c0;line-height:1.45}#instructions.modal>div{max-height:calc(100dvh - 32px);overflow:auto}

/* Course choice and recovery are compact in-race cues, not game-over screens. */
#route-choice{position:absolute;bottom:83px;left:50%;transform:translateX(-50%);width:360px;max-width:calc(100% - 32px);padding:11px 14px 13px;background:#101110e8;border-top:3px solid #ff571c;box-shadow:0 5px 22px #0003;text-align:center;pointer-events:none}
#route-choice>small{display:block;font-size:10px;font-weight:700;letter-spacing:.13em;color:#c9c9c2;margin-bottom:8px}
#route-choice>div{display:flex;gap:16px;justify-content:center}#route-choice span{flex:1;display:flex;flex-direction:column;gap:3px}#route-choice span+span{border-left:1px solid #ffffff32;padding-left:16px}#route-choice b{font-size:15px;letter-spacing:.025em}#route-choice span:first-child b{color:#ff7746}#route-choice em{font-size:11px;font-style:normal;color:#c9c9c2}
#recovery-status{position:absolute;top:32%;left:50%;transform:translateX(-50%);width:238px;max-width:calc(100% - 36px);padding:15px 18px 13px;background:#101110e8;border-top:3px solid #ff571c;text-align:center;box-shadow:0 5px 24px #0004;pointer-events:none}
#recovery-status strong{display:block;font-family:Display,sans-serif;font-size:38px;font-style:italic;line-height:1;color:#f0f0e8}#recovery-status>span{display:block;font-size:13px;margin-top:8px}#recovery-time{display:inline-block;min-width:21px;font-variant-numeric:tabular-nums;color:#ff7746}#recovery-status>small{display:block;font-size:9px;letter-spacing:.1em;color:#c9c9c2;margin-top:7px}
@media(pointer:coarse),(max-width:760px){#route-choice{bottom:242px;width:310px;padding:9px 10px 11px}#route-choice b{font-size:13px}#route-choice em{font-size:10px}#recovery-status{top:34%;width:218px}#recovery-status strong{font-size:34px}}
@media(max-height:580px){#route-choice{bottom:81px;width:285px;padding:7px 10px}#route-choice>small{margin-bottom:5px;font-size:9px}#route-choice b{font-size:12px}#route-choice em{font-size:9px}#recovery-status{top:29%;padding:10px 15px;width:212px}#recovery-status strong{font-size:30px}}

/* Browser edition: race setup stays in the menu, leaving the track clear. */
.race-settings{display:flex;gap:12px;margin:18px 0 14px;max-width:430px}.race-settings label{display:flex;flex:1;flex-direction:column;gap:7px;font-size:9px;letter-spacing:.12em;color:#c9c8c2}.race-settings label:first-child{flex:1.8}.race-settings select{appearance:auto;width:100%;padding:11px 9px;background:#161815e8;color:#f0f0e8;border:1px solid #ffffff42;font:700 12px Barlow,sans-serif;border-radius:3px;cursor:pointer;letter-spacing:0}.race-settings select:focus-visible,.ghost-setting input:focus-visible{outline:2px solid #ff571c;outline-offset:3px}.intro{max-width:52vw}.intro .primary{width:430px;max-width:100%;min-width:0}.intro h1{font-size:clamp(50px,5.8vw,87px);margin:18px 0}.intro .lead{margin:16px 0}.menu-links{display:flex;gap:10px;max-width:430px}.menu-links .secondary{margin-top:10px;flex:1;padding:13px 8px;font-size:11px;letter-spacing:.05em;border-radius:3px}.ghost-setting{display:flex;gap:8px;align-items:center;font-size:12px;color:#d7d6cf;margin-top:14px;cursor:pointer}.ghost-setting input{accent-color:#ff571c;width:16px;height:16px;margin:0}.intro .race-facts{margin-top:15px;font-size:10px}.intro .best{margin:9px 0;font-size:10px;line-height:1.5}.record-note{font-size:13px;line-height:1.5;color:#f5d6c6}.record-note:empty{display:none}.progress-note{color:#c5c5bd;font-size:14px;line-height:1.5}#progress-times>p{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #ffffff26;padding:11px 0;margin:0;font-size:14px}#progress-badges{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px 0;margin:0}#progress-badges li{border:1px solid #ffffff24;padding:12px;font-size:12px;color:#a7a8a0;line-height:1.5}#progress-badges li.earned{color:#f0f0e8;border-color:#ff571c;background:#ff571c0d}#progress-badges strong{display:block;font-size:13px}#lap-split{position:absolute;right:32px;top:178px;padding:9px 12px;background:#101110b8;border-left:2px solid #ff571c;font-size:12px;font-variant-numeric:tabular-nums;max-width:230px;text-align:right}.modal>div{max-height:calc(100dvh - 30px);overflow:auto}
@media(max-width:760px){.intro{max-width:86vw;top:51%;transform:translateY(-44%)}.intro h1{font-size:clamp(44px,10.8vw,70px)}.race-settings{gap:8px}.intro .lead{font-size:16px}.race-settings select{font-size:11px}#lap-split{top:143px;right:18px;font-size:10px;padding:7px 9px;max-width:170px}.intro .race-facts{font-size:9px}.intro .race-facts span{padding:0 11px}.intro .race-facts span:first-child{padding-left:0}}
@media(max-height:650px){#menu{overflow-y:auto}.intro{position:relative;top:auto;transform:none;margin:85px 0 24px;max-width:75vw}.intro h1{font-size:44px;margin:11px 0}.intro .lead{font-size:14px;margin:10px 0}.race-settings{margin:12px 0 10px}.intro .primary{padding:13px 20px}.menu-links .secondary{padding:10px 7px}.ghost-setting{margin-top:10px}.menu-corner{display:none}.intro .eyebrow{margin:0}.intro .race-facts{margin-top:11px}.intro .best{margin:5px 0}.intro .text-button{padding:8px 0}}

.practice-mode .position>strong{font-size:42px}.practice-mode .position small{margin-top:8px}

/* Riding school, local progression and a live 3D paddock preview. */
:root{--kid-orange:#ff571c;--kid-ink:#101110;--kid-cream:#f0f0e8}
.menu-extras{display:flex;gap:25px;max-width:430px}.menu-extras .text-button{font-size:11px;padding:11px 0}
.ghost-options{max-width:430px;border-top:1px solid #ffffff26;color:#d7d6cf;font-size:12px;padding-top:9px}.ghost-options summary{cursor:pointer;font-weight:700;letter-spacing:.04em}.ghost-options label{display:flex;align-items:center;gap:12px;font-size:10px;margin-top:10px}.ghost-options select{background:#191c18;color:var(--kid-cream);border:1px solid #ffffff40;font:700 12px Barlow;padding:8px;flex:1}.ghost-options p{font-size:11px;line-height:1.4;margin:8px 0}.intro{max-height:calc(100dvh - 110px);overflow-y:auto;scrollbar-width:thin;padding-right:12px}.intro h1{font-size:clamp(46px,5.5vw,80px)}.intro .lead{font-size:17px}.intro .race-facts{margin-top:12px}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.practice-choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:19px 16px;min-height:130px;background:#20231c;border-color:#ffffff28}.practice-choice:hover{border-color:var(--kid-orange)}.practice-choice strong{font:italic 900 25px Display;color:var(--kid-cream)}.practice-choice span{font-size:13px;font-weight:400;line-height:1.4;margin:9px 0;color:#c4c6bd}.practice-choice small{font-size:10px;color:#ff946c;letter-spacing:.06em;margin-top:auto}
#practice-tools{position:absolute;top:216px;left:32px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}#practice-tools span{font-weight:700;font-size:12px;text-shadow:0 2px 5px #000}#practice-tools button{font-size:10px;padding:9px 12px}
#sector-split{position:absolute;top:220px;right:32px;text-align:right;background:#101110c7;border-left:2px solid var(--kid-orange);padding:9px 12px;font-size:12px;font-variant-numeric:tabular-nums;max-width:240px}#sector-split.ahead{border-color:#f1dfad;color:#f1dfad}#sector-split small{display:block;font-size:10px;color:#caccc2;margin-top:4px}#cup-hud{position:absolute;top:64px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.1em;background:#101110af;padding:8px 13px}
#garage-screen{position:absolute;inset:0;z-index:9;pointer-events:none}#garage-screen h2{font-size:48px;margin:22px 0}#garage-screen h2 em{font-style:inherit;color:var(--kid-orange)}.garage-panel{pointer-events:auto;width:min(440px,43vw);height:100%;overflow-y:auto;padding:32px;background:#101110f5;border-right:1px solid #ffffff26}.garage-panel .eyebrow{font-size:10px;margin-top:6px}.garage-panel h3{font-size:10px;letter-spacing:.15em;margin:25px 0 11px;color:#bfc2b8}.garage-panel .primary{min-width:0;width:100%;font-size:15px;padding:16px;margin-top:20px}.garage-panel .progress-note{font-size:13px}.garage-kit{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;text-align:left;width:100%;margin:7px 0;padding:13px 10px;background:#ffffff04}.garage-kit[aria-pressed=true]{border-color:var(--kid-orange);background:#ff571c10}.garage-kit:disabled{cursor:default;opacity:.52}.garage-kit strong{font-size:13px;display:block}.garage-kit small{font-size:10px;color:#c8c9c0;display:block;margin-top:5px;line-height:1.4}.kit-swatch{width:32px;height:36px;display:flex;transform:skew(-9deg);overflow:hidden}.kit-swatch i{flex:1}.kit-state{font-size:9px;letter-spacing:.04em;color:#ff946c}#garage-plates{display:flex;gap:8px}#garage-plates button{flex:1;font-size:26px;background:#eee8da;color:#1d211c;padding:12px 6px;border:2px solid transparent}#garage-plates button[aria-pressed=true]{border-color:var(--kid-orange)}#garage-plates button:disabled{opacity:.25;cursor:default}#garage-plates small{display:block;font-size:9px;font-weight:400;margin-top:4px}#garage-trophies{font-size:12px;color:#d5c8a9;line-height:1.7;border-top:1px solid #ffffff26;padding-top:14px}.garage-views{position:absolute;bottom:32px;left:calc(min(440px,43vw) + 24px);right:24px;display:flex;justify-content:center;gap:10px;pointer-events:auto}.garage-views button{font-size:10px;letter-spacing:.08em}.garage-views button[aria-pressed=true]{color:var(--kid-ink);background:var(--kid-orange);border-color:var(--kid-orange)}
.result-links,.progress-actions{display:flex;gap:10px}.result-links .secondary,.progress-actions .secondary{font-size:10px;padding:13px 8px;margin:4px 0 12px}.next-goal{font-size:13px;line-height:1.5;border-left:2px solid var(--kid-orange);padding:9px 12px;background:#ffffff05;color:#e4e3d9}.next-goal:empty{display:none}#progress-sectors{font-size:12px;line-height:1.7;color:#d0c8b6;margin:15px 0}#progress-times small{display:block;font-size:10px;color:#b4b8ab;margin-top:4px}#progress-times>p>span{text-align:right}
#cup-rounds{list-style:none;counter-reset:round;padding:0}#cup-rounds li{counter-increment:round;border-top:1px solid #ffffff25;padding:15px 0 15px 40px;position:relative;font-size:13px;color:#c5c5bc;line-height:1.5}#cup-rounds li:before{content:counter(round);position:absolute;left:0;top:15px;font:italic 900 25px Display;color:var(--kid-orange)}#cup-rounds strong{display:block;color:var(--kid-cream)}#cup-result{padding:14px;background:#ff571c12;border-left:2px solid var(--kid-orange);margin:12px 0;font-size:13px;line-height:1.5}#cup-result strong{display:block;font:italic 900 30px Display;color:var(--kid-orange)}#friend-challenge{margin:10px 0;max-width:430px;border-left:2px solid #f0d8ad;padding:10px 12px;background:#101110cf;font-size:12px}#friend-challenge strong{display:block;font-size:10px;letter-spacing:.1em;color:#f0d8ad;margin-bottom:4px}#friend-challenge .text-button{font-size:9px;padding:5px 0;display:block}
@media(max-width:759px){.intro{max-height:calc(100dvh - 95px);top:54%;max-width:88vw}.intro h1{font-size:clamp(42px,11vw,64px)}.intro .lead{font-size:15px;margin:13px 0}.intro .primary{padding:16px 22px}.intro .eyebrow{font-size:9px}.intro .race-facts{display:none}.intro .best{font-size:9px}.menu-extras{gap:22px}.menu-extras .text-button{font-size:10px}.ghost-options{font-size:11px}#practice-tools{top:163px;left:20px}#practice-tools span{font-size:10px}#sector-split{top:183px;right:18px;font-size:10px;padding:7px 9px;max-width:163px}#sector-split small{font-size:9px}#cup-hud{top:57px;font-size:8px}.garage-panel{position:absolute;top:45%;bottom:0;width:100%;height:55%;padding:19px 24px;border:0;border-top:2px solid var(--kid-orange)}#garage-screen h2{font-size:31px;margin:12px 0}.garage-panel h2 br{display:none}.garage-panel .eyebrow{margin:0;font-size:9px}.garage-panel .progress-note{font-size:12px;margin:8px 0}.garage-panel h3{margin:17px 0 8px}.garage-views{top:calc(45% - 45px);bottom:auto;left:0;right:0;gap:8px}.garage-views button{padding:8px 12px}.choice-grid{gap:8px}.practice-choice{padding:15px 12px}.practice-choice strong{font-size:22px}.practice-choice span{font-size:12px}.result-stats strong{font-size:21px}}
@media(max-height:650px){.intro{max-height:none;overflow:visible}.garage-panel{padding:20px}.garage-panel h3{margin-top:14px}#garage-screen h2{font-size:34px}.garage-kit{padding:9px}.garage-panel .progress-note{font-size:11px}.garage-panel .primary{padding:12px}.garage-views{bottom:14px}#sector-split{top:133px}#practice-tools{top:132px}.ghost-options{max-width:430px}.intro .lead{margin:10px 0}#cup-hud{top:47px}}

.garage-logo{display:block;object-fit:contain;width:155px;height:auto;margin-bottom:24px}.garage-panel .eyebrow{margin-top:0}.garage-panel h2:focus{outline:none}@media(max-width:759px){.garage-logo{display:none}}

/* Course selection, replay transport and optional family time trials. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.course-switch{display:flex;align-items:center;gap:12px;text-align:left;width:100%;max-width:430px;padding:12px 14px;margin:13px 0;border-color:#ffffff38;background:#101110b8}.course-switch span{font-size:8px;letter-spacing:.1em;color:#bdbeb5}.course-switch strong{font-size:12px;letter-spacing:.03em}.course-switch small{font-size:8px;color:#ff946c;margin-left:auto}.menu-extras{flex-wrap:wrap;gap:0 23px}.menu-extras .text-button{white-space:nowrap}
#course-screen .course-panel{max-width:780px}#course-cards{display:grid;grid-template-columns:1fr 1fr;gap:15px}.course-card{padding:0;text-align:left;background:#1c211a;overflow:hidden;border:1px solid #ffffff30;touch-action:manipulation}.course-card[aria-pressed=true]{border-color:var(--kid-orange)}.course-card svg{display:block;width:100%;height:150px;background:linear-gradient(140deg,#333b2a,#1c211a)}.course-card[data-course=ridge] svg{background:linear-gradient(140deg,#6e5a42,#252820)}.course-card .course-copy{padding:18px}.course-card h3{font:italic 900 30px Display;margin:0 0 10px}.course-card p{font-weight:400;font-size:13px;line-height:1.5;color:#cdd0c3;min-height:60px}.course-card small{font-size:10px;color:#ff946c;letter-spacing:.08em}
#replay-screen{position:absolute;inset:0;z-index:9;pointer-events:none}.replay-heading{position:absolute;left:30px;right:30px;top:90px;display:flex;gap:18px;align-items:center;text-shadow:0 2px 9px #000}.replay-heading .eyebrow{font-size:9px}.replay-heading>strong{font:italic 900 31px Display}.replay-heading button{margin-left:auto;pointer-events:auto;font-size:10px}.replay-console{pointer-events:auto;position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(800px,calc(100% - 36px));padding:18px 22px;background:#101110e8;border-top:2px solid var(--kid-orange)}.replay-timeline{display:flex;gap:14px;align-items:center;font-size:11px;font-variant-numeric:tabular-nums}.replay-timeline input{flex:1;min-width:0;accent-color:var(--kid-orange);cursor:pointer;touch-action:pan-x}.replay-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.replay-buttons button{font-size:10px;padding:11px}.replay-buttons label{display:flex;align-items:center;gap:8px;font-size:9px;color:#cccfc0}.replay-buttons select{background:#242821;color:#f0f0e8;border:1px solid #ffffff40;padding:9px;font:700 11px Barlow}.replay-console p{font-size:11px;margin:10px 0 0;color:#dfd1b9}.replay-console p:empty{display:none}
.leaderboard-panel{max-width:620px!important}.privacy-note{font-size:11px;line-height:1.6;color:#b4b9aa}.leaderboard-panel h2{margin-bottom:18px}#leaderboard-table table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}#leaderboard-table th{font-size:9px;letter-spacing:.08em;text-align:left;color:#b8bead;padding:10px 8px;border-bottom:1px solid #ffffff38}#leaderboard-table td{padding:11px 8px;border-bottom:1px solid #ffffff1c}#leaderboard-table tr.is-you{color:#ff946c;background:#ff571c10}#leaderboard-table td:last-child,#leaderboard-table th:last-child{text-align:right}.leaderboard-empty{padding:22px;border:1px dashed #ffffff40;font-size:14px;line-height:1.6;color:#c9cebd}#leaderboard-identity{padding:11px 14px;border-left:2px solid var(--kid-orange);background:#ff571c12;margin:15px 0;font-size:13px}#competition-standing{font:italic 900 38px Display;color:var(--kid-orange);margin:18px 0}
@media(max-width:759px){.course-switch{padding:10px 12px;margin:9px 0}.course-switch span{display:none}.course-switch strong{font-size:11px}.menu-extras{gap:0 18px}#course-cards{grid-template-columns:1fr}.course-card{display:grid;grid-template-columns:105px 1fr}.course-card svg{height:100%;min-height:145px}.course-card .course-copy{padding:15px}.course-card h3{font-size:26px}.course-card p{min-height:0;font-size:12px;margin:7px 0}.replay-heading{left:18px;right:18px;top:76px;flex-wrap:wrap;gap:8px}.replay-heading .eyebrow{display:none}.replay-heading>strong{font-size:24px}.replay-heading button{font-size:8px;padding:9px}.replay-console{padding:13px 14px;width:calc(100% - 22px)}.replay-buttons{gap:7px}.replay-buttons button{font-size:9px;padding:10px 8px}.replay-buttons label{font-size:8px}.replay-buttons select{padding:8px;font-size:10px}}
@media(max-height:560px){.replay-heading{top:60px}.replay-console{bottom:9px;padding:11px 16px}.replay-buttons{margin-top:8px}.replay-heading .eyebrow{display:none}}

#loading-status{max-width:430px;font-size:11px;line-height:1.5;color:#f2c7ad;margin:9px 0;font-variant-numeric:tabular-nums}#loading-status:empty{display:none}
/* 6.3: riding lessons, saved rides and family-event UI. */
.experience-nav{display:flex;flex-wrap:wrap;gap:5px 15px;max-width:430px;margin:12px 0}.experience-nav button{padding:5px 0;border:0;border-bottom:1px solid #ffffff32;background:none;color:#deded4;font:700 10px 'Barlow',sans-serif;letter-spacing:.08em;cursor:pointer}.experience-nav button:hover{color:#ff6a29}.experience-modal{z-index:25}.experience-modal>div{max-width:660px}.experience-modal h2{font-size:44px;margin:12px 0 18px}.experience-modal h3{font-size:13px;letter-spacing:.12em;margin:24px 0 12px}.experience-modal .secondary{min-width:0;padding:12px 16px}.experience-modal p{line-height:1.5}.experience-modal input:not([type=checkbox]):not([type=range]),.experience-modal select{width:100%;background:#252822;border:1px solid #ffffff38;color:#fff;padding:11px;font:inherit;border-radius:0}.settings-grid{display:grid;gap:20px}.settings-grid>label:not(.entry-check){display:grid;grid-template-columns:1fr 45px;gap:9px;font-size:12px;font-weight:700;letter-spacing:.08em}.settings-grid input[type=range]{grid-row:2;grid-column:1;width:100%;accent-color:#ff571c}.settings-grid output{grid-row:2;grid-column:2;text-align:right}.entry-check{display:flex;align-items:flex-start;gap:11px;font-size:13px;line-height:1.5;margin:15px 0}.entry-check input{width:19px;height:19px;accent-color:#ff571c;flex:0 0 auto;margin:1px 0 0}.entry-field{display:block;font-size:12px;letter-spacing:.04em;margin:14px 0}.entry-field input,.entry-field select{display:block;margin-top:7px}.entry-links a{color:#ff8e55;font-size:12px}.controller-help{border-top:1px solid #ffffff26;margin-top:24px;font-size:13px;color:#d2d5c7}.controller-help h3{color:#fff}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.feature-card{position:relative;border:1px solid #ffffff25;padding:18px;background:#ffffff05;margin-bottom:10px}.feature-card h3{font:italic 28px 'Display',sans-serif;letter-spacing:0;margin:9px 0}.feature-card p{font-size:13px;margin:8px 0}.feature-card small{display:block;color:#c2c6b6;font-size:11px}.feature-card .primary{padding:12px;font-size:12px;min-width:0}.feature-earned{display:block;color:#ff8e55;font-size:10px;letter-spacing:.12em;margin-top:10px}.library-entry{padding:17px 0;border-bottom:1px solid #ffffff25}.library-entry strong,.library-entry small{display:block}.library-entry small{margin:7px 0;color:#b5bcad}.library-entry>div{display:flex;gap:8px;flex-wrap:wrap}.library-entry .secondary{font-size:10px;padding:9px 13px}.replay-save-tools{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid #ffffff24;padding-top:9px;margin-top:8px}.replay-save-tools button{background:#ffffff12;border:1px solid #ffffff3b;color:#fff;font:700 10px 'Barlow',sans-serif;padding:10px;cursor:pointer}.share-explanation{display:block;width:100%;font-size:10px;color:#b9bcaf}.replay-console input[readonly],#share-status input{display:block;width:100%;background:#161913;border:1px solid #ffffff40;color:#fff;padding:8px;margin-top:7px;font-size:11px}.record-note a,#share-status a{color:#ff9c6a}.nearby-board{margin-top:23px;padding-top:15px;border-top:1px solid #ffffff2c}.nearby-board h3{font-size:12px;letter-spacing:.1em}.nearby-gap{color:#ff9c6a;font-weight:700}.prize-list{list-style:none;padding:0}.prize-list li{padding:12px 0;border-bottom:1px solid #ffffff20}.prize-list strong,.prize-list span{display:block}.prize-list span{font-size:13px;margin-top:5px;color:#c8cbbb}.entry-withdraw{margin-top:22px;font-size:12px}.recovery-code{border:1px solid #ff6e38;padding:16px;margin:16px 0}.recovery-code strong{font-size:12px;letter-spacing:.06em}.recovery-code p{font-size:12px}.recovery-code .secondary{font-size:11px}#lesson-panel{position:absolute;z-index:8;left:50%;top:90px;transform:translateX(-50%);width:min(470px,90vw);pointer-events:none}#lesson-panel>div{background:#11160ee8;border-top:3px solid #ff571c;padding:18px 24px;box-shadow:0 14px 40px #0005}#lesson-panel h2{font-size:30px;margin:7px 0}#lesson-panel p{font-size:13px;margin:7px 0;line-height:1.45}#lesson-panel .eyebrow{font-size:10px;color:#ff9b66}#lesson-controls{font-weight:700;color:#fff}#lesson-progress{color:#d4dac6}.lesson-actions{display:flex;gap:12px;align-items:center;pointer-events:auto;margin-top:12px;flex-wrap:wrap}.lesson-actions .primary,.lesson-actions .secondary{font-size:11px;min-width:0;padding:11px 15px}.lesson-actions .text-button{font-size:10px;padding:8px 0}#lesson-panel.lesson-complete{top:38%}body.lesson-mode #practice-tools{display:none!important}body.lesson-mode #announcement{display:none}body.lesson-mode #position,body.lesson-mode .position small{visibility:hidden}body.gentle-camera #speed-lines{display:none!important}#touch [data-control=brake]{font-size:10px;padding:12px;min-width:54px}#details-retry{display:block;margin:3px 0;font-size:10px;padding:4px 0}#details-retry[hidden]{display:none}.podium-mode #results{background:linear-gradient(90deg,transparent 48%,#101110bf 70%);backdrop-filter:none;place-items:center end;padding:20px 28px}.podium-mode #results>div{width:min(42vw,520px);max-width:520px;background:#101110ed}.podium-mode #hud{visibility:hidden}#replay-screen .replay-console{max-height:44vh;overflow-y:auto}
@media(max-width:759px){.experience-modal>div{padding:21px;width:94vw}.experience-modal h2{font-size:34px}.feature-list{grid-template-columns:1fr}.feature-card h3{font-size:26px}.experience-nav{gap:4px 13px;margin:9px 0}.experience-nav button{font-size:9px}.top-actions #quick-settings{font-size:8px;padding:7px}.top-actions{gap:4px}#lesson-panel{top:75px}#lesson-panel>div{padding:12px 16px}#lesson-panel h2{font-size:25px}#lesson-panel p{font-size:12px}#lesson-panel.lesson-complete{top:31%}.lesson-actions{gap:8px}.podium-mode #results{padding:0;place-items:end stretch;background:linear-gradient(0deg,#101110d9 0%,transparent 60%)}.podium-mode #results>div{width:100%;max-width:none;height:58%;max-height:58%;padding:20px}.podium-mode #results h2{font-size:34px}.podium-mode #results .result-stats{margin:12px 0;padding:10px 0}.replay-save-tools{gap:5px}.replay-save-tools button{font-size:9px;padding:9px 7px}.share-explanation{font-size:9px}#replay-screen .replay-console{max-height:38vh}#touch{gap:6px}#touch button{min-width:44px}}
@media(max-height:560px){#lesson-panel{top:63px;left:30%;width:min(370px,60vw)}#lesson-panel.lesson-complete{top:20%}#lesson-panel h2{font-size:22px}.lesson-actions{margin-top:6px}.podium-mode #results>div{height:90%;max-height:90%}#replay-screen .replay-console{max-height:47vh}}

/* One shared camera frame keeps the baked stage, riders and contact shadows registered. */
.finish-scene{position:absolute;z-index:4;inset:0 min(42vw,520px) 0 0;overflow:hidden;background:#293029;pointer-events:none;isolation:isolate}.finish-scene-atmosphere{position:absolute;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);object-fit:cover;filter:blur(18px) brightness(.74);transform:scale(1.04)}.finish-scene-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);isolation:isolate;mask-image:linear-gradient(0deg,transparent,#000 5%,#000 95%,transparent)}.finish-scene-art{position:absolute;inset:0;animation:finish-scene-reveal .75s ease-out both}.finish-scene-background{position:absolute;inset:0;width:100%;height:100%}.finish-scene-layer{position:absolute;object-fit:fill}.finish-ready #results{background:transparent}.finish-ready #vignette{visibility:hidden}.finish-scene.reduced .finish-scene-art{animation:none}@keyframes finish-scene-reveal{from{opacity:0;transform:scale(1.018)}to{opacity:1;transform:scale(1)}}@media(max-width:759px){.finish-scene{inset:0 0 58%}.finish-scene-frame{mask-image:none}.finish-ready #results{background:transparent}}@media(prefers-reduced-motion:reduce){.finish-scene-art{animation:none}}

.finish-celebration{position:absolute;inset:0;overflow:hidden;pointer-events:none}.finish-celebration i{position:absolute;top:8%;width:5px;height:9px;opacity:0;animation:finish-fleck 1.65s ease-out both}@keyframes finish-fleck{0%{opacity:0;transform:translate3d(0,-12px,0) rotate(0)}12%{opacity:.85}80%{opacity:.65}100%{opacity:0;transform:translate3d(var(--drift),var(--fall),0) rotate(var(--spin))}}@media(prefers-reduced-motion:reduce){.finish-celebration{display:none}}
@media(max-width:759px) and (max-height:560px) and (orientation:landscape){.finish-ready .finish-scene{inset:0 48% 0 0}.finish-ready #results{padding:8px;place-items:center end}.finish-ready #results>div{width:48%;height:96%;max-height:96%;padding:12px}.finish-ready #results h2{font-size:28px}.finish-ready #results .eyebrow{font-size:8px}}
/* Mobile uses a top-anchored camera toolbar; the short-screen desktop bottom
   offset must not stretch its buttons across the scrollable garage panel. */
@media(max-width:759px) and (max-height:650px){.garage-views{bottom:auto}}

/* Store links live in menus so the racing controls stay clear. */
.site-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 0;color:var(--kid-cream);font:700 11px Barlow,Arial,sans-serif;letter-spacing:.06em;line-height:1.5;text-decoration:underline;text-underline-offset:4px;touch-action:manipulation}
.site-link:hover{color:var(--kid-orange)}
.site-link:focus-visible{outline:3px solid var(--kid-orange);outline-offset:4px}
.menu-home{color:#c4c6bd;font-size:10px}
.intro .menu-home{margin-left:7px;margin-bottom:7px}
.modal .menu-home{display:flex;width:fit-content;margin:0 auto}
.result-destinations{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.result-destinations .text-button{margin:0;text-align:left;min-height:44px;font-size:10px;padding:10px 0}
.result-destinations .site-link{font-size:10px;text-align:right}
@media(max-width:359px){.result-destinations{align-items:stretch;flex-direction:column;gap:0}.result-destinations .text-button,.result-destinations .site-link{text-align:center;justify-content:center}}
