/* Prevent layout/visual flash before JS runs: target only primary Elementor Image widgets */
.elementor-widget-image:not(.elementor-widget-image-carousel .elementor-widget-image):not(.elementor-widget-media-carousel .elementor-widget-image):not(.elementor-widget-gallery .elementor-widget-image) {
    opacity: 0;
    clip-path: inset(100% 0 0 0);
    transform: translateY(30px);
    will-change: transform, clip-path, opacity;
}

/* Class applied once initialized to prevent flash for those already in viewport or loaded */
.reveal-init-2f4be74e .elementor-widget-image:not(.elementor-widget-image-carousel .elementor-widget-image):not(.elementor-widget-media-carousel .elementor-widget-image):not(.elementor-widget-gallery .elementor-widget-image) {
    transition: clip-path 1.4s cubic-bezier(0.16, 1, 0.3, 1),
                transform 1.4s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* The revealed state */
.elementor-widget-image.reveal-active-2f4be74e {
    opacity: 1 !important;
    clip-path: inset(0% 0 0 0) !important;
    transform: translateY(0) !important;
}

/* Subtle mobile performance tuning */
@media (max-width: 767px) {
    .elementor-widget-image:not(.elementor-widget-image-carousel .elementor-widget-image):not(.elementor-widget-media-carousel .elementor-widget-image):not(.elementor-widget-gallery .elementor-widget-image) {
        transform: translateY(15px); /* Shorter motion on mobile */
    }
    .reveal-init-2f4be74e .elementor-widget-image:not(.elementor-widget-image-carousel .elementor-widget-image):not(.elementor-widget-media-carousel .elementor-widget-image):not(.elementor-widget-gallery .elementor-widget-image) {
        transition: clip-path 1.2s cubic-bezier(0.16, 1, 0.3, 1),
                    transform 1.2s cubic-bezier(0.16, 1, 0.3, 1),
                    opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    }
}
