/* ── Initial hidden state for animated elements ── */
[data-split] .char {
  display: inline-block;
  overflow: hidden;
}

[data-split] .word {
  display: inline-block;
  overflow: hidden;
}

/* Hero scroll indicator bounce */
@keyframes bounceY {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(6px); }
}

.hero__scroll-arrow {
  animation: bounceY 2s var(--ease) infinite;
}

/* Section line wipe */
.section__line {
  transform: scaleX(0);
  transform-origin: left;
}

/* Fade-up base state (GSAP will override opacity/transform) */
[data-animate] {
  opacity: 0;
  transform: translateY(24px);
}

/* Theme transition */
html {
  transition:
    color 0.35s var(--ease),
    background-color 0.35s var(--ease);
}

/* Nav mobile open/close */
.nav__mobile {
  transition: opacity 0.3s var(--ease);
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 6px;
}
::-webkit-scrollbar-track {
  background: var(--color-bg);
}
::-webkit-scrollbar-thumb {
  background: var(--color-border);
  border-radius: 99px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-text-muted);
}
