/* Motion, next layer — home + brands only. Gated on html.has-motion so a JS
   failure can never leave the page hidden. */
@media (prefers-reduced-motion: no-preference){
  /* --- page arrival / departure --- */
  html.has-motion body{animation:pg-in .46s cubic-bezier(.22,.61,.21,1) both}
  @keyframes pg-in{from{opacity:0}to{opacity:1}}
  html.has-motion.pg-out body{opacity:0;transition:opacity .2s ease}

  /* --- hero headline: lines rise out of a clipped baseline --- */
  html.has-motion .ln{display:block;overflow:hidden}
  html.has-motion .ln > span{display:block;transform:translateY(102%);transition:transform 1.05s cubic-bezier(.19,.72,.16,1);transition-delay:var(--ln-d,0ms)}
  html.has-motion .ln.in > span{transform:none}

  /* --- plate parallax: the photo drifts a little slower than the page --- */
  html.has-motion .frame.has-photo img.sup{transform:scale(var(--pz,1.035)) translate3d(0,var(--py,0px),0);transition:transform .5s ease,filter .5s ease;will-change:transform}
  html.has-motion .maison-card:hover .frame.has-photo img.sup,html.has-motion .pillar:hover .frame.has-photo img.sup{--pz:1.07}
  html.has-motion [data-plate="inset"] img.sup{transform:none!important}
}
