
  .typing-caret {
    transition: opacity 0.2s ease;
  }
  .caret-active {
    opacity: 1;
    animation: caretBlink 1s ease-in-out infinite;
  }
  .caret-hidden {
    opacity: 0;
  }
  .caret-finishing {
    animation: caretExit 0.5s ease forwards;
  }
  @keyframes caretBlink {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 1; }
  }
  @keyframes caretExit {
    0%   { opacity: 1;   transform: scaleY(1); }
    100% { opacity: 0;   transform: scaleY(0.1); }
  }
