/* ============================================================
   Animations — Scroll reveals + entrance sequences
   ============================================================ */

/* Utility: elements begin hidden, become visible via .is-visible */
.reveal-up {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 700ms var(--ease-out),
                transform 700ms var(--ease-out);
    will-change: opacity, transform;
}
.reveal-up.is-visible { opacity: 1; transform: translateY(0); }

.reveal-fade {
    opacity: 0;
    transition: opacity 800ms var(--ease-out);
}
.reveal-fade.is-visible { opacity: 1; }

.reveal-scale {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 700ms var(--ease-out),
                transform 700ms var(--ease-out);
}
.reveal-scale.is-visible { opacity: 1; transform: scale(1); }

/* Stagger children */
.stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 650ms var(--ease-out),
                transform 650ms var(--ease-out);
}
.stagger.is-visible > *          { opacity: 1; transform: translateY(0); }
.stagger.is-visible > *:nth-child(1) { transition-delay: 60ms; }
.stagger.is-visible > *:nth-child(2) { transition-delay: 140ms; }
.stagger.is-visible > *:nth-child(3) { transition-delay: 220ms; }
.stagger.is-visible > *:nth-child(4) { transition-delay: 300ms; }
.stagger.is-visible > *:nth-child(5) { transition-delay: 380ms; }
.stagger.is-visible > *:nth-child(6) { transition-delay: 460ms; }

/* Hero entrance sequence — fires on load */
.hero__sanskrit,
.hero__name,
.hero__profession,
.hero__divider,
.hero__headline,
.hero__subtext,
.hero__ctas {
    opacity: 0;
    transform: translateY(18px);
    animation: hero-in 900ms var(--ease-out) forwards;
}
.hero__sanskrit  { animation-delay: 150ms; }
.hero__name      { animation-delay: 350ms; }
.hero__profession{ animation-delay: 550ms; }
.hero__divider   { animation-delay: 700ms; transform: scaleX(0); transform-origin: center; }
.hero__headline  { animation-delay: 850ms; }
.hero__subtext   { animation-delay: 1000ms; }
.hero__ctas      { animation-delay: 1150ms; }

@keyframes hero-in {
    to { opacity: 1; transform: translateY(0); }
}
.hero__divider { animation-name: hero-line-in; }
@keyframes hero-line-in {
    to { opacity: 0.6; transform: scaleX(1); }
}

/* Reduced-motion — respect user preference */
@media (prefers-reduced-motion: reduce) {
    * {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    .reveal-up, .reveal-fade, .reveal-scale, .stagger > * {
        opacity: 1 !important;
        transform: none !important;
    }
    .hero__sanskrit, .hero__name, .hero__profession,
    .hero__divider, .hero__headline, .hero__subtext, .hero__ctas {
        opacity: 1 !important;
        transform: none !important;
    }
    .hero__divider { opacity: 0.6 !important; transform: scaleX(1) !important; }
    .process.is-visible .process__line::after { transform: scaleX(1) !important; transition: none !important; }
    .fab--whatsapp::before { animation: none !important; }
    .hero__scroll { animation: none !important; }
}
