/* ============================================
   Keyframe Animations
   ============================================ */

@keyframes drift {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(28px, 18px) scale(1.06); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes slideIn {
  from { opacity: 0; transform: translateY(44px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes float {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50%      { transform: translateY(-18px) rotate(5deg); }
}

@keyframes resultReveal {
  from { opacity: 0; transform: scale(0.7) translateY(60px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes scoopDrop {
  0%   { transform: translateY(-80px); opacity: 0; }
  55%  { transform: translateY(7px); }
  75%  { transform: translateY(-3px); }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes dripGrow {
  from { transform: scaleY(0); transform-origin: top center; }
  to   { transform: scaleY(1); transform-origin: top center; }
}

@keyframes coneWobble {
  0%, 100% { transform: rotate(0); }
  20%      { transform: rotate(-3deg); }
  40%      { transform: rotate(3deg); }
  60%      { transform: rotate(-2deg); }
  80%      { transform: rotate(1deg); }
}

@keyframes confettiFall {
  to { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25%      { transform: translateX(-8px); }
  75%      { transform: translateX(8px); }
}
