.logo {
  margin-top: 50px;
  width: 600px;
  height: 600px;
  position: relative;
}

.logo .circle-bottom, .logo .circle-top {
  position: absolute;
  top: 100px;
  left: 100px;
  right: 100px;
  bottom: 100px;
  overflow: visible;
}

.logo .circle-bottom {
  border: 54px solid #12c2dc;
  border-radius: 50%;
  -webkit-clip-path: polygon(-10% 110%, 50% 50%, 110% 110%);
  clip-path: polygon(-10% 110%, 50% 50%, 110% 110%);
}

.logo .circle-top {
  border: 54px solid #1872fc;
  border-radius: 50%;
}

.logo .circle-bottom, .logo .circle-top {
    box-shadow: 0px 0px 20px 2px rgba(255, 255, 255,1), inset 0px 0px 20px 2px rgba(255, 255, 255,1);
}

.logo .vibe-piece {
    width: 48px;
    height: 48px;
    position: absolute;
    top: 0;
    left: 0;
    background-color: #12c2dc;
    -webkit-box-shadow: 0px 0px 4px 2px rgba(255, 255, 255,1);
    -moz-box-shadow: 0px 0px 4px 2px rgba(255, 255, 255,1);
    box-shadow: 0px 0px 4px 2px rgba(255, 255, 255,1);

    animation-duration: 30s;
    animation-delay: 5s;
    animation-iteration-count: 100;
}

.logo .vibe-piece:nth-of-type(2) {
    animation-name: loop1;
    transform: translate(90px, 90px);
}

.logo .vibe-piece:nth-of-type(3) {
    animation-name: loop2;
    transform: translate(528px, 274px);
}

.logo .vibe-piece:nth-of-type(4) {
    animation-name: loop3;
    transform: translate(90px, 460px);
}

.logo .fix-up, .logo .fix-up-rev {
    position: absolute;
    left: 99px;
    top: 96px;
    max-width: 405px;
    width: auto;
    height: auto;
    display: block
}

.logo .fix-up-rev {
    transform: scaleX(-1);
    left: 96px;
}

@keyframes loop1 {
  0% {
    transform: translate(90px, 90px) rotate(0);
  }
  5%, 6% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  11%, 12% {
    transform: translate(274px, 32px) rotate(0);
  }
  17%, 18% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  23%, 24% {
    transform:  translate(470px, 90px) rotate(0);
  }
  29%, 30% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  35%, 100% {
    transform: translate(528px, 274px) rotate(0);
  }
}

@keyframes loop2 {
  0% {
    transform: translate(528px, 274px) rotate(0);
  }
  5%, 6% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  11%, 12% {
    transform:  translate(470px, 470px) rotate(0);
  }
  17%, 18% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  23%, 24% {
    transform: translate(274px, 528px) rotate(0);
  }
  29%, 30% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  35%, 100% {
    transform: translate(90px, 460px) rotate(0);
  }
}

@keyframes loop3 {
  0% {
    transform: translate(90px, 460px) rotate(0);
  }
  5%, 6% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  11%, 12% {
    transform:  translate(50px, 390px) rotate(0);
  }
  17%, 18% {
    transform:  translate(274px, 274px) rotate(180deg);
  }
  23%, 24% {
    transform: translate(50px, 160px) rotate(0);
  }
  29%, 30% {
    transform:  translate(274px, 274px)  rotate(180deg);
  }
  35%, 100% {
    transform: translate(90px, 90px) rotate(0);
  }
}

@media (max-width: 992px) {
    .logo {
        width: 300px;
        height: 300px;
    }

    .logo .circle-bottom, .logo .circle-top {
        position: absolute;
        top: 50px;
        left: 50px;
        right: 50px;
        bottom: 50px;
    }

    .logo .circle-bottom, .logo .circle-top {
        border-width: 27px;
    }

    .logo .vibe-piece {
        width: 24px;
        height: 24px;
        position: absolute;
    }

    .logo .fix-up, .logo .fix-up-rev {
        left: 50px;
        top: 49px;
        max-width: 202px;
    }
    .logo .fix-up-rev {
        left: 48px;
    }

    .logo .vibe-piece:nth-of-type(2) {
        transform: translate(45px, 45px);
    }

    .logo .vibe-piece:nth-of-type(3) {
        transform: translate(264px, 137px);
    }

    .logo .vibe-piece:nth-of-type(4) {
        transform: translate(45px, 230px);
    }

    @keyframes loop1 {
      0% {
        transform: translate(45px, 45px) rotate(0);
      }
      5%, 6% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      11%, 12% {
        transform: translate(137px, 16px) rotate(0);
      }
      17%, 18% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      23%, 24% {
        transform:  translate(235px, 45px) rotate(0);
      }
      29%, 30% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      35%, 100% {
        transform: translate(264px, 137px) rotate(0);
      }
    }

    @keyframes loop2 {
      0% {
        transform: translate(264px, 137px) rotate(0);
      }
      5%, 6% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      11%, 12% {
        transform:  translate(235px, 235px) rotate(0);
      }
      17%, 18% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      23%, 24% {
        transform: translate(137px, 264px) rotate(0);
      }
      29%, 30% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      35%, 100% {
        transform: translate(45px, 230px) rotate(0);
      }
    }

    @keyframes loop3 {
      0% {
        transform: translate(45px, 230px) rotate(0);
      }
      5%, 6% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      11%, 12% {
        transform:  translate(25px, 195px) rotate(0);
      }
      17%, 18% {
        transform:  translate(137px, 137px) rotate(180deg);
      }
      23%, 24% {
        transform: translate(25px, 80px) rotate(0);
      }
      29%, 30% {
        transform:  translate(137px, 137px)  rotate(180deg);
      }
      35%, 100% {
        transform: translate(45px, 45px) rotate(0);
      }
    }
}
