/* Animation styles - Optimized for performance */

/* Wavy text animation */
.wavy-text {
    display: inline-block;
}

.wavy-text .letter {
    display: inline-block;
    animation: wave 2s ease-in-out infinite;
    will-change: transform;
}

.wavy-text .letter:nth-child(1) { animation-delay: 0s; }
.wavy-text .letter:nth-child(2) { animation-delay: 0.1s; }
.wavy-text .letter:nth-child(3) { animation-delay: 0.2s; }
.wavy-text .letter:nth-child(4) { animation-delay: 0.3s; }
.wavy-text .letter:nth-child(5) { animation-delay: 0.4s; }
.wavy-text .letter:nth-child(6) { animation-delay: 0.5s; }

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



/* Scale text animation */
.scale-text {
    display: inline-block;
    animation: scaleAnimation 2s ease-in-out infinite;
}

@keyframes scaleAnimation {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

/* Fade in animation */
.fade-in {
    opacity: 0;
    animation: fadeIn 1s ease-in-out forwards;
    will-change: opacity, transform;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translate3d(0, 20px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Slide up and fade animation for rotating text */
.slide-fade-text {
    animation: slideFadeText 2.4s ease-in-out;
    will-change: opacity, transform;
}

@keyframes slideFadeText {
    0% {
        opacity: 0;
        transform: translate3d(0, 25px, 0);
    }
    25% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
    75% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(0, -25px, 0);
    }
}

/* Slide in from left */
.slide-in-left {
    opacity: 0;
    transform: translate3d(-50px, 0, 0);
    animation: slideInLeft 0.8s ease-out forwards;
    will-change: opacity, transform;
}

@keyframes slideInLeft {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Slide in from right */
.slide-in-right {
    opacity: 0;
    transform: translate3d(50px, 0, 0);
    animation: slideInRight 0.8s ease-out forwards;
    will-change: opacity, transform;
}

@keyframes slideInRight {
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

/* Bounce animation */
.bounce {
    animation: bounce 2s infinite;
    will-change: transform;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translate3d(0, 0, 0);
    }
    40% {
        transform: translate3d(0, -10px, 0);
    }
    60% {
        transform: translate3d(0, -5px, 0);
    }
}











/* Zoom in animation */
.zoom-in {
    opacity: 0;
    transform: scale3d(0.8, 0.8, 1);
    animation: zoomIn 0.8s ease-out forwards;
    will-change: opacity, transform;
}

@keyframes zoomIn {
    to {
        opacity: 1;
        transform: scale3d(1, 1, 1);
    }
}

/* Animation delays */
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }
.delay-5 { animation-delay: 0.5s; }