/*
 * Always-visible defaults for animation classes.
 *
 * Decision (2026-04-28): GSAP entrance animations were causing
 * visible FOUC/flashing on multiple pages — content rendering at
 * opacity:0 for hundreds of milliseconds before ScrollTrigger fired.
 * The GSAP `immediateRender: false` flag is supposed to prevent this
 * but doesn't reliably work with ScrollTrigger.
 *
 * Fix: force opacity:1 and transform:none with !important so even if
 * GSAP runs and sets inline styles, the CSS wins. The companion
 * change in custom-css-js/283.js neutralises the entrance code so it's
 * a no-op — but this CSS is the load-bearing safety net.
 *
 * NOT covered here: .scrolling / .scrolling-slow parallax (separate
 * file 280.js, pure scroll-translate, no FOUC issue).
 */

/* Entrance-animation classes — force final-state visible. */
.fadein,
.fadein-up,
.fadein-up2,
.card-animation,
[class*="fadein-"][class*="delay-"] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* Respect users who explicitly disable motion. */
@media (prefers-reduced-motion: reduce) {
    .fadein,
    .fadein-up,
    .fadein-up2,
    .scrolling,
    .scrolling-slow,
    .card-animation,
    [class*="fadein-"][class*="delay-"] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
    }
}
