/* ==========================================================================
   START OF HERO SECTION STYLES
   ========================================================================== */

/* Image focus and stabilizer */
@keyframes focusOn {
  to {
    filter: blur(0px) brightness(1);
    transform: scale(1);
  }
}

/* Horizontal text scan reveal */
@keyframes textReveal {
  to { clip-path: inset(0 0 0 0); }
}

/* Blue line expansion */
@keyframes lineExpand {
  to { width: 100px; }
}

/* Info items fade-in effect */
@keyframes fadeInUp {
  0% { opacity: 0; transform: translateY(20px); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0px); }
}

.reveal-item {
  opacity: 0;
  animation: fadeInUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}



/* ==========================================================================
   END OF HERO SECTION STYLES
   ========================================================================== */





/* --- START INFINITE CAROUSEL - FULL VERSION WITH IMAGE HOVER ZOOM --- */

@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- END INFINITE CAROUSEL - FULL VERSION WITH IMAGE HOVER ZOOM --- */






/* --- START OF INFO SECTION STYLES - REFACTORED FOR EXTERNAL ANIMATIONS --- */

/* Keyframe for content rising and fading in */
@keyframes contentAppear {
    from {
        opacity: 0;
        transform: translateY(50px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Keyframe for images sliding from the left */
@keyframes slideFromLeft {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Keyframe for images sliding from the right (for reversed rows) */
@keyframes slideFromRight {
    from {
        opacity: 0;
        transform: translateX(50px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* --- END OF INFO SECTION STYLES - REFACTORED FOR EXTERNAL ANIMATIONS --- */




/* --- START OF CONTACT STYLES --- */

/* Keyframes for a smooth reveal: slides up, fades in, and scales from 98% to 100% */
@keyframes contactReveal {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0); 
    }
}
/* Optional: Subtle pulse for the submit button on hover */
@keyframes buttonHoverPulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.03); }
    100% { transform: scale(1); }
}




/* --- END OF CONTACT STYLES --- */



