/* Entrance motion matching the React site. Hidden until motion.js marks .is-shown. */

html.th-motion :is(
  .hero-kicker,
  .hero h1,
  .hero-lead,
  .hero-actions,
  .stat-item,
  .hero-art-in,
  .about-hero-copy > .about-kicker,
  .about-hero h1,
  .about-hero-lead,
  .about-hero-actions,
  .about-hero-art,
  .svc-hero-copy > .about-kicker,
  .svc-hero h1,
  .svc-hero-lead,
  .svc-hero-actions,
  .svc-stats > div,
  .svc-hero-art,
  .work-hero .about-kicker,
  .work-hero h1,
  .work-lead,
  .work-filters,
  .work-hero-art,
  .ct-hero .about-kicker,
  .ct-hero h1,
  .ct-lead,
  .ct-points > li,
  .ct-hero-art,
  .ins-hero .ins-kicker,
  .ins-hero h1,
  .ins-hero-lead,
  .ins-explore,
  .ins-hero-art,
  .legal-hero .legal-kicker,
  .legal-hero h1,
  .legal-hero-grid > div > p:not(.eyebrow),
  .legal-hero-art,
  .not-found .eyebrow,
  .not-found h1,
  .not-found .wrap > p:not(.eyebrow),
  .not-found .btn,
  .foundation-grid > div:first-child,
  .pillar,
  .services-head,
  .service,
  .page-home .work-grid > div:first-child,
  .project,
  .why-grid > div:first-child,
  .benefit-row > article,
  .cta-banner,
  .about-split > div:first-child,
  .about-card,
  .timeline li,
  .process-step,
  .reason-row > article,
  .about-people-copy,
  .about-people-art,
  .svc-intro,
  .svc-eco,
  .svc-engage > article,
  .svc-goals > article,
  .svc-results > article,
  .work-feature,
  .work-feature-side li,
  .work-head,
  .work-card,
  .work-split > div:first-child,
  .work-industries > article,
  .work-outcomes li,
  .work-quote,
  .ct-card,
  .ct-head,
  .ct-steps > article,
  .ct-block[aria-labelledby="help-title"] > .wrap > :is(.about-kicker, h2, .ct-sub),
  .ct-help > a,
  .ct-location > div,
  .ct-map,
  .ct-faq > article,
  .ins-split-head,
  .ins-feature,
  .ins-signal,
  .ins-process-grid > div:first-child,
  .ins-steps > li,
  .ins-perspective,
  .ins-lens > div:first-child,
  .ins-lens-photo,
  .ins-lens-card,
  .ins-news,
  .legal-pills,
  .legal-section,
  .legal-contact,
  .legal-side
):not(.is-shown) {
  opacity: 0;
}

html.th-motion .is-shown {
  opacity: 1;
  animation: th-rise var(--th-dur, 0.6s) cubic-bezier(0.22, 1, 0.36, 1) var(--th-delay, 0s) backwards;
}

html.th-motion .th-art.is-shown {
  animation-name: th-art;
}

@keyframes th-rise {
  from { opacity: 0; transform: translate3d(0, var(--th-y, 20px), 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes th-art {
  from { opacity: 0; transform: translate3d(var(--th-x, 18px), 0, 0) scale(0.96); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  html.th-motion :is(
    .hero-kicker,
    .hero h1,
    .hero-lead,
    .hero-actions,
    .stat-item,
    .hero-art-in,
    .about-hero-art,
    .svc-hero-art,
    .work-hero-art,
    .ct-hero-art,
    .ins-hero-art,
    .legal-hero-art,
    .pillar,
    .service,
    .project,
    .cta-banner,
    .about-card,
    .work-card,
    .ins-feature
  ) {
    opacity: 1 !important;
    animation: none !important;
  }
}
