.rotating {
    display: inline-block;
    -webkit-transform-style: preserve-3d;
    -moz-transform-style: preserve-3d;
    -ms-transform-style: preserve-3d;
    -o-transform-style: preserve-3d;
    transform-style: preserve-3d;
    -webkit-transform: rotateX(0) rotateY(0) rotateZ(0);
    -moz-transform: rotateX(0) rotateY(0) rotateZ(0);
    -ms-transform: rotateX(0) rotateY(0) rotateZ(0);
    -o-transform: rotateX(0) rotateY(0) rotateZ(0);
    transform: rotateX(0) rotateY(0) rotateZ(0);
    -webkit-transition: 0.5s;
    -moz-transition: 0.5s;
    -ms-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s;
    -webkit-transform-origin-x: 50%;
}

.rotating.flip {
    position: relative;
}

.rotating .front, .rotating .back {
    left: 0;
    top: 0;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -o-backface-visibility: hidden;
    backface-visibility: hidden;
}

.rotating .front {
    position: absolute;
    display: inline-block;
    -webkit-transform: translate3d(0, 0, 1px);
    -moz-transform: translate3d(0, 0, 1px);
    -ms-transform: translate3d(0, 0, 1px);
    -o-transform: translate3d(0, 0, 1px);
    transform: translate3d(0, 0, 1px);
}

.rotating.flip .front {
    z-index: 1;
}

.rotating .back {
    display: block;
    opacity: 0;
}

.rotating.spin {
    -webkit-transform: rotate(360deg) scale(0);
    -moz-transform: rotate(360deg) scale(0);
    -ms-transform: rotate(360deg) scale(0);
    -o-transform: rotate(360deg) scale(0);
    transform: rotate(360deg) scale(0);
}


.rotating.flip .back {
    z-index: 2;
    display: block;
    opacity: 1;

    -webkit-transform: rotateY(180deg) translate3d(0, 0, 0);
    -moz-transform: rotateY(180deg) translate3d(0, 0, 0);
    -ms-transform: rotateY(180deg) translate3d(0, 0, 0);
    -o-transform: rotateY(180deg) translate3d(0, 0, 0);
    transform: rotateY(180deg) translate3d(0, 0, 0);
}

.rotating.flip.up .back {
    -webkit-transform: rotateX(180deg) translate3d(0, 0, 0);
    -moz-transform: rotateX(180deg) translate3d(0, 0, 0);
    -ms-transform: rotateX(180deg) translate3d(0, 0, 0);
    -o-transform: rotateX(180deg) translate3d(0, 0, 0);
    transform: rotateX(180deg) translate3d(0, 0, 0);
}

.rotating.flip.cube .front {
    -webkit-transform: translate3d(0, 0, 100px) scale(0.9, 0.9);
    -moz-transform: translate3d(0, 0, 100px) scale(0.85, 0.85);
    -ms-transform: translate3d(0, 0, 100px) scale(0.85, 0.85);
    -o-transform: translate3d(0, 0, 100px) scale(0.85, 0.85);
    transform: translate3d(0, 0, 100px) scale(0.85, 0.85);
}

.rotating.flip.cube .back {
    -webkit-transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.9, 0.9);
    -moz-transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    -ms-transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    -o-transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    transform: rotateY(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
}

.rotating.flip.cube.up .back {
    -webkit-transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.9, 0.9);
    -moz-transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    -ms-transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    -o-transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
    transform: rotateX(180deg) translate3d(0, 0, 100px) scale(0.85, 0.85);
}