.echo-text {
  position: relative;
  display: inline-block;
  contain: layout style;
  user-select: none;
  font-kerning: normal;
  text-rendering: geometricPrecision;
}
/* The cursor advances with the typed glyphs, then disappears after the intro. */
.echo-text[data-typing]::after {
  content: '';
  position: absolute;
  left: calc(var(--typing-cursor-x, 0px) + 0.035em);
  bottom: 0.18em;
  width: 0.025em;
  min-width: 2px;
  height: 0.72em;
  background: #edecff;
  animation: typing-cursor 900ms step-end infinite;
}
@keyframes typing-cursor {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
.echo-text__copy {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
  text-shadow: none;
}
.echo-text__copy--front {
  position: relative;
  z-index: 2;
  color: #edecff;
}
.echo-text__letter {
  display: inline-block;
  transform-origin: 50% 100%;
  backface-visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
  .echo-text[data-typing]::after { display: none; }
  .echo-text__copy:not(.echo-text__copy--front) { display: none; }
  .echo-text__letter { transform: none !important; opacity: 1 !important; filter: none !important; }
}
