:root {
  --yellow:#f2d21b;
  --sun:#efaa16;
  --ink:#191a18;
  --tarmac:#2c302f;
  --paper:#eee9d9;
  --red:#df442c;
  --blue:#2768ad;
  --green:#387f58;
  --cream:#f8f2db;
  --display:'Gloock',serif;
  --body:'Archivo',sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);overflow-x:hidden}
body::selection{background:var(--ink);color:var(--yellow)}
a{color:inherit}
button,input{font:inherit}
.skip{position:fixed;top:8px;left:8px;z-index:1000;background:#fff;color:#000;padding:12px 16px;transform:translateY(-140%)}
.skip:focus{transform:none}
:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px var(--blue)}
.paper-noise{position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.16;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E")}
.race-header{position:absolute;z-index:20;top:0;left:0;width:100%;height:96px;padding:18px 3.2vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(25,26,24,.35)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:11px;font-weight:700;line-height:1.05;letter-spacing:.08em}
.brand b{font-size:16px;letter-spacing:.02em}
.brand-mark{display:flex;gap:3px;align-items:flex-end;width:34px;height:26px}.brand-mark i{display:block;width:8px;background:var(--ink);border-radius:50%}.brand-mark i:nth-child(1){height:12px}.brand-mark i:nth-child(2){height:25px}.brand-mark i:nth-child(3){height:17px}
.race-header nav{display:flex;gap:30px}.race-header nav a{font-size:12px;font-weight:700;text-transform:uppercase;text-decoration:none;letter-spacing:.08em;position:relative}.race-header nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--ink);transition:right .25s}.race-header nav a:hover::after{right:0}
.race-radio{border:1px solid var(--ink);background:transparent;min-height:44px;padding:0 15px;font-size:10px;font-weight:800;letter-spacing:.08em;cursor:pointer}.race-radio span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#666;margin-right:6px}.race-radio[aria-pressed="true"] span{background:var(--red);box-shadow:0 0 0 5px rgba(223,68,44,.2);animation:pulse 1s infinite}
.gap-ticker{position:fixed;top:0;left:50%;z-index:80;transform:translateX(-50%);height:31px;width:min(700px,74vw);display:flex;align-items:center;background:var(--tarmac);color:white;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);font-size:10px;font-weight:800;letter-spacing:.08em;padding:0 22px;gap:14px;transition:transform .3s,opacity .25s}
.gap-ticker.is-finished{opacity:0;pointer-events:none;transform:translate(-50%,-140%)}
.ticker-label{color:var(--yellow)}.ticker-time{font-size:15px}.ticker-dots{height:1px;flex:1;background:repeating-linear-gradient(90deg,#777 0 2px,transparent 2px 7px)}.ticker-message{font-size:9px;color:#bbb}.ticker-km{white-space:nowrap}
.hero{min-height:100svh;background:var(--yellow);position:relative;overflow:hidden;padding:140px 6vw 80px;display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 45%,rgba(255,255,255,.28) 45.1%,transparent 46%),radial-gradient(circle at 80% 18%,rgba(255,255,255,.4),transparent 22%)}
.sun-disc{position:absolute;width:42vw;aspect-ratio:1;border-radius:50%;right:-10vw;top:-15vw;background:var(--sun);box-shadow:inset 0 0 0 2px rgba(25,26,24,.08)}
.hero-copy{position:relative;z-index:3;max-width:1080px}
.eyebrow,.section-tag{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.eyebrow::before,.section-tag::before{content:"";display:inline-block;width:36px;height:2px;background:currentColor;vertical-align:middle;margin-right:12px}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(68px,11.5vw,178px);line-height:.76;letter-spacing:-.055em;margin:36px 0 44px;max-width:1050px}.hero h1 em{font-weight:400;color:var(--cream);text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink)}
.hero-deck{display:grid;grid-template-columns:minmax(250px,440px) 190px;gap:60px;margin-left:22vw;align-items:end}.hero-deck>p:first-child{font-family:var(--display);font-size:18px;line-height:1.55;margin:0}.hero-deck .issue{font-size:10px;font-weight:800;line-height:1.7;border-left:2px solid var(--ink);padding-left:13px;margin:0}
.hero-route{position:absolute;left:0;bottom:0;width:100%;height:29vh;opacity:.11}.hero-route svg{width:100%;height:100%}.hero-route path{fill:var(--ink)}
.wheel{position:absolute;width:29vw;aspect-ratio:1;border:2px solid rgba(25,26,24,.36);border-radius:50%;right:8vw;bottom:-17vw;z-index:2;animation:spin 12s linear infinite}.wheel::before,.wheel::after,.wheel span::before,.wheel span::after{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:rgba(25,26,24,.28)}.wheel::after{transform:rotate(45deg)}.wheel span::before{transform:rotate(90deg)}.wheel span::after{transform:rotate(135deg)}
.sunflowers{position:absolute;right:4vw;bottom:18vh;display:flex;align-items:flex-end;gap:1.6vw;z-index:2}.sunflowers span{display:block;position:relative;width:32px;height:32px;background:var(--sun);border-radius:50%;box-shadow:0 0 0 10px var(--yellow),0 0 0 12px var(--ink)}.sunflowers span::after{content:"";position:absolute;top:42px;left:15px;width:2px;height:160px;background:var(--ink)}.sunflowers span:nth-child(2){margin-bottom:35px;transform:scale(.7)}.sunflowers span:nth-child(3){margin-bottom:-20px;transform:scale(1.15)}.sunflowers span:nth-child(4){margin-bottom:70px;transform:scale(.55)}.sunflowers span:nth-child(5){margin-bottom:10px;transform:scale(.8)}
.start-riding{position:absolute;z-index:5;right:3vw;bottom:34px;min-height:48px;text-decoration:none;text-transform:uppercase;font-weight:800;font-size:10px;letter-spacing:.14em;display:flex;align-items:center;gap:9px}.start-riding span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--ink);border-radius:50%}
.reveal{opacity:0;transform:translateY(30px);animation:reveal .7s cubic-bezier(.2,.8,.2,1) forwards}.hero .reveal:nth-child(2){animation-delay:.16s}.hero .reveal:nth-child(3){animation-delay:.32s}
.editorial{padding:130px 7vw;background:var(--paper)}
.manifesto-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:8vw;margin-top:70px}.manifesto-grid h2,.stages-heading h2,.feed-intro h2,.autobus h2,.hairpin-copy h2,.ledger h2,.finish h2{font-family:var(--display);font-weight:400;letter-spacing:-.045em;line-height:.9;margin:0;font-size:clamp(54px,7.2vw,110px)}
.drop-copy{font-family:var(--display);font-size:clamp(18px,1.55vw,24px);line-height:1.6;columns:2;column-gap:34px}.drop-copy p{margin:0 0 1.3em}.drop-copy p:first-child::first-letter{float:left;font-size:5.3em;line-height:.68;padding:12px 8px 0 0;color:var(--red)}
.legend{grid-column:1/-1;border-top:1px solid #aaa;border-bottom:1px solid #aaa;padding:20px 0;display:flex;gap:32px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.legend span{display:flex;align-items:center;gap:8px}.legend i{width:34px;height:10px;background:var(--ink);display:inline-block;clip-path:polygon(0 100%,100% 100%,80% 70%,60% 80%,45% 10%,30% 75%)}.legend .flat{clip-path:polygon(0 70%,100% 65%,100% 100%,0 100%);background:var(--green)}.legend .medium{background:var(--sun)}.legend .mountain{height:18px;background:var(--red)}
.stages-wrap{background:var(--tarmac);color:var(--paper);padding:140px 0 90px;position:relative}
.stages-heading{padding:0 8vw 100px;display:grid;grid-template-columns:1fr 1.2fr;column-gap:8vw}.stages-heading .section-tag{grid-column:1/-1;margin-bottom:62px;color:var(--yellow)}.stages-heading h2 em,.feed-intro h2 em,.autobus h2 em,.ledger h2 em,.finish h2 em{font-weight:400;color:var(--yellow)}.stages-heading>p:last-child{max-width:460px;font-family:var(--display);font-size:20px;line-height:1.5;align-self:end}
.tour-progress{position:absolute;left:2.3vw;top:480px;bottom:130px;width:24px;display:flex;flex-direction:column;align-items:center;gap:9px;color:#888;font-size:9px}.tour-progress>i{width:1px;flex:1;background:#555}.tour-progress-line{position:absolute;z-index:2;top:26px;width:3px;height:0;background:var(--yellow);max-height:calc(100% - 52px)}
.stages{border-top:1px solid #565a58}
.stage{--stage:#f2d21b;min-height:77vh;display:grid;grid-template-columns:11vw 32vw 1fr;position:relative;border-bottom:1px solid #565a58;padding:70px 5vw 60px 8vw;overflow:hidden;transition:background .5s}.stage.is-active{background:#323735}.stage::after{content:attr(data-word);position:absolute;right:-1vw;top:-2vw;font-family:var(--display);font-size:15vw;color:rgba(255,255,255,.025);line-height:1;pointer-events:none;white-space:nowrap}.stage-number{font-family:var(--display);font-size:72px;color:var(--stage);letter-spacing:-.05em;line-height:.8}.stage-number small{font-family:var(--body);display:block;font-size:9px;letter-spacing:.15em;color:#aaa;margin-top:17px}.stage-meta{padding-right:4vw}.stage-meta .date{font-size:9px;font-weight:800;letter-spacing:.13em;color:#aaa}.stage-meta h3{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.1vw,64px);line-height:.94;margin:25px 0 16px}.stage-meta .route{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.6}.stats{display:flex;gap:25px;margin-top:38px}.stats span{font-size:9px;text-transform:uppercase;color:#aaa}.stats strong{display:block;color:var(--paper);font-size:17px;margin-top:5px}.profile-box{align-self:center;position:relative;min-width:0}.profile-box svg{width:100%;height:260px;overflow:visible}.profile-fill{fill:color-mix(in srgb,var(--stage) 25%,transparent)}.profile-line{fill:none;stroke:var(--stage);stroke-width:4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.profile-grid{stroke:#606563;stroke-width:.5;stroke-dasharray:3 7}.profile-baseline{stroke:#898c8a;stroke-width:1}.profile-dot{fill:var(--paper);stroke:var(--tarmac);stroke-width:3}.profile-label{font:700 9px var(--body);fill:var(--paper);letter-spacing:.08em}.profile-note{display:flex;justify-content:space-between;font-size:9px;color:#aaa;text-transform:uppercase;letter-spacing:.1em;margin-top:14px}.gradient-badge{position:absolute;right:0;top:-42px;border:1px solid var(--stage);color:var(--stage);padding:7px 9px;font-size:9px;font-weight:800;letter-spacing:.1em}.stage-quote{position:absolute;right:5vw;bottom:28px;font-family:var(--display);font-style:italic;font-size:14px;color:#aeb1af}
@media(min-width:901px){.stage:nth-child(even){grid-template-columns:11vw minmax(0,1fr) 32vw;column-gap:3vw}.stage:nth-child(even) .stage-meta{grid-column:3;grid-row:1}.stage:nth-child(even) .profile-box{grid-column:2;grid-row:1}.stage:nth-child(even) .stage-quote{right:auto;left:19vw}}
.feed-zone{background:var(--yellow);padding:130px 6vw 150px;position:relative;overflow:hidden}.feed-zone::before{content:"FEED FEED FEED FEED";position:absolute;top:-2vw;left:-2vw;font:400 12vw var(--display);white-space:nowrap;color:rgba(25,26,24,.045)}.feed-intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;position:relative}.feed-intro .section-tag{grid-column:1/-1}.feed-intro h2 em{color:var(--cream);text-shadow:-1px -1px var(--ink),1px 1px var(--ink)}.feed-intro>p:last-child{font-family:var(--display);font-size:20px;line-height:1.55;align-self:end;max-width:440px}.musettes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:110px;position:relative}.musette{min-height:390px;padding:48px 32px 28px;position:relative;box-shadow:13px 15px 0 rgba(25,26,24,.18);transition:transform .25s;clip-path:polygon(0 12%,8% 12%,8% 0,92% 0,92% 12%,100% 12%,100% 100%,0 100%)}.musette:hover{transform:translateY(-12px) rotate(-1deg)}.musette-yellow{background:#f1e4ad}.musette-red{background:var(--red);color:white;transform:translateY(34px) rotate(1.5deg)}.musette-blue{background:var(--blue);color:white}.strap{position:absolute;top:0;left:28%;right:28%;height:65px;border:8px solid currentColor;border-bottom:0;opacity:.35}.musette-num{font:400 48px var(--display);margin:25px 0 45px}.musette h3{font:400 32px/1.03 var(--display);margin:0 0 28px}.musette>p:not(.musette-num){font-size:11px;line-height:1.65}.musette strong{position:absolute;bottom:25px;left:32px;font-size:9px;letter-spacing:.16em;border-bottom:2px solid currentColor;padding-bottom:5px}
.autobus{min-height:850px;background:var(--blue);color:white;padding:140px 7vw;display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:center;position:relative;overflow:hidden}.autobus::after{content:"+18%";position:absolute;right:-3vw;bottom:-8vw;font:400 21vw var(--display);color:rgba(255,255,255,.06)}.autobus-sun{position:absolute;width:380px;height:380px;background:var(--yellow);border-radius:50%;left:-150px;top:-100px;box-shadow:0 0 0 70px rgba(242,210,27,.08),0 0 0 140px rgba(242,210,27,.04)}.autobus-copy{position:relative;z-index:2}.autobus h2{margin:45px 0 36px}.autobus h2 em{color:var(--yellow)}.autobus-copy>p:last-child{font:400 20px/1.55 var(--display);max-width:520px}.cutoff-card{position:relative;z-index:2;background:var(--paper);color:var(--ink);padding:40px;box-shadow:18px 18px 0 rgba(0,0,0,.22);transform:rotate(1deg)}.cutoff-card label{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:30px}.cutoff-card output{font:400 24px var(--display)}input[type="range"]{grid-column:1/-1;width:100%;accent-color:var(--red);min-height:30px;cursor:pointer}.cutoff-result{border-top:3px solid var(--ink);padding-top:20px}.cutoff-result>p:first-child{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em}.cutoff-result>p strong{font-size:16px}.verdict{font:400 clamp(28px,4vw,54px)/1 var(--display);color:var(--green);margin:28px 0 12px}.verdict.outside{color:var(--red)}.cutoff-result span{font-size:11px}
.hairpins{background:var(--paper);min-height:900px;padding:140px 6vw;display:grid;grid-template-columns:.75fr 1.25fr;gap:4vw;align-items:center;overflow:hidden}.hairpin-copy h2{margin:42px 0 30px}.hairpin-copy p:last-child{font:400 19px/1.55 var(--display);max-width:420px}.switchbacks{position:relative}.switchbacks svg{width:100%;overflow:visible}.road-shadow{fill:none;stroke:var(--ink);stroke-width:72;stroke-linecap:round;stroke-linejoin:round}.road-line{fill:none;stroke:var(--yellow);stroke-width:56;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 0}.nameplate,.graffiti{position:absolute;display:block;transform:rotate(-6deg);font-weight:900;line-height:.9}.nameplate{background:white;color:var(--red);padding:8px;font-size:15px;box-shadow:3px 3px 0 var(--ink)}.graffiti{font-size:18px;color:var(--blue);font-style:italic}.n1{left:18%;bottom:12%}.g1{right:14%;bottom:25%}.n2{left:15%;top:35%;transform:rotate(8deg)}.g2{right:19%;top:32%;color:var(--red)}.n3{right:10%;top:3%;transform:rotate(-3deg)}.g3{left:37%;top:10%;color:var(--green)}
.ledger{background:#ded7c3;padding:140px 8vw 100px;border-top:14px solid var(--red);position:relative}.ledger::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(25,26,24,.08) calc(25% - 1px) 25%);pointer-events:none}.ledger-head{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3vw;border-bottom:2px solid var(--ink);padding-bottom:42px}.ledger-head .section-tag{grid-column:1/-1}.ledger-head h2{margin-top:35px}.byline{align-self:end;font-size:11px;font-weight:700}.ledger-body{position:relative;margin:70px auto;max-width:1000px;columns:3;column-gap:45px;font:400 16px/1.72 var(--display)}.ledger-body p{margin:0 0 1.5em;break-inside:avoid}.ledger-body .lede{font-size:23px;line-height:1.38}.ledger-body aside{break-inside:avoid;border:2px solid var(--ink);padding:20px;margin:0 0 25px;transform:rotate(-2deg);font-family:var(--body)}.ledger-body aside strong{display:block;font:400 42px var(--display);color:var(--red)}.ledger-body aside span{font-size:10px;line-height:1.4}.ledger-body blockquote{break-inside:avoid;margin:0 0 30px;padding:18px 0;border-top:1px solid;border-bottom:1px solid;font-size:23px;font-style:italic;line-height:1.35}.ledger-total{position:relative;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:16px 0;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:22px;align-items:baseline;font-size:9px;letter-spacing:.1em}.ledger-total strong{font:400 24px var(--display);letter-spacing:0}
.finish{min-height:88vh;background:var(--tarmac);color:white;text-align:center;padding:150px 7vw 110px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.finish-lines{position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 80px,rgba(255,255,255,.04) 80px 81px)}.finish .section-tag{color:var(--yellow);position:relative}.finish h2{position:relative;margin:45px 0 35px;max-width:1100px}.finish p:not(.section-tag){position:relative;max-width:670px;font:400 19px/1.6 var(--display)}.finish>a{position:relative;margin-top:45px;text-decoration:none;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.12em}.finish>a span{display:inline-grid;place-items:center;border:1px solid white;width:44px;height:44px;border-radius:50%;margin-left:8px}.site-footer{background:var(--yellow);padding:25px 4vw;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.site-footer nav{display:flex;gap:24px}.site-footer a{text-decoration:none;border-bottom:1px solid transparent}.site-footer a:hover{border-color:currentColor}
@keyframes reveal{to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}

@media(max-width:900px){
  .race-header{height:82px}.race-header nav{display:none}.gap-ticker{width:68vw}.ticker-message{display:none}.hero{padding:130px 5vw 70px}.hero-deck{margin-left:10vw}.manifesto-grid,.feed-intro,.autobus,.hairpins{grid-template-columns:1fr}.drop-copy{columns:1}.stages-heading{grid-template-columns:1fr}.stages-heading>p:last-child{margin-top:35px}.stage{grid-template-columns:13vw 1fr;padding-left:7vw;min-height:670px}.profile-box{grid-column:1/-1;margin-top:40px}.profile-box svg{height:210px}.tour-progress{display:none}.musettes{gap:14px}.musette{padding-left:22px;padding-right:20px}.musette h3{font-size:26px}.autobus{gap:50px}.autobus-copy{max-width:600px}.hairpins{gap:50px}.switchbacks{max-width:700px;margin:auto}.ledger-body{columns:2}.ledger::before{background:repeating-linear-gradient(90deg,transparent 0 calc(50% - 1px),rgba(25,26,24,.08) calc(50% - 1px) 50%)}
}
@media(min-width:601px) and (max-width:900px){.hero{align-items:flex-start}.hero-copy{margin-top:145px}.stage{min-height:620px}.finish{min-height:76vh}}

@media(max-width:600px){
  .race-header{padding:14px 16px}.brand{font-size:9px}.brand b{font-size:13px}.brand-mark{width:28px}.race-radio{padding:0 10px;font-size:9px}.gap-ticker{top:82px;width:100%;height:30px;clip-path:none;padding:0 16px}.ticker-dots{display:none}.ticker-km{margin-left:auto}.hero{min-height:850px;padding:205px 18px 80px;align-items:flex-start}.sun-disc{width:90vw;right:-45vw;top:80px}.hero h1{font-size:65px;line-height:.82;margin:38px 0 42px}.hero-deck{grid-template-columns:1fr;margin:0;gap:24px;width:92%}.hero-deck>p:first-child{font-size:16px}.hero-deck .issue{max-width:190px}.sunflowers{right:0;bottom:110px;transform:scale(.65);transform-origin:right bottom}.wheel{width:70vw;right:-25vw;bottom:-28vw}.start-riding{right:18px}.editorial{padding:90px 20px}.manifesto-grid{margin-top:50px;gap:35px}.manifesto-grid h2,.stages-heading h2,.feed-intro h2,.autobus h2,.hairpin-copy h2,.ledger h2,.finish h2{font-size:49px}.drop-copy{font-size:18px}.legend{flex-direction:column;gap:15px}.stages-wrap{padding-top:90px}.stages-heading{padding:0 20px 70px}.stages-heading .section-tag{margin-bottom:40px}.stages-heading>p:last-child{font-size:17px}.stage{display:block;min-height:650px;padding:52px 20px 40px}.stage-number{font-size:56px}.stage-meta{padding:0}.stage-meta h3{font-size:39px;margin-top:20px}.stats{margin-top:24px;gap:20px}.profile-box{margin-top:55px}.profile-box svg{height:180px}.stage-quote{position:static;margin:28px 0 0;font-size:13px}.gradient-badge{top:-32px}.feed-zone{padding:90px 20px 120px}.feed-intro{gap:30px}.feed-intro .section-tag{grid-column:auto}.feed-intro>p:last-child{font-size:17px}.musettes{grid-template-columns:1fr;margin-top:60px;gap:40px}.musette{min-height:350px}.musette-red{transform:none}.autobus{padding:100px 20px;min-height:0}.autobus h2{margin-top:35px}.autobus-copy>p:last-child{font-size:17px}.cutoff-card{padding:25px 20px;box-shadow:8px 9px 0 rgba(0,0,0,.22);transform:none}.cutoff-card label{margin-bottom:20px}.hairpins{padding:90px 20px;min-height:0}.hairpin-copy p:last-child{font-size:17px}.road-shadow{stroke-width:85}.road-line{stroke-width:64}.nameplate{font-size:10px}.graffiti{font-size:12px}.ledger{padding:90px 20px 70px}.ledger-head{display:block}.byline{margin-top:26px}.ledger-body{columns:1;margin:45px 0}.ledger::before{display:none}.ledger-total{grid-template-columns:auto 1fr;gap:10px 15px}.finish{min-height:740px;padding:100px 20px}.finish p:not(.section-tag){font-size:17px}.site-footer{padding:30px 20px;display:block;text-align:center;line-height:1.5}.site-footer nav{flex-direction:column;gap:14px;margin-top:22px;align-items:center}.site-footer a{min-height:44px;display:flex;align-items:center}
  .race-header nav{position:absolute;z-index:70;left:50%;top:112px;transform:translateX(-50%);display:flex;gap:0;background:var(--paper);border:1px solid var(--ink);box-shadow:5px 6px 0 rgba(25,26,24,.22)}.race-header nav a{min-height:46px;padding:0 12px;display:flex;align-items:center;justify-content:center;font-size:8px;white-space:nowrap}.race-header nav a+a{border-left:1px solid var(--ink)}.race-header nav a::after{display:none}
  .profile-label{font-size:11px}.gradient-badge{top:-40px}
  .site-footer{padding:24px 20px}.site-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px;margin-top:12px}.site-footer nav a:first-child{grid-column:1/-1}.site-footer a{justify-content:center}.site-footer p{margin:0}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Pass 2 — the road has weight */
html{--wheel-force:0;font-synthesis:none}
body{background-color:var(--paper);background-image:radial-gradient(circle at 18% 11%,rgba(255,255,255,.8),transparent 28%),repeating-linear-gradient(0deg,rgba(25,26,24,.018) 0 1px,transparent 1px 5px)}
.race-header{background:linear-gradient(90deg,rgba(242,210,27,.97),rgba(242,210,27,.72) 56%,rgba(239,170,22,.9));backdrop-filter:blur(5px)}
.race-header nav a,.race-radio,.eyebrow,.section-tag,.ticker-label,.ticker-km{font-variation-settings:'wdth' 90}
.race-radio{display:flex;align-items:center;gap:7px;position:relative;overflow:hidden;background:rgba(255,255,255,.08)}
.race-radio:hover{background:rgba(255,255,255,.28)}
.race-radio .radio-led{margin:0;width:7px;height:7px;background:#686a68}
.radio-bars{height:15px;display:flex;align-items:center;gap:2px}.radio-bars i{width:2px;height:5px;background:currentColor;display:block}.radio-bars i:nth-child(2){height:10px}.radio-bars i:nth-child(3){height:7px}
.race-radio[aria-pressed="true"] .radio-led{background:var(--red);box-shadow:0 0 0 4px rgba(223,68,44,.2);animation:pulse 1s infinite}.race-radio[aria-pressed="true"] .radio-bars i{animation:radioBars .72s ease-in-out infinite alternate}.race-radio[aria-pressed="true"] .radio-bars i:nth-child(2){animation-delay:-.25s}.race-radio[aria-pressed="true"] .radio-bars i:nth-child(3){animation-delay:-.5s}
.gap-ticker{box-shadow:0 5px 18px rgba(0,0,0,.16)}
.hero{isolation:isolate;background:linear-gradient(116deg,#f7dd1c 0%,var(--yellow) 43%,#f5c51c 71%,#f1a916 100%);padding-left:max(6vw,72px)}
.hero::before{z-index:-1;background:linear-gradient(105deg,transparent 45%,rgba(255,255,255,.34) 45.05%,rgba(255,255,255,.04) 45.9%,transparent 46.2%),radial-gradient(circle at 52% 52%,rgba(255,255,255,.34),transparent 25%),repeating-radial-gradient(circle at 12% 88%,rgba(25,26,24,.055) 0 1px,transparent 1px 7px)}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:14px;background:repeating-linear-gradient(90deg,var(--ink) 0 34px,var(--paper) 34px 68px);opacity:.88}
.sun-disc{background:linear-gradient(140deg,#f6bb1c,#e9990e);box-shadow:inset 0 0 0 2px rgba(25,26,24,.13),-28px 34px 80px rgba(239,170,22,.2)}
.hero-copy{width:min(78vw,1120px)}
.hero h1{text-wrap:balance;text-shadow:0 2px 0 rgba(255,255,255,.14)}
.hero h1 em{-webkit-text-stroke:1px var(--ink);text-shadow:none}
.hero-deck>p:first-child{max-width:480px;text-wrap:pretty}
.hero-route{height:30vh;opacity:.14;filter:drop-shadow(0 -8px 0 rgba(255,255,255,.12))}
.hero-telemetry{position:absolute;left:3.2vw;bottom:36px;z-index:4;border-left:3px solid var(--ink);padding:4px 0 5px 13px;display:grid;grid-template-columns:auto auto;gap:0 7px;font-size:8px;font-weight:800;letter-spacing:.13em}.hero-telemetry span{grid-column:1/-1}.hero-telemetry b{font:400 31px/.85 var(--display)}.hero-telemetry small{align-self:end;font-size:7px}
.peloton-stream{position:absolute;z-index:1;right:15vw;top:42%;width:25vw;height:19vw;transform:rotate(-8deg) skewX(-18deg);opacity:.68;filter:drop-shadow(12px 16px 0 rgba(25,26,24,.08))}
.peloton-stream i{position:absolute;width:clamp(8px,1.15vw,17px);aspect-ratio:1;border-radius:50%;background:var(--red);border:2px solid var(--ink);box-shadow:-12px 5px 0 -3px rgba(25,26,24,.25);animation:pelotonPulse 2.8s cubic-bezier(.22,.7,.3,1) infinite}
.peloton-stream i:nth-child(3n){background:var(--blue)}.peloton-stream i:nth-child(3n+1){background:var(--green)}.peloton-stream i:nth-child(5n){background:var(--cream)}
.peloton-stream i:nth-child(1){left:0;top:46%}.peloton-stream i:nth-child(2){left:9%;top:32%}.peloton-stream i:nth-child(3){left:10%;top:60%}.peloton-stream i:nth-child(4){left:19%;top:43%}.peloton-stream i:nth-child(5){left:24%;top:70%}.peloton-stream i:nth-child(6){left:27%;top:17%}.peloton-stream i:nth-child(7){left:35%;top:48%}.peloton-stream i:nth-child(8){left:42%;top:24%}.peloton-stream i:nth-child(9){left:46%;top:68%}.peloton-stream i:nth-child(10){left:52%;top:43%}.peloton-stream i:nth-child(11){left:58%;top:8%}.peloton-stream i:nth-child(12){left:62%;top:62%}.peloton-stream i:nth-child(13){left:68%;top:32%}.peloton-stream i:nth-child(14){left:74%;top:75%}.peloton-stream i:nth-child(15){left:77%;top:50%}.peloton-stream i:nth-child(16){left:82%;top:18%}.peloton-stream i:nth-child(17){left:88%;top:60%}.peloton-stream i:nth-child(18){left:92%;top:37%}.peloton-stream i:nth-child(19){left:54%;top:86%}.peloton-stream i:nth-child(20){left:33%;top:88%}.peloton-stream i:nth-child(21){left:96%;top:82%}
.peloton-stream i:nth-child(2n){animation-delay:-.8s}.peloton-stream i:nth-child(3n){animation-delay:-1.5s}
.editorial{position:relative;background-color:var(--paper);background-image:linear-gradient(90deg,transparent 49.95%,rgba(25,26,24,.09) 50%,transparent 50.05%),radial-gradient(circle at 82% 20%,rgba(242,210,27,.16),transparent 22%)}
.manifesto-grid{position:relative}.manifesto-grid::before{content:"LE PARCOURS";position:absolute;right:0;top:-116px;font:400 11vw var(--display);color:rgba(25,26,24,.035)}
.drop-copy{font-family:var(--body);font-size:clamp(16px,1.25vw,19px);line-height:1.76}.drop-copy p:first-child::first-letter{font-family:var(--display)}
.stages-wrap{background-color:#262a29;background-image:radial-gradient(circle at 52% 0,rgba(242,210,27,.08),transparent 24%),repeating-linear-gradient(115deg,transparent 0 78px,rgba(255,255,255,.018) 78px 79px);padding-top:120px}
.stages-heading{grid-template-columns:.8fr 1.1fr;padding-bottom:75px}.stages-heading h2{font-size:clamp(72px,9vw,136px)}
.stage-atlas{grid-column:1/-1;margin-top:85px;display:grid;grid-template-columns:repeat(21,minmax(0,1fr));border:1px solid #656967;background:#202322;box-shadow:12px 14px 0 rgba(0,0,0,.18)}
.stage-atlas a{min-width:0;height:92px;padding:12px 6px;text-decoration:none;border-right:1px solid #555a58;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.stage-atlas a:last-child{border:0}.stage-atlas a::before{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--stage);transition:height .22s}.stage-atlas a:hover::before,.stage-atlas a.is-current::before{height:100%;opacity:.92}.stage-atlas i,.stage-atlas span{position:relative;z-index:1}.stage-atlas i{font:400 22px var(--display);font-style:normal}.stage-atlas span{writing-mode:vertical-rl;font-size:6px;font-weight:800;letter-spacing:.1em;color:#aaa;white-space:nowrap}.stage-atlas a:hover,.stage-atlas a.is-current{color:var(--ink)}.stage-atlas a:hover span,.stage-atlas a.is-current span{color:var(--ink)}
.gradient-hud{position:fixed;z-index:65;right:18px;top:50%;width:154px;min-height:156px;padding:18px 16px 15px;background:var(--paper);color:var(--ink);border:1px solid var(--ink);box-shadow:8px 9px 0 rgba(0,0,0,.22);transform:translate(125%,-50%) rotate(1deg);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}.gradient-hud.is-visible{transform:translate(0,-50%) rotate(1deg);opacity:1}.hud-kicker{display:block;font-size:7px;font-weight:900;letter-spacing:.15em;border-bottom:2px solid;padding-bottom:8px}.gradient-hud strong{display:flex;align-items:baseline;justify-content:space-between;margin:13px 0 7px}.gradient-hud strong i{font:400 37px var(--display);font-style:normal}.gradient-hud strong b{font-size:14px}.hud-state{font-size:8px;font-weight:800;text-transform:uppercase;line-height:1.35}.hud-meter{display:block;height:5px;background:#c9c2ae;margin-top:15px;overflow:hidden}.hud-meter i{display:block;width:50%;height:100%;background:var(--red);transition:width .4s}
.tour-progress{left:1.7vw;top:555px}
.stage{min-height:100vh;grid-template-columns:10vw minmax(300px,31vw) minmax(0,1fr);padding:11vh 9vw 10vh 7vw;isolation:isolate;background:linear-gradient(90deg,rgba(255,255,255,.012),transparent 60%);transition:background .55s}
.stage::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 78% 46%,color-mix(in srgb,var(--stage) 12%,transparent),transparent 39%),linear-gradient(90deg,var(--stage) 0 4px,transparent 4px);opacity:.12;transition:opacity .55s}.stage.is-active::before{opacity:.72}
.stage::after{top:3vh;right:2vw;font-size:14vw;color:rgba(255,255,255,.032)}
.stage-number{font-size:clamp(68px,6vw,94px)}
.stage-meta{align-self:center}.stage-meta .date{color:#c1c2bc}.stage-meta h3{font-size:clamp(42px,4.5vw,74px);text-wrap:balance}.stage-meta .route{font-size:10px}.stats{border-top:1px solid #565a58;padding-top:20px}.stats strong{font-size:20px}
.profile-box svg{height:min(34vh,340px)}
.profile-fill{opacity:.82;transition:opacity .4s}.profile-line{stroke-width:5;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s cubic-bezier(.18,.75,.22,1)}.stage.is-active .profile-line{stroke-dashoffset:0}.stage.is-active .profile-fill{filter:drop-shadow(0 -12px 22px color-mix(in srgb,var(--stage) 24%,transparent))}
.profile-grid{stroke:#747a77}.profile-label{font-size:10px}.gradient-badge{top:-54px;background:#252928;box-shadow:4px 4px 0 rgba(0,0,0,.24)}
.stage-quote{max-width:480px;font-size:16px;color:#d2d3ce;bottom:4vh}.stage.wheel-impact .profile-box{animation:roadImpact .34s cubic-bezier(.2,.9,.35,1)}
@media(min-width:901px){.stage:nth-child(even){grid-template-columns:10vw minmax(0,1fr) minmax(300px,31vw);column-gap:4vw;padding-left:7vw}.stage:nth-child(even)::before{background:radial-gradient(circle at 32% 46%,color-mix(in srgb,var(--stage) 12%,transparent),transparent 39%),linear-gradient(90deg,var(--stage) 0 4px,transparent 4px)}}
.feed-zone{background-color:var(--yellow);background-image:radial-gradient(circle at 75% 15%,rgba(255,255,255,.52),transparent 26%),repeating-linear-gradient(90deg,transparent 0 89px,rgba(25,26,24,.03) 89px 90px)}
.musettes{gap:0;padding:0 3vw}.musette{min-height:430px;border:1px solid rgba(25,26,24,.45);box-shadow:18px 22px 0 rgba(25,26,24,.16);clip-path:polygon(0 13%,6% 13%,6% 1.5%,48% 0,94% 2%,94% 13%,100% 13%,98% 100%,2% 98%);background-image:repeating-linear-gradient(0deg,transparent 0 7px,rgba(25,26,24,.025) 7px 8px)}.musette:nth-child(1){transform:rotate(-2.2deg)}.musette:nth-child(2){z-index:2;transform:translateY(34px) rotate(1.8deg)}.musette:nth-child(3){transform:rotate(-.7deg)}.musette::after{content:"FEED / 178.5";position:absolute;right:14px;top:90px;font-size:7px;font-weight:900;letter-spacing:.16em;writing-mode:vertical-rl;opacity:.48}.musette:hover{z-index:4;transform:translateY(-16px) rotate(-1deg) scale(1.025)}
.autobus{background-color:#1f66aa;background-image:radial-gradient(circle at 8% 8%,rgba(242,210,27,.32),transparent 21%),linear-gradient(118deg,transparent 50%,rgba(255,255,255,.05) 50% 50.2%,transparent 50.2%),repeating-linear-gradient(0deg,transparent 0 45px,rgba(255,255,255,.025) 45px 46px)}
.cutoff-card{padding:44px 46px 38px;transition:background .3s,box-shadow .3s,transform .3s}.cutoff-card.is-outside{background:#f0d6cf;box-shadow:18px 18px 0 #922e22;transform:rotate(-.7deg)}
.cutoff-gauge{height:68px;margin-top:25px;border-top:1px solid;position:relative;display:flex;justify-content:space-between;align-items:flex-end;padding-top:22px;font-size:8px;font-weight:900;letter-spacing:.12em}.cutoff-gauge::before{content:"";position:absolute;width:92px;height:46px;left:50%;bottom:0;transform:translateX(-50%);border:2px solid;border-bottom:0;border-radius:100px 100px 0 0}.cutoff-gauge>b{font-size:7px}.cutoff-gauge i{position:absolute;z-index:2;left:calc(50% - 1px);bottom:0;width:2px;height:43px;background:var(--red);transform-origin:50% 100%;transition:transform .25s}.cutoff-gauge i::after{content:"";position:absolute;left:-4px;top:-2px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.hairpins{background-color:var(--paper);background-image:radial-gradient(circle at 74% 50%,rgba(242,210,27,.25),transparent 28%),repeating-radial-gradient(ellipse at 68% 50%,transparent 0 35px,rgba(25,26,24,.045) 36px 37px,transparent 38px 70px)}
.switchbacks:hover .road-line{stroke-dasharray:22 7;animation:roadMarch 1.2s linear infinite}
.ledger-body{font-family:var(--body);font-size:15px;line-height:1.78}.ledger-body .lede,.ledger-body blockquote{font-family:var(--display)}.ledger-body .lede{font-size:25px}.ledger-head h2{text-wrap:balance}
.finish{min-height:94vh;text-align:left;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);grid-template-rows:auto auto auto 1fr;column-gap:9vw;align-content:center;align-items:start;padding:130px 7vw 90px}.finish .section-tag,.finish h2,.finish>p,.finish>a{grid-column:1;justify-self:start}.finish h2{font-size:clamp(68px,8vw,126px);margin:38px 0 28px}.finish p:not(.section-tag){font-family:var(--body);font-size:16px;line-height:1.7}.finish-classification{grid-column:2;grid-row:1/5;align-self:center;width:100%;border-top:4px solid var(--yellow);position:relative}.finish-classification::before{content:"FINAL / GÉNÉRAL";position:absolute;right:0;top:-28px;font-size:8px;font-weight:900;letter-spacing:.16em;color:var(--yellow)}.finish-classification span{display:grid;grid-template-columns:46px 1fr auto;align-items:baseline;border-bottom:1px solid #707371;padding:20px 0}.finish-classification i{font:400 25px var(--display);font-style:normal;color:var(--yellow)}.finish-classification b{font:400 20px var(--display)}.finish-classification small{font-size:8px;font-weight:800;letter-spacing:.08em}.finish>a{margin-top:28px}
.site-footer a{padding-block:10px}
@keyframes pelotonPulse{0%,100%{transform:translate(0)}50%{transform:translate(10px,-3px)}}
@keyframes radioBars{to{height:14px}}
@keyframes roadImpact{0%{transform:translateY(0)}45%{transform:translateY(calc(var(--wheel-force) * 5px)) skewX(calc(var(--wheel-force) * -.5deg))}100%{transform:none}}
@keyframes roadMarch{to{stroke-dashoffset:-29}}

@media(max-width:1100px){.gradient-hud{right:10px;width:135px}.stage{padding-right:8vw}.stage-atlas{grid-template-columns:repeat(7,1fr)}.stage-atlas a{height:62px}.stage-atlas a:nth-child(7n){border-right:0}.stage-atlas span{writing-mode:horizontal-tb;font-size:5px;overflow:hidden}.tour-progress{display:none}}
@media(max-width:900px){.hero-copy{width:88vw}.peloton-stream{right:10vw;top:auto;bottom:14vh;width:39vw;height:27vw}.stages-heading{grid-template-columns:1fr}.stage-atlas{margin-top:55px}.stage{min-height:780px;padding-right:8vw}.profile-box svg{height:260px}.gradient-hud{top:auto;right:12px;bottom:12px;width:calc(100% - 24px);min-height:58px;padding:9px 13px;display:grid;grid-template-columns:auto auto 1fr 110px;align-items:center;gap:12px;transform:translateY(150%);box-shadow:5px 6px 0 rgba(0,0,0,.2)}.gradient-hud.is-visible{transform:none}.hud-kicker{border:0;padding:0}.gradient-hud strong{margin:0;gap:7px}.gradient-hud strong i{font-size:25px}.hud-state{font-size:7px}.hud-meter{margin:0}.finish{grid-template-columns:1fr;padding-block:110px}.finish .section-tag,.finish h2,.finish>p,.finish>a,.finish-classification{grid-column:1}.finish-classification{grid-row:auto;margin-top:60px;max-width:650px}.musettes{padding:0}.musette{min-height:390px}}
@media(max-width:600px){.race-header{background:var(--yellow)}.hero{min-height:900px;padding:205px 18px 100px}.hero-copy{width:100%}.hero h1{font-size:67px;line-height:.78;letter-spacing:-.06em}.hero-deck{width:82%}.hero-telemetry{left:18px;bottom:24px}.peloton-stream{right:-5vw;bottom:18vh;width:58vw;height:42vw;opacity:.46}.sunflowers{bottom:138px}.start-riding{bottom:28px}.editorial{padding-inline:20px}.manifesto-grid::before{top:-72px}.stage-atlas{grid-template-columns:repeat(7,1fr);box-shadow:7px 8px 0 rgba(0,0,0,.2)}.stage-atlas a{height:54px;padding:8px 5px}.stage-atlas i{font-size:18px}.stage-atlas span{display:none}.stage{min-height:710px;padding:60px 20px 76px}.stage::before{background:radial-gradient(circle at 72% 58%,color-mix(in srgb,var(--stage) 13%,transparent),transparent 45%),linear-gradient(90deg,var(--stage) 0 4px,transparent 4px)}.stage-meta h3{font-size:42px}.profile-box svg{height:190px}.stage-quote{padding-right:10px}.gradient-hud{right:8px;bottom:8px;width:232px;min-height:50px;grid-template-columns:auto auto;padding:7px 10px;gap:2px 9px}.gradient-hud .hud-kicker{display:none}.gradient-hud strong{grid-column:1}.gradient-hud strong i{font-size:22px}.gradient-hud strong b{font-size:12px}.hud-state{grid-column:2;font-size:6px}.hud-meter{display:none}.musettes{gap:54px}.musette,.musette:nth-child(1),.musette:nth-child(2),.musette:nth-child(3){transform:none}.musette:hover{transform:translateY(-8px)}.cutoff-card{padding:28px 22px}.cutoff-card.is-outside{transform:none}.finish{min-height:850px;text-align:left;align-items:start;padding:100px 20px 74px}.finish h2{font-size:58px}.finish p:not(.section-tag){font-size:15px}.finish-classification span{grid-template-columns:38px 1fr auto;gap:5px}.finish-classification b{font-size:17px}.finish-classification small{font-size:7px}.site-footer{padding-bottom:68px}}
@media(prefers-reduced-motion:reduce){.profile-line{stroke-dashoffset:0}.peloton-stream i,.switchbacks:hover .road-line,.radio-bars i{animation:none!important}.stage.wheel-impact .profile-box{animation:none}}

/* Pass 3 — the rider is now physically pinned to the parcours. */
::selection{background:var(--ink);color:var(--yellow);text-shadow:none}
html{scrollbar-color:var(--yellow) var(--tarmac);scrollbar-width:thin}
::-webkit-scrollbar{width:12px}
::-webkit-scrollbar-track{background:var(--tarmac)}
::-webkit-scrollbar-thumb{background:var(--yellow);border:3px solid var(--tarmac);border-radius:20px}
body{font-synthesis:none;-webkit-tap-highlight-color:rgba(39,104,173,.24)}
a,button,input{touch-action:manipulation}
h1,h2,h3,.stage-number,.finish-classification i{font-optical-sizing:auto}
.ticker-time,.ticker-km,.hero-telemetry,.stats,.gradient-badge,.hud-distance,.cutoff-card output,.cutoff-result,.finish-classification small{font-variant-numeric:tabular-nums lining-nums}
h1,h2,h3,[id]{scroll-margin-top:48px}

.race-header .brand{animation:raceLoad .58s .08s cubic-bezier(.2,.75,.2,1) both}
.race-header nav{animation:raceLoad .58s .17s cubic-bezier(.2,.75,.2,1) both}
.race-radio{transition:background-color .2s,color .2s,transform .2s;animation:raceLoad .58s .26s cubic-bezier(.2,.75,.2,1) both}
.gap-ticker{animation:tickerLoad .6s .36s cubic-bezier(.2,.75,.2,1) both}
.gap-ticker.is-finished{animation:none}
.race-radio:hover{background:var(--ink);color:var(--yellow);transform:translateY(-2px)}
.race-radio:active{transform:translateY(1px)}
.race-header nav a::after{transition:right .25s cubic-bezier(.2,.75,.2,1)}
.race-header nav a:focus-visible::after{right:0}
.start-riding span,.finish>a span{transition:transform .25s cubic-bezier(.2,.8,.2,1),background-color .2s,color .2s}
.start-riding:hover span,.start-riding:focus-visible span{transform:translateY(4px);background:var(--ink);color:var(--yellow)}
.finish>a:hover span,.finish>a:focus-visible span{transform:translateY(-4px);background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.site-footer a{transition:border-color .2s,transform .2s}
.site-footer a:hover,.site-footer a:focus-visible{transform:translateY(-2px);border-color:currentColor}
.stage-atlas a:focus-visible::before{height:100%;opacity:.92}
.stage-atlas a:focus-visible,.stage-atlas a:focus-visible span{color:var(--ink)}
input[type="range"]{transition:filter .2s}
input[type="range"]:hover{filter:saturate(1.35) contrast(1.1)}

.profile-rider{opacity:.18;transition:opacity .35s;transform-box:fill-box;transform-origin:center;pointer-events:none}
.stage.is-active .profile-rider{opacity:1}
.profile-rider circle{fill:none;stroke:var(--paper);stroke-width:2.4;vector-effect:non-scaling-stroke}
.profile-rider path{fill:none;stroke:var(--paper);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.profile-rider .rider-head{fill:var(--stage);stroke:var(--tarmac);stroke-width:2}
.profile-note{align-items:center}
.profile-km{color:var(--stage);font-weight:800;border:1px solid color-mix(in srgb,var(--stage) 60%,transparent);padding:5px 8px;background:rgba(38,42,41,.76)}
.profile-km b{font-size:12px}
.hud-distance{display:block;margin-top:7px;color:#67685f;font-size:7px;font-weight:900;letter-spacing:.1em}
.hud-distance b{color:var(--ink);font-size:10px}

.flamme-rouge{position:absolute;z-index:5;top:18px;left:50%;width:min(430px,46vw);height:48px;display:flex;align-items:center;background:var(--paper);color:var(--ink);border:2px solid var(--red);box-shadow:8px 9px 0 rgba(0,0,0,.25);transform:translate(-50%,-190%) rotate(-1.4deg);opacity:0;transition:transform .7s cubic-bezier(.16,.88,.2,1.12),opacity .3s;pointer-events:none}
.stage.is-active .flamme-rouge{transform:translate(-50%,0) rotate(-1.4deg);opacity:1;transition-delay:.55s}
.flamme-rouge i{align-self:stretch;width:78px;background:var(--red);clip-path:polygon(0 0,100% 0,70% 50%,100% 100%,0 100%)}
.flamme-rouge span{display:flex;align-items:baseline;gap:13px;padding:0 16px;font-size:8px;font-weight:900;letter-spacing:.11em;white-space:nowrap}
.flamme-rouge b{font:400 17px var(--display);letter-spacing:-.02em;color:var(--red)}

@keyframes raceLoad{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes tickerLoad{from{opacity:0;transform:translate(-50%,-120%)}to{opacity:1;transform:translate(-50%,0)}}

@media(max-width:900px){
  .race-header nav{animation:none}
  .hud-distance{display:none}
  .profile-km{padding:4px 6px}
  .flamme-rouge{width:min(410px,70vw)}
}
@media(max-width:600px){
  .flamme-rouge{top:10px;width:calc(100% - 42px);height:40px;box-shadow:5px 6px 0 rgba(0,0,0,.25)}
  .flamme-rouge i{width:50px}.flamme-rouge span{gap:8px;padding:0 10px;font-size:6px}.flamme-rouge b{font-size:13px}
  .profile-note>span:first-child,.profile-note>span:last-child{font-size:7px}
  .profile-km b{font-size:10px}
  .site-footer{padding-bottom:max(68px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .wheel,.reveal,.race-header .brand,.race-header nav,.race-radio,.gap-ticker,.race-radio[aria-pressed="true"] .radio-led{animation:none!important}
  .reveal{opacity:1;transform:none}
  .flamme-rouge,.profile-rider,.start-riding span,.finish>a span{transition:none}
  .stage.is-active .flamme-rouge{transform:translate(-50%,0);transition-delay:0s}
}
