/* ==========================================================================
   10. AOS (Animate On Scroll) — minimal styles
   --------------------------------------------------------------------------
   These styles provide the scroll-reveal animations for the
   data-aos attributes used by the theme templates (fade-up, fade-left,
   fade-right, zoom-in, zoom-in-up).
   ========================================================================== */

/* Only hide elements after AOS has initialised them, so content is never
   invisible when JavaScript is unavailable or fails to load. */
[data-aos].aos-init:not(.aos-animate) {
    opacity: 0;
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

[data-aos].aos-animate {
    opacity: 1;
    transform: none !important;
}

[data-aos="fade-up"] {
    transform: translate3d(0, 40px, 0);
}

[data-aos="fade-left"] {
    transform: translate3d(-40px, 0, 0);
}

[data-aos="fade-right"] {
    transform: translate3d(40px, 0, 0);
}

[data-aos="zoom-in"],
[data-aos="zoom-in-up"] {
    transform: scale(0.6);
}

@media (prefers-reduced-motion: reduce) {
    [data-aos].aos-init:not(.aos-animate) {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}
