/* =============================================================
   BIG STAR PRODUCTIONS — ANIMATIONS
============================================================= */

/* Scroll-reveal base state: elements start hidden/offset,
   JS toggles .is-visible when they enter the viewport. */
[data-animate] {
    opacity: 0;
    transition: opacity .8s ease, transform .8s ease;
    will-change: opacity, transform;
}
[data-animate="fade-up"]    { transform: translateY(32px); }
[data-animate="fade-right"] { transform: translateX(-32px); }
[data-animate="fade-left"]  { transform: translateX(32px); }

[data-animate].is-visible {
    opacity: 1;
    transform: translate(0, 0);
}

/* Hero content entrance (plays on load, not on scroll) */
.hero-content[data-animate] {
    transition-delay: .15s;
}

/* Spotlight sweep drift — signature motion element */
.hero-sweep {
    animation: sweepDrift 14s ease-in-out infinite alternate;
}
@keyframes sweepDrift {
    0%   { transform: rotate(8deg) translateX(0); }
    100% { transform: rotate(8deg) translateX(60px); }
}

/* Counter pulse when animation starts */
.counter.is-counting {
    animation: counterPulse .6s ease;
}
@keyframes counterPulse {
    0%   { opacity: .4; }
    100% { opacity: 1; }
}

/* Back to top hover lift already handled by transform in style.css */

/* Reduced motion: respect user preference */
@media (prefers-reduced-motion: reduce) {
    [data-animate] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .hero-sweep { animation: none; }
    html { scroll-behavior: auto; }
    * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
