*, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  width: 100%
  overflow: hidden;
}
.absolute-center, .menu, .menu .btn .fa, .menu .btn.trigger .line {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translateX(-50%) translateY(-50%);
          transform: translateX(-50%) translateY(-50%);
}

.menu {
  width: 10%;
  height: 10%;
}
.menu .btn {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 0%;
  background: rgba(255, 255, 255, 0.15);
  opacity: 0;
  z-index: -10;
  cursor: pointer;
  -webkit-transition: opacity 1s, z-index 0.3s, -webkit-transform 1s;
  transition: opacity 1s, z-index 0.3s, -webkit-transform 1s;
  transition: opacity 1s, z-index 0.3s, transform 1s;
  transition: opacity 1s, z-index 0.3s, transform 1s, -webkit-transform 1s;
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.menu .btn .fa {
  font-size: 3em;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}
.menu .btn:hover .fa {
  color: rgba(255, 255, 255, 0.7);
}
.menu .btn.trigger {
  opacity: 1;
  z-index: 100;
  cursor: pointer;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;

}
.menu .btn.trigger:hover {
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
}
.menu .btn.trigger:hover .line {
  background-color: rgba(255, 255, 255, 0.7);
}
.menu .btn.trigger:hover .line:before, .menu .btn.trigger:hover .line:after {
  background-color: rgba(255, 255, 255, 0.7);
}
.menu .btn.trigger .line {
  width: 60%;
  height: 6px;
  background: #000;
  border-radius: 6px;
  -webkit-transition: background-color 0.3s, height 0.3s, top 0.3s;
  transition: background-color 0.3s, height 0.3s, top 0.3s;
}
.menu .btn.trigger .line:before, .menu .btn.trigger .line:after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 6px;
  background: #000;
  border-radius: 6px;
  -webkit-transition: background-color 0.3s, -webkit-transform 0.3s;
  transition: background-color 0.3s, -webkit-transform 0.3s;
  transition: background-color 0.3s, transform 0.3s;
  transition: background-color 0.3s, transform 0.3s, -webkit-transform 0.3s;
}
.menu .btn.trigger .line:before {
  top: -1px;
  -webkit-transform-origin: 15% 100%;
          transform-origin: 15% 100%;
}
.menu .btn.trigger .line:after {
  top: 12px;
  -webkit-transform-origin: 25% 30%;
          transform-origin: 25% 30%;
}
.menu .rotater {
  background: transparent;
  position: absolute;
  top: 0%;
  left: 0%;
  width: 200%;
  height: 200%;
  -webkit-transform-origin: 20% 20%;
          transform-origin: 20% 20%;
}
.menu.active .btn-icon {
  opacity: 1;
  z-index: 50;
}
.menu.active .trigger .line {
  height: 0px;
  top: 45%;
}
.menu.active .trigger .line:before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  width: 110%;
}
.menu.active .trigger .line:after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  width: 110%;
}

.rotater:nth-child(1) {
  -webkit-transform: rotate(-22.5deg);
          transform: rotate(-22.5deg);
}

.menu.active .rotater:nth-child(1) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(22.5deg);
          transform: translateY(-50%) rotate(22.5deg);
}

.rotater:nth-child(2) {
  -webkit-transform: rotate(22.5deg);
          transform: rotate(22.5deg);
}

.menu.active .rotater:nth-child(2) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-22.5deg);
          transform: translateY(-50%) rotate(-22.5deg);
}

.rotater:nth-child(3) {
  -webkit-transform: rotate(67.5deg);
          transform: rotate(67.5deg);
}

.menu.active .rotater:nth-child(3) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-67.5deg);
          transform: translateY(-50%) rotate(-67.5deg);
}

.rotater:nth-child(4) {
  -webkit-transform: rotate(112.5deg);
          transform: rotate(112.5deg);
}

.menu.active .rotater:nth-child(4) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-112.5deg);
          transform: translateY(-50%) rotate(-112.5deg);
}

.rotater:nth-child(5) {
  -webkit-transform: rotate(157.5deg);
          transform: rotate(157.5deg);
}

.menu.active .rotater:nth-child(5) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-157.5deg);
          transform: translateY(-50%) rotate(-157.5deg);
}

.rotater:nth-child(6) {
  -webkit-transform: rotate(202.5deg);
          transform: rotate(202.5deg);
}

.menu.active .rotater:nth-child(6) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-202.5deg);
          transform: translateY(-50%) rotate(-202.5deg);
}

.rotater:nth-child(7) {
  -webkit-transform: rotate(247.5deg);
          transform: rotate(247.5deg);
}

.menu.active .rotater:nth-child(7) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-247.5deg);
          transform: translateY(-50%) rotate(-247.5deg);
}

.rotater:nth-child(8) {
  -webkit-transform: rotate(292.5deg);
          transform: rotate(292.5deg);
}

.menu.active .rotater:nth-child(8) .btn-icon {
  -webkit-transform: translateY(-50%) rotate(-292.5deg);
          transform: translateY(-50%) rotate(-292.5deg);
}

    @media screen and (max-width: 980px) {
      *, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.menu {
  width: 20%;
  height: 20%;
}
.menu .rotater {
  background: transparent;
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  -webkit-transform-origin: 25% 25%;
          transform-origin: 25% 25%;
}

.menu.active .btn-icon {
  opacity: 1;
  z-index: 50;
    width: 200%;
  height: 200%;
}
.menu.active .trigger .line {
  height: 0px;
  top: 45%;
}
.menu.active .trigger .line:before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  width: 110%;
}
.menu.active .trigger .line:after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  width: 110%;
}

.rotater:nth-child(1) {
  -webkit-transform: rotate(-22.5deg);
          transform: rotate(-22.5deg);
}

}
.menu.active .btn-icon {
  opacity: 1;
  z-index: 50;
}
.menu.active .trigger .line {
  height: 0px;
  top: 45%;
}
.menu.active .trigger .line:before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.menu.active .trigger .line:after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.rotater:nth-child(1) {
  -webkit-transform: rotate(-22.5deg);
          transform: rotate(-22.5deg);
}

.menu.active .rotater:nth-child(1) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(22.5deg);
          transform: translateY(-20em) rotate(22.5deg);
}

.rotater:nth-child(2) {
  -webkit-transform: rotate(22.5deg);
          transform: rotate(22.5deg);
}

.menu.active .rotater:nth-child(2) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-22.5deg);
          transform: translateY(-20em) rotate(-22.5deg);
}

.rotater:nth-child(3) {
  -webkit-transform: rotate(67.5deg);
          transform: rotate(67.5deg);
}

.menu.active .rotater:nth-child(3) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-67.5deg);
          transform: translateY(-20em) rotate(-67.5deg);

}

.rotater:nth-child(4) {
  -webkit-transform: rotate(112.5deg);
          transform: rotate(112.5deg);

}

.menu.active .rotater:nth-child(4) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-112.5deg);
          transform: translateY(-20em) rotate(-112.5deg);
}

.rotater:nth-child(5) {
  -webkit-transform: rotate(157.5deg);
          transform: rotate(157.5deg);

}

.menu.active .rotater:nth-child(5) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-157.5deg);
          transform: translateY(-20em) rotate(-157.5deg);
}

.rotater:nth-child(6) {
  -webkit-transform: rotate(202.5deg);
          transform: rotate(202.5deg);
}

.menu.active .rotater:nth-child(6) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-202.5deg);
          transform: translateY(-20em) rotate(-202.5deg);

}

.rotater:nth-child(7) {
  -webkit-transform: rotate(247.5deg);
          transform: rotate(247.5deg);
}

.menu.active .rotater:nth-child(7) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-247.5deg);
          transform: translateY(-20em) rotate(-247.5deg);

}

.rotater:nth-child(8) {
  -webkit-transform: rotate(292.5deg);
          transform: rotate(292.5deg);
}

.menu.active .rotater:nth-child(8) .btn-icon {
  -webkit-transform: translateY(-20em) rotate(-292.5deg);
          transform: translateY(-20em) rotate(-292.5deg);
}


    }
