/* animations.css — Curated Animista keyframes. Use these class names only. */

.anim-fade-in { animation: fade-in 0.5s ease both; }
@keyframes fade-in { from { opacity:0 } to { opacity:1 } }

.anim-fade-in-bottom { animation: fade-in-bottom 0.5s ease both; }
@keyframes fade-in-bottom { from { opacity:0; transform:translateY(20px) } to { opacity:1; transform:translateY(0) } }

.anim-fade-in-top { animation: fade-in-top 0.5s ease both; }
@keyframes fade-in-top { from { opacity:0; transform:translateY(-20px) } to { opacity:1; transform:translateY(0) } }

.anim-scale-in-center { animation: scale-in-center 0.4s cubic-bezier(.25,.46,.45,.94) both; }
@keyframes scale-in-center { from { transform:scale(0); opacity:1 } to { transform:scale(1); opacity:1 } }

.anim-scale-in-hor { animation: scale-in-hor 0.4s cubic-bezier(.25,.46,.45,.94) both; }
@keyframes scale-in-hor { from { transform:scaleX(0) } to { transform:scaleX(1) } }

.anim-slide-in-bottom { animation: slide-in-bottom 0.5s cubic-bezier(.25,.46,.45,.94) both; }
@keyframes slide-in-bottom { from { transform:translateY(40px); opacity:0 } to { transform:translateY(0); opacity:1 } }

.anim-slide-in-left { animation: slide-in-left 0.5s cubic-bezier(.25,.46,.45,.94) both; }
@keyframes slide-in-left { from { transform:translateX(-40px); opacity:0 } to { transform:translateX(0); opacity:1 } }

.anim-heartbeat { animation: heartbeat 1.5s ease-in-out infinite both; }
@keyframes heartbeat {
  from,to { transform:scale(1) }
  14%     { transform:scale(1.1) }
  28%     { transform:scale(1) }
  42%     { transform:scale(1.1) }
  70%     { transform:scale(1) }
}

.anim-pulsate { animation: pulsate 1s ease-in-out infinite both; }
@keyframes pulsate { 0%,100% { transform:scale(1); opacity:1 } 50% { transform:scale(1.05); opacity:.9 } }

.anim-swing-in { animation: swing-in-top 0.5s cubic-bezier(.175,.885,.32,1.275) both; }
@keyframes swing-in-top {
  0%   { transform:rotateX(-100deg); transform-origin:top; opacity:0 }
  100% { transform:rotateX(0); transform-origin:top; opacity:1 }
}

.anim-jello { animation: jello-horizontal 0.9s both; }
@keyframes jello-horizontal {
  0%,100% { transform:scale3d(1,1,1) }
  30%     { transform:scale3d(1.25,.75,1) }
  40%     { transform:scale3d(.75,1.25,1) }
  50%     { transform:scale3d(1.15,.85,1) }
  65%     { transform:scale3d(.95,1.05,1) }
  75%     { transform:scale3d(1.05,.95,1) }
}
