/* ============================================================
   Divyansh AI Labs — animations.css
   ============================================================ */

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Scroll reveal (added by JS; content is visible by default if JS fails) */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.reveal-in { opacity: 1; transform: none; }

/* Hero masked line reveal */
@keyframes lineUp {
  from { transform: translateY(110%); }
  to { transform: translateY(0); }
}
.mask-line { display: block; overflow: hidden; }
.mask-line > span {
  display: block;
  transform: translateY(110%);
  animation: lineUp .9s cubic-bezier(.22,1,.36,1) forwards;
}
.mask-line.d1 > span { animation-delay: .2s; }
.mask-line.d2 > span { animation-delay: .34s; }
.mask-line.d3 > span { animation-delay: .48s; }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-in { animation: fadeUp .6s ease forwards; }

@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-24px); }
}
.float-shape { animation: floatY 8s ease-in-out infinite; }
.float-shape.s2 { animation-duration: 6.5s; }

/* Hero fade-in for supporting elements */
@keyframes softIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}
.soft-in { opacity: 0; animation: softIn .7s ease forwards; }
.soft-in.delay-1 { animation-delay: .9s; }
.soft-in.delay-2 { animation-delay: 1.05s; }
.soft-in.delay-3 { animation-delay: 1.2s; }

/* Scroll cue */
@keyframes cue {
  0%, 100% { transform: translateY(0); opacity: .6; }
  50% { transform: translateY(8px); opacity: 1; }
}
.scroll-cue { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(255,255,255,.5); }
.scroll-cue .mouse { width: 24px; height: 40px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; display: flex; justify-content: center; padding-top: 8px; }
.scroll-cue .mouse span { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); animation: cue 1.5s infinite; }
.scroll-cue small { text-transform: uppercase; letter-spacing: .2em; font-size: 11px; }

@media (prefers-reduced-motion: reduce) {
  .mask-line > span,
  .float-shape,
  .soft-in,
  .marquee-track,
  .trusted-track { animation: none !important; opacity: 1 !important; transform: none !important; }
}
