/* ==========================================================================
   LEPTIR — Motion
   One orchestrated page-load sequence in the hero. Elsewhere motion only
   answers an action (opening a menu, lighting a section on first view).
   ========================================================================== */

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

@keyframes breathe {
  0%, 100% { opacity: 0.55; }
  50%      { opacity: 1; }
}

/* Hero load sequence — staggered once, on first paint only */
.hero__copy > * {
  animation: rise 900ms var(--ease) both;
}
.hero__copy > *:nth-child(1) { animation-delay: 80ms; }
.hero__copy > *:nth-child(2) { animation-delay: 180ms; }
.hero__copy > *:nth-child(3) { animation-delay: 280ms; }
.hero__copy > *:nth-child(4) { animation-delay: 380ms; }
.hero__copy > *:nth-child(5) { animation-delay: 480ms; }

.mark__pulse { animation: breathe 5.5s ease-in-out infinite; transform-origin: center; }

/* Elements that light up once, when scrolled into view */
[data-reveal] { opacity: 0; transform: translateY(10px); }
[data-reveal].is-in { opacity: 1; transform: none; transition: opacity 700ms var(--ease), transform 700ms var(--ease); }

@media (prefers-reduced-motion: reduce) {
  .hero__copy > *, .mark__pulse { animation: none; }
  [data-reveal] { opacity: 1; transform: none; }
}
