
/* ========================= Footer Wev Animation ======================= */

.waves {
  position: relative;
  width: 100%;
  height: 16vh;
  margin-bottom: -7px;
  min-height: 100px;
  max-height: 150px
}

.waves.waves-sm {
  height: 50px;
  min-height: 50px
}

.waves.no-animation .moving-waves>use {
  animation: none
}

.wave-rotate {
  transform: rotate(180deg)
}

.moving-waves>use {
  animation: d 40s cubic-bezier(.55, .5, .45, .5) infinite
}

.moving-waves>use:first-child {
  animation-delay: -2s;
  animation-duration: 11s
}

.moving-waves>use:nth-child(2) {
  animation-delay: -4s;
  animation-duration: 13s
}

.moving-waves>use:nth-child(3) {
  animation-delay: -3s;
  animation-duration: 15s
}

.moving-waves>use:nth-child(4) {
  animation-delay: -4s;
  animation-duration: 20s
}

.moving-waves>use:nth-child(5) {
  animation-delay: -4s;
  animation-duration: 25s
}

.moving-waves>use:nth-child(6) {
  animation-delay: -3s;
  animation-duration: 30s
}

@keyframes d {
  0% {
    transform: translate3d(-90px, 0, 0)
  }
  to {
    transform: translate3d(85px, 0, 0)
  }
}

@media (max-width:767.98px) {
  .waves {
    height: 40px;
    min-height: 40px
  }


/* ============================= Footer background animation ====================== */


@keyframes move_wave {
    0% {
        transform: translateX(0) translateZ(0) scaleY(1)
    }
    50% {
        transform: translateX(-25%) translateZ(0) scaleY(0.55)
    }
    100% {
        transform: translateX(-50%) translateZ(0) scaleY(1)
    }
}
.waveWrapper {
    overflow: hidden;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    margin: auto;
}
.waveWrapperInner {
    position: absolute;
    width: 100%;
    overflow: hidden;
    height: 100%;
    bottom: -1px;
    background-image: linear-gradient(to top, #86377b 20%, #27273c 80%);
}
.bgTop {
    z-index: 15;
    opacity: 0.5;
}
.bgMiddle {
    z-index: 10;
    opacity: 0.75;
}
.bgBottom {
    z-index: 5;
}
.wave {
    position: absolute;
    left: 0;
    width: 200%;
    height: 100%;
    background-repeat: repeat no-repeat;
    background-position: 0 bottom;
    transform-origin: center bottom;
}
.waveTop {
    background-size: 50% 100px;
}
.waveAnimation .waveTop {
  animation: move-wave 3s;
   -webkit-animation: move-wave 3s;
   -webkit-animation-delay: 1s;
   animation-delay: 1s;
}
.waveMiddle {
    background-size: 50% 120px;
}
.waveAnimation .waveMiddle {
    animation: move_wave 10s linear infinite;
}
.waveBottom {
    background-size: 50% 100px;
}
.waveAnimation .waveBottom {
    animation: move_wave 15s linear infinite;
}


/* ================ Animation =============== */

.hero {
  position: relative;
  overflow: hidden;
}

.cube {
  position: absolute;
  top: 80vh;
  left: 45vw;
  width: 10px;
  height: 10px;
  border: solid 1px #003298;
  transform-origin: top left;
  transform: scale(0) rotate(0deg) translate(-50%, -50%);
  -webkit-animation: cube 12s ease-in forwards infinite;
          animation: cube 12s ease-in forwards infinite;
}
.cube:nth-child(2n) {
  border-color: #0051f4;
}
.cube:nth-child(2) {
  -webkit-animation-delay: 2s;
          animation-delay: 2s;
  left: 25vw;
  top: 40vh;
}
.cube:nth-child(3) {
  -webkit-animation-delay: 4s;
          animation-delay: 4s;
  left: 75vw;
  top: 50vh;
}
.cube:nth-child(4) {
  -webkit-animation-delay: 6s;
          animation-delay: 6s;
  left: 90vw;
  top: 10vh;
}
.cube:nth-child(5) {
  -webkit-animation-delay: 8s;
          animation-delay: 8s;
  left: 10vw;
  top: 85vh;
}
.cube:nth-child(6) {
  -webkit-animation-delay: 10s;
          animation-delay: 10s;
  left: 50vw;
  top: 10vh;
}

@-webkit-keyframes cube {
  from {
    transform: scale(0) rotate(0deg) translate(-50%, -50%);
    opacity: 1;
  }
  to {
    transform: scale(20) rotate(960deg) translate(-50%, -50%);
    opacity: 0;
  }
}

@keyframes cube {
  from {
    transform: scale(0) rotate(0deg) translate(-50%, -50%);
    opacity: 1;
  }
  to {
    transform: scale(20) rotate(960deg) translate(-50%, -50%);
    opacity: 0;
  }
}