/*
* clone and fix from:
* jQuery Mobile Framework
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses.
*/
.ani.in {
	-webkit-animation-timing-function: ease-out;
	-webkit-animation-duration: 350ms;
	animation-timing-function: ease-out;
	animation-duration: 350ms;
}

.ani.out {
	-webkit-animation-timing-function: ease-in;
	-webkit-animation-duration: 225ms;
	animation-timing-function: ease-in;
	animation-duration: 225ms;
}

@-webkit-keyframes fadein {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes fadein {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@-webkit-keyframes fadeout {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

@keyframes fadeout {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

.fade.out {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translateX(0);
	opacity: 0;
	-webkit-animation-duration: 125ms;
	-webkit-animation-name: fadeout;
	animation-duration: 125ms;
	animation-name: fadeout;
}

.fade.in {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translateX(0);
	opacity: 1;
	-webkit-animation-duration: 225ms;
	-webkit-animation-name: fadein;
	animation-duration: 225ms;
	animation-name: fadein;
}

.fade.out.reverse {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translateX(0);
}

.fade.in.reverse {
	-webkit-transform: translate3d(0, 0, 0);
	transform: translateX(0);
}

.pop {
	-webkit-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
}

.pop.in {
	-webkit-transform: scale(1);
	-webkit-animation-name: popin;
	-webkit-animation-duration: 350ms;
	transform: scale(1);
	animation-name: popin;
	animation-duration: 350ms;
	opacity: 1;
}

.pop.out {
	-webkit-animation-name: fadeout;
	-webkit-animation-duration: 100ms;
	animation-name: fadeout;
	animation-duration: 100ms;
	opacity: 0;
}

.pop.in.reverse {
	-webkit-animation-name: fadein;
	animation-name: fadein;
}

.pop.out.reverse {
	-webkit-transform: scale(.8);
	-webkit-animation-name: popout;
	transform: scale(.8);
	animation-name: popout;
}

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

	to {
		-webkit-transform: scale(1);
		opacity: 1;
	}
}

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

	to {
		transform: scale(1);
		opacity: 1;
	}
}

@-webkit-keyframes popout {
	from {
		-webkit-transform: scale(1);
		opacity: 1;
	}

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

@keyframes popout {
	from {
		transform: scale(1);
		opacity: 1;
	}

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

/* keyframes for slidein from sides */
@-webkit-keyframes slideinfromright {
	from {
		-webkit-transform: translate3d(100%, 0, 0);
	}

	to {
		-webkit-transform: translate3d(0, 0, 0);
	}
}

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

	to {
		transform: translateX(0);
	}
}

@-webkit-keyframes slideinfromleft {
	from {
		-webkit-transform: translate3d(-100%, 0, 0);
	}

	to {
		-webkit-transform: translate3d(0, 0, 0);
	}
}

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

	to {
		transform: translateX(0);
	}
}

/* keyframes for slideout to sides */
@-webkit-keyframes slideouttoleft {
	from {
		-webkit-transform: translate3d(0, 0, 0);
	}

	to {
		-webkit-transform: translate3d(-100%, 0, 0);
	}
}

@keyframes slideouttoleft {
	from {
		transform: translateX(0);
	}

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

@-webkit-keyframes slideouttoright {
	from {
		-webkit-transform: translate3d(0, 0, 0);
	}

	to {
		-webkit-transform: translate3d(100%, 0, 0);
	}
}

@keyframes slideouttoright {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(100%);
	}
}

.slide.out,
.slide.in {
	-webkit-animation-timing-function: ease-out;
	-webkit-animation-duration: 350ms;
	animation-timing-function: ease-out;
	animation-duration: 350ms;
}

.slide.out {
	-webkit-transform: translate3d(-100%, 0, 0);
	-webkit-animation-name: slideouttoleft;
	transform: translateX(-100%);
	animation-name: slideouttoleft;
}

.slide.in {
	-webkit-transform: translate3d(0, 0, 0);
	-webkit-animation-name: slideinfromright;
	transform: translateX(0);
	animation-name: slideinfromright;
}

.slide.out.reverse {
	-webkit-transform: translate3d(100%, 0, 0);
	-webkit-animation-name: slideouttoright;
	transform: translateX(100%);
	animation-name: slideouttoright;
}

.slide.in.reverse {
	-webkit-transform: translate3d(0, 0, 0);
	-webkit-animation-name: slideinfromleft;
	transform: translateX(0);
	animation-name: slideinfromleft;
}

.slide-flow.in,
.slide-flow.out {
	-webkit-animation-timing-function: ease-out;
	-webkit-animation-duration: 350ms;
	animation-timing-function: ease-out;
	animation-duration: 350ms;
}

.slide-flow.out {
	-webkit-transform: scale(.88);
	-webkit-animation-name: slideflowouttoleft;
	opacity: 0;
	z-index: 1;
	transform: scale(.88);
	animation-name: slideflowouttoleft;
}

.slide-flow.in {
	-webkit-transform: translate3d(0, 0, 0);
	-webkit-animation-name: slideinfromright;
	z-index: 2;
	transform: translateX(0);
	animation-name: slideinfromright;
}

.slide-flow.out.reverse {
	-webkit-transform: translate3d(100%, 0, 0);
	-webkit-animation-name: slideouttoright;
	opacity: 1;
	z-index: 2;
	transform: translateX(100%);
	animation-name: slideouttoright;
}

.slide-flow.in.reverse {
	-webkit-transform: scale(1);
	-webkit-animation-name: slideflowinfromright;
	opacity: .9;
	z-index: 1;
	transform: scale(1);
	animation-name: slideflowinfromright;
}

@-webkit-keyframes slideflowouttoleft {
	0% {
		-webkit-transform: scale(1);
		opacity: .9;
	}

	60% {
		opacity: .2;
	}

	100% {
		-webkit-transform: scale(.88);
		opacity: 0;
	}
}

@keyframes slideflowouttoleft {
	0% {
		transform: scale(1);
		opacity: .9;
	}

	60% {
		opacity: .2;
	}

	100% {
		transform: scale(.88);
		opacity: 0;
	}
}

@-webkit-keyframes slideflowinfromright {
	0% {
		-webkit-transform: scale(.88);
		opacity: 0;
	}

	40% {
		opacity: .25;
	}

	100% {
		-webkit-transform: scale(1);
		opacity: .9;
	}
}

@keyframes slideflowinfromright {
	0% {
		transform: scale(.88);
		opacity: 0;
	}

	40% {
		opacity: .25;
	}

	100% {
		transform: scale(1);
		opacity: .9;
	}
}

.slidefade.out {
	-webkit-transform: translateX(-100%);
	-webkit-animation-name: slideouttoleft;
	-webkit-animation-duration: 225ms;
	transform: translateX(-100%);
	animation-name: slideouttoleft;
	animation-duration: 225ms;
}

.slidefade.in {
	-webkit-transform: translateX(0);
	-webkit-animation-name: fadein;
	-webkit-animation-duration: 200ms;
	transform: translateX(0);
	animation-name: fadein;
	animation-duration: 200ms;
}

.slidefade.out.reverse {
	-webkit-transform: translateX(100%);
	-webkit-animation-name: slideouttoright;
	-webkit-animation-duration: 200ms;
	transform: translateX(100%);
	animation-name: slideouttoright;
	animation-duration: 200ms;
}

.slidefade.in.reverse {
	-webkit-transform: translateX(0);
	-webkit-animation-name: fadein;
	-webkit-animation-duration: 200ms;
	transform: translateX(0);
	animation-name: fadein;
	animation-duration: 200ms;
}

/* slide down */
.slidedown.out {
	-webkit-animation-name: fadeout;
	-webkit-animation-duration: 100ms;
	animation-name: fadeout;
	animation-duration: 100ms;
}

.slidedown.in {
	-webkit-transform: translateY(0);
	-webkit-animation-name: slideinfromtop;
	-webkit-animation-duration: 250ms;
	transform: translateY(0);
	animation-name: slideinfromtop;
	animation-duration: 250ms;
}

.slidedown.in.reverse {
	-webkit-animation-name: fadein;
	-webkit-animation-duration: 150ms;
	animation-name: fadein;
	animation-duration: 150ms;
}

.slidedown.out.reverse {
	-webkit-transform: translateY(-100%);
	-webkit-animation-name: slideouttotop;
	-webkit-animation-duration: 200ms;
	transform: translateY(-100%);
	animation-name: slideouttotop;
	animation-duration: 200ms;
}

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

	to {
		-webkit-transform: translateY(0);
	}
}

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

	to {
		transform: translateY(0);
	}
}

@-webkit-keyframes slideouttotop {
	from {
		-webkit-transform: translateY(0);
	}

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

@keyframes slideouttotop {
	from {
		transform: translateY(0);
	}

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

/* slide up */
.slideup.out {
	-webkit-animation-name: fadeout;
	-webkit-animation-duration: 100ms;
	animation-name: fadeout;
	animation-duration: 100ms;
}

.slideup.in {
	-webkit-transform: translateY(0);
	-webkit-animation-name: slideinfrombottom;
	-webkit-animation-duration: 250ms;
	transform: translateY(0);
	animation-name: slideinfrombottom;
	animation-duration: 250ms;
}

.slideup.in.reverse {
	-webkit-animation-name: fadein;
	-webkit-animation-duration: 150ms;
	animation-name: fadein;
	animation-duration: 150ms;
}

.slideup.out.reverse {
	-webkit-transform: translateY(100%);
	-webkit-animation-name: slideouttobottom;
	-webkit-animation-duration: 200ms;
	transform: translateY(100%);
	animation-name: slideouttobottom;
	animation-duration: 200ms;
}

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

	to {
		-webkit-transform: translateY(0);
	}
}

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

	to {
		transform: translateY(0);
	}
}

@-webkit-keyframes slideouttobottom {
	from {
		-webkit-transform: translateY(0);
	}

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

@keyframes slideouttobottom {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(100%);
	}
}

/* The properties in this rule are only necessary for the 'flip' transition.
 * We need specify the perspective to create a projection matrix. This will add
 * some depth as the element flips. The depth number represents the distance of
 * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate
 * value.
 */
.viewport-flip {
	-webkit-perspective: 1000;
	perspective: 1000;
	position: absolute;
}

.flip {
	-webkit-backface-visibility: hidden;
	-webkit-transform: perspective(960px) translateZ(0);
	/* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */
	-webkit-transform-style: preserve-3d;
	-webkit-transform-origin: 50% 50%;
	-webkit-will-change: transform, opacity;
	backface-visibility: hidden;
	transform: perspective(960px) translateZ(0);
	transform-style: preserve-3d;
	transform-origin: 50% 50%;
	will-change: transform, opacity;
}

.flip.out {
	-webkit-transform: perspective(960px) rotateY(-90deg) scale(.96);
	-webkit-animation-name: flipouttoleft;
	-webkit-animation-duration: 360ms;
	-webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	opacity: .12;
	transform: perspective(960px) rotateY(-90deg) scale(.96);
	animation-name: flipouttoleft;
	animation-duration: 360ms;
	animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.flip.in {
	-webkit-transform: perspective(960px) translateZ(0);
	-webkit-animation-name: flipintoright;
	-webkit-animation-duration: 360ms;
	-webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
	transform: perspective(960px) translateZ(0);
	animation-name: flipintoright;
	animation-duration: 360ms;
	animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.flip.out.reverse {
	-webkit-transform: perspective(960px) rotateY(90deg) scale(.96);
	-webkit-animation-name: flipouttoright;
	opacity: .12;
	transform: perspective(960px) rotateY(90deg) scale(.96);
	animation-name: flipouttoright;
}

.flip.in.reverse {
	-webkit-animation-name: flipintoleft;
	animation-name: flipintoleft;
}

@-webkit-keyframes flipouttoleft {
	from {
		-webkit-transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}

	to {
		-webkit-transform: perspective(960px) rotateY(-90deg) scale(.96);
		opacity: .12;
	}
}

@keyframes flipouttoleft {
	from {
		transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}

	to {
		transform: perspective(960px) rotateY(-90deg) scale(.96);
		opacity: .12;
	}
}

@-webkit-keyframes flipouttoright {
	from {
		-webkit-transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}

	to {
		-webkit-transform: perspective(960px) rotateY(90deg) scale(.96);
		opacity: .12;
	}
}

@keyframes flipouttoright {
	from {
		transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}

	to {
		transform: perspective(960px) rotateY(90deg) scale(.96);
		opacity: .12;
	}
}

@-webkit-keyframes flipintoleft {
	from {
		-webkit-transform: perspective(960px) rotateY(-90deg) scale(.96);
		opacity: .12;
	}

	to {
		-webkit-transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}
}

@keyframes flipintoleft {
	from {
		transform: perspective(960px) rotateY(-90deg) scale(.96);
		opacity: .12;
	}

	to {
		transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}
}

@-webkit-keyframes flipintoright {
	from {
		-webkit-transform: perspective(960px) rotateY(90deg) scale(.96);
		opacity: .12;
	}

	to {
		-webkit-transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}
}

@keyframes flipintoright {
	from {
		transform: perspective(960px) rotateY(90deg) scale(.96);
		opacity: .12;
	}

	to {
		transform: perspective(960px) rotateY(0) scale(1);
		opacity: 1;
	}
}

/* The properties in this rule are only necessary for the 'flip' transition.
 * We need specify the perspective to create a projection matrix. This will add
 * some depth as the element flips. The depth number represents the distance of
 * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate
 * value.
 */
.viewport-turn {
	-webkit-perspective: 200px;
	perspective: 200px;
	position: absolute;
}

.turn {
	-webkit-backface-visibility: hidden;
	-webkit-transform: perspective(200px) translateX(0);
	/* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */
	-webkit-transform-origin: 0;

	backface-visibility: hidden;
	transform: perspective(200px) translateX(0);
	transform-origin: 0;
}

.turn.out {
	-webkit-transform: perspective(200px) rotateY(-90deg) scale(.9);
	-webkit-animation-name: turnouttoleft;
	-webkit-animation-duration: 125ms;

	transform: perspective(200px) rotateY(-90deg) scale(.9);
	animation-name: turnouttoleft;
	animation-duration: 125ms;
}

.turn.in {
	-webkit-animation-name: turnintoright;
	-webkit-animation-duration: 250ms;
	animation-name: turnintoright;
	animation-duration: 250ms;

}

.turn.out.reverse {
	-webkit-transform: perspective(200px) rotateY(90deg) scale(.9);
	-webkit-animation-name: turnouttoright;
	transform: perspective(200px) rotateY(90deg) scale(.9);
	animation-name: turnouttoright;
}

.turn.in.reverse {
	-webkit-animation-name: turnintoleft;
	animation-name: turnintoleft;
}

@-webkit-keyframes turnouttoleft {
	from {
		-webkit-transform: perspective(200px) rotateY(0);
	}

	to {
		-webkit-transform: perspective(200px) rotateY(-90deg) scale(.9);
	}
}

@keyframes turnouttoleft {
	from {
		transform: perspective(200px) rotateY(0);
	}

	to {
		transform: perspective(200px) rotateY(-90deg) scale(.9);
	}
}

@-webkit-keyframes turnouttoright {
	from {
		-webkit-transform: perspective(200px) rotateY(0);
	}

	to {
		-webkit-transform: perspective(200px) rotateY(90deg) scale(.9);
	}
}

@keyframes turnouttoright {
	from {
		transform: perspective(200px) rotateY(0);
	}

	to {
		transform: perspective(200px) rotateY(90deg) scale(.9);
	}
}

@-webkit-keyframes turnintoleft {
	from {
		-webkit-transform: perspective(200px) rotateY(-90deg) scale(.9);
	}

	to {
		-webkit-transform: perspective(200px) rotateY(0);
	}
}

@keyframes turnintoleft {
	from {
		transform: perspective(200px) rotateY(-90deg) scale(.9);
	}

	to {
		transform: perspective(200px) rotateY(0);
	}
}

@-webkit-keyframes turnintoright {
	from {
		-webkit-transform: perspective(200px) rotateY(90deg) scale(.9);
	}

	to {
		-webkit-transform: perspective(200px) rotateY(0);
	}
}

@keyframes turnintoright {
	from {
		transform: perspective(200px) rotateY(90deg) scale(.9);
	}

	to {
		transform: perspective(200px) rotateY(0);
	}
}

/* flow transition */
.flow {
	-webkit-transform-origin: 50% 50%;
	-webkit-will-change: transform, opacity;
	transform-origin: 50% 50%;
	will-change: transform, opacity;
}

.flow.out {
	-webkit-transform: translateX(-18%) scale(.94);
	-webkit-animation-name: flowouttoleft;
	-webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	-webkit-animation-duration: 320ms;
	opacity: .12;
	transform: translateX(-18%) scale(.94);
	animation-name: flowouttoleft;
	animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
	animation-duration: 320ms;
}

.flow.in {
	-webkit-transform: translateX(0) scale(1);
	-webkit-animation-name: flowinfromright;
	-webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
	-webkit-animation-duration: 360ms;
	transform: translateX(0) scale(1);
	animation-name: flowinfromright;
	animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
	animation-duration: 360ms;
}

.flow.out.reverse {
	-webkit-transform: translateX(18%) scale(.94);
	-webkit-animation-name: flowouttoright;
	opacity: .12;
	transform: translateX(18%) scale(.94);
	animation-name: flowouttoright;
}

.flow.in.reverse {
	-webkit-animation-name: flowinfromleft;
	animation-name: flowinfromleft;
}

@-webkit-keyframes flowouttoleft {
	from {
		-webkit-transform: translateX(0) scale(1);
		opacity: 1;
	}

	to {
		-webkit-transform: translateX(-18%) scale(.94);
		opacity: .12;
	}
}

@keyframes flowouttoleft {
	from {
		transform: translateX(0) scale(1);
		opacity: 1;
	}

	to {
		transform: translateX(-18%) scale(.94);
		opacity: .12;
	}
}

@-webkit-keyframes flowouttoright {
	from {
		-webkit-transform: translateX(0) scale(1);
		opacity: 1;
	}

	to {
		-webkit-transform: translateX(18%) scale(.94);
		opacity: .12;
	}
}

@keyframes flowouttoright {
	from {
		transform: translateX(0) scale(1);
		opacity: 1;
	}

	to {
		transform: translateX(18%) scale(.94);
		opacity: .12;
	}
}

@-webkit-keyframes flowinfromleft {
	from {
		-webkit-transform: translateX(-18%) scale(.96);
		opacity: .28;
	}

	to {
		-webkit-transform: translateX(0) scale(1);
		opacity: 1;
	}
}

@keyframes flowinfromleft {
	from {
		transform: translateX(-18%) scale(.96);
		opacity: .28;
	}

	to {
		transform: translateX(0) scale(1);
		opacity: 1;
	}
}

@-webkit-keyframes flowinfromright {
	from {
		-webkit-transform: translateX(18%) scale(.96);
		opacity: .28;
	}

	to {
		-webkit-transform: translateX(0) scale(1);
		opacity: 1;
	}
}

@keyframes flowinfromright {
	from {
		transform: translateX(18%) scale(.96);
		opacity: .28;
	}

	to {
		transform: translateX(0) scale(1);
		opacity: 1;
	}
}