/* --- ANIMATIONS SYSTEM --- */

/* Scroll Reveal Classes (controlled by IntersectionObserver in JS) */
.reveal {
    opacity: 0;
    transform: translateY(30px) scale(0.98);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

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

/* Staggered Delay Utilities */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Floating Decorative Shapes Keyframe */
@keyframes float {
    0% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(180deg);
    }
    100% {
        transform: translateY(0) rotate(360deg);
    }
}

.floating-shape {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.15;
    z-index: 1;
    pointer-events: none;
    animation: float 20s infinite linear;
}

[data-theme="dark"] .floating-shape {
    opacity: 0.25;
}

.shape-1 {
    width: 300px;
    height: 300px;
    background: var(--primary);
    top: 10%;
    left: 5%;
    animation-duration: 25s;
}

.shape-2 {
    width: 250px;
    height: 250px;
    background: var(--secondary);
    bottom: 15%;
    right: 5%;
    animation-duration: 18s;
    animation-direction: reverse;
}

.shape-3 {
    width: 200px;
    height: 200px;
    background: #FF007A;
    bottom: 5%;
    left: 30%;
    animation-duration: 22s;
}

/* Bounce scroll indicator */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-10px);
    }
    60% {
        transform: translateY(-5px);
    }
}

.scroll-indicator {
    animation: bounce 2s infinite;
}

/* Shiny hover keyframe */
@keyframes shine {
    100% {
        left: 125%;
    }
}

/* Pulsing background glow */
@keyframes pulseGlow {
    0% {
        box-shadow: 0 4px 20px rgba(10, 91, 255, 0.15);
    }
    50% {
        box-shadow: 0 4px 30px rgba(10, 91, 255, 0.35);
    }
    100% {
        box-shadow: 0 4px 20px rgba(10, 91, 255, 0.15);
    }
}

.pulse-primary {
    animation: pulseGlow 3s infinite;
}

/* WhatsApp float pulse glow */
@keyframes whatsappPulse {
    0% {
        box-shadow: 0 4px 20px rgba(37, 211, 102, 0.3);
    }
    50% {
        box-shadow: 0 4px 30px rgba(37, 211, 102, 0.6), 0 0 15px rgba(37, 211, 102, 0.4);
    }
    100% {
        box-shadow: 0 4px 20px rgba(37, 211, 102, 0.3);
    }
}

.pulse-whatsapp {
    animation: whatsappPulse 2.5s infinite ease-in-out;
}

/* CEO Image Glow Pulse */
@keyframes ceoGlow {
    0% {
        box-shadow: 0 0 20px rgba(10, 91, 255, 0.3);
        border-color: rgba(10, 91, 255, 0.5);
    }
    50% {
        box-shadow: 0 0 35px rgba(10, 91, 255, 0.6), 0 0 15px rgba(255, 138, 0, 0.3);
        border-color: var(--secondary);
    }
    100% {
        box-shadow: 0 0 20px rgba(10, 91, 255, 0.3);
        border-color: rgba(10, 91, 255, 0.5);
    }
}

.ceo-glow-effect {
    animation: ceoGlow 4s infinite ease-in-out;
}

/* Extra animation delays for larger content lists */
.delay-600 { transition-delay: 600ms; }
.delay-700 { transition-delay: 700ms; }
.delay-800 { transition-delay: 800ms; }
.delay-900 { transition-delay: 900ms; }
.delay-1000 { transition-delay: 1000ms; }

