/* =========================================================
   MOTION — keyframes + reveal
   ========================================================= */

@keyframes pulse-lime{
  0%{box-shadow:0 0 0 0 rgba(198,244,50,0.55)}
  70%{box-shadow:0 0 0 10px rgba(198,244,50,0)}
  100%{box-shadow:0 0 0 0 rgba(198,244,50,0)}
}
@keyframes blink{ 0%,50%{opacity:1} 51%,100%{opacity:0} }
@keyframes strike-in{ to{transform:scaleX(1)} }
@keyframes underline-in{ to{transform:scaleX(1)} }
@keyframes fade-up{ to{opacity:1;transform:translateY(0)} }
@keyframes fade-in{ to{opacity:1} }
@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* hero entrance */
.hero-eyebrow{opacity:0;transform:translateY(8px);animation:fade-up .7s var(--ease-out) .1s forwards}
.hero-h{opacity:0;transform:translateY(16px);animation:fade-up 1s var(--ease-out) .2s forwards}
.hero-sub{opacity:0;transform:translateY(12px);animation:fade-up .9s var(--ease-out) .5s forwards}
.hero-ctas{opacity:0;transform:translateY(12px);animation:fade-up .9s var(--ease-out) .65s forwards}
.hero-ticker{opacity:0;transform:translateY(12px);animation:fade-up .9s var(--ease-out) .8s forwards}
.studio-panel{opacity:0;animation:fade-in 1.2s var(--ease-out) .3s forwards}

/* topo map contour drawing */
@keyframes draw{ to{stroke-dashoffset:0} }
@keyframes pulse-ring{
  0%{opacity:.8;transform:scale(.8)}
  100%{opacity:0;transform:scale(2.6)}
}
.studio-stage .contour-path.draw-1{animation:draw 2.2s var(--ease-out) .4s forwards}
.studio-stage .contour-path.draw-2{animation:draw 2.2s var(--ease-out) .65s forwards}
.studio-stage .contour-path.draw-3{animation:draw 2.2s var(--ease-out) .9s forwards}
.studio-stage .contour-path.draw-4{animation:draw 2.2s var(--ease-out) 1.15s forwards}
.studio-stage .contour-path.draw-5{animation:draw 2.4s var(--ease-out) 1.4s forwards}
.studio-stage .contour-path.draw-am{animation:draw 1.6s var(--ease-out) 1.7s forwards}
.studio-stage .summit-dot{animation:fade-in .6s var(--ease-out) 2.6s forwards}
.studio-stage .summit-pulse{animation:pulse-ring 2.4s var(--ease-out) 2.8s infinite}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out), transform .9s var(--ease-out)}
.reveal.in-view{opacity:1;transform:translateY(0)}

.reveal-stagger > *{opacity:0;transform:translateY(20px);transition:opacity .65s var(--ease-out), transform .65s var(--ease-out)}
.reveal-stagger.in-view > *{opacity:1;transform:translateY(0)}
.reveal-stagger.in-view > *:nth-child(1){transition-delay:.05s}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.14s}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.23s}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.32s}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.41s}
.reveal-stagger.in-view > *:nth-child(6){transition-delay:.5s}

.count-up{display:inline-block;font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .reveal, .reveal-stagger > *{opacity:1;transform:none}
}
