/* ============================================================
 * Doseclaw — animations.css
 * ============================================================ */

/* Intersection-observer reveal */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in { opacity: 1; transform: none; }

/* Staggered for grid items */
.dc-feature-grid__items > .dc-feature,
.dc-steps__grid > .dc-step,
.dc-stats__grid > .dc-stats__item,
.dc-awards__grid > .dc-award { opacity: 0; transform: translateY(18px); transition: opacity .6s, transform .6s; }
.reveal.is-in .dc-feature,
.reveal.is-in .dc-step,
.reveal.is-in .dc-stats__item,
.reveal.is-in .dc-award { opacity: 1; transform: none; }
.reveal.is-in > *:nth-child(1) { transition-delay: .05s; }
.reveal.is-in > *:nth-child(2) { transition-delay: .12s; }
.reveal.is-in > *:nth-child(3) { transition-delay: .19s; }
.reveal.is-in > *:nth-child(4) { transition-delay: .26s; }
.reveal.is-in > *:nth-child(5) { transition-delay: .33s; }
.reveal.is-in > *:nth-child(6) { transition-delay: .40s; }

/* Floating hero accent */
@keyframes dc-float {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-10px); }
}
.dc-hero__img img { animation: dc-float 7s ease-in-out infinite; }

/* Pulse for accent CTA on hover */
@keyframes dc-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(255,107,26,.4); }
  70%  { box-shadow: 0 0 0 14px rgba(255,107,26,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,107,26,0); }
}
.dc-cta-btn:focus-visible { outline: 0; animation: dc-pulse 1.2s ease-out 1; }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal.is-in, .dc-hero__img img, .dc-cta-btn { animation: none; transition: none; opacity: 1; transform: none; }
}
