.NewChatButton {
  position: absolute;
  z-index: var(--z-chat-float-button);
  right: 1rem;
  bottom: 1rem;
  transform: translateY(5rem);

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

  &[dir="rtl"] {
    right: auto;
    left: 1rem;
  }

  body.no-page-transitions & {
    transform: none !important;
    opacity: 0;
    transition: opacity 0.15s;

    &.revealed {
      opacity: 1;
    }
  }

  &.revealed {
    transform: translateY(0);
  }

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

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

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

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

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