/* Custom Animations */
@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes float {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
    100% {
        transform: translateY(0);
    }
}

@keyframes bounceLeft {
    0%, 100% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(-10px);
    }
}

@keyframes bounceRight {
    0%, 100% {
        transform: translateX(0);
    }
    50% {
        transform: translateX(10px);
    }
}

.animate-pulse {
    animation: pulse 2s infinite;
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

.animate-bounce-left {
    animation: bounceLeft 3s infinite;
}

.animate-bounce-right {
    animation: bounceRight 3s infinite;
}

/* Delay Classes */
.animate-delay-1 {
    animation-delay: 0.5s;
}

.animate-delay-2 {
    animation-delay: 1s;
}

.animate-delay-3 {
    animation-delay: 1.5s;
}

.animate-delay-4 {
    animation-delay: 2s;
}

/* Duration Classes */
.animate-duration-1 {
    animation-duration: 0.5s;
}

.animate-duration-2 {
    animation-duration: 1s;
}

.animate-duration-3 {
    animation-duration: 1.5s;
}

.animate-duration-4 {
    animation-duration: 2s;
}

/* Fade In Up */
.animate-fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 1s forwards;
}

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