/* Scroll-triggered section reveals (shared site-wide; prefers-reduced-motion respected in JS + CSS) */
.animate-section .reveal-from-bottom {
    opacity: 0;
    transform: translateY(2rem);
    transition:
        opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.animate-section .reveal-from-left {
    opacity: 0;
    transform: translateX(-1.75rem);
    transition:
        opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.animate-section .reveal-from-right {
    opacity: 0;
    transform: translateX(1.75rem);
    transition:
        opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.animate-section .reveal-scale {
    opacity: 0;
    transform: scale(0.96);
    transition:
        opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
.animate-section.is-in-view .reveal-from-bottom,
.animate-section.is-in-view .reveal-from-left,
.animate-section.is-in-view .reveal-from-right {
    opacity: 1;
    transform: translate(0, 0);
}
.animate-section.is-in-view .reveal-scale {
    opacity: 1;
    transform: scale(1);
}
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(1) { transition-delay: 0.04s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(2) { transition-delay: 0.1s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(3) { transition-delay: 0.16s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(4) { transition-delay: 0.22s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(5) { transition-delay: 0.28s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(6) { transition-delay: 0.34s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(7) { transition-delay: 0.4s; }
.animate-section.is-in-view .stagger-grid > .reveal-from-bottom:nth-child(8) { transition-delay: 0.46s; }
.animate-section.is-in-view .hero-stagger > .reveal-from-bottom:nth-child(1) { transition-delay: 0s; }
.animate-section.is-in-view .hero-stagger > .reveal-from-bottom:nth-child(2) { transition-delay: 0.08s; }
.animate-section.is-in-view .hero-stagger > .reveal-from-bottom:nth-child(3) { transition-delay: 0.16s; }
.animate-section.is-in-view .hero-stagger > .reveal-from-bottom:nth-child(4) { transition-delay: 0.22s; }
.animate-section.is-in-view .reveal-hero-visual { transition-delay: 0.18s; }
@media (prefers-reduced-motion: reduce) {
    .animate-section .reveal-from-bottom,
    .animate-section .reveal-from-left,
    .animate-section .reveal-from-right,
    .animate-section .reveal-scale {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
    .animate-section.is-in-view .stagger-grid > .reveal-from-bottom,
    .animate-section.is-in-view .hero-stagger > .reveal-from-bottom {
        transition-delay: 0s !important;
    }
}
