/* Shared headings use the TOP WHY US ink plates and cadence. */
.im-services .im-heading > div > p { margin-top: 8px; }
.im-glitch.im-heading-ink {
  padding: .06em .07em;
  margin-inline: -.07em;
  white-space: nowrap;
  color: inherit;
  -webkit-text-fill-color: transparent;
  background: radial-gradient(circle, currentColor 0 1.1px, transparent 1.35px) 0 0 / 3px 3px;
  background-clip: text;
  -webkit-background-clip: text;
  filter: url('#belt-type-glitch');
  animation: im-heading-jolt 1.35s steps(1, end) infinite;
  animation-play-state: paused;
}
.im-glitch.im-heading-ink::before,
.im-glitch.im-heading-ink::after {
  inset: 0;
  padding: inherit;
  font: inherit;
  letter-spacing: inherit;
  white-space: pre;
  color: transparent;
  -webkit-text-fill-color: transparent;
  background-size: 100% 100%;
  background-position: 0 0;
  background-clip: text;
  -webkit-background-clip: text;
  mask-image: radial-gradient(circle, #000 0 1px, transparent 1.3px);
  mask-size: 3px 3px;
  opacity: .9;
  animation: im-heading-burst 1.35s steps(1, end) infinite;
  animation-play-state: paused;
}
.im-glitch.im-heading-ink::before {
  background-image: linear-gradient(180deg, #9162a8 0 24%, #2c1e46 24% 32%, #b58acb 32% 64%, #9162a8 64% 82%, #2c1e46 82% 100%);
  transform: translate(-.022em, .007em);
}
.im-glitch.im-heading-ink::after {
  background-image: linear-gradient(180deg, #dfc6ef 0 32%, #b58acb 32% 54%, #9162a8 54% 72%, #dfc6ef 72% 100%);
  mask-position: 1.5px 1px;
  transform: translate(.024em, -.007em);
  animation-duration: 1.1s;
  animation-delay: -.29s;
  animation-direction: reverse;
}
.im-heading-ink-core {
  position: relative;
  z-index: 1;
  display: block;
  font: inherit;
  letter-spacing: inherit;
  background: inherit;
  background-clip: text;
  -webkit-background-clip: text;
}
/* Standalone keyframes let inner-page headings use exactly the TOP treatment. */
@keyframes im-heading-jolt {
  0%,13%,42%,74%,100%{translate:0 0}
  5%,36%{translate:.007em 0}
  9%,39%,69%{translate:-.006em 0}
  71%{translate:.004em 0}
}
@keyframes im-heading-burst {
  0%,12%,28%,42%,62%,70%,88%,100%{translate:0 0;clip-path:inset(0);opacity:.9}
  16%,50%,80%{translate:.055em 0;clip-path:polygon(0 10%,100% 10%,100% 24%,0 24%,0 55%,100% 55%,100% 68%,0 68%);opacity:1}
  20%,54%,76%{translate:-.045em 0;clip-path:polygon(0 28%,100% 28%,100% 39%,0 39%,0 73%,100% 73%,100% 85%,0 85%);opacity:1}
  24%,58%,84%{translate:.025em 0;clip-path:polygon(0 40%,100% 40%,100% 46%,0 46%,0 64%,100% 64%,100% 78%,0 78%);opacity:.96}
}
.im-glitch.im-heading-ink.is-in-view,
.im-glitch.im-heading-ink.is-in-view::before,
.im-glitch.im-heading-ink.is-in-view::after {
  animation-play-state: running;
}
@media (max-width: 600px) {
  /* Keep each CTA ink plate on the same line as its visible text. */
  .im-contact h2 { font-size: 15.2vw; }
}
:is(.motion-off, .im-no-motion) .im-glitch.im-heading-ink,
:is(.motion-off, .im-no-motion) .im-glitch.im-heading-ink::before,
:is(.motion-off, .im-no-motion) .im-glitch.im-heading-ink::after {
  animation: none !important;
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  .im-glitch.im-heading-ink,
  .im-glitch.im-heading-ink::before,
  .im-glitch.im-heading-ink::after {
    animation: none !important;
    filter: none;
  }
}
