.root {
  --typing-draft-progress: 0%;
  --typing-draft-spread: 10%;

  display: inline;
  mask-image:
    linear-gradient(
      to right,
      black var(--typing-draft-progress),
      transparent calc(var(--typing-draft-progress) + var(--typing-draft-spread))
    );

  &:dir(rtl) {
    mask-image:
      linear-gradient(
        to left,
        black var(--typing-draft-progress),
        transparent calc(var(--typing-draft-progress) + var(--typing-draft-spread))
      );
  }
}

.fullyRevealed {
  --typing-draft-progress: 100%;
  --typing-draft-spread: 0%;
}

.placeholder {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  vertical-align: text-top;
}
