/* fx-clip-reveal: a picture wipes open (and settles from a slight zoom) when it scrolls into view.
   The clip sits on the <img>, not the observed box (Chromium's IntersectionObserver honours the target's own clip-path). */
[data-fx~="clip-reveal"]{overflow:hidden}
.fx-js [data-fx~="clip-reveal"] img{clip-path:inset(0 0 100% 0);transform:scale(1.12);transition:clip-path var(--cr-dur,1s) var(--cr-ease,cubic-bezier(.2,.7,.1,1)) var(--cr-delay,0s),transform calc(var(--cr-dur,1s) * 1.5) var(--cr-ease,cubic-bezier(.2,.7,.1,1)) var(--cr-delay,0s)}
.fx-js [data-fx~="clip-reveal"][data-dir="left"] img{clip-path:inset(0 100% 0 0)}
.fx-js [data-fx~="clip-reveal"][data-dir="right"] img{clip-path:inset(0 0 0 100%)}
.fx-js [data-fx~="clip-reveal"][data-dir="center"] img{clip-path:inset(18% 18% 18% 18% round 8px)}
.fx-js [data-fx~="clip-reveal"].cr-in img{clip-path:inset(0 0 0 0);transform:none}
@media (prefers-reduced-motion:reduce){.fx-js [data-fx~="clip-reveal"] img{clip-path:none!important;transform:none!important;transition:none!important}}
