/* All Keyframe Animations */

@keyframes reactorSpin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes reactorPulse {
    0% {
        transform: scale(0.8);
        opacity: 0.8;
    }
    100% {
        transform: scale(1.2);
        opacity: 1;
    }
}

@keyframes textGlow {
    0%, 100% {
        filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.5));
    }
    50% {
        filter: drop-shadow(0 0 40px rgba(255, 255, 255, 0.9));
    }
}

@keyframes textGlowDark {
    0%, 100% {
        filter: drop-shadow(0 0 20px rgba(0, 243, 255, 0.6));
    }
    50% {
        filter: drop-shadow(0 0 40px rgba(188, 19, 254, 0.9));
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes dots {
    0%, 20% {
        content: '';
    }
    40% {
        content: '.';
    }
    60% {
        content: '..';
    }
    80%, 100% {
        content: '...';
    }
}

@keyframes pulseBackground {
    0% {
        transform: scale(1);
        opacity: 0.5;
    }
    100% {
        transform: scale(1.1);
        opacity: 0.7;
    }
}

@keyframes pulseBackgroundLight {
    0% {
        transform: scale(1) rotate(0deg);
        opacity: 0.7;
    }
    50% {
        transform: scale(1.05) rotate(2deg);
        opacity: 0.9;
    }
    100% {
        transform: scale(1.1) rotate(-2deg);
        opacity: 0.8;
    }
}

@keyframes riseAndFade {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 0.8;
    }
    100% {
        transform: translate(var(--tx), -100px) scale(0);
        opacity: 0;
    }
}

@keyframes floatProfile {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes orbit-rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes orbit-rotate-reverse {
    0% {
        transform: rotate(360deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

@keyframes counter-rotate {
    0% {
        transform: rotate(360deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

@keyframes counter-rotate-reverse {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes floatIcon {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

@keyframes scroll-testimonials {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@keyframes fadeInContent {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

@keyframes floatWA {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-5px);
    }
}

@keyframes pulseGlow {
    0%, 100% {
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3), 0 0 0 0 rgba(37, 211, 102, 0.7);
    }
    50% {
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3), 0 0 20px 8px rgba(37, 211, 102, 0);
    }
}

@keyframes pulseGlowHover {
    0%, 100% {
        box-shadow: 0 6px 15px rgba(37, 211, 102, 0.6), 0 0 30px rgba(37, 211, 102, 0.8);
    }
    50% {
        box-shadow: 0 6px 15px rgba(37, 211, 102, 0.6), 0 0 40px 10px rgba(37, 211, 102, 0.4);
    }
}

/* Fade In Animation */
.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

