/**
 * Sitewide scroll-reveal for text + the footer, plus a one-time header
 * entrance — loaded on every page. Uses its own class names (sr-reveal /
 * sr-revealed) so it never touches or conflicts with the home page's
 * dedicated scroll-reveal.css/js system.
 */

.sr-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

.sr-reveal.sr-revealed {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .sr-reveal {
        transition: none;
        opacity: 1;
        transform: none;
    }
}

/* ---------- Header entrance (plays once on load, every page) ---------- */
/* Uses `animation`, not `transition`, so it can never collide with the
   header's existing background/shadow transition on scroll (.scrolled). */

@keyframes srHeaderIn {
    from {
        opacity: 0;
        transform: translateY(-16px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.cts-header {
    animation: srHeaderIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@media (prefers-reduced-motion: reduce) {
    .cts-header {
        animation: none;
    }
}
