/* ============================================================
   ANIMATIONS — one orchestrated hero moment, quiet elsewhere
   ============================================================ */

/* Hero entrance */
@keyframes rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

@keyframes bulb-on {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.hero-inner > * {
  animation: rise 0.7s var(--ease) both;
}
.hero-inner > *:nth-child(1) { animation-delay: 0.10s; }
.hero-inner > *:nth-child(2) { animation-delay: 0.20s; }
.hero-inner > *:nth-child(3) { animation-delay: 0.30s; }
.hero-inner > *:nth-child(4) { animation-delay: 0.40s; }

/* Bulbs switch on one after another, once, on load */
.bulb-string .bulb {
  opacity: 0;
  animation: bulb-on 0.5s var(--ease) both;
}

/* Scroll reveal — section level only */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .bulb-string .bulb { opacity: 1; }
}
