/* =========================================================
   ANIMATIONS — reveal timings, stagger delays, keyframes
   ========================================================= */

@keyframes fade-in{ from{opacity:0;} to{opacity:1;} }
@keyframes rise{ from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} }
@keyframes draw-line{ from{stroke-dashoffset:1400;} to{stroke-dashoffset:0;} }

.reveal-stagger > *:nth-child(1){transition-delay:0s;}
.reveal-stagger > *:nth-child(2){transition-delay:.08s;}
.reveal-stagger > *:nth-child(3){transition-delay:.16s;}
.reveal-stagger > *:nth-child(4){transition-delay:.24s;}
.reveal-stagger > *:nth-child(5){transition-delay:.32s;}
.reveal-stagger > *:nth-child(6){transition-delay:.4s;}
.reveal-stagger > *:nth-child(7){transition-delay:.48s;}
.reveal-stagger > *:nth-child(8){transition-delay:.56s;}

/* hero load-in sequence */
.hero .eyebrow{animation:rise .9s var(--ease) both .15s;}
.hero h1{animation:rise 1s var(--ease) both .3s;}
.hero p.lead{animation:rise 1s var(--ease) both .48s;}
.hero-actions{animation:rise 1s var(--ease) both .64s;}
.scroll-cue{animation:fade-in 1.2s var(--ease) both 1.1s;}

/* page loader */
body.is-loading{overflow:hidden;}
.page-veil{
  position:fixed;inset:0;z-index:3000;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s var(--ease);
}
.page-veil span{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;color:var(--emerald);text-transform:uppercase;}
.page-veil.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}

/* counter tick */
.stat .num.is-counting{transition:color .3s;}

/* mobile menu icon fade for links */
.site-nav.is-open ul li{animation:rise .6s var(--ease) both;}
.site-nav.is-open ul li:nth-child(1){animation-delay:.05s;}
.site-nav.is-open ul li:nth-child(2){animation-delay:.1s;}
.site-nav.is-open ul li:nth-child(3){animation-delay:.15s;}
.site-nav.is-open ul li:nth-child(4){animation-delay:.2s;}
.site-nav.is-open ul li:nth-child(5){animation-delay:.25s;}
.site-nav.is-open ul li:nth-child(6){animation-delay:.3s;}
.site-nav.is-open ul li:nth-child(7){animation-delay:.35s;}

@media (prefers-reduced-motion: reduce){
  .hero .eyebrow,.hero h1,.hero p.lead,.hero-actions,.scroll-cue,.site-nav.is-open ul li{animation:none !important;}
}
