.navbar {
  position: fixed;
  overflow: hidden;
  z-index: -1;
  transition: z-index .2s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.navbar.navbar--open {
  z-index: 99;
}

.navbar.navbar--open .navbar__panel {
  transform: none;
}

.navbar.navbar--open .navbar__overlay {
  display: block;
}

.navbar__panel {
  position: relative;
  width: 312px;
  height: 100vh;
  padding: 20px;
  color: #000;
  transform: translateX(-100%);
  transition: transform .2s cubic-bezier(0.22, 0.61, 0.36, 1);
  background-color: rgb(255, 255, 255);
}

.navbar__nav > a {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  line-height: 1.5;
}

.navbar__close-btn {
  cursor: pointer;
  margin-bottom: 20px;
}

.navbar__overlay {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  background: rgba(0,0,0,.4);
}