/* ============================================================
   ANIMATIONS AU SCROLL — Alias Child Theme
   Les éléments reçoivent la classe .alias-animate par le JS,
   puis .alias-visible quand ils entrent dans le viewport.
   ============================================================ */

/* ---- État initial (invisible) ---- */
.alias-animate {
    opacity: 0;
    transition:
        opacity 0.6s ease,
        transform 0.6s ease;
    will-change: opacity, transform;
}

/* ---- État visible (après intersection) ---- */
.alias-animate.alias-visible {
    opacity: 1;
    transform: none;
}

/* ---- Variantes : direction de départ ---- */
.alias-fade-up {
    transform: translateY(30px);
}

.alias-fade-down {
    transform: translateY(-30px);
}

.alias-fade-left {
    transform: translateX(-30px);
}

.alias-fade-right {
    transform: translateX(30px);
}

.alias-zoom-in {
    transform: scale(0.92);
}

/* ---- Stagger : délai progressif sur les enfants ---- */
.alias-stagger > .alias-animate:nth-child(1)  { transition-delay: 0s; }
.alias-stagger > .alias-animate:nth-child(2)  { transition-delay: 0.1s; }
.alias-stagger > .alias-animate:nth-child(3)  { transition-delay: 0.2s; }
.alias-stagger > .alias-animate:nth-child(4)  { transition-delay: 0.3s; }
.alias-stagger > .alias-animate:nth-child(5)  { transition-delay: 0.4s; }
.alias-stagger > .alias-animate:nth-child(6)  { transition-delay: 0.5s; }
.alias-stagger > .alias-animate:nth-child(7)  { transition-delay: 0.6s; }
.alias-stagger > .alias-animate:nth-child(8)  { transition-delay: 0.7s; }
.alias-stagger > .alias-animate:nth-child(9)  { transition-delay: 0.8s; }
.alias-stagger > .alias-animate:nth-child(10) { transition-delay: 0.9s; }
.alias-stagger > .alias-animate:nth-child(11) { transition-delay: 1.0s; }
.alias-stagger > .alias-animate:nth-child(12) { transition-delay: 1.1s; }

/* ---- Préférence utilisateur : pas d'animations ---- */
@media (prefers-reduced-motion: reduce) {
    .alias-animate {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
