/* ==========================================================================
   START OF HERO SECTION STYLES
   ========================================================================== */

/* Image: Fade from dark/blurred to bright original */
@keyframes cameraFocus {
  to { filter: blur(0px) brightness(1); transform: scale(1); }
}

/* Text: Horizontal scanning effect */
@keyframes textScan {
  0% { clip-path: inset(0 100% 0 0); opacity: 0; transform: translateX(-20px); }
  100% { clip-path: inset(0 0 0 0); opacity: 1; transform: translateX(0); }
}

/* Info elements: Slide up entry */
@keyframes itemUp {
  0% { opacity: 0; transform: translateY(30px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Accent line growth */
@keyframes lineExtend {
  to { width: 100px; }
}


/* ==========================================================================
   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 --- */



