
.preloader-cube, .half1, .half2, .preloader-container, .side {
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  -o-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.preloader-container {
    position: absolute;
    width: 100%;
    height: 100%;

  z-index: -999;
  text-align: center;
  -webkit-perspective: 40000px;
  -moz-perspective: 40000px;
  perspective: 40000px;
}

.preloader-cube {
    width: 400px;
    height: 400px;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;

  -webkit-transform: rotateX(185deg) rotateY(0deg) rotateZ(45deg);
  -moz-transform: rotateX(185deg) rotateY(0deg) rotateZ(45deg);
  -ms-transform: rotateX(185deg) rotateY(0deg) rotateZ(45deg);
  -o-transform: rotateX(185deg) rotateY(0deg) rotateZ(45deg);
  transform: rotateX(185deg) rotateY(0deg) rotateZ(45deg);
  -webkit-transform-origin: center;
  -moz-transform-origin: center;
  -ms-transform-origin: center;
  -o-transform-origin: center;
  transform-origin: center;
  -webkit-animation: cube 5s forwards infinite;
  -moz-animation: cube 5s forwards infinite;
  animation: cube 5s forwards infinite;
  -webkit-animation-timing-function: cubic-bezier(0.97, 1, 0.66, 0.9);
  -moz-animation-timing-function: cubic-bezier(0.97, 1, 0.66, 0.9);
  animation-timing-function: cubic-bezier(0.97, 1, 0.66, 0.9);
}

.half1 {
  height: 160px;
  top: 0;
  position: absolute;
  -webkit-transform: rotateX(-90deg);
  -moz-transform: rotateX(-90deg);
  -ms-transform: rotateX(-90deg);
  -o-transform: rotateX(-90deg);
  transform: rotateX(-90deg);
  -webkit-transform-origin: 50% 100%;
  -moz-transform-origin: 50% 100%;
  -ms-transform-origin: 50% 100%;
  -o-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
}

.side {
  width: 80px;
  height: 80px;
  border: 1px solid #fff;
  background: transparent;
  position: absolute;
  overflow: hidden;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.side:after {
  content: '';
  position: absolute;
  height: 2px;
  width: 200px;
  background: #fff;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  -moz-transform: translate3d(-50%, -50%, 0);
  -ms-transform: translate3d(-50%, -50%, 0);
  -o-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0);
  -webkit-transform-origin: center center;
  -moz-transform-origin: center center;
  -ms-transform-origin: center center;
  -o-transform-origin: center center;
  transform-origin: center center;
  -webkit-transition: all 400ms ease-in-out;
  -moz-transition: all 400ms ease-in-out;
  transition: all 400ms ease-in-out;
}
.side:before {
  content: '';
  position: absolute;
  width: 2px;
  height: 200px;
  background: #fff;
  left: 50%;
  top: 50%;
  -webkit-transform: translate3d(-50%, -50%, 0);
  -moz-transform: translate3d(-50%, -50%, 0);
  -ms-transform: translate3d(-50%, -50%, 0);
  -o-transform: translate3d(-50%, -50%, 0);
  transform: translate3d(-50%, -50%, 0);
  -webkit-transform-origin: center center;
  -moz-transform-origin: center center;
  -ms-transform-origin: center center;
  -o-transform-origin: center center;
  transform-origin: center center;
  -webkit-transition: all 400ms ease-in-out;
  -moz-transition: all 400ms ease-in-out;
  transition: all 400ms ease-in-out;
}

.s1 {
  top: 0;
  left: 160px;
  -webkit-transform-origin: 50% 100%;
  -moz-transform-origin: 50% 100%;
  -ms-transform-origin: 50% 100%;
  -o-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transform: rotateX(-90deg);
  -moz-transform: rotateX(-90deg);
  -ms-transform: rotateX(-90deg);
  -o-transform: rotateX(-90deg);
  transform: rotateX(-90deg);
}

.s2 {
  top: 80px;
  left: 160px;
  -webkit-transform-origin: 50% 0%;
  -moz-transform-origin: 50% 0%;
  -ms-transform-origin: 50% 0%;
  -o-transform-origin: 50% 0%;
  transform-origin: 50% 0%;
}

.s3 {
  top: 160px;
  left: 160px;
  -webkit-transform-origin: 50% 0%;
  -moz-transform-origin: 50% 0%;
  -ms-transform-origin: 50% 0%;
  -o-transform-origin: 50% 0%;
  transform-origin: 50% 0%;
}

.s4 {
  top: 240px;
  left: 160px;
  -webkit-transform-origin: 50% 0%;
  -moz-transform-origin: 50% 0%;
  -ms-transform-origin: 50% 0%;
  -o-transform-origin: 50% 0%;
  transform-origin: 50% 0%;
  -webkit-transform: rotateX(90deg);
  -moz-transform: rotateX(90deg);
  -ms-transform: rotateX(90deg);
  -o-transform: rotateX(90deg);
  transform: rotateX(90deg);
}

.s5 {
  left: 80px;
  top: 80px;
  -webkit-transform-origin: 100% 50%;
  -moz-transform-origin: 100% 50%;
  -ms-transform-origin: 100% 50%;
  -o-transform-origin: 100% 50%;
  transform-origin: 100% 50%;
  -webkit-transform: rotateY(90deg);
  -moz-transform: rotateY(90deg);
  -ms-transform: rotateY(90deg);
  -o-transform: rotateY(90deg);
  transform: rotateY(90deg);
}

.s6 {
  left: 240px;
  top: 160px;
  -webkit-transform-origin: 0% 50%;
  -moz-transform-origin: 0% 50%;
  -ms-transform-origin: 0% 50%;
  -o-transform-origin: 0% 50%;
  transform-origin: 0% 50%;
  -webkit-transform: rotateY(-90deg);
  -moz-transform: rotateY(-90deg);
  -ms-transform: rotateY(-90deg);
  -o-transform: rotateY(-90deg);
  transform: rotateY(-90deg);
}

@-webkit-keyframes cube {
  0% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  12.5% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  25% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  37.5% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  50% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  62.5% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  75% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  87.5% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  100% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
}
@-moz-keyframes cube {
  0% {
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  12.5% {
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  25% {
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  37.5% {
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  50% {
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  62.5% {
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  75% {
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  87.5% {
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  100% {
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
}
@keyframes cube {
  0% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -ms-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -o-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  12.5% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -ms-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -o-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
  25% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -ms-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -o-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  37.5% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -ms-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    -o-transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
    transform: rotateX(55deg) rotateY(0deg) rotateZ(135deg);
  }
  50% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -ms-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -o-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  62.5% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -ms-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    -o-transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
    transform: rotateX(125deg) rotateY(0deg) rotateZ(135deg);
  }
  75% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -ms-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -o-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  87.5% {
    -webkit-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -moz-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -ms-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    -o-transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
    transform: rotateX(125deg) rotateY(0deg) rotateZ(45deg);
  }
  100% {
    -webkit-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -moz-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -ms-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    -o-transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
    transform: rotateX(55deg) rotateY(0deg) rotateZ(45deg);
  }
}
