@keyframes bounce-in {
  0% {
    transform: scale(0.85);
    opacity: 0.4;
  }
  60% {
    transform: scale(1.05);
    opacity: 1;
  }
  80% {
    transform: scale(0.97);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.animate-bounce-in {
  animation: bounce-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes thread-bounce-in {
  0% {
    transform: scale(0.97);
    opacity: 0.6;
  }
  70% {
    transform: scale(1.03);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.animate-thread-bounce-in {
  animation: thread-bounce-in 0.22s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

@keyframes thread-slidein {
  0% {
    opacity: 0;
    transform: translateY(-24px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-thread-slidein {
  animation: thread-slidein 0.52s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

