/* Global animated particle background — sits fixed behind every page */
#particle-field{
  position:fixed;
  top:0; left:0;
  width:100vw; height:100vh;
  z-index:-1;
  opacity:.4;
  pointer-events:none;
}

/* Scroll reveal */
[data-reveal]{
  opacity:0; transform:translateY(28px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }
[data-reveal="left"]{ transform:translateX(-32px); }
[data-reveal="left"].is-visible{ transform:translateX(0); }
[data-reveal="right"]{ transform:translateX(32px); }
[data-reveal="right"].is-visible{ transform:translateX(0); }
[data-reveal="scale"]{ transform:scale(.92); }
[data-reveal="scale"].is-visible{ transform:scale(1); }

/* stagger helper via inline --d */
[data-reveal]{ transition-delay:var(--d,0ms); }

/* Tilt card */
.tilt-card{
  transform-style:preserve-3d;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  will-change:transform;
}

/* Floating ambient shapes */
@keyframes float-y{
  0%,100%{ transform:translateY(0) rotate(0deg); }
  50%{ transform:translateY(-16px) rotate(3deg); }
}
.float{ animation:float-y 6s ease-in-out infinite; }
.float-slow{ animation:float-y 9s ease-in-out infinite; }
.float-delay{ animation-delay:1.4s; }

/* Marquee */
@keyframes marquee-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.marquee-track{ display:flex; width:max-content; animation:marquee-scroll 26s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state:paused; }

/* Gradient pulse for CTAs / glows */
@keyframes pulse-glow{
  0%,100%{ opacity:.5; transform:scale(1); }
  50%{ opacity:.9; transform:scale(1.06); }
}
.pulse-glow{ animation:pulse-glow 3.4s ease-in-out infinite;/}

/* Count-up number */
.count-up{ font-variant-numeric:tabular-nums; }

/* Cursor glow (desktop only) */
#cursor-glow{
  position:fixed; top:0; left:0; width:340px; height:340px; border-radius:50%;
  background:radial-gradient(circle,rgba(47,121,240,.14),transparent 70%);
  pointer-events:none; z-index:5; transform:translate(-50%,-50%);
  transition:opacity .3s ease;
  opacity:0;
}
@media (hover:hover) and (pointer:fine){ #cursor-glow.is-active{ opacity:1; } }
