/* The complete heading remains in the document; only its visual ink is revealed. */
.hero-type-line { display: block; width: max-content; max-width: 100%; position: relative; white-space: nowrap; }
.hero-type-ink { display: block; }
.hero-type-caret { display: none; position: absolute; left: var(--type-x,0px); top: .11em; width: max(2px,.025em); height: .82em; background: var(--hero-caret,#c3dbbf); border-radius: 1px; pointer-events: none; }
.hero-copy .hero-word { display: inline-block; transform-origin: center bottom; }
.hero-copy .hero-word:nth-last-child(-n+3) { color: var(--hero-copy-accent,#d9e7d8); }
.hero-actions .btn { position: relative; isolation: isolate; overflow: hidden; }
.hero-actions .hero-button-label, .hero-actions .btn > svg { position: relative; z-index: 1; }
.hero-button-sheen { position: absolute; inset: -20% -35%; background: linear-gradient(110deg,transparent 32%,#ffffff70 50%,transparent 68%); opacity: 0; transform: translateX(-110%); pointer-events: none; z-index: 0; }
.hero-actions .btn-ghost .hero-button-sheen { background: linear-gradient(110deg,transparent 32%,#bcd5ba50 50%,transparent 68%); }
.hero-intro-pending .hero-type-ink { clip-path: inset(-.15em 100% -.2em -.05em); }
.hero-intro-pending .hero-copy .hero-word, .hero-intro-pending .hero-actions .btn { opacity: 0; }
.hero-intro-running .hero-type-ink { clip-path: inset(-.15em max(0px,calc(100% - var(--type-x,100%))) -.2em -.05em); }
.hero-intro-running .hero-type-line.is-typing .hero-type-caret { display: block; animation: hero-caret-blink .72s steps(1,end) infinite; }
.hero-intro-suspended .hero-type-caret { animation-play-state: paused !important; }
@keyframes hero-caret-blink { 0%,75% { opacity: 1; } 76%,100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .hero-type-ink { clip-path: none !important; }
  .hero-type-caret { display: none !important; }
  .hero-copy .hero-word, .hero-actions .btn { opacity: 1 !important; transform: none !important; }
  .hero-button-sheen { display: none; }
}
@media print {
  .hero-type-ink { clip-path: none !important; }
  .hero-type-caret, .hero-button-sheen { display: none !important; }
}
