input.smooth-input-active { caret-color: transparent !important; }
.smooth-input-caret {
  position: absolute;
  z-index: 13000;
  width: 2px;
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
  will-change: transform;
  transition: opacity .1s ease;
}
.smooth-input-caret.is-visible { opacity: 1; animation: smooth-input-blink 1.05s steps(1,end) infinite; }
.smooth-input-measure { position: fixed; top: -9999px; left: -9999px; visibility: hidden; white-space: pre; pointer-events: none; }
@keyframes smooth-input-blink { 0%, 48% { opacity: 1; } 49%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .smooth-input-caret { transition: none; } }
