/* Keyframe Animations */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideIn {
    from { 
        opacity: 0;
        transform: translateY(20px);
    }
    to { 
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInLeft {
    from { 
        opacity: 0;
        transform: translateX(-20px);
    }
    to { 
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes hoverGrow {
    from { transform: scale(1); }
    to { transform: scale(1.05); }
}

/* Animation Classes */
.fade-in {
    animation: fadeIn 1s ease forwards;
}

.slide-in {
    animation: slideIn 0.8s ease forwards;
}

.slide-in-left {
    animation: slideInLeft 0.8s ease forwards;
}

.pulse {
    animation: pulse 2s infinite;
}

.rotate {
    animation: rotate 10s linear infinite;
}

.hover-grow {
    transition: transform 0.3s ease;
}

.hover-grow:hover {
    animation: hoverGrow 0.3s ease forwards;
}

/* Delayed Animations */
.delay-1 {
    animation-delay: 0.2s;
}

.delay-2 {
    animation-delay: 0.4s;
}

.delay-3 {
    animation-delay: 0.6s;
}

.delay-4 {
    animation-delay: 0.8s;
}

/* Scroll Animations */
[data-animate] {
    opacity: 0;
    transition: all 0.8s ease;
}

[data-animate="fade-up"] {
    transform: translateY(20px);
}

[data-animate="fade-down"] {
    transform: translateY(-20px);
}

[data-animate="fade-left"] {
    transform: translateX(-20px);
}

[data-animate="fade-right"] {
    transform: translateX(20px);
}

[data-animate].animated {
    opacity: 1;
    transform: translate(0);
}