/*!
 * awanimation — animations au scroll en vanilla JS (zéro dépendance, sans jQuery).
 * Plugin maison Arkana, compatible avec les attributs data-anim (drop-in AOS).
 *
 * Pilotage : data-anim="fade-up" + data-anim-duration / data-anim-delay /
 * data-anim-easing / data-anim-once. API JS : window.awanimation.init/refresh/refreshHard.
 */

/* [class*="awanim-fx-"] = état AVANT hydratation JS (le builder pose une classe,
   awanimation la convertit en data-anim au chargement). On le masque dès le CSS
   pour éviter tout flash « visible → caché → animé ». */
[data-anim],
[class*="awanim-fx-"] {
    pointer-events: none;
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: .6s;
    transition-timing-function: ease;
    will-change: opacity, transform;
}

[data-anim].anim-in {
    pointer-events: auto;
    opacity: 1;
    transform: none;
}

/* --- Fade --- */
[data-anim="fade-up"]         { transform: translate3d(0, 40px, 0); }
[data-anim="fade-down"]       { transform: translate3d(0, -40px, 0); }
[data-anim="fade-right"]      { transform: translate3d(-40px, 0, 0); }
[data-anim="fade-left"]       { transform: translate3d(40px, 0, 0); }
[data-anim="fade-up-right"]   { transform: translate3d(-40px, 40px, 0); }
[data-anim="fade-up-left"]    { transform: translate3d(40px, 40px, 0); }
[data-anim="fade-down-right"] { transform: translate3d(-40px, -40px, 0); }
[data-anim="fade-down-left"]  { transform: translate3d(40px, -40px, 0); }

/* --- Zoom --- */
[data-anim="zoom-in"]         { transform: scale(.6); }
[data-anim="zoom-in-up"]      { transform: translate3d(0, 40px, 0) scale(.6); }
[data-anim="zoom-in-down"]    { transform: translate3d(0, -40px, 0) scale(.6); }
[data-anim="zoom-in-right"]   { transform: translate3d(-40px, 0, 0) scale(.6); }
[data-anim="zoom-in-left"]    { transform: translate3d(40px, 0, 0) scale(.6); }
[data-anim="zoom-out"]        { transform: scale(1.2); }
[data-anim="zoom-out-up"]     { transform: translate3d(0, 40px, 0) scale(1.2); }
[data-anim="zoom-out-down"]   { transform: translate3d(0, -40px, 0) scale(1.2); }
[data-anim="zoom-out-right"]  { transform: translate3d(-40px, 0, 0) scale(1.2); }
[data-anim="zoom-out-left"]   { transform: translate3d(40px, 0, 0) scale(1.2); }

/* --- Slide (translation pleine, sans fondu) --- */
[data-anim^="slide-"]         { opacity: 1; }
[data-anim="slide-up"]        { transform: translate3d(0, 100%, 0); }
[data-anim="slide-down"]      { transform: translate3d(0, -100%, 0); }
[data-anim="slide-right"]     { transform: translate3d(-100%, 0, 0); }
[data-anim="slide-left"]      { transform: translate3d(100%, 0, 0); }

/* --- Flip --- */
[data-anim="flip-left"]       { transform: perspective(2500px) rotateY(-100deg); }
[data-anim="flip-right"]      { transform: perspective(2500px) rotateY(100deg); }
[data-anim="flip-up"]         { transform: perspective(2500px) rotateX(-100deg); }
[data-anim="flip-down"]       { transform: perspective(2500px) rotateX(100deg); }

/* --- Accessibilité : aucune animation si l'utilisateur le demande --- */
@media (prefers-reduced-motion: reduce) {
    [data-anim] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
