/* --- 1. CINEMATIC ENTRANCES --- */

/* --- 1. CINEMATIC ENTRANCES (Fixed: Removed Letter Spacing to stop jumping) --- */

/* Text starts blurry and spread out, then snaps to focus */
@keyframes cinematic-blur-in {
    0% {
        opacity: 0;
        filter: blur(20px);
        transform: scale(1.1) translateY(20px);
        /* REMOVED: letter-spacing: 10px; <--- This line caused the jump */
    }
    100% {
        opacity: 1;
        filter: blur(0);
        transform: scale(1) translateY(0);
        /* REMOVED: letter-spacing: normal; */
    }
}

/* Subtitle expands slowly */
@keyframes letter-expand {
    0% { opacity: 0; letter-spacing: 0px; }
    100% { opacity: 1; letter-spacing: 4px; }
}

/* --- 2. CONTINUOUS LUXURY EFFECTS --- */

/* A beam of light passing over text/buttons */
@keyframes gold-shimmer {
    0% { background-position: -200%; }
    100% { background-position: 200%; }
}

/* Complex Floating (Sine Wave) */
@keyframes float-complex {
    0% { transform: translateY(0) rotate(0deg); }
    33% { transform: translateY(-10px) rotate(1deg); }
    66% { transform: translateY(5px) rotate(-1deg); }
    100% { transform: translateY(0) rotate(0deg); }
}

/* Pulse with a Gold Ring Ripple */
@keyframes ripple-gold {
    0% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0.4); }
    70% { box-shadow: 0 0 0 20px rgba(255, 215, 0, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 215, 0, 0); }
}

/* --- 3. SCROLL REVEAL STATES --- */
.reveal-on-scroll {
    opacity: 0;
    transition: all 1.2s cubic-bezier(0.25, 1, 0.5, 1); /* smooth ease-out */
    will-change: transform, opacity, filter;
}

.reveal-up { transform: translateY(60px); filter: blur(5px); }
.reveal-left { transform: translateX(-60px); filter: blur(5px); }
.reveal-right { transform: translateX(60px); filter: blur(5px); }

/* Visible State */
.is-visible {
    opacity: 1 !important;
    /* Changed to 'none' and removed !important so Float Animation can work */
    transform: none; 
    filter: blur(0) !important;
}

/* Staggered Delays */
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }