.hero {
  min-height: 100vh;
  padding-top: 64px; /* nav height */
  padding-inline: var(--margin);
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
}

/* Character grid — height and char positions set by JS */
.hero__grid {
  position: relative;
  width: 100%;
  overflow: hidden;
}

/* Individual char cells — font-size also set by JS */
.hero__char {
  position: absolute;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--accent-primary);
  display: inline-block;
  transition: color 0.12s ease-out, opacity 0.12s ease-out;
  user-select: none;
  pointer-events: none;
  white-space: pre; /* preserve spaces */
}

.hero__subtitle {
  max-width: 504px;
  margin-top: 40px;
  font-size: 18px;
  color: var(--text-secondary);
  line-height: 1.55;
}

.hero__scroll-hint {
  margin-top: 24px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-ghost);
}

@media (prefers-reduced-motion: reduce) {
  .hero__char {
    transition: none;
  }
}

@media (max-width: 768px) {
  .hero {
    padding-inline: 24px;
  }

  .hero__subtitle {
    max-width: 100%;
    margin-top: 28px;
  }
}
