
    @keyframes jumpOut {
  0% {
    transform: translateY(120px) scale(0.8);
  }

  40% {
    transform: translateY(-40px) scale(1.05);
  }

  60% {
    transform: translateY(-20px) scale(0.98);
  }

  75% {
    transform: translateY(-30px) scale(1.02);
  }

  100% {
    transform: translateY(0) scale(1);
  }
    }

    .character {
      animation: jumpOut 1s ease-in-out 1;
    }

    @keyframes jumpping-person {
      0% {
        transform: translateX(-5px) translateY(0px);
      }
      50% {
        transform: translateX(5px) translateY(-10px);
      }
      100% {
        transform: translateX(-5px) translateY(0px);
      }
    }

    .jumpping-person {
      animation: jumpping-person 2s infinite ;
      transform-origin: bottom center;
      animation-timing-function: linear;
      animation-delay: 1s;
    }

.money-img {
  animation: popUp 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
             floatY 2s ease-out 1s infinite;
}

/* 第一段：跳出 */
@keyframes popUp {
  0% {
    transform: translateY(120px) scale(0.8);
  }
  40% {
    transform: translateY(-40px) scale(1.05);
  }
  60% {
    transform: translateY(-20px) scale(0.98);
  }
  75% {
    transform: translateY(-30px) scale(1.02);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}

/* 第二段：上下漂浮 */
@keyframes floatY {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-12px);
  }
  100% {
    transform: translateY(0);
  }
}

.reveal-img {
  clip-path: inset(0 50% 0 50%);
  animation: curtainReveal 2s ease-in-out forwards;
  animation-delay: 0.6s;
}

@keyframes curtainReveal {
  0% {
    clip-path: inset(0 50% 0 50%);
    transform: scale(1);
    opacity: 0.7;
  }
  50% {
    clip-path: inset(0 0 0 0);
    transform: scale(1.02);
    opacity: 1;
  }
  100% {
    clip-path: inset(0 0 0 0);
    transform: scale(1);
    opacity: 1;
  }
}