@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: fadeInUp 1s ease-out;
}

@keyframes blob {
    0% {
        transform: translate(0px, 0px) scale(1);
    }

    33% {
        transform: translate(30px, -50px) scale(1.1);
    }

    66% {
        transform: translate(-20px, 20px) scale(0.9);
    }

    100% {
        transform: translate(0px, 0px) scale(1);
    }
}

.animate-blob {
    animation: blob 8s infinite;
}

.animation-delay-2000 {
    animation-delay: 2s;
}

.step-transition {
    transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.step-enter {
    opacity: 0;
    transform: translateX(50px) scale(0.95);
}

.step-exit {
    opacity: 0;
    transform: translateX(-50px) scale(0.95);
    position: absolute;
}

.pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.7;
    }
}

.step-circle {
    transition: all 0.3s ease-in-out;
}

.step-circle-active {
    transform: scale(1.2);
    box-shadow: 0 0 15px rgba(34, 197, 94, 0.5);
}
