/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideLeft {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideRight {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes plane-move {
    0%, 100% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    50% {
        transform: translate(-50%, -60%) rotate(5deg);
    }
}

@keyframes cloud-move {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(-100%);
    }
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
}

/* Animation Classes */
.animate-fade-in {
    animation: fadeIn 1s ease forwards;
}

.animate-slide-up {
    animation: slideUp 1s ease forwards;
}

.animate-slide-down {
    animation: slideDown 1s ease forwards;
}

.animate-slide-left {
    animation: slideLeft 1s ease forwards;
}

.animate-slide-right {
    animation: slideRight 1s ease forwards;
}

.animate-pulse {
    animation: pulse 2s infinite;
}

.animate-float {
    animation: float 3s ease-in-out infinite;
}

.delay-1 {
    animation-delay: 0.3s;
}

.delay-2 {
    animation-delay: 0.6s;
}

.delay-3 {
    animation-delay: 0.9s;
}

.delay-4 {
    animation-delay: 1.2s;
}

/* Scroll Animation */
[data-animate] {
    opacity: 0;
    transition: opacity 0.5s ease, transform 0.5s ease;
}

[data-animate="fade-in"] {
    transform: translateY(20px);
}

[data-animate="fade-in"].animate {
    opacity: 1;
    transform: translateY(0);
}

[data-animate="slide-up"] {
    transform: translateY(50px);
}

[data-animate="slide-up"].animate {
    opacity: 1;
    transform: translateY(0);
}

[data-animate="slide-left"] {
    transform: translateX(50px);
}

[data-animate="slide-left"].animate {
    opacity: 1;
    transform: translateX(0);
}

[data-animate="slide-right"] {
    transform: translateX(-50px);
}

[data-animate="slide-right"].animate {
    opacity: 1;
    transform: translateX(0);
}

[data-animate="zoom-in"] {
    transform: scale(0.9);
}

[data-animate="zoom-in"].animate {
    opacity: 1;
    transform: scale(1);
}