.NewChatButton {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  transform: translateY(5rem);

  transition: transform .25s cubic-bezier(0.34, 1.56, 0.64, 1);

  body.animation-level-0 & {
    transform: none !important;
    opacity: 0;

    transition: opacity .15s;

    &.revealed {
      opacity: 1;
    }
  }

  &.revealed {
    transform: translateY(0);
    @media (max-width: 600px) {
      // Force rendering in the composite layer to fix the z-index rendering issue
      transform: translate3d(0,0,10px);
      transform-style: preserve-3d;
    }
  }

  &.menu-is-open {
    &::before {
      content: '';
      display: block;
      position: absolute;
      top: -13rem;
      left: -11rem;
      right: -1rem;
      bottom: -1rem;
      z-index: -1;
    }
  }

  .is-touch-env & {
    .Menu > .backdrop {
      position: absolute;
      left: -100vw;
      right: -100vw;
      top: -100vh;
      bottom: -100vh;
    }
  }

  > .Button {
    .icon-new-chat-filled,
    .icon-close {
      position: absolute;
    }

    &:not(.active) {
      .icon-new-chat-filled {
        animation: grow-icon .4s ease-out;
      }

      .icon-close {
        animation: hide-icon .4s forwards ease-out;
      }
    }

    &.active {
      .icon-close {
        animation: grow-icon .4s ease-out;
      }

      .icon-new-chat-filled {
        animation: hide-icon .4s forwards ease-out;
      }
    }
  }
}
