
  @keyframes svelte-1ih5lio-shake {
    0%, 100% { transform: translateX(0); }
    15%, 45%, 75% { transform: translateX(-8px); }
    30%, 60%, 90% { transform: translateX(8px); }
  }

  .animate-shake.svelte-1ih5lio {
    animation: svelte-1ih5lio-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
  }

  @keyframes svelte-1ih5lio-success-bounce {
    0%, 100% { transform: scale(1); }
    30% { transform: scale(1.25); }
    60% { transform: scale(0.95); }
    80% { transform: scale(1.05); }
  }

  .animate-success-bounce.svelte-1ih5lio {
    animation: svelte-1ih5lio-success-bounce 0.6s ease-out;
  }

  @keyframes svelte-a0lxp-success-pop {
    0% { transform: scale(0) rotate(-10deg); opacity: 0; }
    50% { transform: scale(1.2) rotate(5deg); }
    70% { transform: scale(0.9) rotate(-3deg); }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
  }

  .animate-success-pop.svelte-a0lxp {
    animation: svelte-a0lxp-success-pop 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  @keyframes svelte-a0lxp-error-shake {
    0%, 100% { transform: translateX(0); }
    15%, 45%, 75% { transform: translateX(-10px); }
    30%, 60%, 90% { transform: translateX(10px); }
  }

  .animate-error-shake.svelte-a0lxp {
    animation: svelte-a0lxp-error-shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97);
  }

  @keyframes svelte-a0lxp-star-float {
    0% { opacity: 1; transform: translate(0, 0) scale(1); }
    100% { opacity: 0; transform: translate(var(--tx, 0), calc(var(--ty, 0) - 60px)) scale(0.5); }
  }

  .star.svelte-a0lxp {
    position: absolute;
    font-size: 1.8rem;
    animation: svelte-a0lxp-star-float 0.9s ease-out var(--delay, 0s) forwards;
  }
