/* The homepage headline is the first focal point of the split hero. */
@media (min-width: 1251px) {
  .hero h1 { font-size: clamp(48px, 4.65vw, 80px); }
}

/* Give each line a short, deliberate entrance rather than a generic page fade. */
.hero-title-line {
  display: inline-block;
  animation: hero-type-in .72s cubic-bezier(.18, .82, .2, 1) both;
}
.hero-title-first { animation-delay: .08s; }
.hero-title-em { animation-delay: .2s; }
.hero-title-lime { animation-delay: .32s; }
.hero-lead, .hero-description, .hero-buttons {
  animation: hero-support-in .64s cubic-bezier(.2, .75, .2, 1) both;
}
.hero-lead { animation-delay: .66s; }
.hero-description { animation-delay: .76s; }
.hero-buttons { animation-delay: .87s; }

/* A single firm stroke travels from left to right, like a forward run. */
.hero-title-lime svg { bottom: -15px; height: 21px; }
.hero-title-lime path {
  stroke-width: 8;
  stroke-linecap: square;
  opacity: 1;
  stroke-dasharray: 520;
  stroke-dashoffset: 520;
  animation: hero-stroke-in .62s .91s cubic-bezier(.2, .76, .26, 1) forwards;
}

/* Use the established service marks inside the switchable product panels. */
.product-copy .product-logo-heading {
  display: flex;
  align-items: center;
  min-height: 86px;
  margin: 8px 0 34px;
  white-space: normal;
}
.product-logo-heading img {
  display: block;
  width: min(100%, 480px);
  height: auto;
}
.form-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* Preserve the intended two-line contact invitation within its narrow column. */
.contact-copy h2 .contact-heading-line { display: block; white-space: nowrap; }
.products-head h2 { max-width: 1100px; text-wrap: balance; }
.future-content h2 { text-wrap: balance; }
@media (min-width: 961px) {
  .contact-copy h2 { font-size: clamp(34px, 3.6vw, 58px); }
}

@keyframes hero-type-in {
  from { opacity: 0; transform: translate3d(0, .28em, 0); filter: blur(5px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}
@keyframes hero-support-in {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes hero-stroke-in {
  to { stroke-dashoffset: 0; }
}

@media (max-width: 680px) {
  .hero-title-lime svg { bottom: -9px; height: 15px; }
  .product-copy .product-logo-heading { min-height: 0; margin: 9px 0 27px; }
  .contact-copy h2 { font-size: clamp(25px, 7.5vw, 51px); }
}

@media (prefers-reduced-motion: reduce) {
  .hero-title-line, .hero-lead, .hero-description, .hero-buttons {
    animation: none;
    opacity: 1;
    transform: none;
    filter: none;
  }
  .hero-title-lime path { animation: none; stroke-dashoffset: 0; }
}
.intel-brief h3 { text-wrap: balance; }
.intel-headline-phrase { display: inline-block; white-space: nowrap; }
