.menu-item, .menu-open-button {
  background: #1f254f;
  width: 12vh;
  height: 12vh;
  line-height: 12vh;
  position: absolute;
  top: 0px;
  left: 0px;
  transform: translate3d(0, 0, 0);
  transition: transform ease-out 200ms;
}
.menu-open {
  display: none;
}
.hamburger {
  width: 25px;
  height: 3px;
  background: white;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -12.5px;
  margin-top: -1.5px;
  transition: transform 200ms;
}
.hamburger-1 {
  transform: translate3d(0, -8px, 0);
}
.hamburger-2 {
  transform: translate3d(0, 0, 0);
}
.hamburger-3 {
  transform: translate3d(0, 8px, 0);
}

.menu-open:checked + .menu-open-button .hamburger-1 {
  transform: translate3d(0, 0, 0) rotate(45deg);
}
.menu-open:checked + .menu-open-button .hamburger-2 {
  transform: translate3d(0, 0, 0) scale(0.1, 1);
}
.menu-open:checked + .menu-open-button .hamburger-3 {
  transform: translate3d(0, 0, 0) rotate(-45deg);
}

.menu {
  position: fixed;
  bottom: 2vh;
  right: 2vh;
  width: 12vh;
  height: 12vh;
  font-size: 20px;
  text-align: center;
}
.menu-item:nth-child(3) {
  transition-duration: 70ms;
}
.menu-item:nth-child(4) {
  transition-duration: 130ms;
}
.menu-item:nth-child(5) {
  transition-duration: 190ms;
}
.menu-item:nth-child(6) {
  transition-duration: 250ms;
}
.menu-item:nth-child(7) {
  transition-duration: 310ms;
}

.menu-open-button {
  z-index: 2;
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition-duration: 400ms;
  transform: scale(1.0, 1.0) translate3d(0, 0, 0);
  cursor: pointer;
}

.menu-open:checked + .menu-open-button {
  transition-timing-function: linear;
  transition-duration: 200ms;
  transform: scale(1.0, 1.0) translate3d(0, 0, 0);
}
.menu-open:checked ~ .menu-item {
  transition-timing-function: cubic-bezier(0.935, 0, 0.34, 1.33);
  border-bottom: solid 1px #eee;
}
.menu-open:checked ~ .menu-item:nth-child(3) {
  transition-duration: 160ms;
  transform: translate3d(0px, -12vh, 0);
}
.menu-open:checked ~ .menu-item:nth-child(4) {
  transition-duration: 240ms;
  transform: translate3d(0px, -24vh, 0);
}
.menu-open:checked ~ .menu-item:nth-child(5) {
  transition-duration: 320ms;
  transform: translate3d(0px, -36vh, 0);
}
.menu-open:checked ~ .menu-item:nth-child(6) {
  transition-duration: 400ms;
  transform: translate3d(0px, -48vh, 0);
}
.menu-open:checked ~ .menu-item:nth-child(7) {
  transition-duration: 480ms;
  transform: translate3d(0px, -60vh, 0);
}

.menu-open:checked ~ .menu-item:nth-child(3) span {
  transition-delay: 160ms;
}
.menu-open:checked ~ .menu-item:nth-child(4) span{
  transition-delay: 240ms;
}
.menu-open:checked ~ .menu-item:nth-child(5) span{
  transition-delay: 320ms;
}
.menu-open:checked ~ .menu-item:nth-child(6) span{
  transition-delay: 400ms;
}
.menu-open:checked ~ .menu-item:nth-child(7) span{
  transition-delay: 480ms;
}

.menu-open:checked ~ .menu-item:after {
  font-family: FontAwesome;
  display: inline-block;
  color: #eee;
}
.menu-open:checked ~ .menu-item:nth-child(3):after{
  transition-delay: 160ms;
  content: '\f041';
}
.menu-open:checked ~ .menu-item:nth-child(4):after{
  transition-delay: 240ms;
  content: '\f06c';
}
.menu-open:checked ~ .menu-item:nth-child(5):after{
  transition-delay: 320ms;
  content: '\f0e7';
}
.menu-open:checked ~ .menu-item:nth-child(6):after{
  transition-delay: 400ms;
  content: '\f002';
}
.menu-open:checked ~ .menu-item:nth-child(7):after{
  transition-delay: 480ms;
  content: '\f0a5';
}

.menu-item span{
  display: block;
  color: #1f254f;
  width: 7em;
  text-align: right;
  margin-right: 1em;
  position: absolute;
  right: 12vh;
  opacity: 0;
}
.menu-open:checked ~ .menu-item span{
  transition-duration: 200ms;
  opacity: 1;
}