/* =========================================
   KEYFRAME ANIMATIONS
   ========================================= */

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

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

@keyframes blobMove {
    0% { transform: scale(1) translate(0, 0); }
    33% { transform: scale(1.1) translate(30px, -50px); }
    66% { transform: scale(0.9) translate(-20px, 20px); }
    100% { transform: scale(1) translate(0, 0); }
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

/* =========================================
   APPLIED ANIMATIONS
   ========================================= */

.blob {
    animation: blobMove 15s infinite alternate ease-in-out;
}

.cursor-blink {
    animation: blink 1s step-end infinite;
}

.glass-card:hover {
    animation: float 2s ease-in-out infinite alternate;
}

/* Scroll Reveal */
.reveal {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease-out;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* Project Card Images */
.project-card:hover .project-img-container img {
    transform: scale(1.1);
}

/* Modal Animation */
.modal.active {
    animation: fadeIn 0.3s forwards;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
