    /* Custom Styles */
    body {
        scroll-behavior: smooth;
    }

    /* Animation Utilities */
    .reveal-up, .reveal-left, .reveal-right {
        opacity: 1;
        transform: translateY(0) translateX(0);
        transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
    }

    .reveal-up { transform: translateY(30px); }
    .reveal-left { transform: translateX(-30px); }
    .reveal-right { transform: translateX(30px); }

    /* Animation Active State (applied by JS) */
    .reveal-up.active, .reveal-left.active, .reveal-right.active {
        opacity: 1;
        transform: translateY(0) translateX(0);
    }

    /* Initial State for JS-gated animations */
    .reveal-up:not(.active) { opacity: 0; transform: translateY(30px); }
    .reveal-left:not(.active) { opacity: 0; transform: translateX(-30px); }
    .reveal-right:not(.active) { opacity: 0; transform: translateX(30px); }

    /* Reduced Motion */
    @media (prefers-reduced-motion: reduce) {
        .reveal-up, .reveal-left, .reveal-right {
            opacity: 1;
            transform: none;
            transition: none;
        }
    }
