
.shape-1{
    width: 100px;
    height: 100px;
    border: 2px solid #202020;
    position: absolute;
    left: 30px;
    top: 100px;
    transform: rotate(45deg);
    animation: rotate-reverse 6s linear infinite;
}
.shape-2{
    width: 300px;
    height: 300px;
    border: 2px solid #202020;
    position: absolute;
    right: 100px;
    top: 150px;
    transform: rotate(15deg);
    animation: rotate 30s linear infinite;
}

.shape-3{
    width: 100px;
    height: 100px;
    border: 2px dashed #202020;
    position: absolute;
    left: 100px;
    top: 300px;
}

@media(max-width:576px){
    .shape-2{
        width: 150px;
        height: 150px;
        border: 2px solid #202020;
        position: absolute;
        right: 100px;
        top: 350px;
        transform: rotate(15deg);
        animation: rotate 30s linear infinite;
    }
    .shape-1{
        width: 50px;
        height: 50px;
    }
}


/* slow rotate */
.slow-rotate {
  -webkit-animation: df-spin 30s infinite linear;
  animation: df-spin 30s infinite linear
}

@-webkit-keyframes df-spin {
  0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg)
  }

  100% {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg)
  }
}

@keyframes df-spin {
  0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg)
  }

  100% {
      -webkit-transform: rotate(359deg);
      transform: rotate(359deg)
  }
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

@keyframes rotate-reverse {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(-360deg);
    }
  }


/* Loader ============== */
.loader {
  transform: rotateZ(45deg);
  perspective: 1000px;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  color: #fff;
}

.loader:before,
.loader:after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: inherit;
  height: inherit;
  border-radius: 50%;
  transform: rotateX(70deg);
  animation: 1s spin linear infinite;
}

.loader:after {
  color: #45deaa;
  transform: rotateY(70deg);
  animation-delay: .4s;
}

@keyframes rotate {
  0% {
    transform: translate(-50%, -50%) rotateZ(0deg);
  }

  100% {
    transform: translate(-50%, -50%) rotateZ(360deg);
  }
}

@keyframes rotateccw {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  100% {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}

@keyframes spin {

  0%,
  100% {
    box-shadow: .2em 0px 0 0px currentcolor;
  }

  12% {
    box-shadow: .2em .2em 0 0 currentcolor;
  }

  25% {
    box-shadow: 0 .2em 0 0px currentcolor;
  }

  37% {
    box-shadow: -.2em .2em 0 0 currentcolor;
  }

  50% {
    box-shadow: -.2em 0 0 0 currentcolor;
  }

  62% {
    box-shadow: -.2em -.2em 0 0 currentcolor;
  }

  75% {
    box-shadow: 0px -.2em 0 0 currentcolor;
  }

  87% {
    box-shadow: .2em -.2em 0 0 currentcolor;
  }
}


/* FLOAT ANIM */
.float-anim {
  animation: float 3s ease-in-out infinite
}

/* Floating motion */
@keyframes float {
  0% {
      transform: translateY(0);
  }
  50% {
      transform: translateY(-20px);
      /* Bobbing upwards */
  }
  100% {
      transform: translateY(0);
  }
}