.hero-opening { display: block; }
.hero .hero-ending { position: relative; }
.hero-typing-text { display: block; }
.hero-typing-cursor {
  position: absolute;
  width: 1.5px;
  background: currentColor;
  pointer-events: none;
}
.hero-typing-cursor[hidden] { display: none; }

.hero-service-intro,
.hero-actions {
  transition: opacity 500ms cubic-bezier(.2,.65,.3,1);
}

#hero-title:is([data-hero-stage="fade"], [data-hero-stage="period"], [data-hero-stage="typing"]) ~ :is(.hero-service-intro, .hero-actions) {
  opacity: 0;
  visibility: hidden;
  transition: none;
}

#hero-title:is([data-hero-stage="cursor"], [data-hero-stage="complete"]) ~ :is(.hero-service-intro, .hero-actions) {
  opacity: 1;
  visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
  .hero-opening, .hero-period { opacity: 1 !important; }
  .hero-typing-text { clip-path: none !important; }
  .hero-typing-cursor { display: none !important; }
  .hero-service-intro, .hero-actions {
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
  }
}
