@mixin vertical-center() {
  position: relative;
  top: 50%;
  -webkit-transition: perspective(1px) translateY(-50%);
  -moz-transition: perspective(1px) translateY(-50%);
  -ms-transition: perspective(1px) translateY(-50%);
  -o-transition: perspective(1px) translateY(-50%);
  transition: perspective(1px) translateY(-50%);
}

@mixin gpu-acceleration() {
  &,
  & * {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    perspective: 1000px;
    -webkit-perspective: 1000px;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    -ms-transform: translateZ(0);
    -o-transform: translateZ(0);
    transform: translateZ(0);
  }
}

@mixin aspect-ratio($width, $height) {
  position: relative;

  &:before {
    display: block;
    content: "";
    width: 100%;
    padding-top: ($height / $width) * 100%;
  }

  > .content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
}