.typing-title {
  display: inline;
  white-space: normal; /* permite quebra */
  margin: 0 auto;
  letter-spacing: 0.05em;
  font-size: clamp(1.2rem, 4vw, 2rem);
}

/* cursor separado */
.typing-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background: #facc15;
  margin-left: 2px;
  vertical-align: bottom;

  animation: blink-caret 0.75s step-end infinite;
}

@keyframes blink-caret {
  from, to { opacity: 0; }
  50%      { opacity: 1; }
}

.typing-title {
  font-size: 2rem; /* desktop padrão */
}

@media (max-width: 480px) {
  .typing-title {
    font-size: 1.8rem;
  }
}

@keyframes text-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}

.typing-finished {
  animation: text-blink 0.4s ease-in-out 3;
}