/* Écran Réservation : le mouvement. Transform, opacité et tracé (stroke-dashoffset) seulement ; jamais de hauteur ni de largeur animée.
   Rien ne bouge au chargement : l'état affiché est l'état FINAL. Le mouvement ne démarre qu'après un geste, quand le script pose
   la classe « en-parcours » sur <html>. Mouvement réduit : état final direct, fondus de 150 ms seulement. */

@keyframes tracer { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes apparaitre { from { opacity: 0; transform: translateY(var(--decalage-entree)); } to { opacity: 1; transform: none; } }
@keyframes fondu { from { opacity: 0; } to { opacity: 1; } }
@keyframes poser { from { opacity: 0; transform: scale(1.15); } to { opacity: 1; transform: none; } }
@keyframes remplir { from { transform: scaleX(0); } to { transform: none; } }

.signature__invite { transition: opacity var(--d-micro) linear; }
.choix__rond::after { transition: transform var(--d-micro) linear; }

html.en-parcours .carte[data-statut="ouverte"], html.en-parcours .confirmation { animation: apparaitre var(--d-moyen) var(--ease-entree) both; }
html.en-parcours .coche path { animation: tracer var(--d-coche) var(--ease-entree) calc(var(--d-micro) / 2) both; }
html.en-parcours[data-etat="signe"] .signature__trait { animation: tracer var(--d-trait) var(--ease-deplacement) both; }
html.en-parcours .carte[data-fait="oui"] .statut__fait { animation: remplir var(--d-long) var(--ease-deplacement) both; }
html.en-parcours .statut__fait > span { animation: fondu var(--d-micro) linear var(--d-court) both; }
html.en-parcours .carte[data-fait="oui"] .empreinte__anneau { animation: poser var(--d-moyen) var(--ease-entree) both; }
html.en-parcours .carte[data-fait="oui"] .pose { animation: fondu var(--d-micro) linear var(--d-micro) both; }

@media (prefers-reduced-motion: reduce) {
  html.en-parcours *, html.en-parcours *::before, html.en-parcours *::after { animation: none; }
  html.en-parcours .carte[data-statut="ouverte"], html.en-parcours .confirmation { animation: fondu var(--d-micro) linear both; }
  .signature__invite, .choix__rond::after { transition: none; }
}
