.bounce-left {
  animation: bounceleft 0.6s forwards linear;
  opacity: 0;
}
@keyframes bounceleft {
  0% {
    opacity: 0;
    transform: translatey(-2000px);
  }
  60% {
    opacity: 1;
    transform: translatey(30px);
  }
  80% {
    opacity: 1;
    transform: translatey(-10px);
  }
  100% {
    opacity: 1;
    transform: translatey(0);
  }
}
.bounce-right {
  animation: bounceright 0.6s forwards linear;
  opacity: 1;
}
@keyframes bounceright {
  0% {
    opacity: 1;
    transform: translatey(0);
  }
  60% {
    opacity: 1;
    transform: translatey(10px);
  }
  80% {
    opacity: 1;
    transform: translatey(-30px);
  }
  100% {
    opacity: 0;
    transform: translatey(2000px);
  }
}

.delay-100 {
  animation-delay: 100ms;
}
.delay-200 {
  animation-delay: 200ms;
}
.delay-300 {
  animation-delay: 300ms;
}
.delay-400 {
  animation-delay: 400ms;
}

.radio-field input:checked::before {
  transform-origin: left top;
  animation: checkmark linear both 0.3s;
}
@keyframes checkmark {
  0% {
    height: 0px;
    width: 0;
    opacity: 0;
    right: 55px;
  }
  30% {
    height: 15px;
    width: 0;
    opacity: 1;
    right: 55px;
  }
  to {
    height: 15px;
    width: 25px;
    opacity: 1;
  }
}

.next:hover i {
  animation: left 0.4s forwards;
}

@keyframes left {
  0% {
    transform: translateX(0px);
  }
  100% {
    transform: translateX(10px);
  }
}

.prev:hover i {
  animation: right 0.4s forwards;
}

@keyframes right {
  0% {
    transform: translateX(0px);
  }
  100% {
    transform: translateX(-10px);
  }
}

/* modification */

.revealerror {
  animation: revealerror 3s linear 1;
}
@keyframes revealerror {
  0% {
    opacity: 1;
    display: block;
  }
  30% {
    opacity: 1;
    display: block;
  }
  60% {
    opacity: 0.7;
    display: block;
  }
  90% {
    opacity: 0.3;
    display: block;
  }
  100% {
    opacity: 0;
  }
}

.reveal {
  animation: reveal 0.5s linear forwards;
}

@keyframes reveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.pop {
  animation: 0.5s forwards cubic-bezier(0.39, 0.575, 0.565, 1) PopReveal;
}
@keyframes PopReveal {
  0.0% {
    opacity: 0;
    transform: translate(-50%, 100%);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}
.popReverse {
  animation: 1s forwards cubic-bezier(0.39, 0.575, 0.565, 1) popReverse;
}
@keyframes popReverse {
  0.0% {
    opacity: 1;
    transform: translate(-50%, -50%);
  }

  100% {
    opacity: 0;
    transform: translate(-50%, -100%);
  }
}
