/* --- Animations & Effects --- */

/* Initial Load Reveal */
.reveal-text {
    opacity: 0;
    transform: translateY(30px);
    animation: revealUp 1s var(--transition-slow) forwards;
}

/* Staggered Delay Helpers */
.delay-1 {
    animation-delay: 0.2s;
}

.delay-2 {
    animation-delay: 0.4s;
}

.delay-3 {
    animation-delay: 0.6s;
}

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

/* Scroll Fade In */
.fade-in-section {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform;
}

.fade-in-section.is-visible {
    opacity: 1;
    transform: none;
}

/* Navbar Scroll Effect */
.glass-nav {
    transition: background-color 0.3s ease, border-bottom 0.3s ease, padding 0.3s ease;
}

.glass-nav.scrolled {
    background: var(--nav-bg-scrolled);
    padding: var(--space-xs) var(--space-sm);
    box-shadow: 0 4px 30px var(--glass-shadow);
}

/* Hover Shine Effect */
.hover-shine {
    position: relative;
    overflow: hidden;
}

.hover-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0) 100%);
    transform: skewX(-20deg);
    transition: none;
}

.hover-shine:hover::after {
    animation: shine 0.75s ease;
}

@keyframes shine {
    100% {
        left: 200%;
    }
}

/* Slow Bobbing Float */
@keyframes slowFloat {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-12px);
    }

    100% {
        transform: translateY(0);
    }
}

/* Background Rotation */
@keyframes slowRotate {
    0% {
        transform: translateY(-50%) rotate(0deg);
    }

    100% {
        transform: translateY(-50%) rotate(360deg);
    }
}

/* Simple Fade In */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

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