/* Animations.css - Animation styles for Expo Registration Form */

/* Basic animation keyframes */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

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

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

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

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

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes checkmark {
    0% {
        stroke-dashoffset: 100;
        opacity: 0;
    }
    100% {
        stroke-dashoffset: 0;
        opacity: 1;
    }
}

@keyframes gradientMovement {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Animation utility classes */
.animate-fade-in {
    animation: fadeIn 0.8s ease;
}

.animate-fade-in-up {
    animation: fadeInUp 0.8s ease;
}

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

.animate-bounce {
    animation: bounce 1s ease-in-out;
}

.animate-shake {
    animation: shake 0.5s ease-in-out;
}

.animate-spin {
    animation: spin 1s linear infinite;
}

.animate-checkmark {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
    animation: checkmark 0.8s ease-in-out forwards;
}

.bg-gradient-animated {
    background: linear-gradient(135deg, #f0f5ff 0%, #ede9fe 50%, #e9f4ff 100%);
    background-size: 200% 200%;
    animation: gradientMovement 15s ease infinite;
}

/* Error animation */
.shake-error {
    animation: shake 0.4s ease-in-out;
}

/* Success animations */
.success-badge {
    animation: pulse 2s infinite;
}

/* Micro-interactions */
.micro-bounce {
    transition: transform 0.2s ease;
}

.micro-bounce:hover {
    transform: scale(1.05);
}