body {
  margin: 0;
  padding: 0;
  background: #202020 url("/texture.png");
  background-size: 150px;
  background-repeat: repeat;
}

.mod {
  position: fixed;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  perspective: 330px;
}

.project-name {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: white;
  font-size: 1.75em;
  text-transform: uppercase;
  letter-spacing: 0.5em;
  text-align: center;
  line-height: 1.5em;
  font-family: 'Courier New', monospace;
  font-weight: 300;
}

.cube {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -105px;
  margin-left: -105px;
  width: 210px;
  height: 210px;
  transform-style: preserve-3d;
  transform-origin: 105px 105px;
  animation: spinCube 9000ms linear infinite;
}

.faces {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 210px;
  height: 210px;
}

.dot {
  position: absolute;
  background: rgba(255, 255, 255, 1);
  width: 2px;
  height: 2px;
  border-radius: 50%;
}

.p1 {
  top: -1px;
  ;
  margin-left: -1px;
}

.p2 {
  top: -1px;
  ;
  left: 50%;
  margin-left: -1px;
}

.p3 {
  top: -1px;
  ;
  left: 100%;
  margin-left: -1px;
}

.p4 {
  top: 50%;
  left: -1px;
  margin-top: -1px;
}

.p5 {
  top: 50%;
  left: 50%;
  margin-top: -1px;
  margin-left: -1px;
}

.p6 {
  top: 50%;
  left: 100%;
  margin-top: -1px;
  margin-left: -1px;
}

.p7 {
  top: 100%;
  left: 0%;
  margin-top: -1px;
  margin-left: -1px;
}

.p8 {
  top: 100%;
  left: 50%;
  margin-top: -1px;
  margin-left: -1px;
}

.p9 {
  top: 100%;
  left: 100%;
  margin-top: -1px;
  margin-left: -1px;
}

.p10 {
  top: 25%;
  ;
  left: 25%;
  margin-top: -1px;
  margin-left: -1px;
}

.p11 {
  top: 25%;
  ;
  left: 75%;
  margin-top: -1px;
  margin-left: -1px;
}

.p12 {
  top: 75%;
  ;
  left: 25%;
  margin-top: -1px;
  margin-left: -1px;
}

.p13 {
  top: 75%;
  ;
  left: 75%;
  margin-top: -1px;
  margin-left: -1px;
}

.f1 {
  transform: translateZ(-105px);
  animation-delay: 0.3s;
}

.f2 {
  transform: translateZ(-84px);
  animation-delay: 0.6s;
}

.f3 {
  transform: translateZ(-63px);
  animation-delay: 0.9s;
}

.f4 {
  transform: translateZ(-42px);
  animation-delay: 1.2s;
}

.f5 {
  transform: translateZ(-21px);
  animation-delay: 1.5s;
}

.f6 {
  transform: translateZ(0px);
  animation-delay: 1.8s;
}

.f7 {
  transform: translateZ(21px);
  animation-delay: 2.1s;
}

.f8 {
  transform: translateZ(42px);
  animation-delay: 2.4s;
}

.f9 {
  transform: translateZ(63px);
  animation-delay: 2.7s;
}

.f10 {
  transform: translateZ(84px);
  animation-delay: 3s;
}

.f11 {
  transform: translateZ(105px);
  animation-delay: 3.3s;
}

@keyframes spinCube {
  0% {
    transform: rotateY(0deg) rotateX(-45deg) rotate(0deg);
  }
  50% {
    transform: rotateY(180deg) rotateX(135deg) rotate(180deg);
  }
  100% {
    transform: rotateY(360deg) rotateX(315deg) rotate(360deg);
  }
}

@keyframes spinDots {
  0% {
    transform: rotateX(0deg) rotateY(45deg);
  }
  50% {
    transform: rotateX(-180deg) rotateY(-135deg);
  }
  100% {
    transform: rotateX(-360deg) rotateY(-315deg);
  }
}

@keyframes spinFaces {
  0% {
    transform: rotateX(0deg);
  }
  50% {
    transform: rotateX(180deg);
  }
  100% {
    transform: rotateX(0deg);
  }
}
