body {
  &.drawer-open {
    overflow: hidden;
    #app,
    #root {
      animation: fadeInBlur 150ms ease-out forwards;
      animation-delay: 200ms;
      backface-visibility: hidden;
    }
  }
  &.drawer-animate-out {
    overflow: hidden;
    #app,
    #root {
      animation: fadeOutBlur 150ms ease-out forwards;
      animation-delay: 200ms;
      backface-visibility: hidden;
    }
  }
}
.ui.drawer {
  backface-visibility: hidden;
  height: 100%;
  left: 0;
  min-width: 320px;
  position: fixed;
  top: 0;
  width: 100%;
  .drawer-container {
    animation: slideInDrawer 200ms ease-out forwards;
    backface-visibility: hidden;
    background-color: #fff;
    box-shadow: -12px 0 19px 0 rgba(0, 0, 0, 0.22);
    height: 100%;
    max-width: 768px;
    overflow-x: hidden;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%;
    &.drawer-container-inverse {
      background: #000;
      color: #fff;
      .drawer-container-inner .drawer-header {
        background: #eaeaea;
        color: #222;
      }
    }
    > div > div:last-child {
      z-index: 1000;
    }
  }
  .drawer-container-inner {
    position: relative;
    .drawer-header {
      align-items: flex-start;
      background-color: #eaeaea;
      display: flex;
      flex-wrap: wrap;
      justify-content: flex-start;
      left: 0;
      padding: 22px 0 0;
      position: fixed;
      top: 0;
      transition: box-shadow 150ms linear;
      width: 100%;
      z-index: 1000;
      .avatar-container {
        top: -6px;
      }
      .title {
        align-items: flex-start;
        display: flex;
        flex: 1 1 1px;
        justify-content: flex-start;
        margin: 0;
        padding: 0 33px 0 22px;
        width: 100%;
        &.drawer-title-truncate {
          display: block;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;
        }
      }
      .drawer-close-button-container {
        align-items: center;
        display: flex;
        flex: 0 1 1px;
        height: 44px;
        justify-content: center;
        margin: 0 22px 0 11px;
        width: 44px;
      }
      .ui.divider,
      .drawer-header-children {
        flex: 0 1 100%;
        margin: 11px 0 0;
      }
    }
    .drawer-children > :first-child {
      margin-top: 0;
    }
    .drawer-pushdown {
      margin-top: 66px;
    }
  }
  .drawer-container-inverse .drawer-header .drawer-close-button-container {
    margin: -8px 8px 0 11px;
  }
  .drawer-container-is-scrolled .drawer-header {
    box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2);
  }
  .drawer-dimmer {
    animation: fadeInDimmer 150ms ease-out forwards;
    animation-delay: 150ms;
    backface-visibility: hidden;
    background-color: rgba(255, 255, 255, 0.3);
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1002;
  }
  &.drawer-animate-out {
    .drawer-container {
      animation: slideOutDrawer 333ms forwards;
    }
    .drawer-dimmer {
      animation: fadeOutDimmer 150ms ease-out forwards;
    }
  }
}

@media only screen and (min-width: 768px) {
  .ui.drawer {
    .drawer-container-inner .drawer-header .drawer-close-button-container {
      height: 33px;
      width: 33px;
    }
    .drawer-container-inverse .drawer-header .drawer-close-button-container {
      margin: -5px 11px 0 11px;
    }
  }
}

@keyframes fadeInBlur {
  0% {
    filter: blur(0);
  }
  100% {
    filter: blur(5px);
  }
}

@keyframes fadeOutBlur {
  0% {
    filter: blur(5px);
  }
  100% {
    filter: blur(0);
  }
}

@keyframes fadeInDimmer {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes fadeOutDimmer {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes slideInDrawer {
  0% {
    transform: translate(100%, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}

@keyframes slideOutDrawer {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(100%, 0);
  }
}
