
/* Content has no hidden/pending state. Native animations enhance a complete page. */
@media (prefers-reduced-motion:no-preference) {
  /* Start with first paint, not a late script that resets already-visible text. */
  .hero .herotext, .about-intro {
    animation:m42-opening 850ms cubic-bezier(.22,.61,.36,1) both;
  }
  .hero .photo { animation:m42-photo-settle 1400ms ease-out both; }
  @keyframes m42-opening { from { opacity:.65; translate:0 16px; } to { opacity:1; translate:0 0; } }
  @keyframes m42-photo-settle { from { scale:1.025; } to { scale:1; } }
}
@media (prefers-reduced-motion:no-preference) and (max-width:700px) {
  .hero .herotext, .about-intro { animation-duration:700ms; }
  @keyframes m42-opening { from { opacity:.65; translate:0 10px; } to { opacity:1; translate:0 0; } }
}
@media (prefers-reduced-motion:no-preference) and (hover:hover) {
  .hero .btn, .closing .btn, .about-invitation .btn {
    transition:background-color 180ms ease, box-shadow 220ms ease, translate 220ms ease;
  }
  .hero .btn:hover, .closing .btn:hover, .about-invitation .btn:hover {
    translate:0 -2px;
    box-shadow:0 5px 16px rgb(0 0 0 / 12%);
  }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
}

