:root{color-scheme:dark;--paper:#f3f1e8;--muted:#a8b6b8;--accent:#95cbb3;--line:rgba(235,244,238,.18);font-family:"Avenir Next",Avenir,"Trebuchet MS",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:#101c22;color:var(--paper);overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button{color:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
.mountain-backdrop{position:fixed;inset:0;background:radial-gradient(ellipse at 66% 5%,#69838b 0,#253e48 38%,#0b1b22 80%)}.mountain-backdrop svg{height:100%;width:100%;opacity:.75}.mountain-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,23,29,.66),rgba(9,23,29,.18)),linear-gradient(0deg,#0d1d25 0,transparent 70%)}
#ride-host{position:fixed;inset:0}#ride-host iframe{width:100%;height:100%;border:0;display:block}body.has-ride .mountain-backdrop{display:none}.menu{position:fixed;inset:0;z-index:5;padding:clamp(22px,3.7vw,64px) clamp(24px,5.4vw,92px) 23px;background:rgba(13,27,34,.57);backdrop-filter:blur(18px) saturate(.8);-webkit-backdrop-filter:blur(18px) saturate(.8);display:flex;flex-direction:column;overflow:auto;transition:opacity .45s ease,visibility .45s}.menu:focus{outline:0}.masthead{display:flex;align-items:center;gap:30px;min-height:42px;flex-shrink:0}.wordmark{font-family:"Avenir Next Condensed","Arial Narrow",sans-serif;font-size:27px;font-weight:750;letter-spacing:.18em;display:grid;grid-template-columns:37px auto;align-items:center;column-gap:9px;line-height:1}.wordmark svg{grid-row:span 2;width:32px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7}.wordmark span{font-family:"Avenir Next",sans-serif;font-size:7px;letter-spacing:.3em;margin-top:7px}.edition{margin-left:auto;font-size:9px;letter-spacing:.19em;color:var(--muted)}.text-button{border:0;border-bottom:1px solid var(--line);padding:10px 0;background:none;font-size:12px;letter-spacing:.03em;white-space:nowrap}.text-button span{margin-left:13px;color:var(--accent)}
.eyebrow{font-size:10px;font-weight:650;letter-spacing:.19em;color:var(--muted);line-height:1.4}.course-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:clamp(40px,7vw,140px);align-items:center;flex:1;padding:clamp(24px,4vh,62px) 0 32px;min-height:360px}.course-story>.eyebrow{display:flex;gap:20px;align-items:center;margin:0 0 29px}.chapter{font-variant-numeric:tabular-nums;color:var(--accent);font-size:10px;letter-spacing:.09em}.trail-rating{display:flex;align-items:center;gap:10px;color:var(--accent);font-size:11px;font-weight:550;letter-spacing:.08em}.trail-rating>span:last-child{color:var(--muted);font-size:8px;letter-spacing:.13em}.rating-rule{width:24px;height:1px;background:var(--line);margin:0 4px}.trail-symbol{display:inline-block;width:9px;height:9px;background:currentColor;flex-shrink:0}.trail-symbol.circle{border-radius:50%}.trail-symbol.diamond{transform:rotate(45deg);width:8px;height:8px}
h1{font-family:"DIN Condensed","Avenir Next Condensed",Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-stretch:condensed;font-weight:700;font-size:clamp(66px,7.5vw,126px);letter-spacing:-.025em;line-height:.88;margin:20px 0 24px;max-width:810px;text-wrap:balance}h1 .name-line{display:block}.description{max-width:405px;font-size:13px;line-height:1.8;color:#c6d0d0;margin:0 0 25px}.course-actions{display:flex;gap:22px;align-items:center}.primary-button{border:1px solid transparent;background:var(--accent);color:#10262c;min-height:52px;min-width:218px;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:35px;font-size:12px;font-weight:750;letter-spacing:.04em;transition:background .18s,transform .18s}.primary-button:hover{background:var(--paper);transform:translateY(-2px)}.primary-button>span:last-child{font-size:22px;font-weight:400}.action-caption{font-size:10px;color:var(--muted);max-width:100px;line-height:1.6}
.course-details{align-self:center;color:var(--accent);padding-top:50px;max-width:460px}.detail-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.13em}.detail-heading .eyebrow{font-size:9px}.course-details svg{display:block;width:100%;height:auto;margin:17px 0 0;overflow:visible}.profile-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 6;fill:none}.profile-line{stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}.course-details circle{fill:var(--accent)}.profile-labels{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.15em;color:var(--muted);margin-top:-4px}.stats{margin:28px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1.15fr 1.3fr .7fr .6fr;gap:12px;padding-top:20px;color:var(--paper)}.stats dt{font-size:9px;color:var(--muted);white-space:nowrap;margin-bottom:7px}.stats dd{font-size:25px;margin:0;font-family:"DIN Alternate","Avenir Next",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.stats small{font-size:11px;color:var(--muted);margin-left:5px;letter-spacing:0}.line-note{font-family:Baskerville,Georgia,serif;font-style:italic;font-size:19px;font-weight:400;color:#c3d0d0;margin:27px 0 0}
.course-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-shrink:0}.course-option{position:relative;text-align:left;border:0;border-right:1px solid var(--line);background:transparent;padding:23px 24px 22px;color:var(--muted);display:grid;grid-template-columns:22px 1fr auto;column-gap:10px;align-items:center;transition:background .2s}.course-option:nth-child(3n+1){padding-left:0}.course-option:nth-child(3n){border-right:0;padding-right:0}.course-option:nth-child(n+4){border-top:1px solid var(--line)}.course-option:before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:transparent;transition:background .2s}.course-option[aria-current=true]{color:var(--paper);background:linear-gradient(180deg,rgba(255,255,255,.03),transparent)}.course-option[aria-current=true]:before{background:var(--accent)}.course-option:hover{background:rgba(255,255,255,.05)}.option-number{font-size:10px;align-self:start;padding-top:3px;font-variant-numeric:tabular-nums;color:var(--accent)}.option-name{font-family:"DIN Condensed","Avenir Next Condensed",Impact,sans-serif;text-transform:uppercase;letter-spacing:.035em;font-size:clamp(19px,2vw,26px);line-height:1.05}.option-meta{grid-column:2;margin-top:8px;font-size:9px;letter-spacing:.04em;color:var(--muted)}.course-option>.trail-symbol{color:var(--trail-accent);margin-left:14px}.menu-footer{display:flex;justify-content:space-between;gap:16px;margin-top:20px;color:var(--muted);font-size:9px;letter-spacing:.025em;flex-shrink:0}.menu-footer kbd{font-family:inherit;border:1px solid var(--line);padding:2px 5px;margin-right:3px;color:#d9e2e1;font-size:9px}.footer-separator{opacity:.35;margin:0 10px}
.results{display:flex;align-items:center;gap:30px;margin-top:27px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0}.results>div:first-child{margin-right:auto}.results .eyebrow{font-size:8px;display:block;margin-bottom:5px}.results p{margin:0;font-size:12px}.results strong{font-family:"DIN Alternate","Avenir Next",sans-serif;font-size:28px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}.results #result-note{color:var(--accent);max-width:150px;line-height:1.5;font-size:10px}.results:not([hidden])+.course-layout{padding-top:25px}.results:not([hidden])+.course-layout h1{font-size:clamp(60px,6.5vw,106px)}.results:not([hidden])+.course-layout .course-story>.eyebrow{margin-bottom:18px}
.fps{position:fixed;right:20px;top:16px;z-index:3;font:600 11px/1.4 "Avenir Next",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#fff;text-shadow:0 1px 5px #000;background:rgba(12,25,31,.34);padding:6px 9px;pointer-events:none}.loading{position:fixed;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:35px;background:rgba(12,25,32,.78);backdrop-filter:blur(20px)}.loading h2{font-family:"DIN Condensed","Avenir Next Condensed",Impact,sans-serif;font-size:clamp(48px,7vw,100px);line-height:.95;text-transform:uppercase;text-align:center;max-width:780px;margin:30px 0 45px}.loading-track{height:2px;width:min(480px,90vw);background:var(--line)}#loading-fill{height:100%;width:0;background:var(--accent);transition:width .15s}#loading-text{color:var(--muted);font-size:12px;margin:20px 0 30px;text-align:center}.error{font-size:12px;color:#f1bea8;line-height:1.6;max-width:560px;white-space:pre-wrap}.no-script{position:fixed;z-index:10;inset:40%;color:white}#replay-banner{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:10px;white-space:nowrap;color:#fff;background:rgba(13,27,34,.6);backdrop-filter:blur(8px);padding:12px 17px;font-size:9px;letter-spacing:.14em}#replay-banner>span:last-child{font-size:10px;letter-spacing:0;opacity:.7;margin-left:12px}.replay-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;animation:breathe 2.5s ease-in-out infinite}@keyframes breathe{50%{opacity:.35}}
body[data-phase=riding] .menu,body[data-phase=replay] .menu{opacity:0;visibility:hidden;pointer-events:none}body[data-phase=loading] .menu{visibility:hidden}body[data-phase=replay] #ride-host{pointer-events:none}
@media(min-width:1700px){.menu{padding-top:60px;padding-bottom:35px}.course-layout{gap:10vw}.course-story>.eyebrow{margin-bottom:38px}h1{font-size:145px}.description{font-size:15px;max-width:450px}.course-option{padding-top:30px;padding-bottom:29px}.option-name{font-size:34px}.stats dd{font-size:32px}.course-details{max-width:550px}}
@media(max-width:1000px){.menu{padding:28px 35px 20px}.course-layout{gap:35px;grid-template-columns:minmax(0,1.1fr) minmax(245px,.8fr)}h1{font-size:76px}.description{font-size:12px}.action-caption{display:none}.course-option{padding:20px 15px}.option-name{font-size:23px}.edition{font-size:8px}.stats{gap:8px}.stats dd{font-size:22px}.stats dt{font-size:8px}.course-details{padding-top:24px}.menu-footer{font-size:8px}}
@media(max-width:720px){html,body{overflow:auto}.menu{padding:24px 25px 18px;min-height:100svh;height:100%;}.edition{display:none}.masthead{justify-content:space-between}.wordmark{font-size:23px}.course-layout{grid-template-columns:1fr;gap:30px;padding:30px 0;min-height:auto;flex:initial}.course-story>.eyebrow{margin-bottom:21px}h1{font-size:clamp(68px,16vw,100px);max-width:600px;margin:20px 0}.description{max-width:460px;margin-bottom:21px}.course-details{padding:0;max-width:none}.detail-heading{font-size:9px}.course-details svg{height:95px;margin-top:13px;preserveAspectRatio:none}.stats{grid-template-columns:repeat(4,1fr);margin-top:18px;padding-top:15px}.stats dd{font-size:25px}.line-note{display:none}.course-list{grid-template-columns:1fr}.course-option,.course-option:first-child,.course-option:last-child{padding:18px 0;border-right:0;border-bottom:1px solid var(--line);grid-template-columns:23px 1fr auto}.course-option:last-child{border-bottom:0}.option-name{font-size:26px}.option-meta{margin-top:5px}.course-option[aria-current=true]:before{width:2px;height:auto;top:0;bottom:0;left:-12px;right:auto}.menu-footer{flex-direction:column;gap:15px;line-height:1.5;margin-top:19px}.results{gap:18px;flex-wrap:wrap;margin-top:24px}.results>div:first-child{width:100%;margin:0}.results #result-note{margin-left:auto}.results:not([hidden])+.course-layout h1{font-size:clamp(65px,15vw,95px)}.primary-button{min-height:49px;width:100%}#replay-banner{font-size:8px;gap:7px;width:max-content;max-width:95vw;flex-wrap:wrap;justify-content:center}#replay-banner>span:last-child{width:100%;text-align:center;margin:0}.fps{right:12px;top:12px}}
@media(max-height:730px) and (min-width:721px){.menu{padding-top:22px;padding-bottom:16px}.course-layout{padding:22px 0;min-height:300px}.course-story>.eyebrow{margin-bottom:15px}h1{font-size:clamp(64px,7.5vw,95px);margin:15px 0 17px}.description{margin-bottom:19px}.course-option{padding-top:16px;padding-bottom:16px}.course-details{padding-top:20px}.course-details svg{height:125px}.stats{margin-top:17px;padding-top:16px}.line-note{margin-top:16px}.results{margin-top:17px;padding:12px 0}.results:not([hidden])+.course-layout h1{font-size:70px}.menu-footer{margin-top:16px}}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Keep the illustrated mountain crisp until a real ride supplies the backdrop. */
body:not(.has-ride) .menu{background:linear-gradient(90deg,rgba(8,21,28,.32),rgba(8,21,28,.12));backdrop-filter:none;-webkit-backdrop-filter:none}
body:not(.has-ride) .mountain-backdrop svg{opacity:1}
body:not(.has-ride) .mountain-backdrop:after{background:linear-gradient(90deg,rgba(9,23,29,.42),rgba(9,23,29,.06)),linear-gradient(0deg,#0d1d25 0,transparent 65%)}

@media(min-width:721px){.course-option{padding-top:16px;padding-bottom:16px}.course-layout{min-height:320px}.line-note{font:11px/1.7 "Avenir Next",sans-serif;letter-spacing:.02em}.course-details{padding-top:26px}}
@media(max-width:720px){.course-option:nth-child(n){padding:18px 0;border-top:0;border-right:0}.course-option:not(:last-child){border-bottom:1px solid var(--line)}}

/* Player-facing copy stays legible at every viewport size. */
:root{--muted:#c2cecf}
.wordmark span{font-size:12px;letter-spacing:.12em}
.edition,.eyebrow,.chapter,.trail-rating>span:last-child,.detail-heading,.detail-heading .eyebrow,.profile-labels,.stats dt,.stats small,.option-number,.option-meta,.action-caption,.menu-footer,.menu-footer kbd,.results .eyebrow,.results #result-note{font-size:14px}
.edition,.eyebrow,.detail-heading,.profile-labels{letter-spacing:.1em}
.trail-rating,.text-button,.primary-button,.results p,#loading-text,.error{font-size:16px}
.description{font-size:17px;line-height:1.65;max-width:480px}
.action-caption{max-width:130px}.option-meta{line-height:1.5;letter-spacing:0}
.line-note{font:15px/1.65 "Avenir Next",sans-serif;letter-spacing:0}
.fps{font-size:16px}.results #result-note{max-width:190px}
.course-layout{flex:1 0 auto}.course-story,.course-details{min-width:0}
.course-story>.eyebrow,.trail-rating{flex-wrap:wrap}
.menu-footer{align-items:center;gap:24px;line-height:1.7}
.footer-help{display:flex;flex:1;min-width:0;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between}
.footer-separator{margin:0 6px}
.studio-logo{display:block;width:140px;height:auto;flex:none;opacity:.3;pointer-events:none;user-select:none}
.ride-watermark{display:none;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:4}
body[data-phase=riding] .ride-watermark,body[data-phase=replay] .ride-watermark{display:block}
#replay-banner{font-size:14px;bottom:100px;max-width:calc(100vw - 40px);white-space:normal;flex-wrap:wrap;justify-content:center;text-align:center}
#replay-banner>span:last-child{font-size:14px;opacity:1}
@media(max-width:1000px){.course-option{column-gap:8px}.course-option>.trail-symbol{margin-left:4px}.option-name{font-size:23px}.course-layout{gap:28px}.stats{grid-template-columns:1fr 1.2fr .8fr .6fr;gap:8px}.stats dt{white-space:normal;line-height:1.35;min-height:38px}}
@media(max-width:720px){.masthead{gap:18px;flex-wrap:wrap}.course-layout{flex:initial}.menu-footer{flex-direction:row;align-items:flex-end;flex-wrap:wrap}.footer-help{flex-basis:100%;justify-content:flex-start}.menu-footer .studio-logo{margin-left:auto}.ride-watermark{width:120px;right:16px;bottom:16px}.studio-logo{width:120px}.line-note{display:block;font-size:15px}#replay-banner{bottom:90px}.stats dt{min-height:0}}
@media(max-width:480px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}.course-story>.eyebrow{gap:10px 16px}.trail-rating{gap:8px}.trail-rating>span:last-child{letter-spacing:.04em}.description{font-size:17px}.primary-button{font-size:16px}}
@media(max-height:730px) and (min-width:721px){h1{font-size:72px}.course-layout{padding:18px 0}.course-story>.eyebrow{margin-bottom:12px}.description{margin-bottom:16px}.menu-footer{margin-top:14px}}

.controller-status{flex-basis:100%;font-size:14px;line-height:1.6;color:var(--muted)}
.usb-connect{font-size:14px;padding:2px 0;color:var(--paper);white-space:normal;text-align:left;cursor:pointer}
.controls-guide{flex-shrink:0;margin-top:16px;border-top:1px solid var(--line);font-size:16px;line-height:1.6}
.controls-guide summary{cursor:pointer;padding:14px 0;color:var(--paper);width:fit-content;font-weight:650}
.controls-guide summary span{font-size:14px;font-weight:400;margin-left:14px;color:var(--muted)}
.controls-guide summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.controls-intro,.controls-note{margin:0 0 18px;color:var(--muted);font-size:14px;max-width:850px}
.controls-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 60px;max-width:1100px}
.controls-columns h2{font-size:16px;font-weight:650;color:var(--accent);margin:0 0 12px}
.controls-columns dl{margin:0 0 20px}.controls-columns dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px;padding:6px 0;border-bottom:1px solid var(--line)}
.controls-columns dt{color:var(--muted)}.controls-columns dd{margin:0}.controls-columns p{color:var(--muted);font-size:14px;margin:0 0 20px;max-width:480px}
@media(max-width:720px){.controls-columns{grid-template-columns:1fr;gap:4px}.controls-guide summary{padding:16px 0}.controls-columns dl>div{gap:12px}}

/* The demo scoreboard: the post panel after a clean finish and the menu's top runs. */
.post-run{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:12px 48px;align-items:start;border-bottom:1px solid var(--line);padding:18px 0}
.post-run-entry{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}.post-run-entry>.eyebrow{flex-basis:100%}
.initials{display:flex;gap:10px}
.initial{width:58px;height:68px;padding:0;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--paper);font:700 42px/1 "DIN Condensed","Avenir Next Condensed",Impact,sans-serif;text-align:center}
.initial[aria-current=true]{border-color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}
.post-run-actions{display:flex;align-items:center;gap:20px}.post-run-submit{min-width:150px;min-height:48px;gap:20px}
.post-run-help{flex-basis:100%;margin:0;color:var(--muted);font-size:14px}.post-run-help kbd{font-family:inherit;border:1px solid var(--line);padding:1px 5px;font-size:13px}
.post-run-email-toggle{font-size:14px;white-space:normal;text-align:left;padding:4px 0}
.post-run-email{flex-basis:100%;display:grid;gap:10px;max-width:520px}
.post-run-field{display:grid;gap:6px;font-size:14px;color:var(--muted)}
.post-run-field input{font:inherit;font-size:16px;color:var(--paper);background:rgba(255,255,255,.06);border:1px solid var(--line);padding:10px 12px}
.post-run-field input:focus-visible,.post-run-age input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.post-run-sentence{margin:0;font-size:14px;color:var(--paper)}.post-run-sentence a{color:var(--accent);text-decoration:underline}
.post-run-age{display:flex;gap:10px;align-items:center;font-size:14px}
.post-run-status{grid-column:1;margin:0;min-height:1.5em;font-size:14px;color:var(--accent)}
.post-run-result{grid-column:2;grid-row:1/span 2}.post-run-rank{margin:0 0 10px;font-size:16px}
.post-run:has(#post-run-entry[hidden]) .post-run-result{grid-column:1/-1;grid-row:auto;max-width:720px}
.score-board{list-style:none;margin:0;padding:0;font-variant-numeric:tabular-nums}
.score-board li{display:grid;grid-template-columns:2.4em 3.4em 1fr auto;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--paper)}
.score-board li.mine{color:var(--accent);font-weight:700}.score-board .board-score{color:var(--muted)}.score-board li.empty{display:block;color:var(--muted)}
.menu-board{margin-top:22px}.menu-board .score-board{margin-top:10px}#menu-board-note{color:var(--muted)}
@media(max-width:720px){.post-run{grid-template-columns:1fr}.post-run-result{grid-column:1;grid-row:auto}.initial{width:52px;height:60px;font-size:36px}}
