/* Hero: fade in + slight slide up (fast, subtle) */
.gc-reveal.gc-reveal--hero {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.28s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.gc-reveal.gc-reveal--hero.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Sections: fade in on scroll (minimal motion) */
.gc-reveal.gc-reveal--section {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.26s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.gc-reveal.gc-reveal--section.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* H2 word reveal: starts muted, clears while scrolling down */
.scroll-word-reveal .scroll-word {
  opacity: 0.24;
  transition: opacity 0.16s ease;
}

.scroll-word-reveal .scroll-word.is-clear {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .gc-reveal.gc-reveal--hero,
  .gc-reveal.gc-reveal--section {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .scroll-word-reveal .scroll-word {
    opacity: 1;
    transition: none;
  }
}
