/* TestD prototype motion layer (28 Sep 2026). Uses the individual `translate`, `scale` and `opacity`
   properties so it never overrides a design's own `transform`. */
html.mo{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}

/* Reveal: fade and a 26px rise, 0.8s, staggered (PepTribe US); photographs settle from a slight zoom (hims). */
.mo [data-rv="up"]{opacity:0;translate:0 26px;transition:opacity .8s cubic-bezier(.16,1,.3,1),translate .9s cubic-bezier(.16,1,.3,1)}
.mo [data-rv="img"]{opacity:0;scale:1.06;transition:opacity 1s cubic-bezier(.16,1,.3,1),scale 1.4s cubic-bezier(.16,1,.3,1)}
.mo [data-rv].rv-in{opacity:1;translate:0 0;scale:1}
.mo .px-img{will-change:translate}
.mo .px-img[data-rv="img"]{scale:1.14}
.mo .px-img[data-rv="img"].rv-in,.mo .px-img:not([data-rv]){scale:1.08}
.mo .mk,.mo .float,.mo [data-float]{will-change:translate}

/* Hover: cards lift, photographs inside them ease in (hims). */
.mo article,.mo .card,.mo .tile{transition:translate .5s cubic-bezier(.16,1,.3,1),opacity .8s cubic-bezier(.16,1,.3,1)}
.mo article.rv-in:hover,.mo .card.rv-in:hover,.mo .tile.rv-in:hover{translate:0 -4px}

.mo-calm [data-rv]{opacity:1!important;translate:none!important;scale:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.mo [data-rv]{opacity:1;translate:none;scale:none;transition:none}}
