.assemble-wrap {
  display: inline-block;
  width: 100%;
  -webkit-perspective: 300px; /* Safari 4-8 */
  perspective: 300px;
  opacity: 0;
}
.assemble-wrap .assemble-panel {
  opacity: 0;
}
.stacks_top,
.stacks_out,
.stacks_in,
.stacks_row {
  overflow: visible;
}
/* ---------
 Zoom & Rotate
----------- */
.assemble-wrap.zoom-and-rotate .assemble-panel {
  transform: rotateZ(30deg) rotateX(30deg) rotateY(-25deg)
    translate3d(0px, 0px, -1000px);
}
/* ---------
Zoom & Rotate / No fade
----------- */
.assemble-wrap.zoom-and-rotate-no-fade .assemble-panel {
  opacity: 1;
  transform: rotateZ(30deg) rotateX(30deg) rotateY(-25deg)
    translate3d(0px, 0px, -1000px);
}
/* ---------
Explode
----------- */
.assemble-wrap.expand-x .assemble-panel {
  transform: rotateZ(00deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, 0px);
  max-width: 0;
  overflow: hidden;
}
.assemble-wrap.expand-x .assemble-panel.assembled {
  max-width: 100%;
  overflow: inherit;
}
/* ---------
Zoom In Long
----------- */
.assemble-wrap.zoom-in-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, -200px);
}
/* ---------
 Zoom Out Long
----------- */
.assemble-wrap.zoom-out-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, 200px);
}
/* ---------
 Slide Left Long
----------- */
.assemble-wrap.slide-left-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(500px, 0px, 0px);
}
/* ---------
Slide Right Long
----------- */
.assemble-wrap.slide-right-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(-500px, 0px, 0px);
}
/* ---------
Slide up Long
----------- */
.assemble-wrap.slide-up-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 500px, 0px);
}
/* ---------
Slide down Long
----------- */
.assemble-wrap.slide-down-long .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, -500px, 0px);
}
/* ---------
Flip X
----------- */
.assemble-wrap.flip-x {
  -webkit-perspective: 1000px; /* Safari 4-8 */
  perspective: 1000px;
}
.assemble-wrap.flip-x .assemble-panel {
  transform: rotateZ(0deg) rotateX(180deg) rotateY(0deg)
    translate3d(0px, 0px, 0px);
}
/* ---------
Flip Y
----------- */
.assemble-wrap.flip-y {
  -webkit-perspective: 1000px; /* Safari 4-8 */
  perspective: 1000px;
}
.assemble-wrap.flip-y .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(180deg)
    translate3d(0px, 0px, 0px);
}
/* ---------
Rotate
----------- */
.assemble-wrap.rotate {
  -webkit-perspective: 1000px; /* Safari 4-8 */
  perspective: 1000px;
}
.assemble-wrap.rotate .assemble-panel {
  transform: rotateZ(90deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, 0px);
}
/* ---------
Zoom In Short
----------- */
.assemble-wrap.zoom-in-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, -50px);
}
/* ---------
Zoom Out Short
----------- */
.assemble-wrap.zoom-out-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, 50px);
}
/* ---------
Slide Left Short
----------- */
.assemble-wrap.slide-left-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(50px, 0px, 0px);
}
/* ---------
Slide Right Short
----------- */
.assemble-wrap.slide-right-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(-50px, 0px, 0px);
}
/* ---------
Slide down Short
----------- */
.assemble-wrap.slide-down-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, -50px, 0px);
}
/* ---------
Slide up Short
----------- */
.assemble-wrap.slide-up-short .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 50px, 0px);
}
/* ---------
3D Rotate
----------- */
.assemble-wrap.rotate-x-3d .assemble-panel {
  transform: rotateZ(0deg) rotateX(-90deg) rotateY(0deg)
    translate3d(0px, 100px, -200px);
}
.assemble-wrap.rotate-y-3d .assemble-panel {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(-90deg)
    translate3d(100px, 0px, -200px);
}
.assemble-wrap.rotate-z-3d .assemble-panel {
  transform: rotateZ(-90deg) rotateX(0deg) rotateY(0deg)
    translate3d(100px, 0px, -200px);
}
/* ---------
Complete
----------- */
.assemble-wrap .assemble-panel.assembled {
  transform: rotateZ(0deg) rotateX(0deg) rotateY(0deg)
    translate3d(0px, 0px, 0px);
  opacity: 1;
  transition: transform 1500ms ease, opacity 1500ms ease;
  will-change: transform;
}
/* ---------
Bounce
----------- */
.assemble-wrap.assemble-bounce .assemble-panel.assembled {
  animation: assemble-bounce 1500ms linear;
}
@-webkit-keyframes assemble-bounce {
  from,
  50%,
  60%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
  0.000000% {
    opacity: 0.3;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
  28.570000% {
    opacity: 0.6;
    -webkit-transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
    -webkit-transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
    transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
  }
  42.855000% {
    opacity: 1;
    -webkit-transform: translate3d(-0px, 19.98px, -0px) rotateX(-0deg)
      rotateY(-0deg) rotateZ(-0deg) scale(1.2, 1) skew(-0deg, -0deg);
    transform: translate3d(-0px, 19.98px, -0px) rotateX(-0deg) rotateY(-0deg)
      rotateZ(-0deg) scale(1.2, 1) skew(-0deg, -0deg);
  }
  57.139999% {
    opacity: 1;
    -webkit-transform: translate3d(0px, -9.96px, 0px) rotateX(0deg)
      rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
    transform: translate3d(0px, -9.96px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) skew(0deg, 0deg);
  }
  71.425003% {
    opacity: 1;
    -webkit-transform: translate3d(-0px, 4.98px, -0px) rotateX(-0deg)
      rotateY(-0deg) rotateZ(-0deg) scale(1.1, 1) skew(-0deg, -0deg);
    transform: translate3d(-0px, 4.98px, -0px) rotateX(-0deg) rotateY(-0deg)
      rotateZ(-0deg) scale(1.1, 1) skew(-0deg, -0deg);
  }
  85.709999% {
    -webkit-transform: translate3d(0px, -2.52px, 0px) rotateX(0deg)
      rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
    transform: translate3d(0px, -2.52px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) skew(0deg, 0deg);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
}
@keyframes assemble-bounce {
  from,
  50%,
  60%,
  90%,
  to {
    -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
  0.000000% {
    opacity: 0.3;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
  28.570000% {
    opacity: 0.6;
    -webkit-transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
    -webkit-transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
    transform: translate3d(0px, -60px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) scale(0.8, 1) skew(0deg, 0deg);
  }
  42.855000% {
    opacity: 1;
    -webkit-transform: translate3d(-0px, 19.98px, -0px) rotateX(-0deg)
      rotateY(-0deg) rotateZ(-0deg) scale(1.2, 1) skew(-0deg, -0deg);
    transform: translate3d(-0px, 19.98px, -0px) rotateX(-0deg) rotateY(-0deg)
      rotateZ(-0deg) scale(1.2, 1) skew(-0deg, -0deg);
  }
  57.139999% {
    opacity: 1;
    -webkit-transform: translate3d(0px, -9.96px, 0px) rotateX(0deg)
      rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
    transform: translate3d(0px, -9.96px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) skew(0deg, 0deg);
  }
  71.425003% {
    opacity: 1;
    -webkit-transform: translate3d(-0px, 4.98px, -0px) rotateX(-0deg)
      rotateY(-0deg) rotateZ(-0deg) scale(1.1, 1) skew(-0deg, -0deg);
    transform: translate3d(-0px, 4.98px, -0px) rotateX(-0deg) rotateY(-0deg)
      rotateZ(-0deg) scale(1.1, 1) skew(-0deg, -0deg);
  }
  85.709999% {
    -webkit-transform: translate3d(0px, -2.52px, 0px) rotateX(0deg)
      rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg);
    transform: translate3d(0px, -2.52px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg) skew(0deg, 0deg);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    -webkit-transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
    transform: translate3d(0px, 0px, 0px) rotateX(0deg) rotateY(0deg)
      rotateZ(0deg);
  }
}
