/* ============================================================
   Animaciones suaves e infantiles
   ============================================================ */

@keyframes spin { to { transform: rotate(360deg); } }

@keyframes pop {
  0%   { transform: scale(.6); opacity: 0; }
  60%  { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}

@keyframes screen-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes toast-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes count-pop {
  0%   { transform: scale(2.4); opacity: 0; }
  30%  { transform: scale(1); opacity: 1; }
  80%  { transform: scale(1); opacity: 1; }
  100% { transform: scale(.4); opacity: 0; }
}

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

@keyframes wave {
  0%, 100% { height: 16px; }
  50%      { height: 62px; }
}

@keyframes float-soft {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}
.float-soft { animation: float-soft 3s ease-in-out infinite; }

@keyframes wiggle {
  0%, 100% { transform: rotate(-3deg); }
  50%      { transform: rotate(3deg); }
}
.wiggle { animation: wiggle 1.6s ease-in-out infinite; transform-origin: center bottom; }

@keyframes sheen {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.measuring-glow {
  background-image: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.6) 50%, transparent 70%);
  background-size: 200% 100%;
  animation: sheen 1.6s linear infinite;
}

@keyframes ring-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(155,93,229,.45); }
  100% { box-shadow: 0 0 0 26px rgba(155,93,229,0); }
}
.ring-pulse { animation: ring-pulse 1.4s ease-out infinite; }

@keyframes star-twinkle {
  0%, 100% { opacity: .3; transform: scale(.8); }
  50%      { opacity: 1; transform: scale(1.15); }
}
.twinkle { animation: star-twinkle 2s ease-in-out infinite; }

@keyframes bar-grow {
  from { transform: scaleY(0); }
  to   { transform: scaleY(1); }
}
