.js-reveal {
  opacity: 0;
  transform: translateY(24px);
}

/* ---- Page-load typewriter chars (loaded on ALL pages) ---- */
.page-hero-char {
  display: inline;
  opacity: 0;
  transition: opacity 0.05s ease;
}
.page-hero-char.visible {
  opacity: 1;
}

@keyframes hintBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(7px); }
}

.scroll-hint {
  animation: hintBounce 2.2s ease-in-out infinite;
}
