/* Mouvement léger, sans bibliothèque et sans masquer le contenu au repos. */
:root {
  --mouvement-bref: 150ms;
  --mouvement-page: 220ms;
  --mouvement-revelation: 280ms;
  --mouvement-ancre: 420ms;
  --mouvement-ecart: 10px;
  --mouvement-courbe: cubic-bezier(.22, 1, .36, 1);
}

@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: page-sortie var(--mouvement-bref) ease both; }
  ::view-transition-new(root) { animation: page-entree var(--mouvement-page) ease both; }
  .entete { view-transition-name: entete; }
  .barre-mobile { view-transition-name: reservation-rapide; }
  ::view-transition-old(entete), ::view-transition-new(entete),
  ::view-transition-old(reservation-rapide), ::view-transition-new(reservation-rapide) { animation: none; }
  ::view-transition-group(*) { animation-duration: var(--mouvement-page); }

  .nav-carte[open] .nav-carte__liste,
  .nav-mobile[open] > .nav-mobile__panneau { animation: menu-entree var(--mouvement-bref) var(--mouvement-courbe) both; }
  .nav-carte > summary::after { transition: transform var(--mouvement-bref) ease; }
  .accueil-photo__suite span { transition: transform var(--mouvement-bref) ease; }
  .bouton { transition: background-color var(--fondu), color var(--fondu), transform var(--mouvement-bref) ease; }
  .ancre-arrivee :is(h2, h3):first-of-type { animation: ancre-lue 600ms ease-out; }
  @media (hover: hover) and (pointer: fine) {
    .bouton:hover { transform: translateY(-2px); }
    .bouton:active { transform: translateY(0); }
    .accueil-photo__suite:hover span { transform: translateY(3px); }
  }
}

@keyframes page-sortie { to { opacity: 0; } }
@keyframes page-entree { from { opacity: 0; } }
@keyframes menu-entree { from { opacity: .4; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ancre-lue { from { text-decoration-color: var(--or); text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; } to { text-decoration-color: transparent; text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; } }

/* Réduction des mouvements : navigation immédiate, aucun effet au défilement. */
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  html { scroll-behavior: auto; }
  .nav-carte__liste, .nav-mobile__panneau, .ancre-arrivee :is(h2, h3) { animation: none !important; }
  .bouton, .accueil-photo__suite span, .nav-carte > summary::after { transition: none !important; }
}
