/* Motorsport98 — feuille de style écrite à la main (les pages, elles, sont générées).
   Couleurs et rayons passent par les variables de :root, jamais par une valeur en dur. */
:root {
  --bg: #0b0a09;
  --surface: #151311;
  --surface-2: #1e1b18;
  --text: #f4f1e8;
  --muted: #a39d92;
  --line: rgba(244, 241, 232, 0.12);
  --accent: #ff5a1f;          /* l'orange de la #98 */
  --accent-2: #ff8a3d;
  --or: #e8c873;
  --or-fond: linear-gradient(120deg, #b8862f, #f6e3a1 45%, #c9983f 70%, #f1d488);
  --carbone: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.035) 0 2px, transparent 2px 6px);
  --r: 22px;
  --r-pill: 999px;
  --gout: clamp(16px, 4vw, 64px);
  --titre: 'Mona Sans', 'Arial Narrow', Arial, sans-serif;
  --main: 'Caveat Brush', cursive;
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 17px/1.55 var(--titre); overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3, p { margin: 0; }
sup { font-size: 0.6em; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

/* Fond : trame de carbone et halo orange qui suit la souris (un calque déplacé, jamais repeint). */
.fond { position: fixed; inset: 0; z-index: -1; background: var(--carbone), var(--bg); overflow: hidden; }
.fond__halo { position: absolute; left: 0; top: 0; width: 70vmax; height: 70vmax; margin: -35vmax 0 0 -35vmax; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 90, 31, 0.16), transparent); transform: translate3d(70vw, 20vh, 0); will-change: transform; }
.progres { position: fixed; left: 0; top: 0; height: 3px; width: 100%; background: var(--accent); transform-origin: 0 50%; transform: scaleX(0); z-index: 60; }
.curseur { position: fixed; left: 0; top: 0; width: 34px; height: 34px; margin: -17px 0 0 -17px; border: 2px solid var(--accent); border-radius: 50%;
  pointer-events: none; z-index: 90; opacity: 0; transition: opacity 0.2s, width 0.2s, height 0.2s, margin 0.2s, background 0.2s; will-change: transform; }
.curseur.est-la { opacity: 1; }
.curseur.sur-lien { width: 58px; height: 58px; margin: -29px 0 0 -29px; background: rgba(255, 90, 31, 0.14); }

/* Primitives */
.eyebrow { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.display { font: 900 clamp(3rem, 10vw, 8.5rem)/0.86 var(--titre); font-stretch: 75%; text-transform: uppercase; letter-spacing: -0.01em; }
.script { display: block; font: 400 0.42em/1 var(--main); text-transform: none; letter-spacing: 0; color: var(--accent); transform: rotate(-4deg); transform-origin: 0 100%; margin-bottom: 0.05em; }
.pill { display: inline-flex; align-items: center; gap: 0.4em; padding: 0.8em 1.4em; border-radius: var(--r-pill); font-weight: 700; font-size: 0.92rem; text-decoration: none;
  border: 1.5px solid transparent; cursor: pointer; font-family: inherit; transition: transform 0.25s, background 0.25s, color 0.25s, border-color 0.25s; }
.pill--accent { background: var(--accent); color: var(--bg); }
.pill--ghost { background: transparent; color: var(--text); border-color: var(--line); }
.pill:hover { transform: translateY(-2px); }
.pill--ghost:hover { border-color: var(--accent); color: var(--accent); }
.lien { color: var(--accent); text-decoration: none; font-weight: 700; white-space: nowrap; }
.lien:hover { text-decoration: underline; }
.bloc { padding: clamp(56px, 9vw, 130px) var(--gout); }
.bloc__tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px 40px; margin-bottom: clamp(26px, 4vw, 54px); }
.bloc__tete p { max-width: 34em; color: var(--muted); }
.js .reveal { opacity: 0; transform: translateY(34px); transition: opacity 0.8s, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.js .reveal.vu { opacity: 1; transform: none; }

/* En-tête et menu */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 50; display: flex; align-items: center; gap: 14px; padding: 14px var(--gout); pointer-events: none; }
.nav > * { pointer-events: auto; }
.nav__logo { margin-right: auto; }
.nav__logo { text-decoration: none; }
.logo { display: inline-flex; align-items: center; gap: 0.3em; font: 900 clamp(1.15rem, 2vw, 1.5rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; letter-spacing: 0.02em; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7); }
.logo b { display: inline-grid; place-items: center; width: 2em; height: 2em; border-radius: 50%; border: 2px solid var(--text); background: var(--bg); font: italic 900 1em/1 'Kanit', var(--titre); color: var(--accent); padding-right: 0.08em; transition: transform 0.5s; }
.nav__logo:hover .logo b { transform: rotate(360deg); }
.nav__cta { font-size: 0.8rem; padding: 0.65em 1.1em; }
.nav__burger { width: 50px; height: 50px; border-radius: 50%; border: 1.5px solid var(--line); background: var(--surface); cursor: pointer; display: grid; place-content: center; gap: 6px; }
.nav__burger span { display: block; width: 20px; height: 2px; background: var(--text); transition: transform 0.3s; }
.menu-ouvert .nav__burger span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-ouvert .nav__burger span:last-child { transform: translateY(-4px) rotate(-45deg); }
.menu { position: fixed; inset: 0; z-index: 40; background: var(--bg); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 40px; padding: 110px var(--gout) 40px;
  clip-path: circle(0 at calc(100% - 60px) 40px); visibility: hidden; transition: clip-path 0.6s cubic-bezier(0.7, 0, 0.2, 1), visibility 0s 0.6s; overflow-y: auto; }
.menu-ouvert .menu { clip-path: circle(150% at calc(100% - 60px) 40px); visibility: visible; transition-delay: 0s; }
.menu__liens { list-style: none; margin: 0; padding: 0; }
.menu__liens a { display: flex; align-items: baseline; gap: 0.3em; font: 900 clamp(2.4rem, 8vw, 6rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; text-decoration: none; transition: color 0.2s, transform 0.3s; }
.menu__liens a:hover, .menu__liens a[aria-current] { color: var(--accent); transform: translateX(12px); }
.menu__liens em { font: 400 0.9rem var(--titre); color: var(--muted); font-style: normal; }
.menu__cote { display: grid; gap: 10px; }
.menu__cote a { text-decoration: none; font-weight: 600; }
.menu__cote a:hover { color: var(--accent); }

/* Ouverture de l'accueil */
.open { position: relative; min-height: 100svh; display: grid; align-content: end; padding: 120px var(--gout) clamp(48px, 7vh, 90px); overflow: hidden; isolation: isolate; }
.open::before { content: ''; position: absolute; inset: 0; z-index: -3; background: radial-gradient(60% 46% at 60% 44%, #4a443d 0%, #25211d 45%, transparent 75%); }
.open__num { position: absolute; z-index: -2; right: -0.06em; top: 50%; font: italic 900 clamp(18rem, 62vw, 62rem)/0.8 'Kanit', var(--titre); color: transparent;
  -webkit-text-stroke: 2px rgba(255, 90, 31, 0.5); translate: 0 -58%; will-change: transform; user-select: none; }
.open__lignes { position: absolute; inset: 0; z-index: -2; background: repeating-linear-gradient(100deg, transparent 0 90px, rgba(255, 255, 255, 0.035) 90px 92px); mask: linear-gradient(90deg, #000, transparent 70%); -webkit-mask: linear-gradient(90deg, #000, transparent 70%); }
.open__voiture { position: absolute; z-index: -1; right: 2vw; top: 44%; width: min(1100px, 78vw); translate: 0 -50%; filter: drop-shadow(0 34px 26px rgba(0, 0, 0, 0.75)); will-change: transform; }
.js .open__voiture { animation: entree 1.3s cubic-bezier(0.15, 0.8, 0.2, 1) both; }
@keyframes entree { from { opacity: 0; translate: 60vw -50%; } }
.open__titre { margin-top: 0.42em; font: 900 clamp(3.4rem, 12.5vw, 11rem)/0.84 var(--titre); font-stretch: 75%; text-transform: uppercase; }
.open__titre b { font: italic 900 1em/0.84 'Kanit', var(--titre); color: var(--accent); margin-left: 0.06em; }
.open__sous { max-width: 30em; margin-top: 18px; font-size: clamp(1rem, 1.5vw, 1.25rem); color: var(--muted); }
.open__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.open__bas { position: absolute; right: var(--gout); bottom: 30px; font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); writing-mode: vertical-rl; }
.open__bas::after { content: ''; display: inline-block; width: 1px; height: 46px; margin-top: 10px; background: var(--accent); animation: tombe 1.8s infinite; transform-origin: 50% 0; }
@keyframes tombe { 0% { transform: scaleY(0); } 60% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* Bandeau qui défile (lentement) */
.bande, .pied__bande { overflow: hidden; white-space: nowrap; }
.bande { background: var(--accent); color: var(--bg); padding: 13px 0; transform: rotate(-1.2deg) scale(1.02); }
.bande__piste, .pied__piste { display: inline-flex; animation: defile 60s linear infinite; }
.bande span { font: 900 1.05rem var(--titre); font-stretch: 75%; text-transform: uppercase; letter-spacing: 0.06em; padding: 0 1.3em; }
.bande span::after { content: '◆'; margin-left: 2.6em; font-size: 0.6em; vertical-align: middle; }
@keyframes defile { to { transform: translateX(-33.333%); } }

/* Deux titres */
.sacre { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.sacre__texte > p { max-width: 36em; margin: 20px 0 30px; color: var(--muted); }
.sacre .script { color: var(--or); }
.sacre__cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.sacre__carte { position: relative; padding: 24px; border-radius: var(--r); background: var(--carbone), var(--surface); border: 1px solid var(--line); overflow: hidden; transition: transform 0.25s; will-change: transform; }
.sacre__carte::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--or-fond); }
.sacre__carte .sacre__an { font: italic 900 4.4rem/0.9 'Kanit', var(--titre); background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sacre__carte h3 { font: 900 1.5rem/1 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 8px 0; }
.sacre__carte p { color: var(--muted); font-size: 0.95rem; }
.sacre__duo { margin-top: 10px; color: var(--text) !important; font-weight: 600; }
.sacre__image { margin: 0; scale: 1.4; }
.sacre__image img { max-height: 76vh; width: auto; margin: 0 auto; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.7)); animation: flotte 7s ease-in-out infinite alternate; }
@keyframes flotte { to { transform: translateY(-14px) rotate(1.2deg); } }

/* Chiffres */
.chiffres { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; border-block: 1px solid var(--line); padding-block: clamp(40px, 6vw, 80px); }
.chiffre b { display: block; font: italic 900 clamp(4rem, 11vw, 10rem)/0.85 'Kanit', var(--titre); color: var(--accent); }
.chiffre span { color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem; }

/* Manches (accueil) et tracés */
.manches { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.manche { position: relative; display: grid; gap: 6px; padding: 18px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); text-decoration: none; transition: transform 0.3s, border-color 0.3s; }
.manche:hover { transform: translateY(-8px); border-color: var(--accent); }
.manche__n { font-weight: 800; color: var(--muted); font-size: 0.8rem; }
.manche__nom { font-weight: 700; font-size: 0.95rem; }
.manche__res { font: italic 900 2.6rem/1 'Kanit', var(--titre); display: flex; align-items: baseline; gap: 10px; }
.manche__res small { font: 600 0.8rem var(--titre); color: var(--muted); }
.manche--or .manche__res { background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; }
.manche--or .manche__res small { color: var(--or); }
.trace { width: 100%; height: auto; overflow: visible; }
.trace path { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.trace__fond { stroke: var(--line); stroke-width: 14; }
.trace__ligne { stroke: var(--accent); stroke-width: 9; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s cubic-bezier(0.3, 0, 0.2, 1); filter: drop-shadow(0 0 10px rgba(255, 90, 31, 0.6)); }
.trace-vu .trace__ligne, html:not(.js) .trace__ligne { stroke-dashoffset: 0; }
.manche--or .trace__ligne, .fiche--or .trace__ligne { stroke: var(--or); filter: drop-shadow(0 0 10px rgba(232, 200, 115, 0.5)); }

/* Classement */
.tableau { overflow-x: auto; border-radius: var(--r); border: 1px solid var(--line); background: var(--surface); }
table { border-collapse: collapse; width: 100%; }
.tableau th, .tableau td { padding: 14px 16px; text-align: center; white-space: nowrap; border-bottom: 1px solid var(--line); }
.tableau th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.tableau td:nth-child(2), .tableau th:nth-child(2) { text-align: left; }
.tableau tr:last-child td { border-bottom: 0; }
.tableau .nous td { background: rgba(255, 90, 31, 0.14); color: var(--text); font-weight: 700; }
.tableau .nous td:first-child { box-shadow: inset 4px 0 var(--accent); }
.tableau .nous b { color: var(--accent); }

/* Équipage, récit, vitrine */
.equipage, .recit, .vitrine { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.vitrine { grid-template-columns: 0.85fr 1.15fr; }
.equipage img, .recit img, .vitrine img, .duo img { border-radius: var(--r); width: 100%; }
.equipage__image, .recit__image { margin: 0; transition: transform 0.25s; will-change: transform; }
.equipage__texte p, .recit__texte p, .vitrine__texte p { margin-top: 18px; max-width: 34em; color: var(--muted); }
.equipage__texte b, .recit__texte b { color: var(--text); }
.vitrine__image { display: block; overflow: hidden; border-radius: var(--r); }
.vitrine__image img { transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.vitrine__image:hover img { transform: scale(1.06); }

/* Frise des saisons */
.frise { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(170px, 1fr); gap: 14px; overflow-x: auto; padding-bottom: 12px; scroll-snap-type: x proximity; }
.frise__an { scroll-snap-align: start; display: grid; gap: 4px; padding: 22px 18px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); text-decoration: none; transition: transform 0.3s, border-color 0.3s; }
.frise__an:hover { transform: translateY(-8px); border-color: var(--accent); }
.frise__an b { font: italic 900 2.6rem/1 'Kanit', var(--titre); }
.frise__an span { font-weight: 700; color: var(--accent); }
.frise__an small { color: var(--muted); }
.frise__an--or b, .frise__an--or span { background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; }
.frise__an--or { border-color: rgba(232, 200, 115, 0.45); }

/* Presse */
.presse { border-top: 1px solid var(--line); }
.presse__ligne { display: grid; grid-template-columns: 9em 1fr auto; gap: 20px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding 0.3s, color 0.3s; }
.presse__ligne:hover { padding-left: 16px; color: var(--accent); }
.presse__ligne span, .presse__ligne em { color: var(--muted); font-size: 0.85rem; font-style: normal; }
.presse__ligne b { font-size: clamp(1.05rem, 1.8vw, 1.4rem); font-weight: 700; }

/* Tête des pages intérieures */
.tete { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 60px; padding: clamp(130px, 18vh, 200px) var(--gout) clamp(30px, 5vw, 60px); border-bottom: 1px solid var(--line); }
.tete .display { font-size: clamp(3.6rem, 14vw, 12rem); }
.tete__intro { max-width: 32em; color: var(--muted); font-size: 1.1rem; }

/* Fiches des manches */
.fiches { display: grid; gap: 22px; }
.fiche { display: grid; grid-template-columns: minmax(220px, 0.8fr) 1.2fr; gap: clamp(20px, 4vw, 60px); align-items: center; padding: clamp(20px, 3vw, 44px); border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); scroll-margin-top: 90px; }
.fiche--or { border-color: rgba(232, 200, 115, 0.4); }
.fiche__trace { text-align: center; color: var(--muted); font-size: 0.85rem; }
.fiche h2 { font: 900 clamp(2rem, 5vw, 3.8rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; margin-top: 6px; }
.fiche__circuit { color: var(--muted); }
.fiche__res { display: flex; align-items: center; gap: 16px; margin: 16px 0; }
.fiche__res b { font: italic 900 4rem/0.9 'Kanit', var(--titre); color: var(--accent); }
.fiche--or .fiche__res b { background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 0.08em; }
.fiche__res span { font-weight: 600; }
.seances td { padding: 8px 14px 8px 0; border-bottom: 1px solid var(--line); font-size: 0.95rem; }
.seances td:last-child { text-align: right; color: var(--muted); font-variant-numeric: tabular-nums; }
.seances .course td { color: var(--text); font-weight: 700; }
.fiche__liens { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.fiche__liens .pill { font-size: 0.8rem; padding: 0.6em 1em; }

/* Palmarès */
.ans { display: grid; gap: 0; }
.an { display: grid; grid-template-columns: minmax(150px, 0.3fr) 1fr; gap: clamp(18px, 4vw, 60px); padding: clamp(28px, 4vw, 54px) 0; border-bottom: 1px solid var(--line); scroll-margin-top: 80px; }
.an__date b { display: block; font: italic 900 clamp(3.4rem, 8vw, 7rem)/0.85 'Kanit', var(--titre); color: var(--surface-2); -webkit-text-stroke: 1.5px var(--muted); }
.an__date span { font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85rem; }
.an--or .an__date b { background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-stroke: 0; padding-right: 0.08em; }
.an--or .an__date span { color: var(--or); }
.an h2 { font: 900 clamp(1.6rem, 3.4vw, 2.6rem)/1.05 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 8px 0 12px; }
.an__texte > p { max-width: 46em; color: var(--muted); }
.an__pilotes { margin-top: 12px; color: var(--text) !important; }
.an__manches { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.an__manches span { display: inline-flex; align-items: center; gap: 8px; padding: 6px 6px 6px 14px; border-radius: var(--r-pill); background: var(--surface); border: 1px solid var(--line); font-size: 0.85rem; }
.puce { display: inline-grid; place-items: center; min-width: 2.6em; padding: 3px 8px; border-radius: var(--r-pill); background: var(--surface-2); font-size: 0.8rem; }
.puce--podium { background: var(--accent); color: var(--bg); }
.puce--or { background: var(--or-fond); color: var(--bg); }
.puce--vide { color: var(--muted); }
.absence { padding: 22px 0; border-bottom: 1px solid var(--line); color: var(--muted); display: flex; flex-wrap: wrap; gap: 6px 24px; }
.absence b { color: var(--text); }
.avant { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.avant > div { padding: 24px; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.avant b { color: var(--accent); font-size: 0.85rem; letter-spacing: 0.08em; }
.avant h3 { font: 900 1.5rem/1.1 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 8px 0; }
.avant p { color: var(--muted); font-size: 0.95rem; }

/* Pilotes */
.pilotes { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pilote { position: relative; padding: clamp(24px, 4vw, 48px); border-radius: var(--r); background: var(--carbone), var(--surface); border: 1px solid var(--line); overflow: hidden; }
.pilote__num { position: absolute; right: -0.05em; top: -0.12em; font: italic 900 12rem/1 'Kanit', var(--titre); color: transparent; -webkit-text-stroke: 1.5px rgba(255, 90, 31, 0.3); pointer-events: none; }
.pilote h2 { font: 900 clamp(2.2rem, 5vw, 4rem)/0.95 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 8px 0 16px; }
.pilote > p:not(.eyebrow):not(.pilote__num) { color: var(--muted); position: relative; }
.pilote__faits { list-style: none; padding: 0; margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 10px 26px; font-size: 0.9rem; color: var(--muted); }
.pilote__faits b { font: italic 900 1.8rem/1 'Kanit', var(--titre); color: var(--accent); margin-right: 6px; }
.noms { display: flex; flex-wrap: wrap; gap: 12px; }
.noms span { padding: 16px 26px; border-radius: var(--r-pill); border: 1px solid var(--line); font: 900 1.3rem var(--titre); font-stretch: 75%; text-transform: uppercase; transition: background 0.3s, color 0.3s; }
.noms span:hover { background: var(--accent); color: var(--bg); }

/* La voiture en 3D */
.auto { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(20px, 3vw, 50px); align-items: start; padding-top: 30px; }
.auto__scene { position: relative; border-radius: var(--r); background: radial-gradient(70% 60% at 50% 55%, #5a534b, #1e1b18 75%); overflow: hidden; }
.auto__scene model-viewer { width: 100%; height: min(70vh, 62vw); min-height: 320px; background: transparent; --poster-color: transparent; --progress-bar-color: var(--accent); }
.auto__num { position: absolute; left: 50%; top: 50%; translate: -50% -55%; font: italic 900 min(46vw, 30rem)/1 'Kanit', var(--titre); color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, 0.07); pointer-events: none; }
.auto__aide { position: absolute; inset: auto 0 12px 0; text-align: center; font-size: 0.8rem; color: var(--muted); pointer-events: none; }
.doigt { display: none; }
.auto__parties { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 24px; }
.auto__parties .pill { font-size: 0.82rem; padding: 0.6em 1.1em; }
.auto__fiche h2 { font: 900 clamp(2rem, 4vw, 3.2rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; }
.auto__fiche p { color: var(--muted); margin: 12px 0 20px; }
.auto__fiche ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.auto__fiche li { padding-top: 12px; border-top: 2px solid var(--accent); }
.auto__fiche li b { display: block; font: 900 1.5rem/1.1 var(--titre); font-stretch: 75%; }
.auto__fiche li span { color: var(--muted); font-size: 0.8rem; }
.duo { display: grid; grid-template-columns: 1.6fr 0.9fr; gap: 20px; align-items: start; }
.duo figure { margin: 0; }
.duo img { height: min(70vh, 560px); object-fit: cover; }
.duo figcaption, .credit { color: var(--muted); font-size: 0.85rem; margin-top: 10px; }
.credit { padding: 0 var(--gout) 60px; }

/* Contact */
.contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.contact__carte { display: grid; gap: 10px; padding: clamp(26px, 4vw, 46px); border-radius: var(--r); background: var(--carbone), var(--surface); border: 1px solid var(--line); text-decoration: none; transition: transform 0.3s, border-color 0.3s, background-color 0.3s; }
.contact__carte:hover { transform: translateY(-8px); border-color: var(--accent); }
.contact__carte b { font: 900 clamp(1.8rem, 3.4vw, 2.8rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; }
.contact__carte em { color: var(--accent); font-style: normal; font-weight: 700; }

/* Pied de page */
.pied { border-top: 1px solid var(--line); margin-top: 40px; }
.pied__bande { padding: 30px 0 10px; }
.pied__piste { animation-duration: 90s; animation-name: defile-pied; }
@keyframes defile-pied { to { transform: translateX(-25%); } }
.pied__piste span { font: italic 900 clamp(4rem, 13vw, 12rem)/0.9 'Kanit', var(--titre); text-transform: uppercase; padding: 0 0.25em; color: transparent; -webkit-text-stroke: 1.5px var(--muted); }
.pied__piste span:nth-child(3n + 2) { color: var(--accent); -webkit-text-stroke: 0; }
.pied__cols { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; padding: 30px var(--gout); }
.pied__cols div { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.pied__cols a { text-decoration: none; font-weight: 600; }
.pied__cols a:hover { color: var(--accent); }
.pied__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 30px; padding: 18px var(--gout) 30px; color: var(--muted); font-size: 0.8rem; border-top: 1px solid var(--line); }

/* Écrans étroits */
@media (max-width: 1100px) {
  .manches { grid-template-columns: repeat(3, 1fr); }
  .auto { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  body { font-size: 16px; }
  .sacre, .equipage, .recit, .vitrine, .pilotes, .duo, .fiche, .an { grid-template-columns: 1fr; }
  .sacre__image { order: -1; scale: 1.2; }
  .sacre__image img { max-height: 46vh; }
  .chiffres { grid-template-columns: 1fr 1fr; }
  .manches { grid-template-columns: 1fr 1fr; }
  .nav__cta { display: none; }
  .menu { grid-template-columns: 1fr; align-items: start; }
  .open__voiture { width: 118vw; right: -22vw; top: 36%; }
  .open__num { top: 36%; }
  .presse__ligne { grid-template-columns: 1fr; gap: 4px; }
  .fiche__trace .trace { max-width: 280px; margin: 0 auto; }
  .duo img { height: auto; }
  .auto__fiche ul { grid-template-columns: 1fr 1fr; }
}

/* Sans souris : pas d'effets de survol ni de cercle */
@media (hover: none) {
  .curseur, .fond__halo { display: none; }
  .souris { display: none; }
  .doigt { display: inline; }
  .manche:hover, .frise__an:hover, .contact__carte:hover, .pill:hover { transform: none; }
}

/* Mouvement réduit : tout se coupe */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
  .trace__ligne { stroke-dashoffset: 0; }
  .curseur { display: none; }
}

/* ═══ v2 : bleu marine, un peu d'orange ; ouverture en scène 3D qui suit le défilement ═══ */
:root {
  --bg: #071127;
  --surface: #0d1c3d;
  --surface-2: #162a57;
  --text: #f1f4fb;
  --muted: #9dabc9;
  --line: rgba(190, 208, 255, 0.15);
  --bleu: #5b8cff;            /* le bleu clair des tracés et des chiffres */
  --lueur: rgba(70, 120, 255, 0.2);
  --projecteur: radial-gradient(62% 48% at 58% 46%, #3a5ea8 0%, #1a2f63 42%, transparent 76%);
  --carbone: repeating-linear-gradient(45deg, rgba(160, 190, 255, 0.04) 0 2px, transparent 2px 6px);
}
.fond__halo { background: radial-gradient(closest-side, var(--lueur), transparent); }
.curseur.sur-lien { background: var(--lueur); }
.script { color: var(--accent); }
/* L'orange reste pour le 98, les boutons et la ligne de la #98 ; le reste passe au bleu. */
.bande { background: var(--surface-2); color: var(--text); border-block: 1px solid var(--line); }
.bande span::after { color: var(--accent); }
.chiffre b { color: var(--text); -webkit-text-stroke: 0; }
.chiffre:first-child b { color: var(--accent); }
.trace__ligne { stroke: var(--bleu); filter: drop-shadow(0 0 10px var(--lueur)); }
.manche:hover, .frise__an:hover, .contact__carte:hover { border-color: var(--bleu); }
.frise__an span, .avant b, .an__date span { color: var(--bleu); }
.puce--podium { background: var(--bleu); color: var(--bg); }
.auto__fiche li { border-top-color: var(--bleu); }
.pilote__num { -webkit-text-stroke-color: rgba(91, 140, 255, 0.3); }
.pilote__faits b { color: var(--text); }
.pied__piste span:nth-child(3n + 2) { color: transparent; -webkit-text-stroke: 1.5px var(--muted); }
.pied__piste span:nth-child(4n + 2) { color: var(--accent); -webkit-text-stroke: 0; }
.noms span:hover { background: var(--bleu); }
.auto__scene { background: var(--projecteur), var(--surface); }
.auto__num { -webkit-text-stroke-color: rgba(190, 208, 255, 0.1); }
.logo b { background: var(--bg); }

/* La scène : sa hauteur donne la course du défilement, son contenu reste collé à l'écran. */
.scene { position: relative; height: calc(var(--etapes) * 90vh + 100vh); }
.scene__fixe { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; isolation: isolate; }
.scene__fixe::before { content: ''; position: absolute; inset: 0; z-index: -3; background: var(--projecteur); }
.scene__fixe::after { content: ''; position: absolute; inset: auto 0 0 0; height: 46%; z-index: 0; pointer-events: none; background: linear-gradient(transparent, var(--bg) 82%); }
.scene .open__num { right: auto; left: 50%; top: 46%; translate: -42% -50%; font-size: clamp(16rem, 52vw, 52rem); -webkit-text-stroke: 2px rgba(91, 140, 255, 0.28); z-index: -2; }
.scene model-viewer { position: absolute; inset: 0; width: 100%; height: 100%; background: transparent; --poster-color: transparent; --progress-bar-color: var(--accent); z-index: -1; }
.scene__etape { position: absolute; z-index: 1; left: var(--gout); right: var(--gout); bottom: clamp(56px, 9vh, 100px); max-width: 34em; opacity: 0; visibility: hidden; transform: translateY(26px);
  transition: opacity 0.5s, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0s 0.5s; pointer-events: none; }
.scene__etape.ici { opacity: 1; visibility: visible; transform: none; transition-delay: 0.15s, 0.15s, 0s; }
.scene__etape.ici a { pointer-events: auto; }
.scene__etape--titre { max-width: none; }
.scene__etape h2 { font: 900 clamp(2.4rem, 7vw, 5.6rem)/0.9 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 8px 0 12px; }
.scene__etape > p:not(.eyebrow):not(.open__sous):not(.open__actions) { color: var(--muted); }
.scene__etape ul { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 28px; }
.scene__etape li { padding-top: 10px; border-top: 2px solid var(--accent); }
.scene__etape li b { display: block; font: 900 1.4rem/1.1 var(--titre); font-stretch: 75%; }
.scene__etape li span { color: var(--muted); font-size: 0.8rem; }
.scene .open__titre { margin-top: 0.42em; }
.scene__points { position: absolute; z-index: 2; right: var(--gout); top: 50%; translate: 0 -50%; display: grid; gap: 14px; justify-items: end; }
.scene__points button { display: flex; align-items: center; gap: 10px; padding: 4px 0; border: 0; background: none; color: var(--muted); cursor: pointer; font: 700 0.72rem var(--titre); letter-spacing: 0.1em; text-transform: uppercase; }
.scene__points button::after { content: ''; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--muted); transition: background 0.3s, border-color 0.3s, transform 0.3s; }
.scene__points span { opacity: 0; transform: translateX(8px); transition: opacity 0.3s, transform 0.3s; }
.scene__points button:hover span, .scene__points button.ici span { opacity: 1; transform: none; }
.scene__points button.ici { color: var(--text); }
.scene__points button.ici::after { background: var(--accent); border-color: var(--accent); transform: scale(1.3); }
.scene__aide { position: absolute; z-index: 2; inset: auto var(--gout) 20px auto; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); transition: opacity 0.4s; }
.scene.partie .scene__aide { opacity: 0; }
@media (max-width: 820px) {
  .scene__fixe::after { height: 62%; }
  .scene model-viewer { height: 62%; }
  .scene__points span { display: none; }
  .scene__points { top: 34%; }
  .scene__aide { display: none; }
  .scene__etape { bottom: 34px; }
}
@media (hover: none) { .scene__points button:hover span { opacity: 0; } .scene__points button.ici span { opacity: 1; } }
/* body en « clip » et non « hidden » : sinon il devient une zone de défilement et la scène ne reste plus collée. */
body { overflow-x: clip; }

/* ═══ v3 : page Eric De Doncker — anneau de carrière en 3D, coupe en 3D, cartes de titres qui se retournent ═══ */
.eric { align-items: center; }
.eric .display { font-size: clamp(3.2rem, 11vw, 9.5rem); }
.eric .tete__intro { margin-top: 22px; }
.eric__portrait { margin: 0; width: min(300px, 62vw); aspect-ratio: 5 / 12; border-radius: var(--r); overflow: hidden; border: 1px solid var(--line); transition: transform 0.25s; will-change: transform; }
.eric__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: 99% 50%; }

/* L'anneau : chaque carte est posée sur un cercle (rotateY puis translateZ), la roue entière tourne. */
.anneau { --R: 620px; --lc: 250px; --hc: 310px; overflow: hidden; }
.anneau__scene { position: relative; height: calc(var(--hc) + 70px); perspective: 1500px; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.anneau__scene.tenu { cursor: grabbing; }
.anneau__roue { position: absolute; inset: 0; transform-style: preserve-3d; transform: translateZ(calc(var(--R) * -1)) rotateY(var(--a, 0deg)); transition: transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.tenu .anneau__roue { transition: none; }
.anneau__carte { position: absolute; left: 50%; top: 50%; width: var(--lc); height: var(--hc); margin: calc(var(--hc) / -2) 0 0 calc(var(--lc) / -2); padding: 22px; display: flex; flex-direction: column; gap: 6px;
  border-radius: var(--r); background: var(--carbone), var(--surface); border: 1px solid var(--line); backface-visibility: hidden; -webkit-backface-visibility: hidden;
  transform: rotateY(calc(var(--i) * 360deg / var(--n))) translateZ(var(--R)); opacity: 0.45; transition: opacity 0.5s, border-color 0.5s, box-shadow 0.5s; }
.anneau__carte.ici { opacity: 1; border-color: var(--bleu); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px var(--bleu); }
.anneau__carte b { font: italic 900 2.3rem/1 'Kanit', var(--titre); color: var(--text); }
.anneau__carte span { color: var(--bleu); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.anneau__carte h3 { font: 900 1.5rem/1.02 var(--titre); font-stretch: 75%; text-transform: uppercase; margin-top: 6px; }
.anneau__carte p { color: var(--muted); font-size: 0.86rem; line-height: 1.4; }
.anneau__carte em { margin-top: auto; align-self: flex-start; padding: 4px 12px; border-radius: var(--r-pill); background: var(--or-fond); color: var(--bg); font: 800 0.72rem var(--titre); letter-spacing: 0.1em; text-transform: uppercase; }
.anneau__carte--or b { background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 0.08em; }
.anneau__carte--or.ici { border-color: var(--or); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px var(--or); }
.anneau__cmd { display: flex; align-items: center; justify-content: center; gap: 20px; margin-top: 10px; }
.anneau__ou { min-width: 9em; text-align: center; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }

/* La coupe et les titres */
.trophee { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(24px, 5vw, 70px); align-items: center; }
.trophee__scene { position: relative; border-radius: var(--r); background: var(--projecteur), var(--surface); overflow: hidden; }
.trophee__scene model-viewer { width: 100%; height: min(72vh, 620px); min-height: 380px; background: transparent; --poster-color: transparent; --progress-bar-color: var(--or); }
.trophee .script { color: var(--or); }
.t3d__rang { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; margin: 28px 0; }
.t3d { aspect-ratio: 3 / 4; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; perspective: 800px; text-align: left; }
.t3d__dans { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 0.8s cubic-bezier(0.3, 1.3, 0.4, 1); }
.t3d.tourne .t3d__dans { transform: rotateY(180deg); }
.t3d__face, .t3d__dos { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: var(--r); backface-visibility: hidden; -webkit-backface-visibility: hidden; border: 1px solid rgba(232, 200, 115, 0.45); }
.t3d__face { background: var(--carbone), var(--surface); justify-content: flex-end; }
.t3d__face b { font: italic 900 2.6rem/1 'Kanit', var(--titre); background: var(--or-fond); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: 0.08em; align-self: flex-start; }
.t3d__face i { font: 900 1.1rem var(--titre); font-stretch: 75%; font-style: normal; text-transform: uppercase; }
.t3d__face small { color: var(--muted); font-size: 0.75rem; }
.t3d__dos { background: var(--or-fond); color: var(--bg); transform: rotateY(180deg); justify-content: center; font-size: 0.82rem; line-height: 1.35; }
.t3d__dos strong { font: 900 1.15rem/1.05 var(--titre); font-stretch: 75%; text-transform: uppercase; }
@media (hover: hover) { .t3d:hover .t3d__dans { transform: rotateY(180deg); } }
.t3d:focus-visible .t3d__dans { transform: rotateY(180deg); }
@media (max-width: 820px) {
  .anneau { --R: 470px; --lc: 200px; --hc: 300px; }
  .anneau__carte { padding: 16px; }
  .anneau__carte h3 { font-size: 1.25rem; }
  .trophee { grid-template-columns: 1fr; }
  .trophee__scene model-viewer { height: 56vh; }
}

/* ═══ v4 : « Un Belge, un Français » tout en gros ; la voiture de l'accueil en 3D, qui tourne seule, sans cadre ═══ */
.display--duo { font-size: clamp(2.6rem, 5.6vw, 6rem); line-height: 0.92; white-space: nowrap; }
.vitrine__3d model-viewer { width: 100%; height: min(64vh, 52vw); min-height: 300px; background: transparent; --poster-color: transparent; --progress-bar-color: var(--accent); pointer-events: none; }
@media (max-width: 820px) { .display--duo { font-size: clamp(2.6rem, 12vw, 5rem); } .vitrine__3d model-viewer { height: 62vw; } }
/* v4 : le portrait d'Eric est détouré (images/eric-de-doncker.webp, fait par generateur/detourer.html) : plus de
   cadre, un halo derrière lui, et il suit un peu la souris. */
.eric { position: relative; overflow: hidden; padding-bottom: 0; align-items: flex-end; }
.eric > div { padding-bottom: clamp(30px, 5vw, 60px); }
.eric__portrait { position: relative; width: min(330px, 60vw); aspect-ratio: auto; border: 0; border-radius: 0; overflow: visible; margin: 0 clamp(0px, 4vw, 70px) 0 auto; }
.eric__portrait::before { content: ''; position: absolute; inset: 8% -45% 0; z-index: -1; background: radial-gradient(closest-side, #3a5ea8, transparent); opacity: 0.75; }
.eric__portrait img { width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 24px 30px rgba(0, 0, 0, 0.55)); }
@media (max-width: 820px) { .eric__portrait { margin: 0 auto; width: min(250px, 62vw); } }

/* ═══ v5 : quand le navigateur refuse la 3D, l'image du modèle prend sa place ═══ */
.sans-3d model-viewer { background-repeat: no-repeat; background-position: center; background-size: min(86%, 900px) auto; }
.sans-3d .trophee model-viewer { background-size: auto 92%; }
.pause-3d { position: fixed; z-index: 70; left: 50%; bottom: 18px; translate: -50% 0; max-width: calc(100vw - 32px); padding: 10px 18px; border-radius: var(--r-pill);
  background: var(--surface-2); border: 1px solid var(--line); color: var(--text); font-size: 0.82rem; text-align: center; }

/* ═══ v6 : page « La voiture » — plus de photos, le cockpit : au volant et au tableau de bord, bouton par bouton ═══ */
.auto { align-items: start; }
.auto__scene { position: sticky; top: 84px; }
.pill--dedans { border-color: var(--bleu); }
.auto__ctrl { list-style: none; margin: 0; padding: 0 6px 0 0; display: grid; gap: 6px; max-height: 54vh; overflow-y: auto; overscroll-behavior: contain; }
.auto__c { --c: var(--text); display: grid; grid-template-columns: 14px 1fr; gap: 2px 12px; width: 100%; padding: 10px 12px; text-align: left; border-radius: 14px; border: 1px solid var(--line);
  background: var(--surface); color: var(--text); font: inherit; cursor: pointer; transition: border-color 0.2s, background 0.2s; }
.auto__c::before { content: ''; grid-row: span 2; width: 12px; height: 12px; margin-top: 5px; border-radius: 50%; background: var(--c); box-shadow: 0 0 10px var(--c); }
.auto__c b { font-weight: 800; font-size: 0.92rem; }
.auto__c span { grid-column: 2; color: var(--muted); font-size: 0.82rem; line-height: 1.35; display: none; }
.auto__c.ici { border-color: var(--accent); background: var(--surface-2); }
.auto__c.ici span { display: block; }
/* Couleurs des touches de la vraie voiture. */
.auto__c[data-couleur="bleu"] { --c: #3d8bff; } .auto__c[data-couleur="rouge"] { --c: #ff3b30; } .auto__c[data-couleur="vert"] { --c: #35d07f; }
.auto__c[data-couleur="jaune"] { --c: #ffd23d; } .auto__c[data-couleur="orange"] { --c: var(--accent); } .auto__c[data-couleur="violet"] { --c: #c05cff; }
.auto__c[data-couleur="noir"] { --c: #5c6885; }
/* Les anneaux posés sur le modèle : seuls ceux du poste où l'on est se montrent. */
.auto__spot { display: none; width: 22px; height: 22px; padding: 0; border-radius: 50%; border: 2px solid var(--text); background: rgba(7, 17, 39, 0.25); cursor: pointer; transition: scale 0.25s, border-color 0.25s, box-shadow 0.25s, opacity 0.25s; }
.auto[data-poste="volant"] .auto__spot[data-poste="volant"], .auto[data-poste="tableau"] .auto__spot[data-poste="tableau"] { display: block; }
.auto__spot:not([data-visible]) { opacity: 0; pointer-events: none; } /* la visionneuse pose « data-visible » sur les anneaux tournés vers la caméra */
.auto__spot:hover { border-color: var(--accent); scale: 1.2; }
.auto__spot.ici { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(255, 90, 31, 0.35), 0 0 18px var(--accent); scale: 1.5; }
.auto--dedans .auto__num { opacity: 0; }
@media (max-width: 1100px) { .auto__scene { position: relative; top: 0; } .auto__ctrl { max-height: none; } }

/* ═══ v7 : le vrai logo, une scène d'ouverture plus courte, plus de fluidité ═══ */
/* Logo fourni par Gillian (16 octobre 2026), passé en blanc et orange pour le fond bleu par generateur/logo.html. */
.logo-img { display: block; height: clamp(30px, 3.4vw, 42px); width: auto; filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.6)); }
/* « Pas besoin de descendre autant à chaque étape » : une étape = un tiers d'écran (90 % avant). */
.scene { height: calc(var(--etapes) * 34vh + 100vh); }
.scene__etape { transition-duration: 0.35s, 0.4s, 0s; }
/* Fluidité : pas de calque permanent pour les grands textes immobiles ; les bandeaux qui défilent s'arrêtent
   quand ils sont hors de l'écran (classe posée par script.js). */
.open__num, .fond__halo { will-change: auto; }
.est-cache .bande__piste, .est-cache.pied__bande .pied__piste, .pied__bande.est-cache .pied__piste { animation-play-state: paused; }

/* ═══ v10 : Julien Daiver, la page Actualités ═══ */
.equipe-stand { padding-top: 0; }
.pilote--stand { max-width: 920px; }
.citation { margin: 22px 0 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--accent); }
.citation p { font: 400 clamp(1.3rem, 2.4vw, 1.8rem)/1.25 var(--main); color: var(--text) !important; }
.citation cite { display: block; margin-top: 8px; font-style: normal; font-size: 0.82rem; color: var(--muted); }
.actus { display: grid; gap: clamp(30px, 5vw, 60px); }
.actus__annee { font: italic 900 clamp(2.6rem, 6vw, 4.4rem)/1 'Kanit', var(--titre); color: transparent; -webkit-text-stroke: 1.5px var(--muted); margin-bottom: 10px; }
.actus .presse__ligne b { font-size: clamp(1rem, 1.5vw, 1.2rem); }

/* ═══ v11 : bouton FR / EN, la coupe 3D de l'accueil ═══ */
.nav__langue { font-size: 0.78rem; padding: 0.6em 0.95em; letter-spacing: 0.08em; }
.sacre__image--3d { position: relative; scale: 1; }
.sacre__image--3d model-viewer { width: 100%; height: min(78vh, 720px); min-height: 380px; background: transparent; --poster-color: transparent; --progress-bar-color: var(--or); }
.sacre__image--3d .auto__aide { position: static; margin-top: 6px; }
@media (max-width: 820px) { .sacre__image--3d model-viewer { height: 60vh; } .nav__langue { margin-left: auto; } }

/* ═══ v12 : le prochain programme — annonce, décompte, horaires, suivre la course ; bandeau « En direct » ═══ */
.prog .script { color: var(--accent); }
.prog__compte { margin-bottom: clamp(24px, 4vw, 44px); padding: clamp(22px, 4vw, 40px); border-radius: var(--r); background: var(--carbone), var(--surface); border: 1px solid var(--line); text-align: center; }
.prog__chiffres { display: flex; justify-content: center; gap: clamp(12px, 4vw, 48px); margin: 14px 0; }
.prog__chiffres span { display: grid; min-width: 3.2em; }
.prog__chiffres b { font: italic 900 clamp(2.8rem, 9vw, 6.5rem)/1 'Kanit', var(--titre); color: var(--text); font-variant-numeric: tabular-nums; }
.prog__chiffres span:first-child b { color: var(--accent); }
.prog__chiffres small { color: var(--muted); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.72rem; font-weight: 700; }
.prog__quand { color: var(--muted); }
.prog__parti { margin-top: 10px; font-weight: 800; color: var(--accent); }
.prog__manches { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.prog__manche { padding: clamp(20px, 3vw, 30px); border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); }
.prog__manche--prochaine { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.prog__manche .trace { max-width: 200px; margin: 0 auto 10px; }
.prog__manche h3 { font: 900 clamp(1.6rem, 3vw, 2.3rem)/1 var(--titre); font-stretch: 75%; text-transform: uppercase; margin: 6px 0; }
.prog__circuit, .prog__attente, .prog__note { color: var(--muted); font-size: 0.9rem; }
.prog__attente { margin: 14px 0; padding: 12px 14px; border-radius: 12px; border: 1px dashed var(--line); }
.prog__manche .seances { width: 100%; margin: 12px 0 4px; }
.prog__manche .seances td:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; color: var(--text); }
.prog__manche .seances td:last-child { text-align: right; font-size: 0.82rem; }
.prog__suivre { margin-top: clamp(24px, 4vw, 44px); }
.prog__suivre h3 { font: 900 1.8rem/1 var(--titre); font-stretch: 75%; text-transform: uppercase; }
.prog__suivre p { color: var(--muted); margin-top: 8px; }
.prog__liens { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px !important; }
.direct { position: fixed; z-index: 55; left: 50%; top: 76px; translate: -50% 0; display: flex; align-items: center; gap: 12px; max-width: calc(100vw - 32px);
  padding: 10px 18px; border-radius: var(--r-pill); background: var(--accent); color: var(--bg); font-weight: 800; font-size: 0.88rem; text-decoration: none; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); }
.direct i { width: 10px; height: 10px; border-radius: 50%; background: var(--bg); animation: clignote 1.2s infinite; }
@keyframes clignote { 50% { opacity: 0.2; } }
/* v12 : l'étiquette au-dessus du titre ne touche pas le mot manuscrit ; les jours de l'horaire tiennent sur une ligne. */
.prog .bloc__tete .eyebrow { margin-bottom: 16px; }
.prog__manche .seances td:first-child { white-space: nowrap; color: var(--muted); }
/* v12 : sur un téléphone le bandeau « En direct » passe en bas, sur une seule ligne, pour ne rien cacher. */
@media (max-width: 820px) {
  .direct { top: auto; bottom: 16px; width: calc(100vw - 32px); justify-content: center; font-size: 0.78rem; padding: 9px 14px; }
  .direct span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
}

/* ═══ v13 : au stand — Cath Van der Straten Ponthoz, Julien Daiver, Antoine Mertens ═══ */
.stand { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; align-items: start; }
.stand .pilote--stand { max-width: none; }
.stand .pilote h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); }
.pilote__nee { margin-top: -10px; margin-bottom: 12px; color: var(--muted) !important; font-weight: 600; }
