/*
* jQuery Mobile Framework
* Copyright (c) jQuery Project
* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses.
*/
.spin  {
	transform: rotate(360deg);
	animation-name: spin;
	animation-duration: 1s;
	animation-iteration-count:  infinite;
}
@keyframes spin {
	from {transform: rotate(0deg);}
  	to {transform: rotate(360deg);}
}

/*
  Transitions from jQtouch (with small modifications): http://www.jqtouch.com/
  Built by David Kaneda and maintained by Jonathan Stark.
*/
.slide.in {
	transform: translate3d(0,0,0);
	animation-name: slideinfromright;
	z-index: 10;
}

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

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

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

.slideup.in {
	transform: translate3d(0,0,0);
	animation-name: slideinfrombottom;
	z-index: 10;
}

.slideup.out {
	animation-name: dontmove;
	z-index: 0;
}

.slideup.out.reverse {
	transform: translate3d(0,100%,0);
	animation-name: slideouttobottom;
	z-index: 10;
}

.slideup.in.reverse {
	animation-name: dontmove;
	z-index: 0;
}

.slidedown.in {
	transform: translate3d(0,0,0);
	animation-name: slideinfromtop;
	z-index: 10;
}

.slidedown.out {
	animation-name: dontmove;
	z-index: 0;
}

.slidedown.out.reverse {
	transform: translate3d(0,-100%,0);
	animation-name: slideouttotop;
	z-index: 10;
}

.slidedown.in.reverse {
	animation-name: dontmove;
	z-index: 0;
}

@keyframes slideinfromright {
    from { transform: translate3d(100%,0,0); }
    to { transform: translate3d(0,0,0); }
}

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

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

@keyframes slideouttoright {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(100%,0,0); }
}

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

@keyframes slideinfrombottom {
    from { transform: translate3d(0,100%,0); }
    to { transform: translate3d(0,0,0); }
}

@keyframes slideouttobottom {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(0,100%,0); }
}

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

@keyframes fadein {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeout {
    from { opacity: 1; }
    to { opacity: 0; }
}

.fade.in {
	opacity: 1;
	animation-name: fadein;
}

.fade.out {
	animation-name: fadeout;
}

/* The properties in this body 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.
 */
.ui-mobile-viewport-perspective {
	perspective: 1000;
	position: absolute;
}

.ui-mobile-viewport-transitioning,
.ui-mobile-viewport-transitioning .ui-page {
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.flip {
	animation-duration: .65s;
	backface-visibility:hidden;
	transform:translate3d(0,0,0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when visibility:hidden is used. */
}

.flip.in {
	transform: rotateY(0) scale(1);
	animation-name: flipinfromleft;
	z-index: 10;
}

.flip.out {
	transform: rotateY(-180deg) scale(.8);
	animation-name: flipouttoleft;
	z-index: 0;
}

/* Shake it all about */

.flip.in.reverse {
	transform: rotateY(0) scale(1);
	animation-name: flipinfromright;
	z-index: 0;
}

.flip.out.reverse {
	transform: rotateY(180deg) scale(.8);
	animation-name: flipouttoright;
	z-index: 10;
}

@keyframes flipinfromright {
    from { transform: rotateY(-180deg) scale(.8); }
    to { transform: rotateY(0) scale(1); }
}

@keyframes flipinfromleft {
    from { transform: rotateY(180deg) scale(.8); }
    to { transform: rotateY(0) scale(1); }
}

@keyframes flipouttoleft {
    from { transform: rotateY(0) scale(1); }
    to { transform: rotateY(-180deg) scale(.8); }
}

@keyframes flipouttoright {
    from { transform: rotateY(0) scale(1); }
    to { transform: rotateY(180deg) scale(.8); }
}


/* Hackish, but reliable. */

@keyframes dontmove {
    from { opacity: 1; }
    to { opacity: 1; }
}

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

.pop.in {
	transform: scale(1);
	animation-name: popin;
	z-index: 10;
}

.pop.out.reverse {
	transform: scale(.2);
	animation-name: popout;
	z-index: 10;
}

.pop.in.reverse {
	animation-name: dontmove;
	z-index: 0;
}

@keyframes popin {
    from {
        transform: scale(.2);
    }
    to {
        transform: scale(1);
    }
}

@keyframes popout {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(.2);
    }
}


.slide.in.fade {
	animation-name: slideinfromright, fadein;
	z-index: 10;
}

.slide.out.fade {
	animation-name: slideinfromright, fadeout;
	z-index: 0;
}

.pop.fade.in {
        animation-name: popin, fadein;
	z-index: 10;
}

.pop.fade.out {
        animation-name: popout, fadeout;
	z-index: 0;
}
