/* Animations communes du site. Tout est coupé si l'appareil demande moins de mouvement. */
.mv-rv { opacity: 0; transform: translateY(14px); transition: opacity .55s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1); }
.mv-rv.mv-in { opacity: 1; transform: none; }
/* Réponse au geste : boutons et questions qui s'ouvrent */
a.btn, button { transition: transform .18s cubic-bezier(.2,.8,.2,1), filter .18s ease, background-color .18s ease, border-color .18s ease; }
a.btn:hover, button:not(:disabled):hover { filter: brightness(1.08); transform: translateY(-1px); }
a.btn:active, button:not(:disabled):active { transform: scale(.98); }
details[open] > *:not(summary) { animation: mv-open .3s cubic-bezier(.2,.8,.2,1) both; }
@keyframes mv-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  details[open] > *:not(summary) { animation: none; }
  .mv-rv { opacity: 1; transform: none; transition: none; }
  a.btn, button { transition: none; }
  a.btn:hover, button:not(:disabled):hover { transform: none; }
}
