/* grid */
.grid {
  margin: 0;
  padding: 0;
  list-style: none;
  position: absolute;
  z-index: 0;
  width: 100%;
}
.grid::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: -moz-linear-gradient(top, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.5) 1%, rgba(0,0,0,0.6) 85%, rgba(0,0,0,1) 100%);
  background: -webkit-linear-gradient(top, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.5) 1%,rgba(0,0,0,0.6) 85%,rgba(0,0,0,1) 100%);
  background: linear-gradient(to bottom, rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.5) 1%,rgba(0,0,0,0.6) 85%,rgba(0,0,0,1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#80000000', endColorstr='#000000',GradientType=0 );
  pointer-events: none;
  z-index: 1;
}

.grid li {
  position: relative;
  float: left;
  font-size: 7em;
  line-height: 1.2;
  max-height: 290px;
  text-align: center;
  width: 16.6666667%;
  /* Fallback */
  width: -webkit-calc(100% / 6);
  width: calc(100% / 6);
}

/* Common styles for the letters */
.grid li span {
  display: inline-block;
  font-weight: 900;
  line-height: 1;
  position: relative;
  color: hsla(0, 0%, 0%, 0.6);
  -webkit-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-perspective: 550px;
  -ms-perspective: 550px;
  perspective: 550px;
  z-index: 1;
}

.grid li span::before,
.grid li span::after {
  position: absolute;
  content: attr(data-letter);
  line-height: inherit;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  -webkit-transition: all .3s;
  transition: all .3s;
}

.grid li span::before {
  text-shadow: none;
  color: hsla(0, 0%, 0%, 0.12);
}

/* Colors */

.ot-letter-right { background: #372354; }
.ot-letter-right span { text-shadow: 1px 4px 6px #e146e8, 0 0 0 hsla(0, 0%, 0%, 0.4), 1px 4px 6px #68d5e3; }
.ot-letter-right span::after { color: #871D5F; }
.ot-letter-right:hover span::after { color: #B7218D; }



/* Right */
.ot-letter-right span::before,
.ot-letter-right span::after {
  -webkit-transform-origin: 100% 50%;
  -ms-transform-origin: 100% 50%;
  transform-origin: 100% 50%;
}

.ot-letter-right span::before {
  -webkit-transform: scale(0.85,1) skew(0deg,1deg);
  -ms-transform: scale(0.85,1) skew(0deg,1deg);
  transform: scale(0.85,1) skew(0deg,1deg);
}

.ot-letter-right span::after {
  text-shadow: 1px 0px 0px rgba(51, 229, 237, 0.4), -3px 0px 1px hsla(0, 0%, 0%, 0.5);
  -webkit-transform: rotateY(15deg);
  -ms-transform: rotateY(15deg);
  transform: rotateY(15deg);
}

.ot-letter-right:hover span::before {
  -webkit-transform: scale(0.85,1) skew(0deg,-20deg);
  -ms-transform: scale(0.85,1) skew(0deg,-20deg);
  transform: scale(0.85,1) skew(0deg,-20deg);
}

.ot-letter-right:hover span::after {
  -webkit-transform: rotateY(45deg);
  -ms-transform: rotateY(45deg);
  transform: rotateY(45deg);
}


/* Example for media query: change number of items per row */
@media screen and (max-width: 1190px) {
  .grid li {
    width: 20%;
    /* Fallback */
    width: -webkit-calc(100% / 5);
    width: calc(100% / 5);
  }
}

@media screen and (max-width: 945px) {
  .grid li {
    width: 25%;
    /* Fallback */
    width: -webkit-calc(100% / 4);
    width: calc(100% / 4);
  }
}

@media screen and (max-width: 760px) {
  .grid li {
    width: 33.3333333%;
    /* Fallback */
    width: -webkit-calc(100% / 3);
    width: calc(100% / 3);
  }
}

@media screen and (max-width: 560px) {
  .grid li {
    width: 50%;
    /* Fallback */
    width: -webkit-calc(100% / 2);
    width: calc(100% / 2);
  }
}

@media screen and (max-width: 340px) {
  .grid li {
    width: 100%;
  }
}
