/* Motion: Ken Burns hero, fades, hovers. Honors prefers-reduced-motion. */

.hero-picture img,
.page-hero .hero-picture img {
  animation: kenburns 28s ease-out both;
  transform-origin: center 40%;
}
@keyframes kenburns {
  from { transform: scale(1.08); }
  to { transform: scale(1); }
}

.hero-content .eyebrow,
.hero-content h1,
.hero-content .lede,
.hero-content .button,
.page-hero .hero-content h1,
.page-hero .hero-content .lede {
  animation: rise .95s var(--ease, cubic-bezier(.22,.61,.36,1)) both;
}
.hero-content h1 { animation-delay: .12s; }
.hero-content .lede { animation-delay: .28s; }
.hero-content .button { animation-delay: .4s; }
.hero-bottom { animation: rise .9s .5s both; }
.page-hero .hero-content .lede { animation-delay: .15s; }

@keyframes rise {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .8s var(--ease, cubic-bezier(.22,.61,.36,1)), transform .8s var(--ease, cubic-bezier(.22,.61,.36,1));
}
.reveal.is-in { opacity: 1; transform: none; }

.nav-contact { transition: background .25s ease, color .25s ease, transform .25s ease; }
.nav-contact:hover { transform: translateY(-1px); }

.button { position: relative; overflow: hidden; }
.crit-card {
  transition: transform .4s var(--ease, cubic-bezier(.22,.61,.36,1)), box-shadow .4s ease;
}
.crit-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }

.panel li, .crit-card li {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .hero-picture img,
  .page-hero .hero-picture img,
  .hero-content .eyebrow,
  .hero-content h1,
  .hero-content .lede,
  .hero-content .button,
  .page-hero .hero-content h1,
  .page-hero .hero-content .lede,
  .hero-bottom {
    animation: none;
  }
  .reveal { opacity: 1; transform: none; }
  .panel li, .crit-card li { opacity: 1; transform: none; }
}
