/* ---------- REDUCED MOTION -------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    transition-delay:0s!important;
  }
  [data-reveal],[data-reveal].is-in,
  .rv-stagger > *,.rv-cascade > *,.fig__reveal,.about__frame{
    opacity:1!important;clip-path:none!important;
  }
  [data-reveal],[data-reveal].is-in,
  .rv-stagger > *,.rv-cascade > *,.fig__reveal{transform:none!important}
  /* no hover zoom and no auto-playing previews */
  .phone:hover{transform:none!important}
  .reel.is-fresh{animation:none!important}
  .about__frame{transform:rotate(var(--tilt))!important}
  .patch__in[data-reveal].is-in{transform:rotate(var(--r,0deg))!important}
  .fig__reveal img{transform:none!important}
  .line > span{transform:none!important}
  .patch{transform:none!important}
  /* the -50% is what undoes `left:50%` on the absolutely-centred cue; below
     1000px the cue is an in-flow grid row instead and must not be shifted */
  .hero__scroll{animation:none!important;transform:translateX(-50%)!important}
  @media (max-width:999px){
    .hero__scroll{transform:none!important}
  }
  /* The bar hides on scroll-down to give the screen back. With the blanket
     transition kill above, that stops being a slide and becomes a hard pop in
     and out on every change of direction — the exact jumpiness this media
     query exists to opt out of. It stays put instead. Viewport-agnostic on
     purpose: the auto-hide is a both-widths rule, so its opt-out is too. */
  .nav.is-hidden{transform:none!important}
  .hero__petal,.work__petal{animation:none!important;transform:rotate(var(--r,0deg))!important}
  /* no scroll-driven stage: the intro becomes a plain full-height section
     with every sticker already at rest */
  .intro-wrap{height:auto!important}
  .intro{position:relative!important;top:auto!important}
  .js .intro .strip-h{transform:none!important}
  .js .intro__fly{opacity:1!important;will-change:auto!important}
  .intro__fly{transform:rotate(var(--r,0deg))!important}
  .js .intro__cta,.js .intro__more{opacity:1!important;transform:none!important;will-change:auto!important}
  .intro__cam{transform:translate(-50%,-50%)!important}
  .intro__flash{display:none!important}
}
@media (prefers-reduced-motion:reduce) and (max-width:999px){
  .intro__fly{transform:rotate(var(--mr,var(--r,0deg)))!important}
}
