/* ============================================================
   PRIME FITOUTS — MOTION SYSTEM
   Scroll reveals, dimension-line draws, before/after drag.
   ============================================================ */

[data-reveal]{
  opacity:0;
  transition:opacity 1s var(--ease), transform 1s var(--ease);
  will-change:opacity, transform;
}
[data-reveal="up"]{transform:translateY(42px);}
[data-reveal="left"]{transform:translateX(-38px);}
[data-reveal="right"]{transform:translateX(38px);}
[data-reveal="fade"]{transform:none;}

[data-reveal].is-visible{opacity:1;transform:translate(0,0);}

[data-stagger] > *{
  opacity:0;transform:translateY(30px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
[data-stagger].is-visible > *{opacity:1;transform:translateY(0);}
[data-stagger].is-visible > *:nth-child(1){transition-delay:.04s;}
[data-stagger].is-visible > *:nth-child(2){transition-delay:.1s;}
[data-stagger].is-visible > *:nth-child(3){transition-delay:.16s;}
[data-stagger].is-visible > *:nth-child(4){transition-delay:.22s;}
[data-stagger].is-visible > *:nth-child(5){transition-delay:.28s;}
[data-stagger].is-visible > *:nth-child(6){transition-delay:.34s;}
[data-stagger].is-visible > *:nth-child(7){transition-delay:.4s;}
[data-stagger].is-visible > *:nth-child(8){transition-delay:.46s;}
[data-stagger].is-visible > *:nth-child(9){transition-delay:.52s;}
[data-stagger].is-visible > *:nth-child(10){transition-delay:.58s;}

/* dimension-line draw-in for the hero rule */
.rule-draw{width:0;transition:width 1.1s var(--ease) .2s;}
.rule-draw.is-visible{width:60px;}

[data-counter]{font-variant-numeric:tabular-nums;}

.scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--ice);z-index:1200;width:0%;transition:width .1s linear;}

@keyframes fadeSwap{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.fade-swap{animation:fadeSwap .5s var(--ease);}

@media(prefers-reduced-motion: reduce){
  [data-reveal],[data-stagger] > *{opacity:1 !important;transform:none !important;transition:none !important;}
}
