/* ==========================================================================
   ZETA ANIMATIONS — Lightweight scroll-reveal (replaces AOS)
   ========================================================================== */

[data-zeta-animate] {
    opacity: 0;
    transition: opacity 0.7s var(--zeta-ease), transform 0.7s var(--zeta-ease);
    will-change: transform, opacity;
}

[data-zeta-animate="fade-up"] { transform: translateY(24px); }
[data-zeta-animate="fade-down"] { transform: translateY(-24px); }
[data-zeta-animate="fade-left"] { transform: translateX(24px); }
[data-zeta-animate="fade-right"] { transform: translateX(-24px); }
[data-zeta-animate="zoom-in"] { transform: scale(0.92); }
[data-zeta-animate="fade"] { transform: none; }

[data-zeta-animate].zeta-in-view {
    opacity: 1;
    transform: translate(0) scale(1);
}

@keyframes zetaSlideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes zetaSpin {
    to { transform: rotate(360deg); }
}

.zeta-spin {
    animation: zetaSpin 1s linear infinite;
}

@keyframes zetaPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.zeta-pulse {
    animation: zetaPulse 1.8s var(--zeta-ease) infinite;
}