/* UN moment signature : la lumière monte sur l'assiette (masque + fondu), le titre s'écrit lettre à lettre en crème. */
@media (prefers-reduced-motion: no-preference) {
  .hero-photo .cadre { animation: lumiere 1800ms var(--ease-sortie) both; -webkit-mask-image: radial-gradient(ellipse 85% 75% at 50% 62%, #000 var(--ouverture), transparent calc(var(--ouverture) + 38%)); mask-image: radial-gradient(ellipse 85% 75% at 50% 62%, #000 var(--ouverture), transparent calc(var(--ouverture) + 38%)); }
  .hero-photo img { animation: monter 1800ms var(--ease-sortie) both; }
  .hero-texte h1 .l { animation: lettre 520ms var(--ease-sortie) both; animation-delay: calc(350ms + var(--i) * 28ms); }
  .hero-texte .chapo, .hero-actions, .hero-meta, .hero-photo figcaption { animation: fondre 800ms var(--ease-sortie) both; }
  .hero-texte .chapo { animation-delay: 1250ms; } .hero-actions { animation-delay: 1400ms; } .hero-meta, .hero-photo figcaption { animation-delay: 1550ms; }
  @keyframes lumiere { from { --ouverture: -40%; } to { --ouverture: 100%; } }
  @keyframes monter { from { filter: brightness(.25) saturate(.7); transform: scale(1.06); } to { filter: none; transform: none; } }
  @keyframes lettre { from { opacity: 0; transform: translateY(.18em); } to { opacity: 1; transform: none; } }
  @keyframes fondre { from { opacity: 0; } to { opacity: 1; } }
}
.faq-liste details div { animation: ouvrir 220ms var(--ease-sortie); }
dialog.visionneuse[open] { animation: ouvrir 240ms var(--ease-sortie); }
@keyframes ouvrir { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: 1ms !important; }
  html { scroll-behavior: auto; }
}
