﻿.ui-view-perspective {
	position: relative;
	-webkit-perspective: 1200px;
	-moz-perspective: 1200px;
	perspective: 1200px;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	transform-style: preserve-3d;
}

.ui-view {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	visibility: hidden;
	overflow: hidden;
	-webkit-backface-visibility: hidden;
	-moz-backface-visibility: hidden;
	backface-visibility: hidden;
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}

.ui-view-current{
	visibility: visible;
}

/* animation sets */
/* 移动 from / to  */

.ui-view-moveToLeft { -webkit-animation: moveToLeft .6s ease both; -moz-animation: moveToLeft .6s ease both; animation: moveToLeft .6s ease both; }
.ui-view-moveFromLeft { -webkit-animation: moveFromLeft .6s ease both; -moz-animation: moveFromLeft .6s ease both; animation: moveFromLeft .6s ease both; }
.ui-view-moveToRight { -webkit-animation: moveToRight .6s ease both; -moz-animation: moveToRight .6s ease both; animation: moveToRight .6s ease both; }
.ui-view-moveFromRight { -webkit-animation: moveFromRight .6s ease both; -moz-animation: moveFromRight .6s ease both; animation: moveFromRight .6s ease both; }
.ui-view-moveToTop { -webkit-animation: moveToTop .6s ease both; -moz-animation: moveToTop .6s ease both; animation: moveToTop .6s ease both; }
.ui-view-moveFromTop { -webkit-animation: moveFromTop .6s ease both; -moz-animation: moveFromTop .6s ease both; animation: moveFromTop .6s ease both; }
.ui-view-moveToBottom { -webkit-animation: moveToBottom .6s ease both; -moz-animation: moveToBottom .6s ease both; animation: moveToBottom .6s ease both; }
.ui-view-moveFromBottom { -webkit-animation: moveFromBottom .6s ease both; -moz-animation: moveFromBottom .6s ease both; animation: moveFromBottom .6s ease both; }

/* 淡入淡出 */
.ui-view-fade { -webkit-animation: fade .7s ease both; -moz-animation: fade .7s ease both; animation: fade .7s ease both; }

/* 移动 from / to and 淡入淡出 */
.ui-view-moveToLeftFade { -webkit-animation: moveToLeftFade .7s ease both; -moz-animation: moveToLeftFade .7s ease both; animation: moveToLeftFade .7s ease both; }
.ui-view-moveFromLeftFade { -webkit-animation: moveFromLeftFade .7s ease both; -moz-animation: moveFromLeftFade .7s ease both; animation: moveFromLeftFade .7s ease both; }
.ui-view-moveToRightFade { -webkit-animation: moveToRightFade .7s ease both; -moz-animation: moveToRightFade .7s ease both; animation: moveToRightFade .7s ease both; }
.ui-view-moveFromRightFade { -webkit-animation: moveFromRightFade .7s ease both; -moz-animation: moveFromRightFade .7s ease both; animation: moveFromRightFade .7s ease both; }
.ui-view-moveToTopFade { -webkit-animation: moveToTopFade .7s ease both; -moz-animation: moveToTopFade .7s ease both; animation: moveToTopFade .7s ease both; }
.ui-view-moveFromTopFade { -webkit-animation: moveFromTopFade .7s ease both; -moz-animation: moveFromTopFade .7s ease both; animation: moveFromTopFade .7s ease both; }
.ui-view-moveToBottomFade { -webkit-animation: moveToBottomFade .7s ease both; -moz-animation: moveToBottomFade .7s ease both; animation: moveToBottomFade .7s ease both; }
.ui-view-moveFromBottomFade { -webkit-animation: moveFromBottomFade .7s ease both; -moz-animation: moveFromBottomFade .7s ease both; animation: moveFromBottomFade .7s ease both; }

/* 缓冲 */
.ui-view-moveToLeftEasing { -webkit-animation: moveToLeft .7s ease-in-out both; -moz-animation: moveToLeft .7s ease-in-out both; animation: moveToLeft .7s ease-in-out both; }
.ui-view-moveToRightEasing { -webkit-animation: moveToRight .7s ease-in-out both; -moz-animation: moveToRight .7s ease-in-out both; animation: moveToRight .7s ease-in-out both; }
.ui-view-moveToTopEasing { -webkit-animation: moveToTop .7s ease-in-out both; -moz-animation: moveToTop .7s ease-in-out both; animation: moveToTop .7s ease-in-out both; }
.ui-view-moveToBottomEasing { -webkit-animation: moveToBottom .7s ease-in-out both; -moz-animation: moveToBottom .7s ease-in-out both; animation: moveToBottom .7s ease-in-out both; }

/********************************* keyframes **************************************/

/* 移动 from / to  */

@-webkit-keyframes moveToLeft {
    to { -webkit-transform: translateX(-100%); }
}

@-moz-keyframes moveToLeft {
    to { -moz-transform: translateX(-100%); }
}

@keyframes moveToLeft {
    to { transform: translateX(-100%); }
}

@-webkit-keyframes moveFromLeft {
    from { -webkit-transform: translateX(-100%); }
}

@-moz-keyframes moveFromLeft {
    from { -moz-transform: translateX(-100%); }
}

@keyframes moveFromLeft {
    from { transform: translateX(-100%); }
}

@-webkit-keyframes moveToRight {
    to { -webkit-transform: translateX(100%); }
}

@-moz-keyframes moveToRight {
    to { -moz-transform: translateX(100%); }
}

@keyframes moveToRight {
    to { transform: translateX(100%); }
}

@-webkit-keyframes moveFromRight {
    from { -webkit-transform: translateX(100%); }
}

@-moz-keyframes moveFromRight {
    from { -moz-transform: translateX(100%); }
}

@keyframes moveFromRight {
    from { transform: translateX(100%); }
}

@-webkit-keyframes moveToTop {
    to { -webkit-transform: translateY(-100%); }
}

@-moz-keyframes moveToTop {
    to { -moz-transform: translateY(-100%); }
}

@keyframes moveToTop {
    to { transform: translateY(-100%); }
}

@-webkit-keyframes moveFromTop {
    from { -webkit-transform: translateY(-100%); }
}

@-moz-keyframes moveFromTop {
    from { -moz-transform: translateY(-100%); }
}

@keyframes moveFromTop {
    from { transform: translateY(-100%); }
}

@-webkit-keyframes moveToBottom {
    to { -webkit-transform: translateY(100%); }
}

@-moz-keyframes moveToBottom {
    to { -moz-transform: translateY(100%); }
}

@keyframes moveToBottom {
    to { transform: translateY(100%); }
}

@-webkit-keyframes moveFromBottom {
    from { -webkit-transform: translateY(100%); }
}

@-moz-keyframes moveFromBottom {
    from { -moz-transform: translateY(100%); }
}

@keyframes moveFromBottom {
    from { transform: translateY(100%); }
}

/* 淡入淡出 */

@-webkit-keyframes fade {
    to { opacity: 0.3; }
}

@-moz-keyframes fade {
    to { opacity: 0.3; }
}

@keyframes fade {
    to { opacity: 0.3; }
}

/* 移动 from / to and 淡入淡出 */

@-webkit-keyframes moveToLeftFade {
    to { opacity: 0.3; -webkit-transform: translateX(-100%); }
}

@-moz-keyframes moveToLeftFade {
    to { opacity: 0.3; -moz-transform: translateX(-100%); }
}

@keyframes moveToLeftFade {
    to { opacity: 0.3; transform: translateX(-100%); }
}

@-webkit-keyframes moveFromLeftFade {
    from { opacity: 0.3; -webkit-transform: translateX(-100%); }
}

@-moz-keyframes moveFromLeftFade {
    from { opacity: 0.3; -moz-transform: translateX(-100%); }
}

@keyframes moveFromLeftFade {
    from { opacity: 0.3; transform: translateX(-100%); }
}

@-webkit-keyframes moveToRightFade {
    to { opacity: 0.3; -webkit-transform: translateX(100%); }
}

@-moz-keyframes moveToRightFade {
    to { opacity: 0.3; -moz-transform: translateX(100%); }
}

@keyframes moveToRightFade {
    to { opacity: 0.3; transform: translateX(100%); }
}

@-webkit-keyframes moveFromRightFade {
    from { opacity: 0.3; -webkit-transform: translateX(100%); }
}

@-moz-keyframes moveFromRightFade {
    from { opacity: 0.3; -moz-transform: translateX(100%); }
}

@keyframes moveFromRightFade {
    from { opacity: 0.3; transform: translateX(100%); }
}

@-webkit-keyframes moveToTopFade {
    to { opacity: 0.3; -webkit-transform: translateY(-100%); }
}

@-moz-keyframes moveToTopFade {
    to { opacity: 0.3; -moz-transform: translateY(-100%); }
}

@keyframes moveToTopFade {
    to { opacity: 0.3; transform: translateY(-100%); }
}

@-webkit-keyframes moveFromTopFade {
    from { opacity: 0.3; -webkit-transform: translateY(-100%); }
}

@-moz-keyframes moveFromTopFade {
    from { opacity: 0.3; -moz-transform: translateY(-100%); }
}

@keyframes moveFromTopFade {
    from { opacity: 0.3; transform: translateY(-100%); }
}

@-webkit-keyframes moveToBottomFade {
    to { opacity: 0.3; -webkit-transform: translateY(100%); }
}

@-moz-keyframes moveToBottomFade {
    to { opacity: 0.3; -moz-transform: translateY(100%); }
}

@keyframes moveToBottomFade {
    to { opacity: 0.3; transform: translateY(100%); }
}

@-webkit-keyframes moveFromBottomFade {
    from { opacity: 0.3; -webkit-transform: translateY(100%); }
}

@-moz-keyframes moveFromBottomFade {
    from { opacity: 0.3; -moz-transform: translateY(100%); }
}

@keyframes moveFromBottomFade {
    from { opacity: 0.3; transform: translateY(100%); }
}

/* 延展 and 淡入淡出 */

.ui-view-scaleDown { -webkit-animation: scaleDown .7s ease both; -moz-animation: scaleDown .7s ease both; animation: scaleDown .7s ease both; }
.ui-view-scaleUp { -webkit-animation: scaleUp .7s ease both; -moz-animation: scaleUp .7s ease both; animation: scaleUp .7s ease both; }
.ui-view-scaleUpDown { -webkit-animation: scaleUpDown .5s ease both; -moz-animation: scaleUpDown .5s ease both; animation: scaleUpDown .5s ease both; }
.ui-view-scaleDownUp { -webkit-animation: scaleDownUp .5s ease both; -moz-animation: scaleDownUp .5s ease both; animation: scaleDownUp .5s ease both; }
.ui-view-scaleDownCenter { -webkit-animation: scaleDownCenter .4s ease-in both; -moz-animation: scaleDownCenter .4s ease-in both; animation: scaleDownCenter .4s ease-in both; }
.ui-view-scaleUpCenter { -webkit-animation: scaleUpCenter .4s ease-out both; -moz-animation: scaleUpCenter .4s ease-out both; animation: scaleUpCenter .4s ease-out both; }

/********************************* keyframes **************************************/

/* 延展 and 淡入淡出 */

@-webkit-keyframes scaleDown {
    to { opacity: 0; -webkit-transform: scale(.8); }
}

@-moz-keyframes scaleDown {
    to { opacity: 0; -moz-transform: scale(.8); }
}

@keyframes scaleDown {
    to { opacity: 0; transform: scale(.8); }
}

@-webkit-keyframes scaleUp {
    from { opacity: 0; -webkit-transform: scale(.8); }
}

@-moz-keyframes scaleUp {
    from { opacity: 0; -moz-transform: scale(.8); }
}

@keyframes scaleUp {
    from { opacity: 0; transform: scale(.8); }
}

@-webkit-keyframes scaleUpDown {
    from { opacity: 0; -webkit-transform: scale(1.2); }
}

@-moz-keyframes scaleUpDown {
    from { opacity: 0; -moz-transform: scale(1.2); }
}

@keyframes scaleUpDown {
    from { opacity: 0; transform: scale(1.2); }
}

@-webkit-keyframes scaleDownUp {
    to { opacity: 0; -webkit-transform: scale(1.2); }
}

@-moz-keyframes scaleDownUp {
    to { opacity: 0; -moz-transform: scale(1.2); }
}

@keyframes scaleDownUp {
    to { opacity: 0; transform: scale(1.2); }
}

@-webkit-keyframes scaleDownCenter {
    to { opacity: 0; -webkit-transform: scale(.7); }
}

@-moz-keyframes scaleDownCenter {
    to { opacity: 0; -moz-transform: scale(.7); }
}

@keyframes scaleDownCenter {
    to { opacity: 0; transform: scale(.7); }
}

@-webkit-keyframes scaleUpCenter {
    from { opacity: 0; -webkit-transform: scale(.7); }
}

@-moz-keyframes scaleUpCenter {
    from { opacity: 0; -moz-transform: scale(.7); }
}

@keyframes scaleUpCenter {
    from { opacity: 0; transform: scale(.7); }
}

/* 旋转 sides first and scale */

.ui-view-rotateRightSideFirst { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateRightSideFirst .8s both ease-in; -moz-transform-origin: 0% 50%; -moz-animation: rotateRightSideFirst .8s both ease-in; transform-origin: 0% 50%; animation: rotateRightSideFirst .8s both ease-in; }
.ui-view-rotateLeftSideFirst { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateLeftSideFirst .8s both ease-in; -moz-transform-origin: 100% 50%; -moz-animation: rotateLeftSideFirst .8s both ease-in; transform-origin: 100% 50%; animation: rotateLeftSideFirst .8s both ease-in; }
.ui-view-rotateTopSideFirst { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateTopSideFirst .8s both ease-in; -moz-transform-origin: 50% 100%; -moz-animation: rotateTopSideFirst .8s both ease-in; transform-origin: 50% 100%; animation: rotateTopSideFirst .8s both ease-in; }
.ui-view-rotateBottomSideFirst { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateBottomSideFirst .8s both ease-in; -moz-transform-origin: 50% 0%; -moz-animation: rotateBottomSideFirst .8s both ease-in; transform-origin: 50% 0%; animation: rotateBottomSideFirst .8s both ease-in; }

/* 翻滚 */

.ui-view-flipOutRight { -webkit-transform-origin: 50% 50%; -webkit-animation: flipOutRight .5s both ease-in; -moz-transform-origin: 50% 50%; -moz-animation: flipOutRight .5s both ease-in; transform-origin: 50% 50%; animation: flipOutRight .5s both ease-in; }
.ui-view-flipInLeft { -webkit-transform-origin: 50% 50%; -webkit-animation: flipInLeft .5s both ease-out; -moz-transform-origin: 50% 50%; -moz-animation: flipInLeft .5s both ease-out; transform-origin: 50% 50%; animation: flipInLeft .5s both ease-out; }
.ui-view-flipOutLeft { -webkit-transform-origin: 50% 50%; -webkit-animation: flipOutLeft .5s both ease-in; -moz-transform-origin: 50% 50%; -moz-animation: flipOutLeft .5s both ease-in; transform-origin: 50% 50%; animation: flipOutLeft .5s both ease-in; }
.ui-view-flipInRight { -webkit-transform-origin: 50% 50%; -webkit-animation: flipInRight .5s both ease-out; -moz-transform-origin: 50% 50%; -moz-animation: flipInRight .5s both ease-out; transform-origin: 50% 50%; animation: flipInRight .5s both ease-out; }
.ui-view-flipOutTop { -webkit-transform-origin: 50% 50%; -webkit-animation: flipOutTop .5s both ease-in; -moz-transform-origin: 50% 50%; -moz-animation: flipOutTop .5s both ease-in; transform-origin: 50% 50%; animation: flipOutTop .5s both ease-in; }
.ui-view-flipInBottom { -webkit-transform-origin: 50% 50%; -webkit-animation: flipInBottom .5s both ease-out; -moz-transform-origin: 50% 50%; -moz-animation: flipInBottom .5s both ease-out; transform-origin: 50% 50%; animation: flipInBottom .5s both ease-out; }
.ui-view-flipOutBottom { -webkit-transform-origin: 50% 50%; -webkit-animation: flipOutBottom .5s both ease-in; -moz-transform-origin: 50% 50%; -moz-animation: flipOutBottom .5s both ease-in; transform-origin: 50% 50%; animation: flipOutBottom .5s both ease-in; }
.ui-view-flipInTop { -webkit-transform-origin: 50% 50%; -webkit-animation: flipInTop .5s both ease-out; -moz-transform-origin: 50% 50%; -moz-animation: flipInTop .5s both ease-out; transform-origin: 50% 50%; animation: flipInTop .5s both ease-out; }

/* 旋转下降 */

.ui-view-rotateFall { -webkit-transform-origin: 0% 0%; -webkit-animation: rotateFall 1s both ease-in; -moz-transform-origin: 0% 0%; -moz-animation: rotateFall 1s both ease-in; transform-origin: 0% 0%; animation: rotateFall 1s both ease-in; }

/* 翻阅报纸 */
.ui-view-rotateOutNewspaper { -webkit-transform-origin: 50% 50%; -webkit-animation: rotateOutNewspaper .5s both ease-in; -moz-transform-origin: 50% 50%; -moz-animation: rotateOutNewspaper .5s both ease-in; transform-origin: 50% 50%; animation: rotateOutNewspaper .5s both ease-in; }
.ui-view-rotateInNewspaper { -webkit-transform-origin: 50% 50%; -webkit-animation: rotateInNewspaper .5s both ease-out; -moz-transform-origin: 50% 50%; -moz-animation: rotateInNewspaper .5s both ease-out; transform-origin: 50% 50%; animation: rotateInNewspaper .5s both ease-out; }

/* push */
.ui-view-rotatePushLeft { -webkit-transform-origin: 0% 50%; -webkit-animation: rotatePushLeft .8s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotatePushLeft .8s both ease; transform-origin: 0% 50%; animation: rotatePushLeft .8s both ease; }
.ui-view-rotatePushRight { -webkit-transform-origin: 100% 50%; -webkit-animation: rotatePushRight .8s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotatePushRight .8s both ease; transform-origin: 100% 50%; animation: rotatePushRight .8s both ease; }
.ui-view-rotatePushTop { -webkit-transform-origin: 50% 0%; -webkit-animation: rotatePushTop .8s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotatePushTop .8s both ease; transform-origin: 50% 0%; animation: rotatePushTop .8s both ease; }
.ui-view-rotatePushBottom { -webkit-transform-origin: 50% 100%; -webkit-animation: rotatePushBottom .8s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotatePushBottom .8s both ease; transform-origin: 50% 100%; animation: rotatePushBottom .8s both ease; }

/* pull */
.ui-view-rotatePullRight { -webkit-transform-origin: 100% 50%; -webkit-animation: rotatePullRight .5s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotatePullRight .5s both ease; transform-origin: 100% 50%; animation: rotatePullRight .5s both ease; }
.ui-view-rotatePullLeft { -webkit-transform-origin: 0% 50%; -webkit-animation: rotatePullLeft .5s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotatePullLeft .5s both ease; transform-origin: 0% 50%; animation: rotatePullLeft .5s both ease; }
.ui-view-rotatePullTop { -webkit-transform-origin: 50% 0%; -webkit-animation: rotatePullTop .5s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotatePullTop .5s both ease; transform-origin: 50% 0%; animation: rotatePullTop .5s both ease; }
.ui-view-rotatePullBottom { -webkit-transform-origin: 50% 100%; -webkit-animation: rotatePullBottom .5s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotatePullBottom .5s both ease; transform-origin: 50% 100%; animation: rotatePullBottom .5s both ease; }

/* 折叠 */
.ui-view-rotateFoldRight { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateFoldRight .7s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateFoldRight .7s both ease; transform-origin: 0% 50%; animation: rotateFoldRight .7s both ease; }
.ui-view-rotateFoldLeft { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateFoldLeft .7s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateFoldLeft .7s both ease; transform-origin: 100% 50%; animation: rotateFoldLeft .7s both ease; }
.ui-view-rotateFoldTop { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateFoldTop .7s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateFoldTop .7s both ease; transform-origin: 50% 100%; animation: rotateFoldTop .7s both ease; }
.ui-view-rotateFoldBottom { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateFoldBottom .7s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateFoldBottom .7s both ease; transform-origin: 50% 0%; animation: rotateFoldBottom .7s both ease; }

/* 展开 */
.ui-view-rotateUnfoldLeft { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateUnfoldLeft .7s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateUnfoldLeft .7s both ease; transform-origin: 100% 50%; animation: rotateUnfoldLeft .7s both ease; }
.ui-view-rotateUnfoldRight { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateUnfoldRight .7s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateUnfoldRight .7s both ease; transform-origin: 0% 50%; animation: rotateUnfoldRight .7s both ease; }
.ui-view-rotateUnfoldTop { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateUnfoldTop .7s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateUnfoldTop .7s both ease; transform-origin: 50% 100%; animation: rotateUnfoldTop .7s both ease; }
.ui-view-rotateUnfoldBottom { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateUnfoldBottom .7s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateUnfoldBottom .7s both ease; transform-origin: 50% 0%; animation: rotateUnfoldBottom .7s both ease; }

/* room walls */
.ui-view-rotateRoomLeftOut { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateRoomLeftOut .8s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateRoomLeftOut .8s both ease; transform-origin: 100% 50%; animation: rotateRoomLeftOut .8s both ease; }
.ui-view-rotateRoomLeftIn { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateRoomLeftIn .8s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateRoomLeftIn .8s both ease; transform-origin: 0% 50%; animation: rotateRoomLeftIn .8s both ease; }
.ui-view-rotateRoomRightOut { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateRoomRightOut .8s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateRoomRightOut .8s both ease; transform-origin: 0% 50%; animation: rotateRoomRightOut .8s both ease; }
.ui-view-rotateRoomRightIn { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateRoomRightIn .8s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateRoomRightIn .8s both ease; transform-origin: 100% 50%; animation: rotateRoomRightIn .8s both ease; }
.ui-view-rotateRoomTopOut { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateRoomTopOut .8s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateRoomTopOut .8s both ease; transform-origin: 50% 100%; animation: rotateRoomTopOut .8s both ease; }
.ui-view-rotateRoomTopIn { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateRoomTopIn .8s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateRoomTopIn .8s both ease; transform-origin: 50% 0%; animation: rotateRoomTopIn .8s both ease; }
.ui-view-rotateRoomBottomOut { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateRoomBottomOut .8s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateRoomBottomOut .8s both ease; transform-origin: 50% 0%; animation: rotateRoomBottomOut .8s both ease; }
.ui-view-rotateRoomBottomIn { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateRoomBottomIn .8s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateRoomBottomIn .8s both ease; transform-origin: 50% 100%; animation: rotateRoomBottomIn .8s both ease; }

/* 立方体 */
.ui-view-rotateCubeLeftOut { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateCubeLeftOut .6s both ease-in; -moz-transform-origin: 100% 50%; -moz-animation: rotateCubeLeftOut .6s both ease-in; transform-origin: 100% 50%; animation: rotateCubeLeftOut .6s both ease-in; }
.ui-view-rotateCubeLeftIn { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateCubeLeftIn .6s both ease-in; -moz-transform-origin: 0% 50%; -moz-animation: rotateCubeLeftIn .6s both ease-in; transform-origin: 0% 50%; animation: rotateCubeLeftIn .6s both ease-in; }
.ui-view-rotateCubeRightOut { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateCubeRightOut .6s both ease-in; -moz-transform-origin: 0% 50%; -moz-animation: rotateCubeRightOut .6s both ease-in; transform-origin: 0% 50%; animation: rotateCubeRightOut .6s both ease-in; }
.ui-view-rotateCubeRightIn { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateCubeRightIn .6s both ease-in; -moz-transform-origin: 100% 50%; -moz-animation: rotateCubeRightIn .6s both ease-in; transform-origin: 100% 50%; animation: rotateCubeRightIn .6s both ease-in; }
.ui-view-rotateCubeTopOut { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateCubeTopOut .6s both ease-in; -moz-transform-origin: 50% 100%; -moz-animation: rotateCubeTopOut .6s both ease-in; transform-origin: 50% 100%; animation: rotateCubeTopOut .6s both ease-in; }
.ui-view-rotateCubeTopIn { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateCubeTopIn .6s both ease-in; -moz-transform-origin: 50% 0%; -moz-animation: rotateCubeTopIn .6s both ease-in; transform-origin: 50% 0%; animation: rotateCubeTopIn .6s both ease-in; }
.ui-view-rotateCubeBottomOut { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateCubeBottomOut .6s both ease-in; -moz-transform-origin: 50% 0%; -moz-animation: rotateCubeBottomOut .6s both ease-in; transform-origin: 50% 0%; animation: rotateCubeBottomOut .6s both ease-in; }
.ui-view-rotateCubeBottomIn { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateCubeBottomIn .6s both ease-in; -moz-transform-origin: 50% 100%; -moz-animation: rotateCubeBottomIn .6s both ease-in; transform-origin: 50% 100%; animation: rotateCubeBottomIn .6s both ease-in; }

/* 旋转木马 */
.ui-view-rotateCarouselLeftOut { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateCarouselLeftOut .8s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateCarouselLeftOut .8s both ease; transform-origin: 100% 50%; animation: rotateCarouselLeftOut .8s both ease; }
.ui-view-rotateCarouselLeftIn { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateCarouselLeftIn .8s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateCarouselLeftIn .8s both ease; transform-origin: 0% 50%; animation: rotateCarouselLeftIn .8s both ease; }
.ui-view-rotateCarouselRightOut { -webkit-transform-origin: 0% 50%; -webkit-animation: rotateCarouselRightOut .8s both ease; -moz-transform-origin: 0% 50%; -moz-animation: rotateCarouselRightOut .8s both ease; transform-origin: 0% 50%; animation: rotateCarouselRightOut .8s both ease; }
.ui-view-rotateCarouselRightIn { -webkit-transform-origin: 100% 50%; -webkit-animation: rotateCarouselRightIn .8s both ease; -moz-transform-origin: 100% 50%; -moz-animation: rotateCarouselRightIn .8s both ease; transform-origin: 100% 50%; animation: rotateCarouselRightIn .8s both ease; }
.ui-view-rotateCarouselTopOut { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateCarouselTopOut .8s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateCarouselTopOut .8s both ease; transform-origin: 50% 100%; animation: rotateCarouselTopOut .8s both ease; }
.ui-view-rotateCarouselTopIn { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateCarouselTopIn .8s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateCarouselTopIn .8s both ease; transform-origin: 50% 0%; animation: rotateCarouselTopIn .8s both ease; }
.ui-view-rotateCarouselBottomOut { -webkit-transform-origin: 50% 0%; -webkit-animation: rotateCarouselBottomOut .8s both ease; -moz-transform-origin: 50% 0%; -moz-animation: rotateCarouselBottomOut .8s both ease; transform-origin: 50% 0%; animation: rotateCarouselBottomOut .8s both ease; }
.ui-view-rotateCarouselBottomIn { -webkit-transform-origin: 50% 100%; -webkit-animation: rotateCarouselBottomIn .8s both ease; -moz-transform-origin: 50% 100%; -moz-animation: rotateCarouselBottomIn .8s both ease; transform-origin: 50% 100%; animation: rotateCarouselBottomIn .8s both ease; }

/* sides */
.ui-view-rotateSidesOut { -webkit-transform-origin: -50% 50%; -webkit-animation: rotateSidesOut .5s both ease-in; -moz-transform-origin: -50% 50%; -moz-animation: rotateSidesOut .5s both ease-in; transform-origin: -50% 50%; animation: rotateSidesOut .5s both ease-in; }
.ui-view-rotateSidesIn { -webkit-transform-origin: 150% 50%; -webkit-animation: rotateSidesIn .5s both ease-out; -moz-transform-origin: 150% 50%; -moz-animation: rotateSidesIn .5s both ease-out; transform-origin: 150% 50%; animation: rotateSidesIn .5s both ease-out; }

/* slide */
.ui-view-rotateSlideOut { -webkit-animation: rotateSlideOut 1s both ease; -moz-animation: rotateSlideOut 1s both ease; animation: rotateSlideOut 1s both ease; }
.ui-view-rotateSlideIn { -webkit-animation: rotateSlideIn 1s both ease; -moz-animation: rotateSlideIn 1s both ease; animation: rotateSlideIn 1s both ease; }

/********************************* keyframes **************************************/

/* rotate sides first and scale */

@-webkit-keyframes rotateRightSideFirst {
    40% { -webkit-transform: rotateY(15deg); opacity: .8; -webkit-animation-timing-function: ease-out; }
    100% { -webkit-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-moz-keyframes rotateRightSideFirst {
    40% { -moz-transform: rotateY(15deg); opacity: .8; -moz-animation-timing-function: ease-out; }
    100% { -moz-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@keyframes rotateRightSideFirst {
    40% { transform: rotateY(15deg); opacity: .8; animation-timing-function: ease-out; }
    100% { transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-webkit-keyframes rotateLeftSideFirst {
    40% { -webkit-transform: rotateY(-15deg); opacity: .8; -webkit-animation-timing-function: ease-out; }
    100% { -webkit-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-moz-keyframes rotateLeftSideFirst {
    40% { -moz-transform: rotateY(-15deg); opacity: .8; -moz-animation-timing-function: ease-out; }
    100% { -moz-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@keyframes rotateLeftSideFirst {
    40% { transform: rotateY(-15deg); opacity: .8; animation-timing-function: ease-out; }
    100% { transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-webkit-keyframes rotateTopSideFirst {
    40% { -webkit-transform: rotateX(15deg); opacity: .8; -webkit-animation-timing-function: ease-out; }
    100% { -webkit-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-moz-keyframes rotateTopSideFirst {
    40% { -moz-transform: rotateX(15deg); opacity: .8; -moz-animation-timing-function: ease-out; }
    100% { -moz-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@keyframes rotateTopSideFirst {
    40% { transform: rotateX(15deg); opacity: .8; animation-timing-function: ease-out; }
    100% { transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-webkit-keyframes rotateBottomSideFirst {
    40% { -webkit-transform: rotateX(-15deg); opacity: .8; -webkit-animation-timing-function: ease-out; }
    100% { -webkit-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@-moz-keyframes rotateBottomSideFirst {
    40% { -moz-transform: rotateX(-15deg); opacity: .8; -moz-animation-timing-function: ease-out; }
    100% { -moz-transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

@keyframes rotateBottomSideFirst {
    40% { transform: rotateX(-15deg); opacity: .8; animation-timing-function: ease-out; }
    100% { transform: scale(0.8) translateZ(-200px); opacity: 0; }
}

/* flip */

@-webkit-keyframes flipOutRight {
    to { -webkit-transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@-moz-keyframes flipOutRight {
    to { -moz-transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@keyframes flipOutRight {
    to { transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@-webkit-keyframes flipInLeft {
    from { -webkit-transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@-moz-keyframes flipInLeft {
    from { -moz-transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@keyframes flipInLeft {
    from { transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@-webkit-keyframes flipOutLeft {
    to { -webkit-transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@-moz-keyframes flipOutLeft {
    to { -moz-transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@keyframes flipOutLeft {
    to { transform: translateZ(-1000px) rotateY(-90deg); opacity: 0.2; }
}

@-webkit-keyframes flipInRight {
    from { -webkit-transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@-moz-keyframes flipInRight {
    from { -moz-transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@keyframes flipInRight {
    from { transform: translateZ(-1000px) rotateY(90deg); opacity: 0.2; }
}

@-webkit-keyframes flipOutTop {
    to { -webkit-transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

@-moz-keyframes flipOutTop {
    to { -moz-transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

@keyframes flipOutTop {
    to { transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

@-webkit-keyframes flipInBottom {
    from { -webkit-transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@-moz-keyframes flipInBottom {
    from { -moz-transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@keyframes flipInBottom {
    from { transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@-webkit-keyframes flipOutBottom {
    to { -webkit-transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@-moz-keyframes flipOutBottom {
    to { -moz-transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@keyframes flipOutBottom {
    to { transform: translateZ(-1000px) rotateX(-90deg); opacity: 0.2; }
}

@-webkit-keyframes flipInTop {
    from { -webkit-transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

@-moz-keyframes flipInTop {
    from { -moz-transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

@keyframes flipInTop {
    from { transform: translateZ(-1000px) rotateX(90deg); opacity: 0.2; }
}

/* fall */

@-webkit-keyframes rotateFall {
    0% { -webkit-transform: rotateZ(0deg); }
    20% { -webkit-transform: rotateZ(10deg); -webkit-animation-timing-function: ease-out; }
    40% { -webkit-transform: rotateZ(17deg); }
    60% { -webkit-transform: rotateZ(16deg); }
    100% { -webkit-transform: translateY(100%) rotateZ(17deg); }
}

@-moz-keyframes rotateFall {
    0% { -moz-transform: rotateZ(0deg); }
    20% { -moz-transform: rotateZ(10deg); -moz-animation-timing-function: ease-out; }
    40% { -moz-transform: rotateZ(17deg); }
    60% { -moz-transform: rotateZ(16deg); }
    100% { -moz-transform: translateY(100%) rotateZ(17deg); }
}

@keyframes rotateFall {
    0% { transform: rotateZ(0deg); }
    20% { transform: rotateZ(10deg); animation-timing-function: ease-out; }
    40% { transform: rotateZ(17deg); }
    60% { transform: rotateZ(16deg); }
    100% { transform: translateY(100%) rotateZ(17deg); }
}

/* newspaper */

@-webkit-keyframes rotateOutNewspaper {
    to { -webkit-transform: translateZ(-3000px) rotateZ(360deg); opacity: 0; }
}

@-moz-keyframes rotateOutNewspaper {
    to { -moz-transform: translateZ(-3000px) rotateZ(360deg); opacity: 0; }
}

@keyframes rotateOutNewspaper {
    to { transform: translateZ(-3000px) rotateZ(360deg); opacity: 0; }
}

@-webkit-keyframes rotateInNewspaper {
    from { -webkit-transform: translateZ(-3000px) rotateZ(-360deg); opacity: 0; }
}

@-moz-keyframes rotateInNewspaper {
    from { -moz-transform: translateZ(-3000px) rotateZ(-360deg); opacity: 0; }
}

@keyframes rotateInNewspaper {
    from { transform: translateZ(-3000px) rotateZ(-360deg); opacity: 0; }
}

/* push */

@-webkit-keyframes rotatePushLeft {
    to { opacity: 0; -webkit-transform: rotateY(90deg); }
}

@-moz-keyframes rotatePushLeft {
    to { opacity: 0; -moz-transform: rotateY(90deg); }
}

@keyframes rotatePushLeft {
    to { opacity: 0; transform: rotateY(90deg); }
}

@-webkit-keyframes rotatePushRight {
    to { opacity: 0; -webkit-transform: rotateY(-90deg); }
}

@-moz-keyframes rotatePushRight {
    to { opacity: 0; -moz-transform: rotateY(-90deg); }
}

@keyframes rotatePushRight {
    to { opacity: 0; transform: rotateY(-90deg); }
}

@-webkit-keyframes rotatePushTop {
    to { opacity: 0; -webkit-transform: rotateX(-90deg); }
}

@-moz-keyframes rotatePushTop {
    to { opacity: 0; -moz-transform: rotateX(-90deg); }
}

@keyframes rotatePushTop {
    to { opacity: 0; transform: rotateX(-90deg); }
}

@-webkit-keyframes rotatePushBottom {
    to { opacity: 0; -webkit-transform: rotateX(90deg); }
}

@-moz-keyframes rotatePushBottom {
    to { opacity: 0; -moz-transform: rotateX(90deg); }
}

@keyframes rotatePushBottom {
    to { opacity: 0; transform: rotateX(90deg); }
}

/* pull */

@-webkit-keyframes rotatePullRight {
    from { opacity: 0; -webkit-transform: rotateY(-90deg); }
}

@-moz-keyframes rotatePullRight {
    from { opacity: 0; -moz-transform: rotateY(-90deg); }
}

@keyframes rotatePullRight {
    from { opacity: 0; transform: rotateY(-90deg); }
}

@-webkit-keyframes rotatePullLeft {
    from { opacity: 0; -webkit-transform: rotateY(90deg); }
}

@-moz-keyframes rotatePullLeft {
    from { opacity: 0; -moz-transform: rotateY(90deg); }
}

@keyframes rotatePullLeft {
    from { opacity: 0; transform: rotateY(90deg); }
}

@-webkit-keyframes rotatePullTop {
    from { opacity: 0; -webkit-transform: rotateX(-90deg); }
}

@-moz-keyframes rotatePullTop {
    from { opacity: 0; -moz-transform: rotateX(-90deg); }
}

@keyframes rotatePullTop {
    from { opacity: 0; transform: rotateX(-90deg); }
}

@-webkit-keyframes rotatePullBottom {
    from { opacity: 0; -webkit-transform: rotateX(90deg); }
}

@-moz-keyframes rotatePullBottom {
    from { opacity: 0; -moz-transform: rotateX(90deg); }
}

@keyframes rotatePullBottom {
    from { opacity: 0; transform: rotateX(90deg); }
}

/* fold */

@-webkit-keyframes rotateFoldRight {
    to { opacity: 0; -webkit-transform: translateX(100%) rotateY(90deg); }
}

@-moz-keyframes rotateFoldRight {
    to { opacity: 0; -moz-transform: translateX(100%) rotateY(90deg); }
}

@keyframes rotateFoldRight {
    to { opacity: 0; transform: translateX(100%) rotateY(90deg); }
}

@-webkit-keyframes rotateFoldLeft {
    to { opacity: 0; -webkit-transform: translateX(-100%) rotateY(-90deg); }
}

@-moz-keyframes rotateFoldLeft {
    to { opacity: 0; -moz-transform: translateX(-100%) rotateY(-90deg); }
}

@keyframes rotateFoldLeft {
    to { opacity: 0; transform: translateX(-100%) rotateY(-90deg); }
}

@-webkit-keyframes rotateFoldTop {
    to { opacity: 0; -webkit-transform: translateY(-100%) rotateX(90deg); }
}

@-moz-keyframes rotateFoldTop {
    to { opacity: 0; -moz-transform: translateY(-100%) rotateX(90deg); }
}

@keyframes rotateFoldTop {
    to { opacity: 0; transform: translateY(-100%) rotateX(90deg); }
}

@-webkit-keyframes rotateFoldBottom {
    to { opacity: 0; -webkit-transform: translateY(100%) rotateX(-90deg); }
}

@-moz-keyframes rotateFoldBottom {
    to { opacity: 0; -moz-transform: translateY(100%) rotateX(-90deg); }
}

@keyframes rotateFoldBottom {
    to { opacity: 0; transform: translateY(100%) rotateX(-90deg); }
}

/* unfold */

@-webkit-keyframes rotateUnfoldLeft {
    from { opacity: 0; -webkit-transform: translateX(-100%) rotateY(-90deg); }
}

@-moz-keyframes rotateUnfoldLeft {
    from { opacity: 0; -moz-transform: translateX(-100%) rotateY(-90deg); }
}

@keyframes rotateUnfoldLeft {
    from { opacity: 0; transform: translateX(-100%) rotateY(-90deg); }
}

@-webkit-keyframes rotateUnfoldRight {
    from { opacity: 0; -webkit-transform: translateX(100%) rotateY(90deg); }
}

@-moz-keyframes rotateUnfoldRight {
    from { opacity: 0; -moz-transform: translateX(100%) rotateY(90deg); }
}

@keyframes rotateUnfoldRight {
    from { opacity: 0; transform: translateX(100%) rotateY(90deg); }
}

@-webkit-keyframes rotateUnfoldTop {
    from { opacity: 0; -webkit-transform: translateY(-100%) rotateX(90deg); }
}

@-moz-keyframes rotateUnfoldTop {
    from { opacity: 0; -moz-transform: translateY(-100%) rotateX(90deg); }
}

@keyframes rotateUnfoldTop {
    from { opacity: 0; transform: translateY(-100%) rotateX(90deg); }
}

@-webkit-keyframes rotateUnfoldBottom {
    from { opacity: 0; -webkit-transform: translateY(100%) rotateX(-90deg); }
}

@-moz-keyframes rotateUnfoldBottom {
    from { opacity: 0; -moz-transform: translateY(100%) rotateX(-90deg); }
}

@keyframes rotateUnfoldBottom {
    from { opacity: 0; transform: translateY(100%) rotateX(-90deg); }
}

/* room walls */

@-webkit-keyframes rotateRoomLeftOut {
    to { opacity: .3; -webkit-transform: translateX(-100%) rotateY(90deg); }
}

@-moz-keyframes rotateRoomLeftOut {
    to { opacity: .3; -moz-transform: translateX(-100%) rotateY(90deg); }
}

@keyframes rotateRoomLeftOut {
    to { opacity: .3; transform: translateX(-100%) rotateY(90deg); }
}

@-webkit-keyframes rotateRoomLeftIn {
    from { opacity: .3; -webkit-transform: translateX(100%) rotateY(-90deg); }
}

@-moz-keyframes rotateRoomLeftIn {
    from { opacity: .3; -moz-transform: translateX(100%) rotateY(-90deg); }
}

@keyframes rotateRoomLeftIn {
    from { opacity: .3; transform: translateX(100%) rotateY(-90deg); }
}

@-webkit-keyframes rotateRoomRightOut {
    to { opacity: .3; -webkit-transform: translateX(100%) rotateY(-90deg); }
}

@-moz-keyframes rotateRoomRightOut {
    to { opacity: .3; -moz-transform: translateX(100%) rotateY(-90deg); }
}

@keyframes rotateRoomRightOut {
    to { opacity: .3; transform: translateX(100%) rotateY(-90deg); }
}

@-webkit-keyframes rotateRoomRightIn {
    from { opacity: .3; -webkit-transform: translateX(-100%) rotateY(90deg); }
}

@-moz-keyframes rotateRoomRightIn {
    from { opacity: .3; -moz-transform: translateX(-100%) rotateY(90deg); }
}

@keyframes rotateRoomRightIn {
    from { opacity: .3; transform: translateX(-100%) rotateY(90deg); }
}

@-webkit-keyframes rotateRoomTopOut {
    to { opacity: .3; -webkit-transform: translateY(-100%) rotateX(-90deg); }
}

@-moz-keyframes rotateRoomTopOut {
    to { opacity: .3; -moz-transform: translateY(-100%) rotateX(-90deg); }
}

@keyframes rotateRoomTopOut {
    to { opacity: .3; transform: translateY(-100%) rotateX(-90deg); }
}

@-webkit-keyframes rotateRoomTopIn {
    from { opacity: .3; -webkit-transform: translateY(100%) rotateX(90deg); }
}

@-moz-keyframes rotateRoomTopIn {
    from { opacity: .3; -moz-transform: translateY(100%) rotateX(90deg); }
}

@keyframes rotateRoomTopIn {
    from { opacity: .3; transform: translateY(100%) rotateX(90deg); }
}

@-webkit-keyframes rotateRoomBottomOut {
    to { opacity: .3; -webkit-transform: translateY(100%) rotateX(90deg); }
}

@-moz-keyframes rotateRoomBottomOut {
    to { opacity: .3; -moz-transform: translateY(100%) rotateX(90deg); }
}

@keyframes rotateRoomBottomOut {
    to { opacity: .3; transform: translateY(100%) rotateX(90deg); }
}

@-webkit-keyframes rotateRoomBottomIn {
    from { opacity: .3; -webkit-transform: translateY(-100%) rotateX(-90deg); }
}

@-moz-keyframes rotateRoomBottomIn {
    from { opacity: .3; -moz-transform: translateY(-100%) rotateX(-90deg); }
}

@keyframes rotateRoomBottomIn {
    from { opacity: .3; transform: translateY(-100%) rotateX(-90deg); }
}

/* cube */

@-webkit-keyframes rotateCubeLeftOut {
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
    100% { opacity: .3; -webkit-transform: translateX(-100%) rotateY(-90deg); }
}

@-moz-keyframes rotateCubeLeftOut {
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
    100% { opacity: .3; -moz-transform: translateX(-100%) rotateY(-90deg); }
}

@keyframes rotateCubeLeftOut {
    50% { animation-timing-function: ease-out; transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
    100% { opacity: .3; transform: translateX(-100%) rotateY(-90deg); }
}

@-webkit-keyframes rotateCubeLeftIn {
    0% { opacity: .3; -webkit-transform: translateX(100%) rotateY(90deg); }
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
}

@-moz-keyframes rotateCubeLeftIn {
    0% { opacity: .3; -moz-transform: translateX(100%) rotateY(90deg); }
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
}

@keyframes rotateCubeLeftIn {
    0% { opacity: .3; transform: translateX(100%) rotateY(90deg); }
    50% { animation-timing-function: ease-out; transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
}

@-webkit-keyframes rotateCubeRightOut {
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
    100% { opacity: .3; -webkit-transform: translateX(100%) rotateY(90deg); }
}

@-moz-keyframes rotateCubeRightOut {
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
    100% { opacity: .3; -moz-transform: translateX(100%) rotateY(90deg); }
}

@keyframes rotateCubeRightOut {
    50% { animation-timing-function: ease-out; transform: translateX(50%) translateZ(-200px) rotateY(45deg); }
    100% { opacity: .3; transform: translateX(100%) rotateY(90deg); }
}

@-webkit-keyframes rotateCubeRightIn {
    0% { opacity: .3; -webkit-transform: translateX(-100%) rotateY(-90deg); }
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
}

@-moz-keyframes rotateCubeRightIn {
    0% { opacity: .3; -moz-transform: translateX(-100%) rotateY(-90deg); }
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
}

@keyframes rotateCubeRightIn {
    0% { opacity: .3; transform: translateX(-100%) rotateY(-90deg); }
    50% { animation-timing-function: ease-out; transform: translateX(-50%) translateZ(-200px) rotateY(-45deg); }
}

@-webkit-keyframes rotateCubeTopOut {
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
    100% { opacity: .3; -webkit-transform: translateY(-100%) rotateX(90deg); }
}

@-moz-keyframes rotateCubeTopOut {
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
    100% { opacity: .3; -moz-transform: translateY(-100%) rotateX(90deg); }
}

@keyframes rotateCubeTopOut {
    50% { animation-timing-function: ease-out; transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
    100% { opacity: .3; transform: translateY(-100%) rotateX(90deg); }
}

@-webkit-keyframes rotateCubeTopIn {
    0% { opacity: .3; -webkit-transform: translateY(100%) rotateX(-90deg); }
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
}

@-moz-keyframes rotateCubeTopIn {
    0% { opacity: .3; -moz-transform: translateY(100%) rotateX(-90deg); }
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
}

@keyframes rotateCubeTopIn {
    0% { opacity: .3; transform: translateY(100%) rotateX(-90deg); }
    50% { animation-timing-function: ease-out; transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
}

@-webkit-keyframes rotateCubeBottomOut {
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
    100% { opacity: .3; -webkit-transform: translateY(100%) rotateX(-90deg); }
}

@-moz-keyframes rotateCubeBottomOut {
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
    100% { opacity: .3; -moz-transform: translateY(100%) rotateX(-90deg); }
}

@keyframes rotateCubeBottomOut {
    50% { animation-timing-function: ease-out; transform: translateY(50%) translateZ(-200px) rotateX(-45deg); }
    100% { opacity: .3; transform: translateY(100%) rotateX(-90deg); }
}

@-webkit-keyframes rotateCubeBottomIn {
    0% { opacity: .3; -webkit-transform: translateY(-100%) rotateX(90deg); }
    50% { -webkit-animation-timing-function: ease-out; -webkit-transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
}

@-moz-keyframes rotateCubeBottomIn {
    0% { opacity: .3; -moz-transform: translateY(-100%) rotateX(90deg); }
    50% { -moz-animation-timing-function: ease-out; -moz-transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
}

@keyframes rotateCubeBottomIn {
    0% { opacity: .3; transform: translateY(-100%) rotateX(90deg); }
    50% { animation-timing-function: ease-out; transform: translateY(-50%) translateZ(-200px) rotateX(45deg); }
}

/* carousel */

@-webkit-keyframes rotateCarouselLeftOut {
    to { opacity: .3; -webkit-transform: translateX(-150%) scale(.4) rotateY(-65deg); }
}

@-moz-keyframes rotateCarouselLeftOut {
    to { opacity: .3; -moz-transform: translateX(-150%) scale(.4) rotateY(-65deg); }
}

@keyframes rotateCarouselLeftOut {
    to { opacity: .3; transform: translateX(-150%) scale(.4) rotateY(-65deg); }
}

@-webkit-keyframes rotateCarouselLeftIn {
    from { opacity: .3; -webkit-transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@-moz-keyframes rotateCarouselLeftIn {
    from { opacity: .3; -moz-transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@keyframes rotateCarouselLeftIn {
    from { opacity: .3; transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@-webkit-keyframes rotateCarouselRightOut {
    to { opacity: .3; -webkit-transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@-moz-keyframes rotateCarouselRightOut {
    to { opacity: .3; -moz-transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@keyframes rotateCarouselRightOut {
    to { opacity: .3; transform: translateX(200%) scale(.4) rotateY(65deg); }
}

@-webkit-keyframes rotateCarouselRightIn {
    from { opacity: .3; -webkit-transform: translateX(-200%) scale(.4) rotateY(-65deg); }
}

@-moz-keyframes rotateCarouselRightIn {
    from { opacity: .3; -moz-transform: translateX(-200%) scale(.4) rotateY(-65deg); }
}

@keyframes rotateCarouselRightIn {
    from { opacity: .3; transform: translateX(-200%) scale(.4) rotateY(-65deg); }
}

@-webkit-keyframes rotateCarouselTopOut {
    to { opacity: .3; -webkit-transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

@-moz-keyframes rotateCarouselTopOut {
    to { opacity: .3; -moz-transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

@keyframes rotateCarouselTopOut {
    to { opacity: .3; transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

@-webkit-keyframes rotateCarouselTopIn {
    from { opacity: .3; -webkit-transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@-moz-keyframes rotateCarouselTopIn {
    from { opacity: .3; -moz-transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@keyframes rotateCarouselTopIn {
    from { opacity: .3; transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@-webkit-keyframes rotateCarouselBottomOut {
    to { opacity: .3; -webkit-transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@-moz-keyframes rotateCarouselBottomOut {
    to { opacity: .3; -moz-transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@keyframes rotateCarouselBottomOut {
    to { opacity: .3; transform: translateY(200%) scale(.4) rotateX(-65deg); }
}

@-webkit-keyframes rotateCarouselBottomIn {
    from { opacity: .3; -webkit-transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

@-moz-keyframes rotateCarouselBottomIn {
    from { opacity: .3; -moz-transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

@keyframes rotateCarouselBottomIn {
    from { opacity: .3; transform: translateY(-200%) scale(.4) rotateX(65deg); }
}

/* sides */

@-webkit-keyframes rotateSidesOut {
    to { opacity: 0; -webkit-transform: translateZ(-500px) rotateY(90deg); }
}

@-moz-keyframes rotateSidesOut {
    to { opacity: 0; -moz-transform: translateZ(-500px) rotateY(90deg); }
}

@keyframes rotateSidesOut {
    to { opacity: 0; transform: translateZ(-500px) rotateY(90deg); }
}

@-webkit-keyframes rotateSidesIn {
    from { opacity: 0; -webkit-transform: translateZ(-500px) rotateY(-90deg); }
}

@-moz-keyframes rotateSidesIn {
    from { opacity: 0; -moz-transform: translateZ(-500px) rotateY(-90deg); }
}

@keyframes rotateSidesIn {
    from { opacity: 0; transform: translateZ(-500px) rotateY(-90deg); }
}

/* slide */

@-webkit-keyframes rotateSlideOut {
    25% { opacity: .5; -webkit-transform: translateZ(-500px); }
    75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
    100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
}

@-moz-keyframes rotateSlideOut {
    25% { opacity: .5; -moz-transform: translateZ(-500px); }
    75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
    100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
}

@keyframes rotateSlideOut {
    25% { opacity: .5; transform: translateZ(-500px); }
    75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
    100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
}

@-webkit-keyframes rotateSlideIn {
    0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
    75% { opacity: .5; -webkit-transform: translateZ(-500px); }
    100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
}

@-moz-keyframes rotateSlideIn {
    0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
    75% { opacity: .5; -moz-transform: translateZ(-500px); }
    100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
}

@keyframes rotateSlideIn {
    0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
    75% { opacity: .5; transform: translateZ(-500px); }
    100% { opacity: 1; transform: translateZ(0) translateX(0); }
}

/* animation delay classes */

.ui-view-delay100 { -webkit-animation-delay: .1s; -moz-animation-delay: .1s; animation-delay: .1s; }
.ui-view-delay180 { -webkit-animation-delay: .180s; -moz-animation-delay: .180s; animation-delay: .180s; }
.ui-view-delay200 { -webkit-animation-delay: .2s; -moz-animation-delay: .2s; animation-delay: .2s; }
.ui-view-delay300 { -webkit-animation-delay: .3s; -moz-animation-delay: .3s; animation-delay: .3s; }
.ui-view-delay400 { -webkit-animation-delay: .4s; -moz-animation-delay: .4s; animation-delay: .4s; }
.ui-view-delay500 { -webkit-animation-delay: .5s; -moz-animation-delay: .5s; animation-delay: .5s; }
.ui-view-delay700 { -webkit-animation-delay: .7s; -moz-animation-delay: .7s; animation-delay: .7s; }
.ui-view-delay1000 { -webkit-animation-delay: 1s; -moz-animation-delay: 1s; animation-delay: 1s; }
