/* ==========================================================================
   SHV International Solutions LLC — Animations
   CSS keyframes + scroll-reveal system + reduced-motion support
   ========================================================================== */

/* ---------- Keyframes ---------- */
@keyframes kenburns{
  0%{transform:scale(1.02) translate(0,0)}
  100%{transform:scale(1.12) translate(-1.2%,-1.2%)}
}
@keyframes slowZoom{
  0%{transform:scale(1)}
  100%{transform:scale(1.09)}
}
@keyframes tickerMove{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
@keyframes waPulse{
  0%{transform:scale(1);opacity:.85}
  70%{transform:scale(1.55);opacity:0}
  100%{transform:scale(1.55);opacity:0}
}
@keyframes pinFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}
@keyframes floatSlow{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-16px) rotate(3deg)}
}
@keyframes spinSlow{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes fadeSlideIn{
  from{opacity:0;transform:translateY(26px)}
  to{opacity:1;transform:translateY(0)}
}

/* Floating decorative shapes */
.float-shape{position:absolute;pointer-events:none;animation:floatSlow 7s ease-in-out infinite}
.spin-shape{animation:spinSlow 40s linear infinite}

/* ---------- Scroll reveal system ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .75s ease,transform .75s cubic-bezier(.22,.61,.36,1);
  transition-delay:var(--d,0s);
  will-change:opacity,transform;
}
[data-reveal="left"]{transform:translateX(-44px)}
[data-reveal="right"]{transform:translateX(44px)}
[data-reveal="zoom"]{transform:scale(.92)}
[data-reveal="fade"]{transform:none}
[data-reveal].in-view{opacity:1;transform:none}

/* Line-mask reveal for headings */
.reveal-line{overflow:hidden;display:block}
.reveal-line>span{display:block;transform:translateY(112%);transition:transform .9s cubic-bezier(.22,.61,.36,1);transition-delay:var(--d,0s)}
.reveal-line.in-view>span,
.hero-slide.active .reveal-line>span{transform:translateY(0)}

/* Staggered children reveal (grids) */
.stagger>*{opacity:0;transform:translateY(26px);transition:opacity .65s ease,transform .65s cubic-bezier(.22,.61,.36,1)}
.stagger.in-view>*{opacity:1;transform:translateY(0)}
.stagger.in-view>*:nth-child(1){transition-delay:.05s}
.stagger.in-view>*:nth-child(2){transition-delay:.14s}
.stagger.in-view>*:nth-child(3){transition-delay:.23s}
.stagger.in-view>*:nth-child(4){transition-delay:.32s}
.stagger.in-view>*:nth-child(5){transition-delay:.41s}
.stagger.in-view>*:nth-child(6){transition-delay:.5s}
.stagger.in-view>*:nth-child(7){transition-delay:.59s}
.stagger.in-view>*:nth-child(8){transition-delay:.68s}

/* Counter pop */
.stat-num.counting{animation:none}
.stat.in-view .stat-num{animation:fadeSlideIn .5s ease both}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  [data-reveal],.stagger>*,.reveal-line>span{opacity:1 !important;transform:none !important}
  .hero-slide.active .hero-media img{animation:none !important}
  .page-hero-media img{animation:none !important}
  .ticker-track{animation:none !important;flex-wrap:wrap}
  .float-wa::before{display:none}
  .float-shape,.spin-shape{animation:none !important}
}
