/* motion.css — Entrance motion (only once scripts confirm they can run it) and reduced-motion fallbacks. */

/* ---------- Motion (only once scripts confirm they can run it) ---------- */
.mw { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .12em; margin-bottom: -.12em; }
.mw__i { display: inline-block; }
.motion .rise .mw__i { transform: translateY(110%); transition: transform 1.15s var(--ease-out) calc(var(--d, 0s) + var(--wd, 0s)); }
.motion .rise.is-in .mw__i { transform: none; }
.motion .fade { opacity: 0; transform: translateY(18px); transition: opacity 1s var(--ease-out) var(--d, 0s), transform 1.1s var(--ease-out) var(--d, 0s); }
.motion .fade.is-in { opacity: 1; transform: none; }
.motion .wipe { clip-path: inset(0 0 100% 0); transition: clip-path 1.35s var(--ease-out) var(--d, 0s); }
.motion .wipe.is-in { clip-path: inset(0 0 0 0); }
.motion .wipe > img { scale: calc(var(--zs, 1) * 1.14); transition: scale 1.9s var(--ease-out) var(--d, 0s); }
.motion .wipe.is-in > img { scale: var(--zs, 1); transition: scale 1.2s var(--ease-out); }
.motion .draw { transform: scaleX(0); transform-origin: left; transition: transform 1.4s var(--ease-out) var(--d, 0s); }
.motion .draw.is-in { transform: none; }
.motion .rv-reset, .motion .rv-reset .mw__i { transition: none !important; }

@media (prefers-reduced-motion: reduce) {
  /* gentle mode: things still fade in and films still play; nothing slides, wipes, zooms or drifts */
  .motion .rise .mw__i { transform: none !important; }
  .motion .rise { opacity: 0; transition: opacity .8s var(--d, 0s); }
  .motion .rise.is-in { opacity: 1; }
  .motion .fade { transform: none !important; }
  .motion .wipe { clip-path: none !important; opacity: 0; transition: opacity .8s var(--d, 0s); }
  .motion .wipe.is-in { opacity: 1; }
  .motion .wipe > img, .story__media > img, .wtile__media > img { scale: 1 !important; }
  .motion .draw { transform: none !important; }
  .reel2__frame { clip-path: none !important; }
  .reel2__video { transform: none !important; }
  .story__media { clip-path: none !important; opacity: 0; transition: opacity .6s !important; }
  .story__media.is-active, .story__media.is-leaving { opacity: 1; }
  .btn { translate: none !important; }
  .menu__title, .wrow__title { transform: none !important; }
  .page-head__media, .art > img { transform: none !important; }
  .svc-art img { scale: 1 !important; }
}
