/* Centered homepage hero. Other pages keep the shared layout and animation engine. */
article[data-page="home"] .hero.full {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: max(760px, calc(100svh - 72px));
  padding-top: 96px;
  padding-bottom: 0;
}
article[data-page="home"] .home-hero-content {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: 32px var(--gutter) 66px;
  text-align: center;
}
article[data-page="home"] .hero-top,
article[data-page="home"] .hero-bottom {
  display: block;
  grid-area: auto;
  padding: 0;
  transform: none !important;
}
article[data-page="home"] .hero-top .home-hero-products {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 17px;
  margin: 0 0 30px;
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  color: #d9d3ee;
}
article[data-page="home"] .home-hero-products i {
  width: 4px;
  height: 4px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--violet-lt);
}
article[data-page="home"] .home-hero-sequence {
  display: block;
  min-height: 0;
  max-width: 1100px;
  margin: 0 auto;
  font-size: clamp(54px, 5.9vw, 88px);
  line-height: 1.04;
  letter-spacing: -.027em;
  font-weight: 600;
}
article[data-page="home"] .home-hero-sequence .line {
  display: inline-block;
  opacity: 0;
  transform: translateY(28px);
  vertical-align: bottom;
}
/* The shared engine targets these children. Animate their outer lines instead. */
article[data-page="home"] .home-hero-sequence .line > span,
article[data-page="home"] .home-hero-content .rv {
  opacity: 1 !important;
  transform: none !important;
}
article[data-page="home"] .home-hero-final {
  opacity: 0;
  pointer-events: none;
}
article[data-page="home"] .home-hero-final .hero-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  width: min(100%, 400px);
  margin: 36px auto 0;
}
article[data-page="home"] .home-hero-final .btn {
  width: 100%;
  height: 64px;
  padding: 0 28px;
  gap: 26px;
  font-size: 19px;
}
article[data-page="home"] .home-hero-arrow {
  font-size: 23px;
  font-weight: 400;
}
article[data-page="home"] .home-hero-tagline {
  margin: 22px 0 12px;
  font-family: var(--section-label);
  font-size: 23px;
  line-height: 1.4;
  color: var(--violet-lt);
}
article[data-page="home"] .home-hero-how {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  font-size: 16px;
  color: #d9d3ee;
  text-underline-offset: 5px;
}
article[data-page="home"] .home-hero-how:hover { color: #fff; text-decoration: underline; }
article[data-page="home"] .home-hero-content a:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 5px;
}
article[data-page="home"] .dm-hero { opacity: .28 !important; }
article[data-page="home"] .hero .pipes { opacity: .4; }
article[data-page="home"] .scroll-cue { display: none; }

/* Both phrases stay present after the entrance, including keyboard focus. */
article[data-page="home"].home-hero-ready .home-hero-sequence .line {
  animation: home-hero-centered-in 1.1s var(--ease) both;
}
article[data-page="home"].home-hero-ready .home-hero-sequence .line:nth-of-type(n+3) {
  animation-delay: .18s;
}
article[data-page="home"].home-hero-ready .home-hero-final {
  animation: home-hero-centered-in 1s var(--ease) .3s both;
  pointer-events: auto;
}
article[data-page="home"].home-hero-complete .home-hero-sequence .line {
  opacity: 1;
  transform: none;
  animation: none !important;
}
article[data-page="home"].home-hero-ready .home-hero-quote,
article[data-page="home"].home-hero-ready .home-hero-quote::before,
article[data-page="home"].home-hero-ready .home-hero-quote::after,
article[data-page="home"].home-hero-ready .home-hero-quote span { animation: none; }
@keyframes home-hero-centered-in {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 720px) {
  article[data-page="home"] .hero.full { min-height: max(680px, calc(100svh - 72px)); }
  article[data-page="home"] .home-hero-content { padding: 24px 20px 44px; }
  article[data-page="home"] .hero-top .home-hero-products { gap: 12px; margin-bottom: 28px; font-size: 13px; }
  article[data-page="home"] .home-hero-products i { width: 3px; height: 3px; }
  article[data-page="home"] .home-hero-sequence {
    max-width: 380px;
    font-size: clamp(38px, 11.8vw, 50px);
    line-height: 1.085;
    letter-spacing: -.022em;
  }
  article[data-page="home"] .home-hero-sequence .line { display: block; }
  article[data-page="home"] .home-hero-break { display: none; }
  article[data-page="home"] .home-hero-final .hero-actions { margin-top: 30px; }
  article[data-page="home"] .home-hero-final .btn { height: 60px; font-size: 18px; }
  article[data-page="home"] .home-hero-tagline { margin-top: 20px; margin-bottom: 8px; font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  article[data-page="home"] .home-hero-sequence .line,
  article[data-page="home"] .home-hero-final {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  article[data-page="home"] .home-hero-final { pointer-events: auto; }
}
