/* ============================================================================
   anim.css — réglages posés depuis l'éditeur (admin/) : animations d'entrée et blocs masqués
   ----------------------------------------------------------------------------
   data-anim="fondu|monte|descend|gauche|droite|zoom|flou|rideau"   animation d'entrée au scroll
   data-anim-delai="ms"   data-anim-duree="ms"                        (facultatifs)
   data-masque                                                        bloc masqué (gardé dans le fichier)
   La classe .anim-vu est posée par anim.js quand l'élément entre dans l'écran.
   ============================================================================ */
[data-masque]{display:none!important}

[data-anim]{--anim-d:var(--anim-duree,1000ms);transition:opacity var(--anim-d) var(--machine,cubic-bezier(.19,1,.22,1)) var(--anim-delai,0ms),transform calc(var(--anim-d)*1.1) var(--machine,cubic-bezier(.19,1,.22,1)) var(--anim-delai,0ms),filter var(--anim-d) var(--machine,cubic-bezier(.19,1,.22,1)) var(--anim-delai,0ms),clip-path var(--anim-d) var(--doux,cubic-bezier(.65,0,.35,1)) var(--anim-delai,0ms)}
[data-anim="fondu"]{opacity:0}
[data-anim="monte"]{opacity:0;transform:translateY(40px)}
[data-anim="descend"]{opacity:0;transform:translateY(-40px)}
[data-anim="gauche"]{opacity:0;transform:translateX(-60px)}
[data-anim="droite"]{opacity:0;transform:translateX(60px)}
[data-anim="zoom"]{opacity:0;transform:scale(.92)}
[data-anim="flou"]{opacity:0;filter:blur(14px)}
[data-anim="rideau"]{clip-path:inset(0 0 100% 0)}
[data-anim].anim-vu{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0)}

@media (prefers-reduced-motion:reduce){
  [data-anim]{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}
}
