/* Inner-page images remain confined to their existing frames. Nothing is fixed
   to the viewport and no image is duplicated, faded into another, or reshaped. */
body[data-editorial-scroll="active"] [data-editorial-scroll-hero]{
 overflow:clip;
}
body[data-editorial-scroll="active"] [data-editorial-hero-visual]{
 scale:var(--editorial-hero-scale,1);
 transform-origin:50% 50%;
}
body[data-editorial-scroll="active"] [data-editorial-scroll-title]{
 translate:0 var(--editorial-title-y,0px);
 opacity:var(--editorial-title-opacity,1);
}
body[data-editorial-scroll="active"] [data-editorial-scroll-hero][data-editorial-in-view] [data-editorial-hero-visual]{
 will-change:scale;
}
body[data-editorial-scroll="active"] [data-editorial-scroll-hero][data-editorial-in-view] [data-editorial-scroll-title]{
 will-change:translate,opacity;
}

/* The selected frame owns its clip. Existing paper-motion may add its reveal
   attribute to this frame or its image: neither gets a second competing mask. */
body[data-editorial-scroll="active"] [data-editorial-scroll-photo]{
 overflow:clip;
 clip-path:inset(var(--editorial-photo-inset,0% 0% 0% 0%));
 opacity:1;
 transition:none;
}
body[data-editorial-scroll="active"] [data-editorial-scroll-photo] [data-motion-reveal="photo"]{
 clip-path:none;
 opacity:1;
 transition:none;
}
body[data-editorial-scroll="active"] [data-editorial-photo-visual]{
 scale:var(--editorial-photo-scale,1);
 transform-origin:50% 50%;
}
body[data-editorial-scroll="active"] [data-editorial-scroll-photo][data-editorial-in-view]{
 will-change:clip-path;
}
body[data-editorial-scroll="active"] [data-editorial-scroll-photo][data-editorial-in-view] [data-editorial-photo-visual]{
 will-change:scale;
}

/* Touch layouts keep the static photograph and its complete caption. The same
   fallback also applies immediately if the preference changes while scrolling. */
@media(max-width:800px),(prefers-reduced-motion:reduce){
 body[data-editorial-scroll] [data-editorial-hero-visual],
 body[data-editorial-scroll] [data-editorial-photo-visual]{scale:1;will-change:auto}
 body[data-editorial-scroll] [data-editorial-scroll-title]{translate:none;opacity:1;will-change:auto}
 body[data-editorial-scroll] [data-editorial-scroll-photo]{clip-path:none;will-change:auto}
}
@media print{
 body[data-editorial-scroll] [data-editorial-hero-visual],
 body[data-editorial-scroll] [data-editorial-photo-visual]{scale:1;will-change:auto}
 body[data-editorial-scroll] [data-editorial-scroll-title]{translate:none;opacity:1;will-change:auto}
 body[data-editorial-scroll] [data-editorial-scroll-photo]{clip-path:none;opacity:1;will-change:auto}
}
