[data-block-animation] {
  position: relative;
}

.block-animation__measure {
  visibility: hidden;
}

.block-animation__measure-word {
  display: inline;
}

.block-animation__visual,
.block-animation__line {
  display: block;
}

.block-animation__clip {
  position: relative;
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  vertical-align: bottom;
  white-space: nowrap;
}

[data-gsap-strengths-title] .block-animation__clip {
  overflow: visible;
}

.block-animation__text {
  display: inline;
}

.block-animation__wipe {
  position: absolute;
  z-index: 1;
  inset: 0.12em 0;
  background: var(--signal);
  clip-path: inset(0 100% 0 0);
  pointer-events: none;
}

.has-block-animation
  [data-block-ready]:not([data-gsap-block]):not(.is-block-revealed)
  .block-animation__text {
  opacity: 0;
}

.has-block-animation
  [data-block-ready]:not([data-gsap-block]).is-block-entering
  .block-animation__wipe {
  animation: block-animation-wipe 720ms var(--ease-cinematic)
    calc(var(--block-line-index) * 80ms) both;
}

.has-block-animation
  [data-block-ready]:not([data-gsap-block]).is-block-entering
  .block-animation__text {
  animation: block-animation-text 720ms linear
    calc(var(--block-line-index) * 80ms) both;
}

.has-block-animation
  [data-block-compact]:not([data-gsap-block]):not(.is-block-revealed) {
  opacity: 0;
  transform: translateY(8px);
}

.has-block-animation
  [data-block-compact]:not([data-gsap-block]).is-block-entering {
  animation: block-animation-compact 420ms var(--ease-cinematic) both;
  will-change: transform, opacity;
}

@keyframes block-animation-wipe {
  0% {
    clip-path: inset(0 100% 0 0);
  }
  44%,
  54% {
    clip-path: inset(0 0 0 0);
  }
  100% {
    clip-path: inset(0 0 0 100%);
  }
}

@keyframes block-animation-text {
  0%,
  48% {
    opacity: 0;
  }
  49%,
  100% {
    opacity: 1;
  }
}

@keyframes block-animation-compact {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animations-paused [data-block-ready] .block-animation__text {
  opacity: 1 !important;
  animation: none !important;
}

.animations-paused [data-block-ready] .block-animation__wipe {
  display: none !important;
}

.animations-paused [data-block-compact] {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

@media (max-width: 767.98px), (max-height: 620px), (pointer: coarse) {
  .has-block-animation
    [data-block-ready]:not([data-gsap-block]).is-block-entering
    .block-animation__wipe,
  .has-block-animation
    [data-block-ready]:not([data-gsap-block]).is-block-entering
    .block-animation__text {
    animation-duration: 560ms;
    animation-delay: calc(var(--block-line-index) * 55ms);
  }
}

@media (prefers-reduced-motion: reduce), print {
  [data-block-compact] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }

  [data-block-ready] .block-animation__text {
    opacity: 1 !important;
    animation: none !important;
  }

  [data-block-ready] .block-animation__wipe {
    display: none !important;
    animation: none !important;
  }
}
