.tms-offcanvas {
  position: fixed;
  z-index: 501;
  margin: 0 auto;
  pointer-events: none;
  min-height: 1em;
  min-width: 1em;
  max-width: 80%;
  &_mask-transparent.active ~ .tms-offcanvas-mask { opacity: 0;}
  &-inner {
    opacity: 0;
    transition-property: all;
    transition-duration: 300ms;
  }
  &-center {
    top: 50%; 
    left: 50%; 
    transform: translate3d(-50%, -50%, 0);
    .tms-offcanvas-inner {
      transition-duration: 500ms;
      transition-timing-function: cubic-bezier(0.4, 0, 0, 1.5);
      &__slide-in-top{ transform: translate3d(0, -100%, 0); }
      &__slide-in-bottom{ transform: translate3d(0, 100%, 0); }
      &__zoom-in{ transform: translate3d(0, 0, 0) scale3d(1.25, 1.25, 1.25); }
    }
  }
  &-top {
    top: 0; 
    left: 0; 
    right: 0; 
    bottom: auto; 
    transform: translate3d(0, 0, 0);
    .tms-offcanvas-inner{  transform: translate3d(0, -100%, 0); }
  }
  &-bottom {
    top: auto; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    transform: translate3d(0, 0, 0);
    .tms-offcanvas-inner{ transform: translate3d(0, 100%, 0); }
  }
  &-left {
    top: 0; 
    left: 0; 
    right: auto; 
    bottom: 0; 
    transform: translate3d(0, 0, 0);
    .tms-offcanvas-inner{ 
      transform: translate3d(-100%, 0, 0);  
      height: 100%;
    }
  }
  &-right {
    top: 0; 
    left: auto; 
    right: 0; 
    bottom: 0; 
    transform: translate3d(0, 0, 0);
    .tms-offcanvas-inner{ 
      transform: translate3d(100%, 0, 0); 
      height: 100%;  
    }
  }

  &-top,&-bottom,&-center,&-left,&-right {
    &__show {
      .tms-offcanvas-inner {
        transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
        opacity: 1;
      }
      ~ .tms-offcanvas-mask { opacity: .6; }
    }
  }
  &.active {
    pointer-events: auto;
    ~ .tms-offcanvas-mask {
      opacity: .6;
      pointer-events: auto;
      z-index: 500;
    }
  }
  &-mask {
    position: fixed;
    z-index: 10;
    top: 0;
    bottom: 0; 
    left: 0; 
    right: 0;
    pointer-events: none;
    background-color: #000;
    opacity: 0;
    transition: opacity .4s linear;
    transform: translateZ(0);
  }
}
