/* IntersectionObserver-driven animations (no scroll listeners). */

@media (prefers-reduced-motion: reduce){
  [data-animate]{opacity:1!important; transform:none!important; transition:none!important}
  .ht3d-scroll__icon, .ht3d-available__dot, .ht3d-pill__dot, .ht3d-contact__avatar{animation:none!important}
  .ht3d-hero__tilt.ht3d-tilt-3d:hover .ht3d-hero__card-inner{animation:none!important}
  .ht3d-stack__card:hover{box-shadow:none!important; border-color:rgba(255,255,255,.14)!important}
  .ht3d-stat:hover{transform:none!important; box-shadow:none!important; border-color:transparent!important; background:transparent!important}
  .ht3d-stat:hover .ht3d-stat__num{filter:none!important}
  .ht3d-stack__card:hover img{transform:none!important; filter:none!important}
  .ht3d-about .ht3d-btn--ghost:hover{box-shadow:none!important}
}

[data-animate]{
  opacity:0;
  transform: translateY(18px);
  transition: opacity .9s ease, transform .9s cubic-bezier(.17,.67,.83,.67);
  will-change: opacity, transform;
}
[data-animate].is-in{
  opacity:1;
  transform: translateY(0);
}

/* Hero stagger */
[data-animate="hero-word"]{transform: translateY(26px); transition-delay: calc(var(--stagger, 0) * 80ms)}
[data-animate="hero-card"]{transform: translateY(26px) scale(.98); transition-delay: 180ms}

/* Stagger grid */
[data-animate="stagger-up"]{
  transform: translateY(18px);
  transition-delay: calc(var(--stagger, 1) * 110ms);
}

/* Services image tilt entrance (most dramatic) */
[data-animate="services-tilt"]{
  opacity:0;
  transform: perspective(1100px) rotateX(22deg) rotateY(-18deg) translateY(20px) scale(.92);
  transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.17,.67,.83,.67);
}
[data-animate="services-tilt"].is-in{
  opacity:1;
  transform: perspective(1100px) rotateX(0deg) rotateY(0deg) translateY(0) scale(1);
}

/* About stacked images */
[data-animate="stack-left"]{transform: translateX(-24%) translateY(14px); transition-delay: 120ms}
[data-animate="stack-right"]{transform: translateX(24%) translateY(14px); transition-delay: 240ms}
[data-animate="stack-left"].is-in,
[data-animate="stack-right"].is-in{transform: translateX(0) translateY(0)}

/* About copy: staggered entrance */
#about .ht3d-about__copy > [data-animate="fade-up"]{
  transition-delay: calc(var(--stagger, 0) * 95ms);
}

/* Testimonials spin-in */
[data-animate="spin-in"]{
  opacity:0;
  transform: perspective(1100px) rotateY(-38deg) translateY(18px);
  transform-origin: left center;
  transition: opacity .9s ease, transform .9s cubic-bezier(.17,.67,.83,.67);
  transition-delay: calc(var(--stagger, 1) * 120ms);
}
[data-animate="spin-in"].is-in{
  opacity:1;
  transform: perspective(1100px) rotateY(0deg) translateY(0);
}

/* Contact shimmer headline */
[data-animate="shimmer"]{
  opacity:1;
  transform:none;
  background: linear-gradient(90deg, #fff, var(--color-accent), #fff);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip:text;
  color: transparent;
  animation: ht3dShimmer 4s linear infinite;
}

@keyframes ht3dShimmer{
  0%{background-position: 0% 0}
  100%{background-position: 200% 0}
}

