/*
 * Nova prepared effect: clip-path-image-reveal (nova/clip-path-image-reveal in the effects
 * catalog). Ships with every site's child theme and is conditionally enqueued via functions.php —
 * only on a page whose post_content actually contains a .nova-clip-reveal hook.
 */
.nova-clip-reveal {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 700ms ease;
}

.nova-clip-reveal.is-nova-revealed {
    clip-path: inset(0 0 0 0);
}

/*
 * WordPress core's native image lightbox (core/image, "Expand on click") clones the clicked
 * image's figure classNames -- including this one -- into a new <figure> it creates on click and
 * attaches to document.body (see block-library/image/view.min.js's core/image-overlay router
 * region). clip-path-image-reveal.js only ever scans for .nova-clip-reveal targets once, on
 * DOMContentLoaded, so that clone is never observed and never gets .is-nova-revealed added --
 * leaving the enlarged image permanently clipped to zero visible area with no JS error and no
 * server-side trace. The lightbox is already fully visible the instant it opens, so a scroll
 * reveal is meaningless there anyway; unconditionally un-clip any instance of this effect rendered
 * inside the overlay.
 */
.wp-lightbox-overlay .nova-clip-reveal {
    clip-path: none;
    transition: none;
}

@media (prefers-reduced-motion: reduce) {
    .nova-clip-reveal {
        clip-path: none;
        transition: none;
    }
}
