/* Quiet, progressive page reveals. Content remains visible if JavaScript is unavailable. */
html.reveal-ready .hero__inner > *,
html.reveal-ready .hero__body > *,
html.reveal-ready .page-hero__body > *,
html.reveal-ready .subhero__body > * {
  opacity: 0;
  transform: translateY(24px);
}

html.reveal-ready body.home-page section .overline,
html.reveal-ready body.home-page section h2,
html.reveal-ready body.home-page section h3,
html.reveal-ready body.home-page section h4,
html.reveal-ready body.home-page section p,
html.reveal-ready body.home-page section blockquote,
html.reveal-ready body.home-page section cite,
html.reveal-ready body.home-page section .btn {
  opacity: 0;
  transform: translateY(24px);
}

html.reveal-ready body.mission-page section .overline,
html.reveal-ready body.mission-page section h2,
html.reveal-ready body.mission-page section h3,
html.reveal-ready body.mission-page section p,
html.reveal-ready body.mission-page section blockquote,
html.reveal-ready body.mission-page section cite,
html.reveal-ready body.mission-page section .btn {
  opacity: 0;
  transform: translateY(24px);
}

html.reveal-ready body section :is(.eyebrow,.overline,h2,h3,h4,p,blockquote,cite,.btn) {
  opacity: 0;
  transform: translateY(24px);
}

html.reveal-ready .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.05s cubic-bezier(.22,.61,.36,1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

html.reveal-ready .reveal.reveal--left {
  transform: translateX(-24px);
}

html.reveal-ready .reveal.reveal--right {
  transform: translateX(24px);
}

html.reveal-ready .reveal.is-visible {
  opacity: 1;
  transform: translate(0,0);
}

/* Images settle gently into place as their section appears. */
html.reveal-ready .reveal img {
  transform: scale(1.035);
  transition: transform 1.5s cubic-bezier(.22,.61,.36,1);
}

html.reveal-ready .reveal.is-visible img {
  transform: scale(1);
}

/* Keep hero imagery fully visible; only its text content is animated. */
html.reveal-ready .hero.hero--animated,
html.reveal-ready .page-hero.hero--animated,
html.reveal-ready .subhero.hero--animated {
  opacity: 1;
}

@media (max-width: 760px) {
  .hero,
  .page-hero,
  .subhero {
    min-height: 100svh !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-ready .hero__inner > *,
  html.reveal-ready .hero__body > *,
  html.reveal-ready .page-hero__body > *,
  html.reveal-ready .subhero__body > * {
    opacity: 1;
    transform: none;
  }

  html.reveal-ready body.home-page section .overline,
  html.reveal-ready body.home-page section h2,
  html.reveal-ready body.home-page section h3,
  html.reveal-ready body.home-page section h4,
  html.reveal-ready body.home-page section p,
  html.reveal-ready body.home-page section blockquote,
  html.reveal-ready body.home-page section cite,
  html.reveal-ready body.home-page section .btn {
    opacity: 1;
    transform: none;
  }

  html.reveal-ready body.mission-page section .overline,
  html.reveal-ready body.mission-page section h2,
  html.reveal-ready body.mission-page section h3,
  html.reveal-ready body.mission-page section p,
  html.reveal-ready body.mission-page section blockquote,
  html.reveal-ready body.mission-page section cite,
  html.reveal-ready body.mission-page section .btn {
    opacity: 1;
    transform: none;
  }

  html.reveal-ready body section :is(.eyebrow,.overline,h2,h3,h4,p,blockquote,cite,.btn) {
    opacity: 1;
    transform: none;
  }

  html.reveal-ready .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  html.reveal-ready .reveal img {
    transform: none;
    transition: none;
  }

  html.reveal-ready .hero.hero--animated,
  html.reveal-ready .page-hero.hero--animated,
  html.reveal-ready .subhero.hero--animated {
    animation: none;
  }
}
