main h3,
:root[data-theme] .scenario-after h3 {
  color: var(--mint);
}

/* Visibility preserves wrapping and height throughout the reveal. */
.title-typing .title-char {
  visibility: hidden;
}

.title-typing .title-char.is-typed {
  visibility: visible;
}

.title-cursor {
  position: relative;
}

.title-cursor::after {
  content: "";
  position: absolute;
  left: 100%;
  top: 0.15em;
  height: 0.85em;
  border-right: 0.035em solid var(--mint);
  animation: title-caret 650ms step-end infinite;
  pointer-events: none;
}

@keyframes title-caret {
  50% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .title-typing .title-char { visibility: visible; }
  .title-cursor::after { display: none; }
}
