/**
 * Scroll-scrub extension for AOS.
 *
 * The transform and opacity are updated by aos-scroll.js in direct proportion
 * to the element's position in the viewport. AOS keeps handling normal
 * elements that do not have the data-aos-scrub attribute.
 */
[data-aos][data-aos-scrub] {
    transition: none !important;
    will-change: transform, opacity;
}

[data-aos][data-aos-scrub].aos-animate {
    transition: none !important;
}

/* A restrained motion distance keeps regular reveals calm and consistent. */
[data-aos="fade-up"] {
    transform: translate3d(0, 40px, 0);
}

[data-aos="fade-down"] {
    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="fade-up"].aos-animate,
[data-aos="fade-down"].aos-animate,
[data-aos="fade-left"].aos-animate,
[data-aos="fade-right"].aos-animate {
    transform: translate3d(0, 0, 0);
}

@media (max-width: 767.98px) {
    [data-aos="fade-up"],
    [data-aos="fade-left"],
    [data-aos="fade-right"] {
        transform: translate3d(0, 22px, 0);
    }

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

    [data-aos="fade-up"].aos-animate,
    [data-aos="fade-down"].aos-animate,
    [data-aos="fade-left"].aos-animate,
    [data-aos="fade-right"].aos-animate {
        transform: translate3d(0, 0, 0);
    }
}

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