html,
body {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	color: #fff;
	font: inherit;
	vertical-align: baseline;
}

body.is-preload *, 
body.is-preload *:before, 
body.is-preload *:after {
	animation: none !important;
	transition: none !important;
}

a {
	transition: border-color 0.2s ease-in-out;
	border-bottom: dotted 1px;
	color: inherit;
	outline: 0;
	text-decoration: none;
}

a:hover {
	border-color: transparent;
}

ul {
	padding: 0;
}

.icon {
	text-decoration: none;
	position: relative;
}

.icon > .label {
	display: none;
}

/* Wrapper */

@keyframes wrapper {
	0%   { opacity: 0; }
	100% { opacity: 1; }
}

#wrapper {
	animation: wrapper 3s forwards;
	backface-visibility: hidden;
	transform: translate3d(0,0,0);
	height: 100%;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	width: 100%;
	font-family: "Source Sans Pro", Helvetica, sans-serif;
}

/* BG */

@keyframes bg {
	0%   { transform: translate3d(0,0,0); }
	100% { transform: translate3d(-2250px,0,0); }
}

#bg {
	animation: bg 60s linear infinite;
	backface-visibility: hidden;
	transform: translate3d(0,0,0);
	/* Set your background with this */
	background: #F7BA00 url("../images/bg.jpg") bottom left / 2250px auto repeat-x;
	height: 100%;
	left: 0;
	position: fixed;
	top: 0;
	width: 6750px;
}

/* Overlay */

#overlay {
	animation: wrapper 1.5s 1.5s forwards;
	background-attachment: fixed, fixed;
	background-image: url("../images/overlay3.svg");
	background-position: top left, center center;
	background-repeat: repeat, no-repeat;
	background-size: auto, cover;
	height: 100%;
	left: 0;
	opacity: 0;
	position: fixed;
	top: 0;
	width: 100%;
}

/* Main */

#main {
	height: 100%;
	left: 0;
	position: fixed;
	text-align: center;
	top: 0;
	width: 100%;
}

#main:before {
	content: '';
	display: inline-block;
	height: 100%;
	vertical-align: middle;
	width: 1px;
}

/* Header */

@keyframes header {
	0%   { transform: translate3d(0,1em,0); opacity: 0; }
	100% { transform: translate3d(0,0,0); opacity: 1; }
}

#header {
	animation: header 1s 2.25s forwards;
	backface-visibility: hidden;
	transform: translate3d(0,0,0);
	cursor: default;
	display: inline-block;
	opacity: 0;
	position: relative;
	text-align: center;
	top: -1em;
	vertical-align: middle;
	width: 90%;
}

#header h1 {
	font-size: 4.35em;
	font-weight: 900;
	margin: 0;
	line-height: 1em;
}

#header p {
	font-size: 1.25em;
	margin: 0.75em 0 0.25em 0;
	opacity: 0.75;
}

#header nav {
	margin: 1.5em 0 0 0;
}

#header nav li {
	animation: header 0.5s ease-in-out forwards;
	backface-visibility: hidden;
	transform: translate3d(0,0,0);
	display: inline-block;
	height: 5.35em;
	line-height: 5.885em;
	opacity: 0;
	width: 5.35em;
}

#header nav li:nth-child(1) { animation-delay: 2.5s; }
#header nav li:nth-child(2) { animation-delay: 2.75s; }
#header nav li:nth-child(3) { animation-delay: 3s; }

#header nav a {
	transition: all 0.2s ease-in-out;
	border: solid 1px #fff;
	border-radius: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 4.75em;
	height: 4.75em;
}

#header nav a svg {
	width: 2.25em;
	height: 2.25em;
}

#header nav a:hover {
	background-color: rgba(255, 255, 255, 0.175);
}

#header nav a:active {
	background-color: rgba(255, 255, 255, 0.35);
}

/* Footer */

#footer {
	background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.5) 75%);
	bottom: 0;
	cursor: default;
	height: 6em;
	left: 0;
	line-height: 8em;
	position: absolute;
	text-align: center;
	width: 100%;
}

/* Wide */

@media screen and (max-width: 1680px) {

	body, input, select, textarea {
		font-size: 13pt;
	}

	@keyframes bg {
		0%   { transform: translate3d(0,0,0); }
		100% { transform: translate3d(-1500px,0,0); }
	}

	#bg {
		background-size: 1500px auto;
		width: 4500px;
	}
}

/* Normal */

@media screen and (max-width: 1280px) {

	body, input, select, textarea {
		font-size: 12pt;
	}

	@keyframes bg {
		0%   { transform: translate3d(0,0,0); }
		100% { transform: translate3d(-750px,0,0); }
	}

	#bg {
		background-size: 750px auto;
		width: 2250px;
	}
}

/* Mobile */

@media screen and (max-width: 736px) {

	body {
		min-width: 320px;
	}

	body, input, select, textarea {
		font-size: 11pt;
	}

	@keyframes bg {
		0%   { transform: translate3d(0,0,0); }
		100% { transform: translate3d(-300px,0,0); }
	}

	#bg {
		background-size: 300px auto;
		width: 900px;
	}

	#header h1 {
		font-size: 2.5em;
	}

	#header p {
		font-size: 1em;
	}

	#header nav {
		font-size: 1em;
	}

	#header nav a:hover,
	#header nav a:active {
		font-size: 1em;
	}
}

/* Mobile (Portrait) */

@media screen and (max-width: 480px) {

	@keyframes bg {
		0%   { transform: translate3d(0,0,0); }
		100% { transform: translate3d(-412.5px,0,0); }
	}

	#bg {
		background-size: 412.5px auto;
		width: 1237.5px;
	}

	#header nav {
		padding: 0 1em;
	}
}
