.anim-image {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  animation: curveEntry 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  transform-origin: center center;
  will-change: transform, opacity;
}

@keyframes curveEntry {
  0% {
    transform: translate(-100vw, 20vh) rotate(35deg) scale(0.8);
    opacity: 0;
  }

  10% {
    transform: translate(-90vw, 18vh) rotate(33deg) scale(0.82);
    opacity: 0.2;
  }

  20% {
    transform: translate(-80vw, 15vh) rotate(30deg) scale(0.84);
    opacity: 0.35;
  }

  30% {
    transform: translate(-70vw, 12vh) rotate(27deg) scale(0.86);
    opacity: 0.5;
  }

  40% {
    transform: translate(-60vw, 8vh) rotate(24deg) scale(0.88);
    opacity: 0.6;
  }

  50% {
    transform: translate(-50vw, 5vh) rotate(20deg) scale(0.9);
    opacity: 0.7;
  }

  60% {
    transform: translate(-40vw, 2vh) rotate(16deg) scale(0.92);
    opacity: 0.8;
  }

  70% {
    transform: translate(-30vw, 0vh) rotate(12deg) scale(0.94);
    opacity: 0.85;
  }

  80% {
    transform: translate(-20vw, -1.5vh) rotate(8deg) scale(0.96);
    opacity: 0.9;
  }

  90% {
    transform: translate(-10vw, -2.5vh) rotate(4deg) scale(0.98);
    opacity: 0.95;
  }

  95% {
    transform: translate(-5vw, -2.8vh) rotate(2deg) scale(0.99);
    opacity: 0.98;
  }

  100% {
    transform: translate(0, -3vh) rotate(0deg) scale(1);
    opacity: 1;
  }
}