/* ==========================================================================
   143LOVE — Antoine Pouyer — feuille de style
   Typographie « ticket de caisse » (IBM Plex Mono), fond pellicule noir.
   ========================================================================== */

@font-face { font-family: "Plex Mono"; src: url("../fonts/ibm-plex-mono-300.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Plex Mono"; src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Plex Mono"; src: url("../fonts/ibm-plex-mono-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
/* polices des intitulés de projets (les mêmes que sur l'ancien site) */
@font-face { font-family: "Imbue"; src: url("../fonts/imbue-400.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Arial Narrow Bold"; src: url("../fonts/arial-narrow-bold.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Inter Bold"; src: url("../fonts/inter-700.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Impact Regular"; src: url("../fonts/impact.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Goudy Old Style"; src: url("../fonts/goudy-old-style.woff2") format("woff2"); font-display: swap; }

:root {
  --noir: #050505;
  --papier: #ededea;          /* blanc légèrement cassé, comme un ticket */
  --gris: rgba(237, 237, 234, .45);
  --mono: "Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --taille-ui: 11px;
  --marge: clamp(16px, 2.2vw, 34px);
  --ease: cubic-bezier(.22, .61, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { background: var(--noir); }
body {
  margin: 0;
  background: var(--noir);
  color: var(--papier);
  font: 400 var(--taille-ui)/1.75 var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  -webkit-font-smoothing: antialiased;
}
body.intro { overflow: hidden; }   /* pas de défilement pendant que le logo se dessine */
a, button { color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
a { text-decoration: none; }
:focus-visible { outline: 1px dashed var(--papier); outline-offset: 4px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Fond vidéo ---------- */
.nuage { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.fond { position: fixed; inset: 0; overflow: hidden; z-index: 1; }
.fond__video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.08);
  filter: grayscale(.25) contrast(1.05) brightness(.82);
}
.fond__voile {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 55%, rgba(5,5,5,.05) 0%, rgba(5,5,5,.45) 70%, rgba(5,5,5,.8) 100%);
}
.fond__noir { position: absolute; inset: 0; background: var(--noir); }

/* ---------- Logo ---------- */
.scene {
  position: fixed; inset: 0; z-index: 2;
  display: grid; place-items: center;
  pointer-events: none;
}
.scene__logo {
  width: min(30vw, 56vh * 1.393, 560px);
  will-change: transform;
}
.logo { display: block; width: 100%; height: auto; overflow: visible; }
.logo .plein { opacity: 0; }
.logo .hachures { opacity: .9; }
.logo .traits use { stroke-width: 3; }
.logo .traits-bis { opacity: .42; }
.logo .guides { stroke-width: 1.3; opacity: .22; }
.fond, .scene { transition: none; }  /* leur opacité suit le défilement (nuage.js) */

/* ---------- Pellicule ---------- */
.pellicule {
  position: fixed; inset: 0; width: 100%; height: 100%; z-index: 6;
  pointer-events: none;
  opacity: .9;
}
.vignette {
  position: fixed; inset: 0; pointer-events: none; z-index: 6;
  background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.55) 100%);
}

/* ---------- Éléments d'interface (apparaissent après l'intro) ---------- */
.ui { position: fixed; z-index: 10; }
.intro .ui:not(.pied) { visibility: hidden; }
.pied__passer { color: var(--gris); transition: color .3s; }
.pied__passer:hover { color: var(--papier); }

/* Lecteur */
.lecteur { top: var(--marge); left: var(--marge); }
.lecteur__bouton { display: flex; align-items: center; gap: 12px; text-align: left; }
.lecteur__icone {
  flex: none; width: 26px; height: 26px; border-radius: 50%;
  border: 1px solid var(--papier);
  display: grid; place-items: center;
  transition: background .35s var(--ease);
}
.lecteur__icone svg { width: 10px; height: 10px; fill: var(--papier); transition: fill .35s; }
.lecteur__pause { display: none; }
.lecteur__bouton[aria-pressed="true"] .lecteur__play { display: none; }
.lecteur__bouton[aria-pressed="true"] .lecteur__pause { display: inline; }
.lecteur__bouton:hover .lecteur__icone { background: var(--papier); }
.lecteur__bouton:hover .lecteur__icone svg { fill: var(--noir); }
.lecteur__texte { white-space: pre; }

/* Ticket (menu) */
.ticket { top: var(--marge); right: var(--marge); }
.ticket__ouvrir { display: none; }
.ticket__papier { width: calc(31 * (1ch + .06em)); }  /* 31 caractères, espacement compris */
.ticket__entete { margin: 0 0 .35em; color: var(--gris); white-space: pre; }
.ticket__liste, .ligne__sous { list-style: none; margin: 0; padding: 0; }
.ligne__titre {
  display: flex; width: 100%; white-space: pre; text-align: left;
  cursor: pointer;
}
.ligne__titre { transition: color .3s; }
/* la section survolée reste blanche, les autres s'estompent */
.ticket__liste:has(.est-ouverte) .ligne:not(.est-ouverte) > .ligne__titre { color: var(--gris); }
.ligne__points { flex: 1; overflow: hidden; color: var(--gris); }
.ligne__total { min-width: 2ch; text-align: right; }
.ligne__sous { display: none; }
.ligne__sous.est-imprime { display: block; }
.ligne__sous a {
  display: flex; white-space: pre; color: var(--gris);
  transition: color .25s;
}
.ligne__sous a:hover, .ligne__sous a:focus-visible { color: var(--papier); }
.ligne__sous .sous__points { flex: 1; overflow: hidden; }
.ligne__sous .sous__qte { color: var(--papier); }

/* Pied de page */
.pied {
  left: var(--marge); right: var(--marge); bottom: var(--marge);
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: end;
  pointer-events: none;
}
.pied > * { margin: 0; pointer-events: auto; }
.pied__date { color: var(--gris); }
.pied__signature { justify-self: end; color: var(--gris); }
.intro .pied__date, .intro .pied__signature, .intro .pied__defiler { visibility: hidden; }
body:not(.intro) .pied__passer { visibility: hidden; }
.pied__date { grid-column: 1; grid-row: 1; }
.pied__signature { grid-column: 3; grid-row: 1; }
.pied__passer, .pied__defiler { grid-column: 2; grid-row: 1; justify-self: center; }
.pied__defiler { color: var(--gris); animation: clignote 1.6s steps(2) infinite; transition: opacity .4s; }
.a-defile .pied__defiler { opacity: 0; }
@keyframes clignote { 50% { color: var(--papier); } }

/* Apparition « impression » des éléments d'interface */
.imprime { animation: impression .5s steps(6); }
@keyframes impression {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0 0); }
}

/* ==========================================================================
   Sections qui défilent (sur le nuage de points)
   ========================================================================== */
.defilement { position: relative; z-index: 4; }
.ouverture { height: 150vh; }            /* temps de défilement du passage vidéo -> nuage de points */
.bloc {
  position: relative;
  min-height: 100vh;
  padding: 18vh var(--marge) 16vh;
}
.bloc__entete, .carres { width: 50%; }   /* l'en-tête et sa ligne s'arrêtent au milieu, au 3e petit carré */
.bloc__entete {
  display: flex; justify-content: space-between; gap: 2ch;
  font-size: clamp(12px, 1vw, 16px);
  color: var(--papier);
}
.bloc__entete > span { white-space: pre; }
/* fondu noir en haut et en bas de l'écran, sous le menu et le lecteur, pour que le texte qui défile ne s'y mélange pas */
.fondus::before, .fondus::after {
  content: ""; position: fixed; left: 0; right: 0; z-index: 9; pointer-events: none; height: 110px;
}
.fondus::before { top: 0; background: linear-gradient(#050505 10%, rgba(5,5,5,0)); }
.fondus::after { bottom: 0; height: 80px; background: linear-gradient(rgba(5,5,5,0), #050505 85%); }
.intro .fondus { display: none; }
.carres {
  display: flex; justify-content: space-between;
  margin: 18px 0 0;
  border-top: 1px solid rgba(237,237,234,.12);
  height: 0;
}
.carres i {
  width: 7px; height: 7px; margin-top: -4px;
  background: var(--papier);
  transform: scale(0); transition: transform .5s var(--ease);
}
.carres.est-visible i { transform: scale(1); }
.carres.est-visible i:nth-child(2) { transition-delay: .08s; }
.carres.est-visible i:nth-child(3) { transition-delay: .16s; }


.grille {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--marge);
  row-gap: 7vh;
}
.grille > *, .disciplines > * { grid-column: var(--c, auto); grid-row: var(--r, auto); }
.fleche { color: var(--gris); margin-right: .6ch; }

/* Index */
.manifeste {
  margin: 0; max-width: 48ch;
  text-transform: none; letter-spacing: .01em;
  font-size: calc(var(--taille-ui) + 2px); line-height: 1.6;
}
.manifeste--2 { color: var(--gris); }
.disciplines { display: contents; margin: 0; }
.disc { display: flex; gap: 2.5ch; }
.disc dt { color: var(--gris); }
.disc dd { margin: 0; }
.disc b { font-weight: 500; }

/* Projets */
.grille--projets { align-items: start; row-gap: 14vh; margin-top: 9vh; }  /* espace entre l'en-tête et les vignettes */
.projet { display: block; position: relative; will-change: transform; }
.projet__vignette {
  position: relative; margin: 0; overflow: hidden;
  background: #0d0d0d;
  aspect-ratio: 4 / 3;                   /* toutes les vignettes ont le même format */
}
.projet__vignette video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  transform: scale(1.25);
  transition: filter .45s var(--ease);
  filter: grayscale(.15) contrast(1.05);
}
/* coins « + » et petits carrés, comme sur un relevé de scan */
.projet__vignette::before, .projet__vignette::after {
  content: ""; position: absolute; z-index: 3; width: 13px; height: 13px; pointer-events: none;
  background:
    linear-gradient(var(--papier), var(--papier)) center / 100% 1px no-repeat,
    linear-gradient(var(--papier), var(--papier)) center / 1px 100% no-repeat;
  opacity: 0; transition: opacity .4s .6s;
}
.projet__vignette::before { top: 8px; left: 8px; }
.projet__vignette::after { bottom: 8px; right: 8px; }
.projet__vignette.est-visible::before, .projet__vignette.est-visible::after { opacity: .9; }

/* révélation « scan » : une ligne lumineuse descend et découvre l'image */
.projet__vignette { clip-path: inset(0 0 100% 0); }
.projet__vignette.est-visible { clip-path: inset(0 0 0 0); transition: clip-path 1.4s cubic-bezier(.7,0,.2,1); }
.projet__vignette.est-visible video { transform: scale(1); transition: transform 2.2s cubic-bezier(.2,.6,.2,1), filter .45s var(--ease); }
.scan__ligne {
  position: absolute; left: 0; right: 0; top: 0; height: 1px; z-index: 4;
  background: var(--papier); box-shadow: 0 0 18px 2px rgba(237,237,234,.55);
  opacity: 0;
}
.est-visible > .scan__ligne { animation: scan 1.4s cubic-bezier(.7,0,.2,1) forwards; }
@keyframes scan { 0% { top: 0; opacity: 1; } 92% { opacity: 1; } 100% { top: 100%; opacity: 0; } }
.scan__compteur {
  position: absolute; left: 10px; bottom: 8px; z-index: 4;
  color: var(--papier); mix-blend-mode: difference;
}

/* survol : vision « machine », cadres de suivi */
.projet__hud { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; opacity: 0; transition: opacity .3s; pointer-events: none; }
.projet__hud text { font: 400 11px var(--mono); letter-spacing: .02em; fill: #f4f1d8; }
.projet:hover .projet__hud, .projet:focus-visible .projet__hud { opacity: 1; }

/* intitulé écrit sur la vignette (taille relative à la largeur de la vignette) */
.projet__vignette { container-type: inline-size; }
.projet__intitule {
  position: absolute; left: 50%; top: 50%; z-index: 1;
  transform: translate(-50%, -50%);
  color: #fff; white-space: nowrap; text-transform: uppercase; letter-spacing: normal;
  line-height: 1; pointer-events: none;
  opacity: 0; transition: opacity .8s .9s, filter .5s var(--ease);
}
.projet__vignette.est-visible .projet__intitule { opacity: 1; }
.intitule--imbue  { font: 400 15cqw/1 "Imbue", serif; letter-spacing: -.07em; filter: blur(.21cqw); }
.intitule--narrow { font: 700 9.6cqw/1 "Arial Narrow Bold", "Arial Narrow", sans-serif; letter-spacing: -.07em; filter: blur(.11cqw); }
.intitule--inter  { font: 700 21cqw/1 "Inter Bold", "Inter", sans-serif; letter-spacing: -.04em; filter: blur(.32cqw); }
.intitule--impact { font: 400 12.6cqw/1 "Impact Regular", Impact, sans-serif; filter: blur(.21cqw); }
.intitule--goudy  { font: 400 15cqw/1 "Goudy Old Style", Georgia, serif; letter-spacing: -.01em; filter: blur(.21cqw); }
.projet:hover .projet__intitule { filter: blur(0); }


/* curseur « VIEW PROJECT » qui suit la souris sur les vignettes */
.curseur {
  position: fixed; left: 0; top: 0; z-index: 12; pointer-events: none;
  padding: 3px 7px; background: var(--papier); color: var(--noir);
  white-space: pre; opacity: 0; transition: opacity .2s;
}
.curseur.est-actif { opacity: 1; }

/* Fin : le ticket récapitulatif */
.bloc--fin { display: grid; place-items: center; min-height: 110vh; }
.recu { width: calc(31 * (1ch + .06em)); }
.recu p { white-space: pre; }
.recu p { margin: 0; }
.recu a { transition: color .25s; }
.recu a:hover { color: #fff; text-shadow: 0 0 10px rgba(255,255,255,.4); }
.recu__contact { color: var(--papier); }
.recu__centre { text-align: center; }
/* impression ligne à ligne */
.recu p { opacity: 0; transition: opacity 0s; }
.recu.est-visible p { opacity: 1; transition-delay: calc(var(--i) * 70ms); }

/* Repères de cadrage aux coins */
.reperes i {
  position: fixed; z-index: 7; width: 11px; height: 11px; pointer-events: none; opacity: .5;
  background:
    linear-gradient(var(--papier), var(--papier)) center / 100% 1px no-repeat,
    linear-gradient(var(--papier), var(--papier)) center / 1px 100% no-repeat;
}
.reperes i:nth-child(1) { top: 6px; left: 6px; }
.reperes i:nth-child(2) { top: 6px; right: 6px; }
.reperes i:nth-child(3) { bottom: 6px; left: 6px; }
.reperes i:nth-child(4) { bottom: 6px; right: 6px; }

/* textes révélés à l'écriture : invisibles avant leur tour */
[data-reveal="type"]:not(.est-visible) { visibility: hidden; }

/* ==========================================================================
   Fin de page : les sections du menu en ligne, façon ticket ; au survol d'une
   section, ses sous-sections s'impriment dessous (fin.js)
   ========================================================================== */
.fin { position: relative; z-index: 4; padding: 30vh var(--marge) 16vh; font-size: clamp(9px, .58vw, 11px); }  /* plus bas dans la page ; place dessous pour les sous-sections */
.fin__etoiles { margin: 0 0 26px; display: flex; justify-content: center; white-space: nowrap; overflow: hidden; color: var(--gris); }
.fin__etoiles span { flex: 1; min-width: 0; overflow: hidden; }
.fin__etoiles span:first-child { text-align: right; direction: rtl; }
.fin__etoiles b { font-weight: 400; color: var(--papier); }
.fin__menu { display: flex; align-items: center; gap: 1.2ch; white-space: nowrap; }
.fin__menu > i {                   /* points de conduite entre les sections */
  flex: 1; min-width: 2ch; height: 1em;
  background: radial-gradient(circle, rgba(237,237,234,.4) 1px, transparent 1.3px) 0 70% / 7px 7px repeat-x;
}
.fin__item { position: relative; }
.fin__titre { transition: color .3s; }
.fin__menu:has(.est-ouverte) .fin__item:not(.est-ouverte) .fin__titre { color: var(--gris); }
.fin__logo img { display: block; height: clamp(44px, 4.6vw, 76px); width: auto; transition: opacity .3s; }
.fin__logo:hover img { opacity: .6; }
.fin__sous {
  position: absolute; left: 0; top: 100%;
  list-style: none; margin: 0; padding: 10px 0 0; display: none;
}
.fin__item--droite .fin__sous { left: auto; right: 0; }
.fin__item.est-ouverte .fin__sous { display: block; }
.fin__sous { min-width: 28ch; }
.fin__sous li { min-height: 1.9em; }
.fin__sous a { display: flex; white-space: pre; color: var(--gris); transition: color .25s; line-height: 1.9; }
.fin__sous a:hover, .fin__sous a:focus-visible { color: var(--papier); }
.fin__sous .sous__qte { color: var(--papier); }
.fin__infos { margin: 84px 0 0; padding-top: 12px;  /* place pour les sous-sections */ border-top: 1px dashed rgba(237,237,234,.25);
  display: flex; justify-content: space-between; gap: 2ch; flex-wrap: wrap; color: var(--gris); }

/* ==========================================================================
   Menu replié pendant le défilement : il ne reste que « MENU », le ticket
   s'imprime au survol
   ========================================================================== */
@media (min-width: 761px) {
  /* « MENU » : posé en haut à droite, invisible tant que le menu est déplié */
  .ticket__ouvrir {
    display: block; position: absolute; top: 0; right: 0;
    opacity: 0; transform: translateY(8px); pointer-events: none;
    transition: opacity .35s var(--ease), transform .45s var(--ease);
  }
  .ticket__papier { transition: clip-path .55s cubic-bezier(.7,0,.2,1); clip-path: inset(0 0 0 0); }
  .ticket__papier > * { transition: transform .5s var(--ease), opacity .4s var(--ease); }
  .ticket__liste > li { transition: transform .5s var(--ease), opacity .4s var(--ease); }

  /* replié : les lignes remontent une à une et s'effacent, il ne reste que MENU */
  .menu-replie .ticket { pointer-events: none; }
  .menu-replie .ticket__ouvrir { opacity: 1; transform: none; pointer-events: auto; transition-delay: .25s; }
  .menu-replie .ticket__papier { clip-path: inset(0 0 100% 0); }
  .menu-replie .ticket__entete,
  .menu-replie .ticket__liste > li { opacity: 0; transform: translateY(-14px); }
  .menu-replie .ticket__liste > li:nth-child(6) { transition-delay: 0s; }
  .menu-replie .ticket__liste > li:nth-child(5) { transition-delay: .04s; }
  .menu-replie .ticket__liste > li:nth-child(4) { transition-delay: .08s; }
  .menu-replie .ticket__liste > li:nth-child(3) { transition-delay: .12s; }
  .menu-replie .ticket__liste > li:nth-child(2) { transition-delay: .16s; }
  .menu-replie .ticket__liste > li:nth-child(1) { transition-delay: .2s; }
  .menu-replie .ticket__entete { transition-delay: .2s; }

  /* survol de MENU : le ticket redescend, ligne par ligne */
  .menu-replie .ticket:hover .ticket__ouvrir,
  .menu-replie .ticket:focus-within .ticket__ouvrir { opacity: 0; transform: translateY(-6px); transition-delay: 0s; }
  .menu-replie .ticket:hover .ticket__papier,
  .menu-replie .ticket:focus-within .ticket__papier,
  .menu-replie .ticket.est-ouvert .ticket__papier { clip-path: inset(0 0 -40px 0); pointer-events: auto; }
  .menu-replie .ticket:hover .ticket__entete,
  .menu-replie .ticket:hover .ticket__liste > li,
  .menu-replie .ticket:focus-within .ticket__entete,
  .menu-replie .ticket:focus-within .ticket__liste > li { opacity: 1; transform: none; }
  .menu-replie .ticket:hover .ticket__entete { transition-delay: 0s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(1) { transition-delay: .04s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(2) { transition-delay: .08s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(3) { transition-delay: .12s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(4) { transition-delay: .16s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(5) { transition-delay: .2s; }
  .menu-replie .ticket:hover .ticket__liste > li:nth-child(6) { transition-delay: .24s; }
}

/* ---------- Téléphone et petites tablettes ---------- */
@media (max-width: 760px) {
  :root { --taille-ui: 10px; }
  .scene__logo { width: min(74vw, 56vh * 1.393); }
  .lecteur__texte { max-width: 22ch; white-space: normal; }
  .lecteur__icone { width: 22px; height: 22px; }
  .ticket__ouvrir { display: block; padding: 4px 0; }
  .ticket__papier {
    position: fixed; top: 0; left: 0; right: 0;
    width: auto;
    padding: calc(var(--marge) + 34px) var(--marge) 34px calc(var(--marge) + 2ch);
    background: var(--papier); color: var(--noir);
    --gris: rgba(5,5,5,.5);
    font-size: 12px;
    transform: translateY(-105%);
    transition: transform .7s var(--ease);
    /* bord dentelé de ticket arraché */
    -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 14px 100%;
            mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 14px 100%;
  }
  .ticket.est-ouvert .ticket__papier { transform: none; }
  .ticket.est-ouvert .ticket__ouvrir { position: relative; z-index: 2; color: var(--noir); }
  .ticket__entete { text-align: center; }
  .ligne__titre, .ligne__sous a { padding: 5px 0; }
  .pied { grid-template-columns: 1fr auto; }
  .pied__date { display: none; }
  .pied__passer, .pied__defiler { grid-column: 1; justify-self: start; }
  .pied__signature { grid-column: 2; }
  .cache-mobile { display: none; }
  .fin__menu { flex-wrap: wrap; row-gap: 14px; white-space: normal; }
  .fin__menu > i { flex-basis: 3ch; }
  .fin__logo { order: -1; flex-basis: 100%; display: flex; justify-content: center; margin-bottom: 10px; }
  .fin__sous { position: static; margin-top: 6px; }
  .fin__infos { flex-direction: column; gap: 4px; }
  .bloc { padding: 14vh var(--marge) 12vh; }
  .grille { grid-template-columns: repeat(6, 1fr); row-gap: 5vh; }
  .grille > *, .disciplines > * { grid-column: 1 / -1 !important; grid-row: auto !important; }
  .bloc__entete, .carres { width: 100%; }
  .disc { gap: 1.5ch; }
  .curseur { display: none; }
  .ouverture { height: 140vh; }
}

/* ---------- Mouvement réduit : pas d'animation ---------- */
@media (prefers-reduced-motion: reduce) {
  .imprime { animation: none; }
  .fond__video { transform: none; }
}

/* liens de menu inactifs : pages pas encore faites, ou la page sur laquelle on est déjà */
.ticket a[aria-disabled="true"], .fin a[aria-disabled="true"], .fin__menu a[aria-disabled="true"] { cursor: default; pointer-events: none !important; }

/* accueil, téléphone : la page s'arrête au ticket TOTAL (il contient déjà les liens), pas de menu de fin */
@media (max-width: 760px) {
  .fin--accueil { display: none; }
  .bloc--fin { min-height: 100vh; min-height: 100svh; padding-bottom: 6vh; }
}
