/* =========================================================
   HEAL AI — animations.css
   Keyframes + motion-driven interaction states.
   ========================================================= */

@keyframes hai-float{
  0%,100%{transform:translate(0,0);}
  50%{transform:translate(30px,26px);}
}
@keyframes hai-pulse-dot{
  0%,100%{box-shadow:0 0 0 0 rgba(31,163,148,.5);}
  50%{box-shadow:0 0 0 6px rgba(31,163,148,0);}
}
@keyframes hai-bounce{
  0%,60%,100%{transform:translateY(0); opacity:.5;}
  30%{transform:translateY(-5px); opacity:1;}
}
@keyframes hai-shimmer{
  0%{background-position:200% 0;}
  100%{background-position:-200% 0;}
}
@keyframes hai-pulse-scale{
  0%,100%{transform:scale(1); opacity:1;}
  50%{transform:scale(1.12); opacity:.7;}
}
@keyframes hai-fade-up{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes hai-fade-in{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes hai-pop-in{
  0%{opacity:0; transform:scale(.92) translateY(6px);}
  100%{opacity:1; transform:scale(1) translateY(0);}
}
@keyframes hai-ripple{
  from{transform:scale(0); opacity:.45;}
  to{transform:scale(2.6); opacity:0;}
}

/* reveal-on-scroll (used with IntersectionObserver in script.js) */
.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-delay-1.in{transition-delay:.06s;}
.reveal-delay-2.in{transition-delay:.12s;}
.reveal-delay-3.in{transition-delay:.18s;}

/* message + chip entrance */
.msg-row{animation:hai-fade-up .4s cubic-bezier(.2,.8,.2,1) both;}
.typing-row{animation:hai-fade-in .3s ease both;}

/* hero elements */
.hai-eyebrow, .hai-hero h1, .hai-hero-sub{animation:hai-fade-up .7s cubic-bezier(.2,.8,.2,1) both;}
.hai-hero h1{animation-delay:.08s;}
.hai-hero-sub{animation-delay:.16s;}

/* mode cards staggered pop-in */
.mode-card{animation:hai-pop-in .5s cubic-bezier(.2,.8,.2,1) both;}
.mode-card:nth-child(1){animation-delay:.02s;}
.mode-card:nth-child(2){animation-delay:.07s;}
.mode-card:nth-child(3){animation-delay:.12s;}
.mode-card:nth-child(4){animation-delay:.17s;}
.mode-card:nth-child(5){animation-delay:.22s;}
.mode-card:nth-child(6){animation-delay:.27s;}

/* ripple effect container (JS adds .ripple span on click) */
.ripple-host{position:relative; overflow:hidden;}
.ripple-el{position:absolute; border-radius:50%; background:rgba(200,166,75,.35); pointer-events:none; animation:hai-ripple .6s ease-out forwards;}
html[data-theme="dark"] .ripple-el{background:rgba(200,166,75,.28);}

/* send button micro press */
.send-btn:active{transform:scale(.9);}

/* floating chat panel entrance */
.chat-panel, .hai-sidebar{animation:hai-fade-up .6s cubic-bezier(.2,.8,.2,1) both; animation-delay:.1s;}

/* 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;}
}
