.container-3d {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin: 0 auto;
  width: 50%;
}

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotateX(-37.5deg) rotateY(45deg);
            transform: rotateX(-37.5deg) rotateY(45deg);
  }
  50% {
    -webkit-transform: rotateX(-37.5deg) rotateY(405deg);
            transform: rotateX(-37.5deg) rotateY(405deg);
  }
  100% {
    -webkit-transform: rotateX(-37.5deg) rotateY(405deg);
            transform: rotateX(-37.5deg) rotateY(405deg);
  }
}

@keyframes rotate {
  0% {
    -webkit-transform: rotateX(-37.5deg) rotateY(45deg);
            transform: rotateX(-37.5deg) rotateY(45deg);
  }
  50% {
    -webkit-transform: rotateX(-37.5deg) rotateY(405deg);
            transform: rotateX(-37.5deg) rotateY(405deg);
  }
  100% {
    -webkit-transform: rotateX(-37.5deg) rotateY(405deg);
            transform: rotateX(-37.5deg) rotateY(405deg);
  }
}
.cube, .cube * {
  position: absolute;
  width: 76px;
  height: 76px;
  top: 20px;
}

.sides {
  -webkit-animation: rotate 3s ease infinite;
          animation: rotate 3s ease infinite;
  -webkit-animation-delay: .8s;
          animation-delay: .8s;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform: rotateX(-37.5deg) rotateY(45deg);
          transform: rotateX(-37.5deg) rotateY(45deg);
}

.cube .sides * {
  box-sizing: border-box;
  background-color: rgba(223,0,49,1);
  border: 5px solid #FF0036;
  color: white;
  font-size: 25px;
  text-align: center;
  line-height: 30px;
}

.cube .sides .top {
  -webkit-animation: top-animation 3s ease infinite;
          animation: top-animation 3s ease infinite;
  -webkit-animation-delay: 0ms;
          animation-delay: 0ms;
  -webkit-transform: rotateX(90deg) translateZ(75px);
          transform: rotateX(90deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes top-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(37.5px);
            transform: rotateX(90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(37.5px);
            transform: rotateX(90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
}
@keyframes top-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(37.5px);
            transform: rotateX(90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(37.5px);
            transform: rotateX(90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(90deg) translateZ(75px);
            transform: rotateX(90deg) translateZ(75px);
  }
}
.cube .sides .bottom {
  -webkit-animation: bottom-animation 3s ease infinite;
          animation: bottom-animation 3s ease infinite;
  -webkit-animation-delay: 0ms;
          animation-delay: 0ms;
  -webkit-transform: rotateX(-90deg) translateZ(75px);
          transform: rotateX(-90deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes bottom-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(37.5px);
            transform: rotateX(-90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(37.5px);
            transform: rotateX(-90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
}
@keyframes bottom-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(37.5px);
            transform: rotateX(-90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(37.5px);
            transform: rotateX(-90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateX(-90deg) translateZ(75px);
            transform: rotateX(-90deg) translateZ(75px);
  }
}
.cube .sides .front {
  -webkit-animation: front-animation 3s ease infinite;
          animation: front-animation 3s ease infinite;
  -webkit-animation-delay: 100ms;
          animation-delay: 100ms;
  -webkit-transform: rotateY(0deg) translateZ(75px);
          transform: rotateY(0deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes front-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(37.5px);
            transform: rotateY(0deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(37.5px);
            transform: rotateY(0deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
}
@keyframes front-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(37.5px);
            transform: rotateY(0deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(37.5px);
            transform: rotateY(0deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(0deg) translateZ(75px);
            transform: rotateY(0deg) translateZ(75px);
  }
}
.cube .sides .back {
  -webkit-animation: back-animation 3s ease infinite;
          animation: back-animation 3s ease infinite;
  -webkit-animation-delay: 100ms;
          animation-delay: 100ms;
  -webkit-transform: rotateY(-180deg) translateZ(75px);
          transform: rotateY(-180deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes back-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(37.5px);
            transform: rotateY(-180deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(37.5px);
            transform: rotateY(-180deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
}
@keyframes back-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(37.5px);
            transform: rotateY(-180deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(37.5px);
            transform: rotateY(-180deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(-180deg) translateZ(75px);
            transform: rotateY(-180deg) translateZ(75px);
  }
}
.cube .sides .left {
  -webkit-animation: left-animation 3s ease infinite;
          animation: left-animation 3s ease infinite;
  -webkit-animation-delay: 100ms;
          animation-delay: 100ms;
  -webkit-transform: rotateY(-90deg) translateZ(75px);
          transform: rotateY(-90deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes left-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(37.5px);
            transform: rotateY(-90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(37.5px);
            transform: rotateY(-90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
}
@keyframes left-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(37.5px);
            transform: rotateY(-90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(37.5px);
            transform: rotateY(-90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(-90deg) translateZ(75px);
            transform: rotateY(-90deg) translateZ(75px);
  }
}
.cube .sides .right {
  -webkit-animation: right-animation 3s ease infinite;
          animation: right-animation 3s ease infinite;
  -webkit-animation-delay: 100ms;
          animation-delay: 100ms;
  -webkit-transform: rotateY(90deg) translateZ(75px);
          transform: rotateY(90deg) translateZ(75px);
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}
@-webkit-keyframes right-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(37.5px);
            transform: rotateY(90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(37.5px);
            transform: rotateY(90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
}
@keyframes right-animation {
  0% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
  20% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(37.5px);
            transform: rotateY(90deg) translateZ(37.5px);
  }
  70% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(37.5px);
            transform: rotateY(90deg) translateZ(37.5px);
  }
  90% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
  100% {
    opacity: 1;
    -webkit-transform: rotateY(90deg) translateZ(75px);
            transform: rotateY(90deg) translateZ(75px);
  }
}