/* Typography & Colors
------------------------------------------------

"04b03"	Regular (400)

*/

body, html { height: 100% }

body {
	margin: 0; padding: 0;
	font-family: "04b03";
	font-size: 40px;
	min-height: 650px;
	min-width: 780px;
	position: relative;
	text-transform: uppercase;
}

.touch-device body {
	min-height: 0;
	min-width: 0;
}

@media (max-width: 730px) {
	.touch-device body {
		font-size: 30px;
	}
}

@media (max-width: 500px) {
	.touch-device body {
		font-size: 22px;
	}
}

::selection {
	background: #FF00FF;
}
::-moz-selection {
	background: #FF00FF;
}

img {
	max-width: 100%;
}

.row {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	max-width: 760px;
	margin: 0 auto;
	padding: 0 30px;
	width: 100%;
}

/* Large Screens */
@media (min-width: 1000px) and (min-height: 800px) {
	.row {
		max-width: 1100px;
	}
}

#outdated-browser {
	background: #86DAFE;
	color: #FFF;
	position: absolute;
	top: 0; left: 0;
	padding: 50px 0;
	text-align: center;
	width: 100%; height: 100%;
	z-index: 100000;
}


#scene {
	overflow: hidden;
	position: relative;
	width: 100%; height: 100%;
}

.screen {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
}

.touch-content { display: none }
.touch-device .touch-content { display: block }
.touch-device .desktop-content { display: none }

.touch-device *:hover {
	-webkit-animation: none !important;
	animation: none !important;
}


.keyboard {
	width: 200px;
}
	.keyboard .key {
		background: #F2F2F2;
		border: 10px #E6E6E6 solid;
		display: inline-block;
		padding: 5px;
		position: relative;
		width: 30px; height: 30px;
	}
		.keyboard .key:after {
			background: #B3B3B3;
			content: "";
			padding: 10px 0;
			position: absolute;
			top: -10px; right: -10px;
			width: 10px; height: 100%;
		}

		.keyboard .key:before {
			background: #B3B3B3;
			content: "";
			padding: 0 10px;
			position: absolute;
			bottom: -10px; right: -10px;
			width: 100%; height: 10px;
		}

	.keyboard .key.top {
		display: block;
		margin-left: auto;
		margin-right: auto;
	}

	.keyboard .key.bottom {
		margin: 10px 10px 0;
	}

	.keyboard .key.left img {
		-webkit-transform: rotate(-90deg);
		-moz-transform: rotate(-90deg);
		-ms-transform: rotate(-90deg);
		transform: rotate(-90deg);
	}

	.keyboard .key.bottom img {
		-webkit-transform: rotate(180deg);
		-moz-transform: rotate(180deg);
		-ms-transform: rotate(-180deg);
		transform: rotate(180deg);
	}

	.keyboard .key.right img {
		-webkit-transform: rotate(90deg);
		-moz-transform: rotate(90deg);
		-ms-transform: rotate(90deg);
		transform: rotate(90deg);
	}

	.keyboard .key.shift {
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		
		font-size: 0.6em;
		text-align: center;
		text-transform: lowercase;
		width: 100%; height: 50px;
	}

	@media (min-width: 1000px) and (min-height: 800px) {

		.keyboard {
			width: 230px;
		}

			.keyboard .key {
				width: 40px; height: 40px;
			}

			.keyboard .key.shift {
				font-size: 0.8em;
				height: 60px;
			}
	}

	@media (max-width: 730px) {
		.keyboard {
			width: 140px;
		}

			.keyboard .key {
				border-width: 5px !important;
				padding: 5px 5px 10px;
				width: 20px; height: 20px;
			}
				.keyboard .key:before {
					height: 5px;
					padding: 0 5px;
					bottom: -5px;
					right: -5px;
				}

				.keyboard .key:after {
					padding: 5px 0;
					width: 5px;
					top: -5px;
					right: -5px;
				}

			.keyboard .key.shift {
				font-size: 0.6em;
				height: 40px;
			}
	}


.button {
	background: #F5B7AB;
	border: 10px #EE836E solid;
	color: #FFF;
	display: inline-block;
	position: relative;
	padding: 15px 20px 10px;
	text-decoration: none;
	text-transform: lowercase;
	z-index: 1000;

	-webkit-backface-visibility: hidden;
}
	.button:hover {
		background: #E85C41;
		border-color: #DB5442;
	}
		.button:hover:after,
		.button:hover:before {
			background: #C44B3B;
		}

	.button:active {
		background: #A54235;
	}

	.button:after {
		background: #E85C41;
		content: "";
		padding: 10px 0;
		position: absolute;
		top: -10px; right: -10px;
		width: 10px; height: 100%;
	}

	.button:before {
		background: #E85C41;
		content: "";
		padding: 0 10px;
		position: absolute;
		bottom: -10px; right: -10px;
		width: 100%; height: 10px;
	}

#sound {
	background: url(../img/sound.png) no-repeat center;
	background-size: 100%;
	border: none;
	cursor: pointer;
	display: block;
	outline: none;
	position: absolute;
	bottom: 0; left: 0;
	margin: 10px 15px;
	padding: 15px;
	width: 60px; height: 60px;
	z-index: 1000;
}
	#sound .x {
		background: url(../img/x.png) no-repeat center;
		background-size: 100%;
		display: block;
		opacity: 0;
		position: absolute;
		top: 0; left: 2px;
		width: 100%; height: 100%;

		-webkit-transform: scale(0);
		-moz-transform: scale(0);
		transform: scale(0);
	}

	@media (min-width: 768px) {
		#sound:hover {
			-webkit-animation: shake 0.4s 1 steps(3);
			-moz-animation: shake 0.4s 1 steps(3);
			animation: shake 0.4s 1 steps(3);
		}
	}

	@-webkit-keyframes shake {
		0% { -webkit-transform: rotate(40deg); } 50% { -webkit-transform: rotate(-20deg); } 100% { -webkit-transform: rotate(40deg); }
	}
	@-moz-keyframes shake {
		0% { -moz-transform: rotate(40deg); } 50% { -moz-transform: rotate(-20deg); } 100% { -moz-transform: rotate(40deg); }
	}
	@keyframes shake {
		0% { transform: rotate(40deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(40deg); }
	}

	#sound.off .x {
		opacity: 1;

		-webkit-transform: scale(1);
		-moz-transform: scale(1);
		transform: scale(1);

		-webkit-animation: pop-in 0.4s 1 steps(3);
		-moz-animation: pop-in 0.4s 1 steps(3);
		animation: pop-in 0.4s 1 steps(3);
	}

	/* Small Screens */
	@media (max-width: 560px), (max-width: 720px) and (max-height: 800px) {
		.touch-device #sound {
			width: 30px; height: 30px;
		}
	}

/* Start Screen
------------------------------------------------*/
#start.screen {
	background: #86DAFE url(../img/start-bg.gif) repeat center;
	background-size: cover;
	padding: 25px 0;
	top: 0;
}

	#start.screen * {
		opacity: 0;
	}

	html.has-loaded #start.screen * {
		opacity: 1
	}

	/* Small Screens */
	@media (max-width: 560px) {
		.touch-device #start.screen {
			padding: 35px 0;
			text-align: center;
		}
	}

	/* Small Landscape Screens */
	@media (max-width: 720px) and (max-height: 800px) {
		.touch-device #start.screen {
			padding: 10px 0;
			text-align: center;
		}
	}

	/*** FASTFIVES LOGO  ***/
	#start #fastfives {
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		position: absolute;
		top: 14%; left: -100%;
		text-align: center;
		width: 100%;
	}

		#start #fastfives .inner {
			display: inline-block;
			position: relative;
			max-width: 100%;
		}
			@media (min-width: 400px) and (max-width: 720px) and (max-height: 600px) {
				#start #fastfives .inner {
					max-width: 70%;
				}
			}

		#start.loaded #fastfives .star {
			position: absolute;
			top: -18px; right: 100%;

			-webkit-transform: scale(0);
			-moz-transform: scale(0);
			transform: scale(0);
		}

		#start.loaded #fastfives {
			left: 0;
			-webkit-animation: speed-in 0.3s 1 steps(20);
			-moz-animation: speed-in 0.3s 1 steps(20);
			animation: speed-in 0.3s 1 steps(20);
		}

		@-webkit-keyframes speed-in {
			0% { left: -100%; } 80% { left: 10%; -webkit-transform: skew(-20deg); } 100% { left: 0; }
		}
		@-moz-keyframes speed-in {
			0% { left: -100%; } 80% { left: 10%; -moz-transform: skew(-20deg); } 100% { left: 0; }
		}
		@keyframes speed-in {
			0% { left: -100%; } 80% { left: 10%; transform: skew(-20deg); } 100% { left: 0; }
		}

		#start.loaded #fastfives .star {
			-webkit-animation: enlarge-star 0.3s steps(20) 0.3s 1 forwards;
			-moz-animation: enlarge-star 0.3s steps(20) 0.3s 1 forwards;
			animation: enlarge-star 0.3s steps(20) 0.3s 1 forwards;
		}

			#start.loaded #fastfives .star img {
				-webkit-animation: spin-star 3s infinite steps(16);
				-moz-animation: spin-star 3s infinite steps(16);
				animation: spin-star 3s infinite steps(16);
			}

		@-webkit-keyframes enlarge-star {
			0% { -webkit-transform: scale(0); }
			50% { right: -18px; }
			90% { -webkit-transform: scale(1.6); right: -18px; }
			100% { -webkit-transform: scale(1); right: -18px; }
		}
		@-moz-keyframes enlarge-star {
			0% { -moz-transform: scale(0); }
			50% { right: -18px; }
			90% { -moz-transform: scale(1.6); right: -18px; }
			100% { -moz-transform: scale(1); right: -18px; }
		}
		@keyframes enlarge-star {
			0% { transform: scale(0); }
			50% { right: -18px; }
			90% { transform: scale(1.6); right: -18px; }
			100% { transform: scale(1); right: -18px; }
		}

		@-webkit-keyframes spin-star {
			0% { -webkit-transform: rotate(0deg); }
			100% { -webkit-transform: rotate(360deg); }
		}
		@-moz-keyframes spin-star {
			0% { -moz-transform: rotate(0deg); }
			100% { -moz-transform: rotate(360deg); }
		}
		@keyframes spin-star {
			0% { transform: rotate(0deg); }
			100% { transform: rotate(360deg); }
		}

	
	/*** ANY KEY  ***/
	#start #any-key {
		color: #FF00FF;
		font-size: 0.8em;
		position: absolute;
		top: 34%; left: 0;
		text-align: center;
		width: 100%;

		-webkit-animation: cycle-any-key-color 0.3s steps(2) infinite;
		-moz-animation: cycle-any-key-color 0.3s steps(2) infinite;
		animation: cycle-any-key-color 0.3s steps(2) infinite;
	}
		@-webkit-keyframes cycle-any-key-color {
			0% { color: #FF00FF } 50% { color: #0000FF } 100% { color: #FF00FF }
		}
		@-moz-keyframes cycle-any-key-color {
			0% { color: #FF00FF } 50% { color: #0000FF } 100% { color: #FF00FF }
		}
		@keyframes cycle-any-key-color {
			0% { color: #FF00FF } 50% { color: #0000FF } 100% { color: #FF00FF }
		}

		.touch-device #start #any-key {
			top: 34%;
		}

	/*** HIGH SCORES LINK ***/
	#start #high-scores-link {
		font-size: 0.8em;
		position: absolute;
		text-align: center;
		top: 39%;
		z-index: 1000;
		width: 100%;
	}

		#start #high-scores-link a {
			color: #0000FF;
			opacity: 0.75;
			text-decoration: none;
		}

			#start #high-scores-link span {
				font-size: 0.6em;
				vertical-align: middle;
			}

			#start #high-scores-link a:hover {
				color: #00ff00;	
				-webkit-animation: cycle-high-scores-color 0.1s steps(2) infinite;
				-moz-animation: cycle-high-scores-color 0.1s steps(2) infinite;
				animation: cycle-high-scores-color 0.1s steps(2) infinite;
			}

		@-webkit-keyframes cycle-high-scores-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}
		@-moz-keyframes cycle-high-scores-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}
		@keyframes cycle-high-scores-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}

		.touch-device #start #high-scores-link {
			top: 39%;
		}

	/*** APP STORE DOWNLOAD LINK ***/
	#start #app-download-link {
		font-size: 0.8em;
		position: absolute;
		text-align: center;
		top: 44%;
		z-index: 1000;
		width: 100%;
	}

		#start #app-download-link a {
			color: #0000FF;
			opacity: 0.75;
			text-decoration: none;
		}

			#start #app-download-link span {
				font-size: 0.6em;
				vertical-align: middle;
			}

			#start #app-download-link a:hover {
				color: #00ff00;	
				-webkit-animation: cycle-app-download-color 0.1s steps(2) infinite;
				-moz-animation: cycle-app-download-color 0.1s steps(2) infinite;
				animation: cycle-app-download-color 0.1s steps(2) infinite;
			}

		@-webkit-keyframes cycle-app-download-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}
		@-moz-keyframes cycle-app-download-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}
		@keyframes cycle-app-download-color {
			0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
		}

		.touch-device #start #app-download-link {
			top: 44%;
		}

	/* Large Screens */
	@media (min-height: 800px) {
		#start #any-key {
			font-size: 1em;
			top: 39%;
		}

		#start #high-scores-link {
			font-size: 1em;
			top: 45%;
		}

		#start #app-download-link {
			font-size: 1em;
			top: 51%;
		}

	}

	/* Short Mid Screens */
	@media (min-width: 561px) and (max-height: 800px) {
		#start #any-key {
			top: 38% !important;
		}

		#start #high-scores-link {
			top: 43% !important;
		}

		#start #app-download-link {
			top: 48% !important;
		}

	}


	/* Small Screens */
	@media (max-width: 560px) {

		.touch-device #start #any-key {
			top: 34% !important;
		}
		.touch-device #start #high-scores-link {
			top: 39% !important;
		}
		.touch-device #start #app-download-link {
			top: 44% !important;
		}

	}

	/* Small Landscape Screens */
	@media (min-width: 500px) and (max-width: 700px) and (max-height: 650px) {

		.touch-device #start #any-key {
			top: 39% !important;
			font-size: 0.4em !important;
		}
		.touch-device #start #high-scores-link {
			top: 47% !important;
			font-size: 0.4em !important;
		}
		.touch-device #start #app-download-link {
			top: 55% !important;
			font-size: 0.4em !important;
		}

	}


	/*** KEY EXPLANATION ***/
	#start .key-explanation {
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		bottom: 90px; left: 0;
		position: absolute;
		width: 100%;
		
	}
		#start .key-explanation .keyboard {
			float: left;
			margin-top: -12px;
		}
			#start .key-explanation .keyboard .shift {
				margin-top: 5px;
			}

		#start .key-explanation .explanation {
			margin-top: 5px;
			font-size: 0.8em;
			float: right;
			position: relative;
			width: 63%;
		}
			#start .key-explanation .explanation .num {
				font-size: 0.6em;
				position: absolute;
				top: 3px; left: -2em;
				width: 1.5em;
				text-align: right;
			}

		#start .key-explanation .row {
			clear: both;
			padding-top: 50px;
		}

	/* Mid Screens */
	@media (min-width: 1000px) and (max-width: 1100px) and (min-height: 800px) {
		#start .key-explanation .explanation {
			font-size: 1.15em !important;
			width: 67%;
		}
	}

	/* Large Screens */
	@media (min-width: 1000px) and (min-height: 800px) {
		#start .key-explanation .explanation {
			font-size: 1.2em;
		}

		#start .key-explanation .row {
			margin-bottom: 50px;
		}

		#start .key-explanation .keyboard {
			margin-top: 0;
		}
			#start .key-explanation .keyboard .shift {
				margin-top: -5px;
			}
	}

	/*** TOUCH EXPLANATION ***/
	#start .key-explanation.touch-content {
		bottom: 110px;
	}

		#start .key-explanation.touch-content .row {
			margin-bottom: -50px;
			overflow: hidden;
		}

		#start .key-explanation.touch-content .explanation {
			margin-top: 15px;
			width: 55%;
		}

		#start .key-explanation.touch-content .image {
			float: left;
			position: relative;
			text-align: center;
			right: -30px;
			margin-top: -40px;
			width: 30%;
		}
		#start .key-explanation.touch-content .two-swipe {
			margin-top: -70px;
		}

	/* Short Mid Screens */
	@media (min-width: 561px) and (max-height: 800px) {

		#start .key-explanation.touch-content {
			bottom: 80px;
		}
			#start .key-explanation.touch-content .row {
				margin-bottom: -70px;
			}
	}


	/* Small Screens */
	@media (max-width: 560px) {

		#start {
			padding-top: 30px !important;
		}

		#start .key-explanation {
			bottom: 100px;
		}	
			#start .key-explanation.touch-content .explanation {
				font-size: 0.8em;
				width: 72%;
			}

			#start .key-explanation.touch-content .image {
				right: 0;
				margin-top: -3%;
				width: 28%;
			}

			#start .key-explanation.touch-content .row:first-child .image {
				margin-top: 0;
			}
	}

	/* Small Landscape Screens */
	@media (min-width: 500px) and (max-width: 700px) and (max-height: 650px) {

		#start .key-explanation.touch-content {
			bottom: 40px;
		}

		#start .key-explanation.touch-content .row {
			clear: none;
			float: left;
			margin: 0;
			padding: 0;
			width: 50%;
		}
			#start .key-explanation.touch-content .explanation {
				font-size: 0.6em;
				width: 72%;
			}

			#start .key-explanation.touch-content .image {
				margin-top: 0;
				right: 0;
				width: 28%;
			}

			#start .key-explanation.touch-content .row:last-child {
				width: 48%;
			}
	}


	#start #copyright {
		bottom: 0; right: 20px;
		padding: 22px 10px;
		position: absolute;
		font-size: 12px;
		text-align: right;
	}

	/* Small Screens */
	@media (max-width: 560px), (max-width: 720px) and (max-height: 800px) {
		
		#start #copyright {
			padding: 17px 0;
			width: 100%;
		}
	}

/* High Scores
------------------------------------------------*/
#high-scores-modal {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	background: rgba(0,0,0,0.75);
	display: none;
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	z-index: 1000;
}

	#high-scores-modal .inner {
		background: #FFF;
		opacity: 0;
		padding: 50px;
		position: absolute;
		transition: all 0.2s ease-out;
		z-index: 0;

		-webkit-transform: scale(0);
		-moz-transform: scale(0);
		-ms-transform: scale(0);
		-o-transform: scale(0);
		transform: scale(0);
	}
		#high-scores-modal .inner.open {
			-webkit-transform: scale(1);
			-moz-transform: scale(1);
			-ms-transform: scale(1);
			-o-transform: scale(1);
			transform: scale(1);

			opacity: 1;
			z-index: 10000;
		}

		#high-scores-modal .inner h3 {
			background: #86DAFE url(../img/start-bg.gif) no-repeat center;
			background-size: cover;
			color: #FFF;
			margin: -50px -50px 30px;
			padding: 30px 100px 23px 50px;
		}
			#high-scores-modal .inner h3 .close {
				background: url(../img/x.png) no-repeat center;
				background-size: 100%;
				margin-right: -5px;
				position: absolute;
				opacity: 0.5;
				top: 20px; right: 50px;
				width: 60px; height: 60px;
				-webkit-filter: grayscale(1);
			}
				#high-scores-modal .inner h3 .close:hover {
					opacity: 1;
					-webkit-filter: grayscale(0);
				}

	#high-scores-modal .inner.scores {
		top: 30px; left: 30px;
		width: calc(100% - 160px); height: calc(100% - 160px);
	}

		#high-scores-modal .scores .table {
			box-sizing: border-box;
			-moz-box-sizing: border-box;
			overflow: scroll;
			-webkit-overflow-scrolling: touch;
			position: absolute;
			padding: 0 50px 20px;
			
			top: 120px; left: 0;
			height: 100%;
			height: calc(100% - 150px);
			width: 100%;
		}

		#high-scores-modal .scores table {
			border-collapse: collapse;
			font-size: 0.6em;
		}
			#high-scores-modal .scores table th {
				padding: 10px 0;
				text-align: left;
				color: #00FF00;
			}
				#high-scores-modal .scores table .rank {
					width: 15%;
				}
				#high-scores-modal .scores table .date {
					width: 22%;
				}
				#high-scores-modal .scores table .score {
					width: 15%;
				}

			#high-scores-modal .scores table tr {
				border-bottom: 2px #86DAFE solid;
			}
				#high-scores-modal .scores table tr.active {
					-webkit-animation: cycle-high-scores-color 0.1s steps(2) infinite;
					-moz-animation: cycle-high-scores-color 0.1s steps(2) infinite;
					animation: cycle-high-scores-color 0.1s steps(2) infinite;
				}
					#high-scores-modal .scores table tr.active a {
						color: inherit;
					}

				@-webkit-keyframes cycle-active-color {
					0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
				}
				@-moz-keyframes cycle-high-active-color {
					0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
				}
				@keyframes cycle-high-active-color {
					0% { color: #00FF00 } 50% { color: #0000FF } 100% { color: #00FF00 }
				}

			#high-scores-modal .scores table td {
				padding: 7px 0 4px;
			}

			#high-scores-modal .scores a {
				color: #0000FF;
				text-decoration: none;
			}
				#high-scores-modal .scores a:hover {
					color: magenta;
				}

	#high-scores-modal .inner.alert {
		max-width: 500px;
		margin-left: -300px;
		margin-top: -300px;
		top: 50%; left: 50%;
	}
		#high-scores-modal .inner.alert p {
			font-size: 0.8em;
		}

		#high-scores-modal .inner.alert .the-score {
			color: magenta;
		}

		#high-scores-modal .inner.alert .button {
			box-sizing: border-box;
			-moz-box-sizing: border-box;
			background-color: #5EA9DD;
			border-color: #569BCB;
			text-align: center;
			width: 100%;
		}
			#high-scores-modal .inner.alert .button:before,
			#high-scores-modal .inner.alert .button:after {
				background: #4883ab;
			}

			#high-scores-modal .inner.alert .button:hover {
				background: #569fd2;
			}

	/* Mid Screens */
	@media (max-width: 850px) {

		#high-scores-modal .inner h3 {
			font-size: 1em;
		}
			#high-scores-modal .inner h3 .close {
				top: 18px;
			}

		#high-scores-modal .scores .table {
			font-size: 0.5em;
			top: 150px;
			height: calc(100% - 170px);
		}

		#high-scores-modal .inner.alert {
			max-width: 400px;
			margin-left: -250px;
		}
			#high-scores-modal .inner.alert p, #high-scores-modal .inner.alert a {
				font-size: 0.8em;
			}
	}

	/* Small Screens & Small Landscape Screens */
	@media (max-width: 500px), (min-width: 500px) and (max-width: 700px) and (max-height: 650px) {

		#high-scores-modal .inner {
			padding: 20px;
		}
			#high-scores-modal .inner h3 {
				font-size: 0.7em;
				margin: -20px -20px 0;
				padding: 25px 40px 20px 20px;
			}
				#high-scores-modal .inner h3 .close {
					margin-right: 0;
					top: 15px; right: 15px;
					width: 30px; height: 30px;
				}

			#high-scores-modal .inner.scores {
				top: 10px; left: 10px;
				width: calc(100% - 60px); height: calc(100% - 60px);
			}
				#high-scores-modal .inner.scores .table {
					font-size: 0.7em;
					padding: 0 20px;
					top: 70px;
					height: calc(100% - 90px);
				}

			#high-scores-modal .inner.alert {
				max-width: none;
				margin: 0;
				left: 15px;
				width:  calc(100% - 70px);
				-webkit-transform: translateY(-50%);
			}
	}

	/* Small Landscape Screens */
	@media (min-width: 500px) and (max-width: 700px) and (max-height: 650px) {

		#high-scores-modal .inner h3 .close {
			top: 21px; right: 20px;
		}

		#high-scores-modal .inner.scores .table {
			top: 80px;
			height: calc(100% - 100px);
		}
	}


/* Game Screen
------------------------------------------------*/
#game.screen {
	background: #FFF;
	overflow: hidden;
	top: 100%;
}

	#game.active {
		top: 0;
		-webkit-animation: slide-up-from-bottom 0.6s 1 steps(5) forwards;
		-moz-animation: slide-up-from-bottom 0.6s 1 steps(5) forwards;
		animation: slide-up-from-bottom 0.6s 1 steps(5) forwards;
	}

	#game.hide {
		top: 100%;
		-webkit-animation: slide-down-to-bottom 0.6s steps(5) 1 forwards;
		-moz-animation: slide-down-to-bottom 0.6s steps(5) 1 forwards;
		animation: slide-down-to-bottom 0.6s steps(5) 1 forwards;
	}

	#game #score-container {
		position: absolute;
		top: 0; left: 0;
		padding: 30px;
	}
		#game #score-container #score {
			font-size: 2em;
			margin-top: 1px;
		}

	/* Small Screens */
	@media (max-width: 560px), (max-width: 720px) and (max-height: 800px) {

		#game #score-container {
			padding: 20px;
		}

			#game #score-container #score {
				font-size: 1.4em;
			}
	}


	#game #lives-container {
		position: absolute;
		top: 0; right: 0;
		padding: 30px;
	}
		#game #lives-container .life {
			background: url(../img/life.png) no-repeat center;
			background-size: 100%;
			display: inline-block;
			margin-top: 5px;
			position: relative;
			width: 60px; height: 60px;

			image-rendering: -webkit-optimize-contrast;
			
			-webkit-backface-visibility: hidden;
		}
			#game #lives-container .life .x {
				background: url(../img/x.png) no-repeat center;
				background-size: 100%;
				opacity: 0;
				position: absolute;
				top: 0; left: 0;
				width: 100%; height: 100%;

				-webkit-transform: scale(0);
				-moz-transform: scale(0);
				transform: scale(0);
			}

			#game #lives-container .life.out .x {
				opacity: 1;
				-webkit-transform: scale(1);
				-moz-transform: scale(1);
				transform: scale(1);

				-webkit-animation: pop-in 0.4s 1 steps(3);
				-moz-animation: pop-in 0.4s 1 steps(3);
				animation: pop-in 0.4s 1 steps(3);
			}

	/* Small Screens */
	@media (max-width: 560px), (max-width: 720px) and (max-height: 800px) {

		#game #lives-container {
			padding: 20px;
		}
		
			#game #lives-container .life {
				margin-right: 3px;
				width: 25px; height: 25px;
				-webkit-backface-visibility: hidden;
			}
	}

	#game #message {
		color: red;
		display: none;
		font-size: 5em;
		line-height: 0.9;
		position: absolute;
		text-align: center;
		top: 35%; left: 0;
		width: 100%;
		z-index: 100;

		-webkit-transform: translateY(0);
		-moz-transform: translateY(0);
		transform: translateY(0);
	}
		.touch-device #message {
			z-index: 0 !important;
		}

	#game #buttons {
		display: none;
		left: 0; bottom: 20%;
		position: absolute;
		text-align: center;
		width: 100%;
		line-height: 1.2;
	}

	#game #buttons .download-wrap {
		margin-top: 20px;
		position: relative;
		z-index: 1000;
	}

	#game #buttons a.download-button {
		color: #000;	
		text-decoration: none;
	}

	#game #buttons a.download-button:hover {
		color: red;	
		-webkit-animation: cycle-end-app-download-color 0.1s steps(2) infinite;
		-moz-animation: cycle-end-app-download-color 0.1s steps(2) infinite;
		animation: cycle-app-end-download-color 0.1s steps(2) infinite;
	}

	@-webkit-keyframes cycle-end-app-download-color {
		0% { color: #000 } 50% { color: red } 100% { color: #000 }
	}
	@-moz-keyframes cycle-end-app-download-color {
		0% { color: #000 } 50% { color: red } 100% { color: #000 }
	}
	@keyframes cycle-end-app-download-color {
		0% { color: #000 } 50% { color: red } 100% { color: #000 }
	}


	/* Mid Screens */
	@media (max-width: 900px) {
		#game #buttons {
			font-size: 0.65em;
		}
	}

	/* Small Screens */
	@media (max-width: 650px) {
		#game #buttons {
			bottom: 8%;
			font-size: 0.65em;
		}
			#game #buttons a {
				margin-bottom: 8px;
			}
	}

	/* Small Landscape Screens */
	@media (min-width: 500px) and (max-width: 700px) and (max-height: 650px) {
		#game #buttons {
			bottom: 5%;
			font-size: 0.6em;
		}
		#game #buttons .download-wrap {
			margin-top: 10px;
		}
	}

	#game #shift-message {
		display: none;
		position: absolute;
		left: 70px; bottom: 0;
		padding: 20px;
	}
		#game #shift-message .keyboard {
			display: inline-block;
			width: auto;
		}
			#game #shift-message .keyboard .key {
				line-height: 1;
				padding: 0 5px;
				position: relative;
				top: -2px;
				text-transform: lowercase;
				width: auto; height: auto;
			}

	#game #graphic {
		background-position: center;
		background-repeat: no-repeat;
		background-size: cover;
		display: none;
		position: absolute;
		top: 0; left: 0;
		width: 100%; height: 100%;
		z-index: 100;
	}
		.touch-device #game #graphic {
			z-index: 0;
		}

	#game #freddie {
		cursor: pointer;
		margin: 9px 25px;
		position: absolute;
		bottom: 0; right: 0;
		z-index: 200;
	}

		#game #freddie:hover img {
			position: relative;
			-webkit-animation: hover 0.3s infinite steps(8);
			-moz-animation: hover 0.3s infinite steps(8);
			animation: hover 0.3s infinite steps(8);
		}

		@-webkit-keyframes hover {
			0% { top: 0; } 50% { top: 5px; } 100% { top: 0; }
		}
		@-moz-keyframes hover {
			0% { top: 0; } 50% { top: 5px; } 100% { top: 0; }
		}
		@keyframes hover {
			0% { top: 0; } 50% { top: 5px; } 100% { top: 0; }
		}

		/* Small Screens */
		@media (max-width: 560px), (max-width: 720px) and (max-height: 800px) {
			#freddie img {
				width: 30px; height: 30px;
			}
		}

	#game #objects {
		box-sizing: border-box;
		-moz-box-sizing: border-box;
		position: absolute;
		top: 0; left: 0;
		z-index: 50;
		width: 100%; height: 100%;
	}
		#game #objects .object {
			position: absolute;
			z-index: 50;

			-webkit-backface-visibility: hidden;
		}

		#game #objects .object img {
			display: block;
			margin: auto;
			max-width: 100%;
			max-height: 100%;
			width: auto; height: auto;
		}

		#game #objects .object.top,
		#game #objects .object.bottom {
			left: 0;
			max-height: 40%;
			text-align: center;
			width: 100%; height: auto;
		}

		#game #objects .object.left,
		#game #objects .object.right {
			max-width: 40%;
			top: 0;
			width: auto; height: 100%;
		}
			#game #objects .object.left img,
			#game #objects .object.right img {
				position: relative;
				top: 50%;
			}

		#game #objects .object.top img {
			-webkit-transform: rotate(180deg);
			-moz-transform: rotate(180deg);
			-ms-transform: rotate(180deg);
			transform: rotate(180deg);
		}

		#game #objects .object.left img {
			-webkit-transform: rotate(90deg) scaleX(-1) translateX(50%);
			-moz-transform: rotate(90deg) scaleX(-1) translateX(50%);
			-ms-transform: rotate(90deg) scaleX(-1) translateX(50%);
			transform: rotate(90deg) scaleX(-1) translateX(50%);
		}

		#game #objects .object.right img {
			-webkit-transform: rotate(-90deg) translateX(50%);
			-moz-transform: rotate(-90deg) translateX(50%);
			-ms-transform: rotate(-90deg) translateX(50%);
			transform: rotate(-90deg) translateX(50%);
		}


/* Multi-Use Animations
------------------------------------------------*/

/* Pop In */
@-webkit-keyframes pop-in {
	0% {   -webkit-transform: scale(0); }
	100% { -webkit-transform: scale(1.5); }
	100% { -webkit-transform: scale(1); }
}
@-moz-keyframes pop-in {
	0% {   -moz-transform: scale(0); }
	100% { -moz-transform: scale(1.5); }
	100% { -moz-transform: scale(1); }
}
@keyframes pop-in {
	0% {   transform: scale(0); }
	100% { transform: scale(1.5); }
	100% { transform: scale(1); }
}

/* Fonts
------------------------------------------------*/

@font-face {
    font-family: '04b03';
    src: url('fonts/04b03/04b03-webfont.eot');
    src: url('fonts/04b03/04b03-webfont.eot?#iefix') format('embedded-opentype'),
         url('fonts/04b03/04b03-webfont.woff') format('woff'),
         url('fonts/04b03/04b03-webfont.ttf') format('truetype'),
         url('fonts/04b03/04b03-webfont.svg#04b03regular') format('svg');
    font-weight: normal;
    font-style: normal;
}