/* Animation Styles */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInFromLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes slideInFromRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes bounceIn {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

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

/* Animation classes for elements with data-animate attribute */
[data-animate] {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease-out;
}

[data-animate].animate {
    opacity: 1;
    transform: translateY(0);
}

/* Specific animations for different sections */
.skills-section[data-animate].animate {
    animation: fadeIn 0.8s ease-out;
}

.projects-section[data-animate].animate {
    animation: slideInFromLeft 0.8s ease-out;
}

.contact-section[data-animate].animate {
    animation: slideInFromRight 0.8s ease-out;
}

/* Button hover animations */
.btn-primary:hover,
.btn-secondary:hover,
.whatsapp-btn:hover {
    animation: pulse 0.3s ease-in-out;
}

/* Form animations */
.contact-form {
    animation: fadeIn 0.6s ease-out 0.2s both;
}

.form-group {
    animation: fadeIn 0.6s ease-out;
}

.form-group:nth-child(1) { animation-delay: 0.1s; }
.form-group:nth-child(2) { animation-delay: 0.2s; }
.form-group:nth-child(3) { animation-delay: 0.3s; }
.form-group:nth-child(4) { animation-delay: 0.4s; }