/**
 * PXL Reveal Animations Pro
 * Pure CSS transitions, GPU-friendly
 */

:root {
    --reveal-duration: 0.8s;
    --reveal-delay: 0s;
    --reveal-timing: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal,
[data-reveal-animate],
[data-aos],
[data-pxl-animate] {
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: var(--reveal-duration);
    transition-delay: var(--reveal-delay);
    transition-timing-function: var(--reveal-timing);
    will-change: opacity, transform;
}

/* Visibility - Specificity ensures reveal wins over initial state, but allows hover override if specified later */
.reveal.reveal-visible,
[data-reveal-animate].reveal-visible,
[data-aos].reveal-visible,
[data-pxl-animate].reveal-visible {
    opacity: 1;
    transform: none;
}

/* Fade */
.reveal-fade,
[data-aos="fade"],
[data-pxl-animate="fade"] {
    opacity: 0;
}

.reveal-fade-up,
[data-aos="fade-up"],
[data-pxl-animate="fade-up"] {
    transform: translate3d(0, 50px, 0);
}

.reveal-fade-down,
[data-aos="fade-down"],
[data-pxl-animate="fade-down"] {
    transform: translate3d(0, -50px, 0);
}

.reveal-fade-left,
[data-aos="fade-left"],
[data-pxl-animate="fade-left"] {
    transform: translate3d(50px, 0, 0);
}

.reveal-fade-right,
[data-aos="fade-right"],
[data-pxl-animate="fade-right"] {
    transform: translate3d(-50px, 0, 0);
}

.reveal-fade-up-sm,
[data-aos="fade-up-sm"],
[data-pxl-animate="fade-up-sm"] {
    transform: translate3d(0, 15px, 0);
}

.reveal-fade-down-sm,
[data-aos="fade-down-sm"],
[data-pxl-animate="fade-down-sm"] {
    transform: translate3d(0, -15px, 0);
}

.reveal-fade-up-right,
[data-aos="fade-up-right"],
[data-pxl-animate="fade-up-right"] {
    transform: translate3d(-30px, 30px, 0);
}

.reveal-fade-up-left,
[data-aos="fade-up-left"],
[data-pxl-animate="fade-up-left"] {
    transform: translate3d(30px, 30px, 0);
}

.reveal-fade-down-right,
[data-aos="fade-down-right"],
[data-pxl-animate="fade-down-right"] {
    transform: translate3d(-30px, -30px, 0);
}

.reveal-fade-down-left,
[data-aos="fade-down-left"],
[data-pxl-animate="fade-down-left"] {
    transform: translate3d(30px, -30px, 0);
}

/* Zoom */
.reveal-zoom-in,
[data-aos="zoom-in"],
[data-pxl-animate="zoom-in"] {
    transform: scale(0.9);
}

.reveal-zoom-out,
[data-aos="zoom-out"],
[data-pxl-animate="zoom-out"] {
    transform: scale(1.1);
}

.reveal-zoom-in-up,
[data-aos="zoom-in-up"],
[data-pxl-animate="zoom-in-up"] {
    transform: scale(0.9) translateY(40px);
}

.reveal-zoom-in-down,
[data-aos="zoom-in-down"],
[data-pxl-animate="zoom-in-down"] {
    transform: scale(0.9) translateY(-40px);
}

.reveal-zoom-in-left,
[data-aos="zoom-in-left"],
[data-pxl-animate="zoom-in-left"] {
    transform: scale(1.1) translateX(40px);
}

.reveal-zoom-in-right,
[data-aos="zoom-in-right"],
[data-pxl-animate="zoom-in-right"] {
    transform: scale(1.1) translateX(-40px);
}

.reveal-zoom-out-up,
[data-aos="zoom-out-up"],
[data-pxl-animate="zoom-out-up"] {
    transform: scale(1.1) translateY(40px);
}

.reveal-zoom-out-down,
[data-aos="zoom-out-down"],
[data-pxl-animate="zoom-out-down"] {
    transform: scale(1.1) translateY(-40px);
}

.reveal-zoom-out-left,
[data-aos="zoom-out-left"],
[data-pxl-animate="zoom-out-left"] {
    transform: scale(1.1) translateX(-40px);
}

.reveal-zoom-out-right,
[data-aos="zoom-out-right"],
[data-pxl-animate="zoom-out-right"] {
    transform: scale(1.1) translateX(40px);
}

/* Flip */
.reveal-flip-up,
[data-aos="flip-up"],
[data-pxl-animate="flip-up"] {
    transform: perspective(2500px) rotateX(-100deg);
}

.reveal-flip-down,
[data-aos="flip-down"],
[data-pxl-animate="flip-down"] {
    transform: perspective(2500px) rotateX(100deg);
}

.reveal-flip-left,
[data-aos="flip-left"],
[data-pxl-animate="flip-left"] {
    transform: perspective(2500px) rotateY(-100deg);
}

.reveal-flip-right,
[data-aos="flip-right"],
[data-pxl-animate="flip-right"] {
    transform: perspective(2500px) rotateY(100deg);
}

/* Slide */
.reveal-slide-up,
[data-aos="slide-up"],
[data-pxl-animate="slide-up"] {
    transform: translateY(100%);
}

.reveal-slide-down,
[data-aos="slide-down"],
[data-pxl-animate="slide-down"] {
    transform: translateY(-100%);
}

.reveal-slide-left,
[data-aos="slide-left"],
[data-pxl-animate="slide-left"] {
    transform: translateX(100%);
}

.reveal-slide-right,
[data-aos="slide-right"],
[data-pxl-animate="slide-right"] {
    transform: translateX(-100%);
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {

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

/* Optional: Disable on mobile helper */
.pxl-reveal-disable-mobile .reveal,
.pxl-reveal-disable-mobile [data-reveal-animate],
.pxl-reveal-disable-mobile [data-aos],
.pxl-reveal-disable-mobile [data-pxl-animate] {
    @media (max-width: 767px) {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}