/* =========================
   LEVEL UP POP
========================= */

@keyframes pop {
  from { transform: scale(0.9); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

/* =========================
   FLOATING TEXT
========================= */

@keyframes dopamineFloat {
  0% {
    opacity: 0;
    transform: translate(0px, 8px) scale(0.6);
  }
  15% {
    opacity: 1;
    transform: translate(0px, 0px) scale(1.25);
  }
  25% {
    transform: translate(2px, 0px) scale(1);
  }
  35% {
    transform: translate(-2px, -2px) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(0px, -45px) scale(0.9);
  }
}

@keyframes questFloatingText {
  0% {
    opacity: 0;
    transform: translate(0px, 8px) scale(0.6);
  }
  6% {
    opacity: 1;
    transform: translate(0px, 0px) scale(1.16);
  }
  10% {
    opacity: 1;
    transform: translate(2px, 0px) scale(1);
  }
  82% {
    opacity: 1;
    transform: translate(0px, 0px) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(0px, -24px) scale(0.94);
  }
}

/* =========================
   GENERIC FADE IN
========================= */

@keyframes fadeInScale {
  from {
    transform: scale(0.96);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes rewardBurstIn {
  0% {
    opacity: 0;
    transform: translate3d(0, 18px, 0) scale(0.58);
    filter: blur(0);
  }
  18% {
    opacity: 1;
    transform: translate3d(0, -6px, 0) scale(1.12);
    filter: blur(0);
  }
  35% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, -10px, 0) scale(1);
  }
}

@keyframes rewardResolve {
  0% {
    opacity: 1;
    transform: translate3d(0, -10px, 0) scale(1);
    filter: blur(0);
  }
  100% {
    opacity: 0;
    transform: translate3d(0, -26px, 0) scale(0.82);
    filter: blur(0);
  }
}

@keyframes xpBubbleFly {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) scale(0.35);
  }
  12% {
    opacity: 1;
    transform: translate3d(var(--burst-x), var(--burst-y), 0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--travel-x), var(--travel-y), 0) scale(0.18);
  }
}

