/* ============================================================
   IN HEALTH — animations.css
   Keyframes · Reveal · Hero stagger · Delays · Micro-interactions
   ============================================================ */

/* ── KEYFRAMES ── */
@keyframes pulsedot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .4; transform: scale(.7); }
}
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: none; }
}
@keyframes floatBounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-10px); }
}
@keyframes tagLine {
  from { width: 0; }
  to   { width: 18px; }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(40px); }
  to   { opacity: 1; transform: none; }
}
@keyframes shimmer {
  0%   { transform: translateX(-100%) skewX(-15deg); }
  100% { transform: translateX(220%) skewX(-15deg); }
}
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,153,204,.25); }
  50%       { box-shadow: 0 0 0 10px rgba(0,153,204,0); }
}

/* ── SCROLL REVEAL ── */
.reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal-left {
  opacity: 0; transform: translateX(-32px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal-right {
  opacity: 0; transform: translateX(32px);
  transition: opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.reveal-scale {
  opacity: 0; transform: scale(.91);
  transition: opacity .6s, transform .6s cubic-bezier(.34,1.56,.64,1);
}
.reveal.visible,
.reveal-left.visible,
.reveal-right.visible,
.reveal-scale.visible { opacity: 1; transform: none; }

/* ── STAGGER DELAYS ── */
.d1 { transition-delay: .08s !important; }
.d2 { transition-delay: .16s !important; }
.d3 { transition-delay: .24s !important; }
.d4 { transition-delay: .32s !important; }
.d5 { transition-delay: .40s !important; }
.d6 { transition-delay: .48s !important; }

/* ── HERO ENTER ANIMATIONS ── */
.hero-anim-1 { animation: fadeUp .85s .08s both; }
.hero-anim-2 { animation: fadeUp .85s .20s both; }
.hero-anim-3 { animation: fadeUp .85s .32s both; }
.hero-anim-4 { animation: fadeUp .85s .44s both; }
.hero-anim-5 { animation: fadeUp .85s .56s both; }

/* ── FLOAT CARDS BOUNCE ── */
.float-card           { animation: floatBounce 4s ease-in-out infinite; }
.float-card.tr        { animation-delay: 1.8s; }

/* ── BUTTON SHIMMER ── */
.btn-ih::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(255,255,255,.18);
  transform: translateX(-100%) skewX(-15deg);
  transition: none;
}
.btn-ih:hover::after { animation: shimmer .45s forwards; }

/* ── CARD HOVER — spring lift ── */
.ih-card {
  transition: transform .32s cubic-bezier(.34,1.56,.64,1),
              box-shadow .3s, border-color .3s !important;
}
.ih-card:hover { transform: translateY(-8px) scale(1.012) !important; }

/* ── GLOW PULSE on CTA ── */
.btn-ih { animation: glowPulse 2.5s ease-in-out infinite; }
.btn-ih:hover { animation: none; }

/* ── SECTION TAG animation ── */
.sec-tag::before { animation: tagLine .8s .3s both; }
