@keyframes roll {
  10% {
    -webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
    transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
  }
  30% {
    -webkit-transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px);
    transform: rotateX(120deg) rotateY(240deg) rotateZ(0deg) translateX(40px) translateY(40px);
  }
  50% {
    -webkit-transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px);
    transform: rotateX(240deg) rotateY(480deg) rotateZ(0deg) translateX(-40px) translateY(-40px);
  }
  70% {
    -webkit-transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg);
    transform: rotateX(360deg) rotateY(720deg) rotateZ(0deg);
  }
  90% {
    -webkit-transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg);
    transform: rotateX(480deg) rotateY(960deg) rotateZ(0deg);
  }
}

.content {
  margin: auto auto;
  margin-top: 20px;
  position: relative;
  width: 400px;
  height: 400px;
  -webkit-perspective: 1500px;
  perspective: 1500px;
}

.die {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  transition: -webkit-transform 0.5s ease-out;
  transition: transform 0.5s ease-out;
  transition: transform 0.5s ease-out, -webkit-transform 0.5s ease-out;
  cursor: pointer;
  -webkit-transform: rotateX(-53deg);
  transform: rotateX(-53deg);
}

.die.rolling {
  -webkit-animation: roll 3s linear;
  animation: roll 3s linear;
}

.die[data-face="1"] {
  -webkit-transform: rotateX(-53deg) rotateY(0deg);
  transform: rotateX(-53deg) rotateY(0deg);
}

.die[data-face="2"] {
  -webkit-transform: rotateX(-53deg) rotateY(72deg);
  transform: rotateX(-53deg) rotateY(72deg);
}

.die[data-face="3"] {
  -webkit-transform: rotateX(-53deg) rotateY(144deg);
  transform: rotateX(-53deg) rotateY(144deg);
}

.die[data-face="4"] {
  -webkit-transform: rotateX(-53deg) rotateY(216deg);
  transform: rotateX(-53deg) rotateY(216deg);
}

.die[data-face="5"] {
  -webkit-transform: rotateX(-53deg) rotateY(288deg);
  transform: rotateX(-53deg) rotateY(288deg);
}

.die[data-face="16"] {
  -webkit-transform: rotateX(127deg) rotateY(-72deg);
  transform: rotateX(127deg) rotateY(-72deg);
}

.die[data-face="17"] {
  -webkit-transform: rotateX(127deg) rotateY(-144deg);
  transform: rotateX(127deg) rotateY(-144deg);
}

.die[data-face="18"] {
  -webkit-transform: rotateX(127deg) rotateY(-216deg);
  transform: rotateX(127deg) rotateY(-216deg);
}

.die[data-face="19"] {
  -webkit-transform: rotateX(127deg) rotateY(-288deg);
  transform: rotateX(127deg) rotateY(-288deg);
}

.die[data-face="20"] {
  -webkit-transform: rotateX(127deg) rotateY(-360deg);
  transform: rotateX(127deg) rotateY(-360deg);
}

.die[data-face="6"] {
  -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(0deg);
  transform: rotateX(11deg) rotateZ(180deg) rotateY(0deg);
}

.die[data-face="7"] {
  -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(72deg);
  transform: rotateX(11deg) rotateZ(180deg) rotateY(72deg);
}

.die[data-face="8"] {
  -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(144deg);
  transform: rotateX(11deg) rotateZ(180deg) rotateY(144deg);
}

.die[data-face="9"] {
  -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(216deg);
  transform: rotateX(11deg) rotateZ(180deg) rotateY(216deg);
}

.die[data-face="10"] {
  -webkit-transform: rotateX(11deg) rotateZ(180deg) rotateY(288deg);
  transform: rotateX(11deg) rotateZ(180deg) rotateY(288deg);
}

.die[data-face="11"] {
  -webkit-transform: rotateX(11deg) rotateY(-252deg);
  transform: rotateX(11deg) rotateY(-252deg);
}

.die[data-face="12"] {
  -webkit-transform: rotateX(11deg) rotateY(-324deg);
  transform: rotateX(11deg) rotateY(-324deg);
}

.die[data-face="13"] {
  -webkit-transform: rotateX(11deg) rotateY(-396deg);
  transform: rotateX(11deg) rotateY(-396deg);
}

.die[data-face="14"] {
  -webkit-transform: rotateX(11deg) rotateY(-468deg);
  transform: rotateX(11deg) rotateY(-468deg);
}

.die[data-face="15"] {
  -webkit-transform: rotateX(11deg) rotateY(-540deg);
  transform: rotateX(11deg) rotateY(-540deg);
}

.die .face {
  position: absolute;
  left: 50%;
  top: 0;
  margin: 0 -100px;
  border-left: 100px solid transparent;
  border-right: 100px solid transparent;
  border-bottom: 172px solid rgba(0,0,0,0.7);
  border-radius: 10px;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  counter-increment: steps 1;
}

.die .face .face-text {
  position: absolute;
  top: 77.4px;
  left: -50px;
  color: #55bdad;
  text-shadow: 0px 0px 40px #55bdad;
  font-size: 48px;
  text-align: center;
  line-height: 1.3;
  width: 100px;
  height: 172px;
  font-family: 'Roboto Condensed';
}

.die .face:nth-child(1) {
  -webkit-transform: rotateY(0deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
  transform: rotateY(0deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
}

.die .face:nth-child(2) {
  -webkit-transform: rotateY(-72deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
  transform: rotateY(-72deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
}

.die .face:nth-child(3) {
  -webkit-transform: rotateY(-144deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
  transform: rotateY(-144deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
}

.die .face:nth-child(4) {
  -webkit-transform: rotateY(-216deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
  transform: rotateY(-216deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
}

.die .face:nth-child(5) {
  -webkit-transform: rotateY(-288deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
  transform: rotateY(-288deg) translateZ(67px) translateY(-25.8px) rotateX(53deg);
}

.die .face:nth-child(16) {
  -webkit-transform: rotateY(-108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
  transform: rotateY(-108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
}

.die .face:nth-child(17) {
  -webkit-transform: rotateY(-36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
  transform: rotateY(-36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
}

.die .face:nth-child(18) {
  -webkit-transform: rotateY(36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
  transform: rotateY(36deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
}

.die .face:nth-child(19) {
  -webkit-transform: rotateY(108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
  transform: rotateY(108deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
}

.die .face:nth-child(20) {
  -webkit-transform: rotateY(180deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
  transform: rotateY(180deg) translateZ(67px) translateY(242.52px) rotateZ(180deg) rotateX(53deg);
}

.die .face:nth-child(6) {
  -webkit-transform: rotateY(360deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
  transform: rotateY(360deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
}

.die .face:nth-child(7) {
  -webkit-transform: rotateY(288deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
  transform: rotateY(288deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
}

.die .face:nth-child(8) {
  -webkit-transform: rotateY(216deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
  transform: rotateY(216deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
}

.die .face:nth-child(9) {
  -webkit-transform: rotateY(144deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
  transform: rotateY(144deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
}

.die .face:nth-child(10) {
  -webkit-transform: rotateY(72deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
  transform: rotateY(72deg) translateZ(150px) translateY(108.36px) rotateZ(180deg) rotateX(-11deg);
}

.die .face:nth-child(11) {
  -webkit-transform: rotateY(252deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
  transform: rotateY(252deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
}

.die .face:nth-child(12) {
  -webkit-transform: rotateY(324deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
  transform: rotateY(324deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
}

.die .face:nth-child(13) {
  -webkit-transform: rotateY(396deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
  transform: rotateY(396deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
}

.die .face:nth-child(14) {
  -webkit-transform: rotateY(468deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
  transform: rotateY(468deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
}

.die .face:nth-child(15) {
  -webkit-transform: rotateY(540deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
  transform: rotateY(540deg) translateZ(150px) translateY(108.36px) rotateX(-11deg);
}

.source {
  color: #55bdad;
  text-align: center;
  margin-top: 50px;
}

.source a {
  color: #55bdad;
}

