/* Animations — kept intentionally light and purposeful */

@keyframes fade-up {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes float-slow {
  0%, 100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-22px) translateX(10px); }
}
@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(.55); opacity: .5; }
}
@keyframes shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}
@keyframes ecg-dash {
  to { stroke-dashoffset: -1200; }
}

/* Scroll reveal (IntersectionObserver driven) */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; will-change: opacity, transform; }
[data-reveal="left"] { transform: translateX(-28px); }
[data-reveal="right"] { transform: translateX(28px); }
[data-reveal="zoom"] { transform: scale(.95); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Staggering helper */
[data-reveal-delay="1"] { transition-delay: .08s; }
[data-reveal-delay="2"] { transition-delay: .16s; }
[data-reveal-delay="3"] { transition-delay: .24s; }
[data-reveal-delay="4"] { transition-delay: .32s; }
[data-reveal-delay="5"] { transition-delay: .4s; }

/* Hero text reveal */
.hero .eyebrow, .hero h1, .hero .hero-text, .hero .hero-actions, .hero .hero-facts { animation: fade-up .8s ease both; }
.hero h1 { animation-delay: .1s; }
.hero .hero-text { animation-delay: .2s; }
.hero .hero-actions { animation-delay: .3s; }
.hero .hero-facts { animation-delay: .4s; }
.hero-card { animation: fade-up .9s .25s ease both; }

.hero-ecg path { stroke-dasharray: 300 900; animation: ecg-dash 6s linear infinite; }

/* Page transition */
.page-fade { animation: fade-in .35s ease both; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
}
