.modal-loading {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url("../img/bg.jpeg");
  background-size: cover;
}

.loader {
  position: relative;
  width: 130px;
  height: 100px;
  background-repeat: no-repeat;
  background-image:
    linear-gradient(rgb(118, 188, 33), rgb(118, 188, 33)),
    linear-gradient(rgb(168, 218, 103), rgb(205, 235, 176)),
    linear-gradient(rgb(168, 218, 103), rgb(205, 235, 176));
  background-size:
    80px 70px,
    30px 50px,
    30px 30px;
  background-position:
    0 0,
    80px 20px,
    100px 40px;
}

.loader:after {
  content: "";
  position: absolute;
  bottom: 10px;
  left: 12px;
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  box-sizing: content-box;
  border: 10px solid #000;
  box-shadow:
    78px 0 0 -10px #fff,
    78px 0 #000;
  animation: wheelSk 0.75s ease-in infinite alternate;
}

.loader:before {
  content: "";
  position: absolute;
  right: 100%;
  top: 0px;
  height: 70px;
  width: 70px;
  background-image:
    linear-gradient(rgb(118, 188, 33) 45px, transparent 0),
    linear-gradient(rgb(118, 188, 33) 45px, transparent 0),
    linear-gradient(rgb(118, 188, 33) 45px, transparent 0);
  background-repeat: no-repeat;
  background-size: 30px 4px;
  background-position:
    0px 11px,
    8px 35px,
    0px 60px;
  animation: lineDropping 0.75s linear infinite;
}

@keyframes wheelSk {
  0%,
  50%,
  100% {
    transform: translatey(0);
  }

  30%,
  90% {
    transform: translatey(-3px);
  }
}

@keyframes lineDropping {
  0% {
    background-position:
      100px 11px,
      115px 35px,
      105px 60px;
    opacity: 1;
  }

  50% {
    background-position:
      0px 11px,
      20px 35px,
      5px 60px;
  }

  60% {
    background-position:
      -30px 11px,
      0px 35px,
      -10px 60px;
  }

  75%,
  100% {
    background-position:
      -30px 11px,
      -30px 35px,
      -30px 60px;
    opacity: 0;
  }
}

.loader-trail {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 130px;
  height: 100px;
  overflow: hidden;
  z-index: -1;
}

.loader-trail::before,
.loader-trail::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 130px;
  height: 4px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.2), transparent);
  animation: trail 1s linear infinite;
}

.loader-trail::after {
  top: auto;
  bottom: 50%;
}

@keyframes trail {
  0% {
    transform: translateX(130px);
  }

  100% {
    transform: translateX(-130px);
  }
}
