.menu_container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;

  .menu_inner {
    width: 100%;
    height: 100%;

    .bg {
      position: absolute;
      display: block;
      width: 200%;
      height: 70%;
      background-color: #1860cc;

      &.top {
        height: 100%;
        left: 2%;
        top: 0;
        transform: rotate(-45deg) translateY(-152%);
      }
      &.middle {
        height: 100%;
        top: 0%;
        left: -50%;
        transform: rotate(-45deg) scaleY(1);
      }
      &.bottom {
        top: 45%;
        left: -20%;
        transform: rotate(-45deg) translateY(25%);
      }
    }

    .close {
      position: absolute;
      top: 50px;
      right: 50px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 0px;
      cursor: pointer;

      .line {
        width: 60px;
        height: 0px;
        margin: 0;
        border-width: 0px;

        &:first-child {
          border-bottom: 3px solid #fff;
          transform: rotate(20deg);
        }
        &:last-child {
          border-bottom: 6px solid #fff;
          transform: rotate(-20deg);
        }
      }
    }

    .link_list {
      position: absolute;
      top: 50%;
      left: 50%;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 35px;
      transform: translate(-50%, -50%);
      z-index: 1;

      .link {
        color: #fff;
        text-align: center;
        font-family: Khand;
        font-size: 50px;
        font-style: normal;
        font-weight: 600;
        line-height: 100%;
        position: relative;
        display: inline-block;
        margin-bottom: 1em;
        text-decoration: none;

        &:before {
          content: "";
          position: absolute;
          left: 50%;
          bottom: -35px;
          display: inline-block;
          width: 60px;
          height: 2px;
          -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
          background-color: #fff;
          border-radius: 2px;
        }
      }

      .icon {
        display: flex;
        align-items: center;
        gap: 30px;

        svg {
          cursor: pointer;
        }
      }
    }
  }
}

.menu_container.active {
  .menu_inner.off {
    opacity: 0;
    pointer-events: none;
    animation: close_menu 1s;

    .bg.top {
      animation: menu_close_top 1s forwards;
    }
    .bg.middle {
      animation: menu_close_middle 1s forwards;
    }
    .bg.bottom {
      animation: menu_close_bottom 1s forwards;
    }

    .close {
      .line {
        &:first-child {
          animation: close_first_line 0.5s forwards;
        }
        &:last-child {
          animation: close_last_line 0.5s forwards;
        }
      }
    }

    .link_list {
      animation: close_link_list 0.5s forwards;
    }
  }
}

.menu_container.active {
  opacity: 1;
  pointer-events: all;
  z-index: 10;

  .bg.top {
    animation: menu_open_top 0.5s forwards;
  }
  .bg.middle {
    animation: menu_open_middle 0.5s forwards;
  }
  .bg.bottom {
    animation: menu_open_bottom 0.5s forwards;
  }

  .close {
    .line {
      &:first-child {
        animation: open_first_line 1s forwards;
      }
      &:last-child {
        animation: open_last_line 1s forwards;
      }
    }
  }

  .link_list {
    animation: open_link_list 1s forwards;
  }
}

@media (width <= 1300px) {
  .menu_container {
    .menu_inner {
      .bg {
        &.top {
          height: 70%;
          top: 60%;
          left: -10%;
          transform: rotate(-45deg) translateY(-152%);
        }
        &.middle {
          height: 50%;
          top: 20%;
          left: -40%;
          transform: rotate(-45deg) scaleY(1);
        }
        &.bottom {
          top: 45%;
          left: -20%;
          transform: rotate(-45deg) translateY(25%);
        }
      }
    }
  }
}

@media (width <= 768px) {
  .menu_container {
    .menu_inner {
      .bg {
        &.top {
          width: 250%;
          height: 70%;
          top: 50%;
          left: 10%;
          transform: rotate(-45deg) translateY(-152%);
        }
        &.middle {
          width: 250%;
          height: 80%;
          top: 20%;
          left: -40%;
          transform: rotate(-45deg) scaleY(1);
        }
        &.bottom {
          top: 45%;
          left: -20%;
          transform: rotate(-45deg) translateY(25%);
        }
      }

      .close {
        top: 30px;
        right: 30px;

        .line {
          width: 40px;

          &:first-child {
            border-bottom: 2px solid #fff;
          }
          &:last-child {
            border-bottom: 4px solid #fff;
          }
        }
      }

      .link_list {
        gap: 20px;

        .link {
          font-size: 24px;

          &:before {
            bottom: -25px;
            width: 40px;
          }
        }
      }
    }
  }
}

/* OPEN */
@keyframes menu_open_top {
  from {
    transform: rotate(-45deg) translateY(-152%) scaleY(0);
  }
  to {
    transform: rotate(-45deg) translateY(-152%) scaleY(1);
  }
}
@keyframes menu_open_middle {
  from {
    transform: rotate(-45deg) scaleY(0);
  }
  to {
    transform: rotate(-45deg) scaleY(1);
  }
}
@keyframes menu_open_bottom {
  from {
    transform: rotate(-45deg) translateY(25%) scaleY(0);
  }
  to {
    transform: rotate(-45deg) translateY(25%) scaleY(1);
  }
}
@keyframes open_first_line {
  0% {
    opacity: 0;
    transform: translate(50px, -50px) rotate(0deg);
  }
  50% {
    opacity: 0;
    transform: translate(50px, -50px) rotate(0deg);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(20deg);
  }
}
@keyframes open_last_line {
  0% {
    opacity: 0;
    transform: translate(50px, 50px) rotate(0deg);
  }
  50% {
    opacity: 0;
    transform: translate(50px, 50px) rotate(0deg);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(-20deg);
  }
}
@keyframes open_link_list {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

/* CLOSE */
@keyframes close_menu {
  0% {
    opacity: 1;
  }
  95% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes menu_close_top {
  0% {
    transform: rotate(-45deg) translateY(-152%) scaleY(1);
  }
  50% {
    transform: rotate(-45deg) translateY(-152%) scaleY(1);
  }
  100% {
    transform: rotate(-45deg) translateY(-152%) scaleY(0);
  }
}
@keyframes menu_close_middle {
  0% {
    transform: rotate(-45deg) scaleY(1);
  }
  50% {
    transform: rotate(-45deg) scaleY(1);
  }
  100% {
    transform: rotate(-45deg) scaleY(0);
  }
}
@keyframes menu_close_bottom {
  0% {
    transform: rotate(-45deg) translateY(25%) scaleY(1);
  }
  50% {
    transform: rotate(-45deg) translateY(25%) scaleY(1);
  }
  100% {
    transform: rotate(-45deg) translateY(25%) scaleY(0);
  }
}
@keyframes close_first_line {
  0% {
    opacity: 1;
    transform: translate(0, 0) rotate(20deg);
  }
  100% {
    opacity: 0;
    transform: translate(50px, -50px) rotate(0deg);
  }
}
@keyframes close_last_line {
  0% {
    opacity: 1;
    transform: translate(0, 0) rotate(-20deg);
  }
  100% {
    opacity: 0;
    transform: translate(50px, 50px) rotate(0deg);
  }
}
@keyframes close_link_list {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
