/* =========================================================
   ANIMATIONS
   ========================================================= */

@media (prefers-reduced-motion:no-preference){
  [data-reveal]{
    opacity:0; transform:translateY(28px);
    transition:opacity .7s var(--ease), transform .7s var(--ease);
  }
  [data-reveal].in-view{opacity:1; transform:translateY(0);}
  [data-reveal="fade"]{transform:none;}
  [data-reveal="left"]{transform:translateX(-28px);}
  [data-reveal="left"].in-view{transform:translateX(0);}
  [data-reveal="right"]{transform:translateX(28px);}
  [data-reveal="right"].in-view{transform:translateX(0);}
  [data-reveal="scale"]{transform:scale(.94);}
  [data-reveal="scale"].in-view{transform:scale(1);}

  [data-reveal-group] > *{transition-delay:calc(var(--stagger, 0) * 90ms);}
}

@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1; transform:none; transition:none;}
}

@keyframes float-y{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
.float{animation:float-y 5s ease-in-out infinite;}

@keyframes dash-draw{
  to{stroke-dashoffset:0;}
}
.draw-line{stroke-dasharray:600; stroke-dashoffset:600; animation:dash-draw 2.4s var(--ease) forwards;}

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

@keyframes stamp-in{
  0%{opacity:0; transform:scale(1.6) rotate(-8deg);}
  60%{opacity:1; transform:scale(.96) rotate(2deg);}
  100%{opacity:1; transform:scale(1) rotate(-6deg);}
}
.hero-seal{animation:stamp-in .9s var(--ease) both;}

@keyframes fade-in-up{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}
.hero h1{animation:fade-in-up .8s var(--ease) .15s both;}
.hero .lead{animation:fade-in-up .8s var(--ease) .3s both;}
.hero-cta{animation:fade-in-up .8s var(--ease) .45s both;}
.hero-stats{animation:fade-in-up .8s var(--ease) .6s both;}
.coverage-panel{animation:fade-in-up .9s var(--ease) .35s both;}

.spin-slow{animation:spin 16s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
