* { margin: 0; padding: 0; } a { -webkit-tap-highlight-color: rgba(0,0,0,0); } body { overflow-x: hidden; -webkit-user-select: none; -webkit-text-size-adjust: none; font-family: Helvetica; -webkit-perspective: 800; -webkit-transform-style: preserve-3d; } .selectable, input, textarea { -webkit-user-select: auto; } body > * { -webkit-backface-visibility: hidden; -webkit-box-sizing: border-box; display: none; position: absolute; left: 0; width: 100%; -webkit-transform: translate3d(0,0,0) rotate(0) scale(1); min-height: 420px !important; } body.fullscreen > * { min-height: 460px !important; } body.fullscreen.black-translucent > * { min-height: 480px !important; } body.landscape > * { min-height: 320px; } body > .current { display: block !important; } .in, .out { -webkit-animation-timing-function: ease-in-out; -webkit-animation-duration: 350ms; } .slide.in { -webkit-animation-name: slideinfromright; } .slide.out { -webkit-animation-name: slideouttoleft; } .slide.in.reverse { -webkit-animation-name: slideinfromleft; } .slide.out.reverse { -webkit-animation-name: slideouttoright; } @-webkit-keyframes slideinfromright { from { -webkit-transform: translateX(100%); } to { -webkit-transform: translateX(0); } } @-webkit-keyframes slideinfromleft { from { -webkit-transform: translateX(-100%); } to { -webkit-transform: translateX(0); } } @-webkit-keyframes slideouttoleft { from { -webkit-transform: translateX(0); } to { -webkit-transform: translateX(-100%); } } @-webkit-keyframes slideouttoright { from { -webkit-transform: translateX(0); } to { -webkit-transform: translateX(100%); } } @-webkit-keyframes fadein { from { opacity: 0; } to { opacity: 1; } } @-webkit-keyframes fadeout { from { opacity: 1; } to { opacity: 0; } } .fade.in { z-index: 10; -webkit-animation-name: fadein; } .fade.out { z-index: 0; } .dissolve.in { -webkit-animation-name: fadein; } .dissolve.out { -webkit-animation-name: fadeout; } .flip { -webkit-animation-duration: .65s; } .flip.in { -webkit-animation-name: flipinfromleft; } .flip.out { -webkit-animation-name: flipouttoleft; } /* Shake it all about */ .flip.in.reverse { -webkit-animation-name: flipinfromright; } .flip.out.reverse { -webkit-animation-name: flipouttoright; } @-webkit-keyframes flipinfromright { from { -webkit-transform: rotateY(-180deg) scale(.8); } to { -webkit-transform: rotateY(0) scale(1); } } @-webkit-keyframes flipinfromleft { from { -webkit-transform: rotateY(180deg) scale(.8); } to { -webkit-transform: rotateY(0) scale(1); } } @-webkit-keyframes flipouttoleft { from { -webkit-transform: rotateY(0) scale(1); } to { -webkit-transform: rotateY(-180deg) scale(.8); } } @-webkit-keyframes flipouttoright { from { -webkit-transform: rotateY(0) scale(1); } to { -webkit-transform: rotateY(180deg) scale(.8); } } .slideup.in { -webkit-animation-name: slideup; z-index: 10; } .slideup.out { -webkit-animation-name: dontmove; z-index: 0; } .slideup.out.reverse { z-index: 10; -webkit-animation-name: slidedown; } .slideup.in.reverse { z-index: 0; -webkit-animation-name: dontmove; } @-webkit-keyframes slideup { from { -webkit-transform: translateY(100%); } to { -webkit-transform: translateY(0); } } @-webkit-keyframes slidedown { from { -webkit-transform: translateY(0); } to { -webkit-transform: translateY(100%); } } /* Hackish, but reliable. */ @-webkit-keyframes dontmove { from { opacity: 1; } to { opacity: 1; } } .swap { -webkit-transform: perspective(800); -webkit-animation-duration: .7s; } .swap.out { -webkit-animation-name: swapouttoleft; } .swap.in { -webkit-animation-name: swapinfromright; } .swap.out.reverse { -webkit-animation-name: swapouttoright; } .swap.in.reverse { -webkit-animation-name: swapinfromleft; } @-webkit-keyframes swapouttoright { 0% { -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); -webkit-animation-timing-function: ease-in-out; } 50% { -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg); -webkit-animation-timing-function: ease-in; } 100% { -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg); } } @-webkit-keyframes swapouttoleft { 0% { -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); -webkit-animation-timing-function: ease-in-out; } 50% { -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg); -webkit-animation-timing-function: ease-in; } 100% { -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg); } } @-webkit-keyframes swapinfromright { 0% { -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg); -webkit-animation-timing-function: ease-out; } 50% { -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg); -webkit-animation-timing-function: ease-in-out; } 100% { -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); } } @-webkit-keyframes swapinfromleft { 0% { -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg); -webkit-animation-timing-function: ease-out; } 50% { -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg); -webkit-animation-timing-function: ease-in-out; } 100% { -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg); } } .cube { -webkit-animation-duration: .55s; } .cube.in { -webkit-animation-name: cubeinfromright; -webkit-transform-origin: 0% 50%; } .cube.out { -webkit-animation-name: cubeouttoleft; -webkit-transform-origin: 100% 50%; } .cube.in.reverse { -webkit-animation-name: cubeinfromleft; -webkit-transform-origin: 100% 50%; } .cube.out.reverse { -webkit-animation-name: cubeouttoright; -webkit-transform-origin: 0% 50%; } @-webkit-keyframes cubeinfromleft { from { -webkit-transform: rotateY(-90deg) translateZ(320px); opacity: .5; } to { -webkit-transform: rotateY(0deg) translateZ(0); opacity: 1; } } @-webkit-keyframes cubeouttoright { from { -webkit-transform: rotateY(0deg) translateX(0); opacity: 1; } to { -webkit-transform: rotateY(90deg) translateZ(320px); opacity: .5; } } @-webkit-keyframes cubeinfromright { from { -webkit-transform: rotateY(90deg) translateZ(320px); opacity: .5; } to { -webkit-transform: rotateY(0deg) translateZ(0); opacity: 1; } } @-webkit-keyframes cubeouttoleft { from { -webkit-transform: rotateY(0deg) translateZ(0); opacity: 1; } to { -webkit-transform: rotateY(-90deg) translateZ(320px); opacity: .5; } } .pop { -webkit-transform-origin: 50% 50%; } .pop.in { -webkit-animation-name: popin; z-index: 10; } .pop.out.reverse { -webkit-animation-name: popout; z-index: 10; } .pop.in.reverse { z-index: 0; -webkit-animation-name: dontmove; } @-webkit-keyframes popin { from { -webkit-transform: scale(.2); opacity: 0; } to { -webkit-transform: scale(1); opacity: 1; } } @-webkit-keyframes popout { from { -webkit-transform: scale(1); opacity: 1; } to { -webkit-transform: scale(.2); opacity: 0; } }