/* Body scenes use one short reading order: title, body, collection. */
@media (scripting: enabled) and (max-width: 767px),
  (scripting: enabled) and (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
  .iel-home.is-copy-fit-pending
    :is(
      .iel-design-copy:not(.iel-copy-women-description):not(.iel-copy-prosecutors-description),
      [data-mobile-copy-fit]
    ) {
    visibility: hidden;
  }
}

.iel-home .iel-motion-reveal[data-motion-phase='title'] {
  --iel-reveal-delay: 0ms;
}
.iel-home .iel-motion-reveal[data-motion-phase='body'] {
  --iel-reveal-delay: var(--iel-motion-sequence-step);
}
.iel-home .iel-motion-reveal[data-motion-phase='collection'] {
  --iel-reveal-delay: calc(var(--iel-motion-stagger-step) * var(--iel-motion-index, 0));
}

.iel-home .upper-profile-photo {
  border-radius: 30px;
  overflow: hidden;
}

/* Scene layers use a slower entrance than copy while remaining compositor-only. */
@keyframes iel-home-scene-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes iel-home-scene-mark-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes iel-home-premium-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes iel-home-team-scene-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes iel-home-team-copy-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.iel-home
  :is(
    .upper-premium-scene,
    .upper-teams-scene,
    .upper-teams-mobile-scene,
    .upper-evidence-scene,
    .lower-philosophy-brandmark
  ).iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) {
  animation: iel-home-scene-in var(--iel-motion-scene-in) var(--iel-motion-reveal-ease) backwards;
}

.iel-home
  .upper-premium-scene.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate)
  :is(.upper-premium-label--chapter, .upper-premium-label--iel) {
  animation: iel-home-scene-mark-in var(--iel-motion-scene-in) var(--iel-motion-reveal-ease) backwards;
}

.iel-home .upper-premium-scene.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) {
  animation-name: iel-home-premium-in;
  animation-duration: var(--iel-motion-scene-in);
}

.iel-home
  .upper-premium-scene.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate)
  .upper-premium-label--chapter {
  animation-delay: var(--iel-motion-sequence-step);
}

.iel-home .upper-premium-scene.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) .upper-premium-label--iel {
  animation-delay: calc(var(--iel-motion-sequence-step) * 2);
}

.iel-home
  :is(.upper-teams-scene, .upper-teams-mobile-scene).iel-motion-reveal.is-motion-visible:not(.is-motion-immediate)
  :is(.upper-teams-mark, .upper-teams-mobile-mark) {
  animation: iel-home-scene-mark-in var(--iel-motion-scene-in) var(--iel-motion-reveal-ease) backwards;
}

.iel-home
  :is(.upper-teams-scene, .upper-teams-mobile-scene).iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) {
  animation-name: iel-home-team-scene-in;
  animation-duration: var(--iel-motion-scene-in);
}

.iel-home .upper-team.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) > div > :where(.upper-red, h3, p) {
  animation: iel-home-team-copy-in var(--iel-motion-reveal) var(--iel-motion-reveal-ease) backwards;
}
.iel-home .upper-team.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) > div > h3 {
  animation-delay: 80ms;
}
.iel-home .upper-team.iel-motion-reveal.is-motion-visible:not(.is-motion-immediate) > div > p:last-child {
  animation-delay: 160ms;
}

/* Keep the motion visible without changing card geometry or hit areas. */
@media (hover: hover) and (pointer: fine) {
  .iel-home :is(.upper-profile-photo img, .upper-video-photo, .lower-editorial-image) {
    transition: transform var(--iel-motion-card) var(--iel-motion-ease);
    transform-origin: center;
  }

  .iel-home
    :is(.upper-profile, .upper-video, .lower-editorial):is(:hover, :focus-within)
    :is(.upper-profile-photo img, .upper-video-photo, .lower-editorial-image) {
    transform: scale(1.045);
  }
}

/* Hero timing begins at first paint, before deferred scripts can flash it hidden. */
@media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
  .iel-home :is(.upper-hero-wordmark, .upper-hero-copy) {
    animation: iel-reveal-copy var(--iel-motion-scene) var(--iel-motion-reveal-ease) backwards;
  }
  .iel-home .upper-hero-wordmark {
    animation-delay: var(--iel-motion-sequence-step);
  }
  html:has(:target) .iel-home :is(.upper-hero-wordmark, .upper-hero-copy),
  .iel-home .upper-hero-copy.is-motion-immediate {
    animation: none;
  }
}
@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
  .iel-home .upper-hero-copy {
    animation-duration: var(--iel-motion-scene);
  }
}

@keyframes iel-marker-travel {
  from {
    top: 0;
  }
  to {
    top: 66.97%;
  }
}
.iel-home .upper-detail-marker.is-in-view::after {
  animation: iel-marker-travel 2.4s var(--iel-motion-reveal-ease) infinite alternate;
}
@media (prefers-reduced-motion: reduce) {
  .iel-home .upper-detail-marker::after {
    animation: none;
  }

  .iel-home
    :is(
      .upper-premium-scene,
      .upper-teams-scene,
      .upper-teams-mobile-scene,
      .upper-evidence-scene,
      .lower-philosophy-image-picture,
      .lower-philosophy-brandmark,
      .lower-location-track,
      .upper-premium-label--chapter,
      .upper-premium-label--iel,
      .upper-teams-mark,
      .upper-teams-mobile-mark
    ) {
    animation: none !important;
    transform: none !important;
  }

  .iel-home
    :is(
      .upper-profile,
      .upper-video,
      .upper-team,
      .lower-case,
      .lower-editorial,
      .lower-review,
      .lower-faq-item,
      .upper-cost,
      .lower-cta,
      .lower-more,
      .upper-contact-options > a,
      .upper-profile-photo img,
      .upper-video-photo,
      .lower-editorial-image
    ) {
    transition: none;
    transform: none !important;
  }

  .iel-home .upper-team > div > :is(.upper-red, h3, p) {
    animation: none !important;
    transform: none !important;
  }
}
