/* Mouvement unifié : une seule courbe, une seule durée, une montée courte, un léger décalage. */
:root { --m-courbe: cubic-bezier(0.22, 1, 0.36, 1); --m-duree: 800ms; --m-montee: 16px; --m-decalage: 70ms; --plx-amp: 14px; }
.js-mouvement [data-entree] { transform: translateY(var(--m-montee)); transition: opacity var(--m-duree) var(--m-courbe), transform var(--m-duree) var(--m-courbe); transition-delay: calc(var(--i, 0) * var(--m-decalage)); }
.js-mouvement [data-entree].est-visible { transform: none; }
.iv2-pret [data-monte] { transform: translateY(var(--m-montee)); transition: opacity var(--m-duree) var(--m-courbe), transform var(--m-duree) var(--m-courbe); transition-delay: calc(var(--d, 0) * var(--m-decalage)); }
.iv2-pret [data-monte].est-vu { transform: none; }
.js-mouvement .u7 [data-u7-entre] { transform: translateY(var(--m-montee)); transition: opacity var(--m-duree) var(--m-courbe), transform var(--m-duree) var(--m-courbe); }
.js-mouvement [data-mots]:not([data-mots="defile"]) .mot { transition: transform var(--m-duree) var(--m-courbe); transition-delay: calc(var(--m, 0) * 40ms); }
.js-mouvement [data-parallaxe] { translate: 0 calc(var(--plx, 0) * var(--plx-amp)); }
@media (prefers-reduced-motion: reduce) { [data-parallaxe] { translate: none !important; } }
