/* ===================================================================
   MOTION — a quiet fade-and-rise as each section arrives

   The original is a Canva scroll site with no animation of its own,
   so nothing here moves anything out of place: elements settle onto
   their drawn coordinates and stay there. Anyone who has asked for
   less motion gets none at all.
   =================================================================== */

.js .stage .orn,
.js .stage picture,
.js .stage .seal,
.js .stage h1,
.js .stage h2,
.js .stage h3,
.js .stage p,
.js .stage .rsvp,
.js .stage dt,
.js .stage dd{
  opacity:0;
  transform:translateY(10px);
  transition:opacity .7s var(--ease-soft), transform .7s var(--ease-soft);
}

/* the mirrored ornaments carry their flip in a transform already, so
   they are faded in place rather than nudged */
.js .stage .fx {transform:scaleX(-1)}
.js .stage .fy {transform:scaleY(-1)}
.js .stage .fxy{transform:scale(-1,-1)}

.js .stage.in .orn,
.js .stage.in picture,
.js .stage.in .seal,
.js .stage.in h1,
.js .stage.in h2,
.js .stage.in h3,
.js .stage.in p,
.js .stage.in .rsvp,
.js .stage.in dt,
.js .stage.in dd{
  opacity:1;
  transform:none;
}
.js .stage.in .fx {transform:scaleX(-1)}
.js .stage.in .fy {transform:scaleY(-1)}
.js .stage.in .fxy{transform:scale(-1,-1)}

/* stagger, so the frame arrives before the words */
.js .stage.in .orn{transition-delay:.05s}
.js .stage.in h1,
.js .stage.in h2{transition-delay:.15s}
.js .stage.in h3,
.js .stage.in p,
.js .stage.in dt,
.js .stage.in dd,
.js .stage.in .rsvp{transition-delay:.25s}
.js .stage.in picture,
.js .stage.in .seal{transition-delay:.1s}

@media (prefers-reduced-motion:reduce){
  .js .stage *{
    opacity:1 !important;
    transition:none !important;
  }
  .js .stage .fx {transform:scaleX(-1) !important}
  .js .stage .fy {transform:scaleY(-1) !important}
  .js .stage .fxy{transform:scale(-1,-1) !important}
  .js .stage .orn:not(.fx):not(.fy):not(.fxy),
  .js .stage picture,.js .stage .seal,
  .js .stage h1,.js .stage h2,.js .stage h3,
  .js .stage p,.js .stage dt,.js .stage dd,
  .js .stage .rsvp{transform:none !important}
}
