:root {
  --crsl-bg: transparent;
  --box-bg: #1e272e;
  --box-shadow: #0000001c;
  --box-shadow-border: #0000000f;
  --box-border: #fff;
}

html, body {
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  background: #2f3539;
  background: -moz-radial-gradient(circle, #2f3539 0%, #1e272e 100%);
  background: -webkit-radial-gradient(circle, #2f3539 0%, #1e272e 100%);
  background: radial-gradient(circle, #2f3539 0%, #1e272e 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#2f3539",endColorstr="#1e272e",GradientType=1);
}
html *, body * {
  font-family: "Source Sans Pro", sans-serif;
}
html > p, body > p {
  font-size: 0.95em;
  font-weight: bold;
  position: absolute;
  top: 7.5%;
  width: 100%;
  letter-spacing: 4px;
  text-transform: uppercase;
  text-align: center;
  color: white;
  user-select: none;
}
html > .carousel, body > .carousel {
  padding-top: 125px;
}

.carousel {
  position: relative;
  display: block;
  width: 100%;
  box-sizing: border-box;
}
.carousel__prev, .carousel__next {
  position: absolute;
  bottom: -15%;
  transition: transform 0.25s ease;
}
.carousel__prev i, .carousel__next i {
  font-size: 60px;
  color: var(--box-border);
  cursor: pointer;
}
.carousel__prev:hover, .carousel__next:hover {
  transform: scale(1.25);
}
.carousel__prev {
  left: 40%;
}
.carousel__next {
  right: 40%;
}
.carousel__body {
  width: 100%;
  padding: 20px 0 50px 0;
  overflow: hidden;
}
.carousel__body .carousel__slider {
  position: relative;
  transition: transform 1s ease-in-out;
  background: var(--crsl-bg);
}
.carousel__body .carousel__slider__item {
  position: relative;
  display: block;
  float: left;
  box-sizing: border-box;
  margin-left: 20px;
  margin-right: 20px;
}
.carousel__body .carousel__slider__item .item__3d-frame {
  position: relative;
  width: 100%;
  height: 100%;
  transition: transform 1s ease-in-out;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}
.carousel__body .carousel__slider__item .item__3d-frame:after {
  content: "";
  position: absolute;
  bottom: -15%;
  width: 100%;
  height: 40px;
  background: var(--box-shadow);
  box-shadow: 0px 0px 5px 5px var(--box-shadow);
  transform: rotateX(90deg) translate3d(0px, -20px, 0px);
  opacity: 0.85;
}
.carousel__body .carousel__slider__item .item__3d-frame__box {
  display: flex;
  align-items: center;
  vertical-align: middle;
  text-align: center;
  position: absolute;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  border-color: var(--box-border);
  background: var(--box-bg);
  border-width: 3px;
  border-style: solid;
}
.carousel__body .carousel__slider__item .item__3d-frame__box h1 {
  font-size: 7em;
  width: 100%;
  color: var(--box-border);
}
.carousel__body .carousel__slider__item .item__3d-frame__box--right, .carousel__body .carousel__slider__item .item__3d-frame__box--left {
  top: 0;
  width: 40px;
  backface-visibility: hidden;
}
.carousel__body .carousel__slider__item .item__3d-frame__box--left {
  left: 0;
  border-left-width: 5px;
  transform: translate3d(1px, 0, -40px) rotateY(-90deg);
  transform-origin: 0%;
}
.carousel__body .carousel__slider__item .item__3d-frame__box--right {
  right: 0;
  border-right-width: 5px;
  transform: translate3d(-1px, 0, -40px) rotateY(90deg);
  transform-origin: 100%;
}