:root {
	--main-text-color: #444;
	--link-color: #d1b790;
	--link-hover-color: #bba077;
	--border-color: #d1b790;
	--icon-color: #09c;
	--sponsor-title-color: #555d27;
	--sponsor-subtitle-color: #95a534;
	--bg-gradient-start: #fdbb2d;
	--bg-gradient-end: #226ac3;
	--header-text-color: #14120f;
	--footer-text-color: #14120f;
	--subheader-color: #ffffffe3;
	--instruction-color: #ffffffab;
	--energy-bar-color: #f25346;
	--energy-bar-background: rgba(255, 255, 255, 0.5);
}

*,
*::after,
*::before {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	font-family: 'Avenir Next', Avenir, 'Helvetica Neue', Helvetica, Arial, sans-serif;
	margin: 0;
	color: var(--main-text-color);
	width: 100vw;
	height: 100vh;
	overflow: hidden;
}


a {
	text-decoration: none;
	color: var(--link-color);
	outline: none;
}

a:hover,
a:focus {
	color: var(--link-hover-color);
	outline: none;
}

/* Top Navigation Style */

.meta {
	font-size: 0.75em;
	line-height: 1;
	position: absolute;
	top: 1em;
	left: 1em;
	display: -webkit-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
	white-space: nowrap;
	border-top: 1px solid var(--border-color);
}

.meta::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	width: 1px;
	height: 100%;
	background: var(--border-color);
}

.meta a {
	display: block;
	padding: 1em 1.35em;
	border: 1px solid var(--border-color);
	border-top: 0;
}

.meta a:not(:last-child) {
	border-right: 0;
}


@media screen and (max-width: 40em) {
	.meta {
		right: 1em;
	}

	.demo-link {
		-webkit-flex: 1;
		flex: 1;
	}
}

/* Styles for sponsor */
body #cdawrap {
	top: auto;
	right: auto;
	bottom: 12px;
	left: 12px;
	border: 1px solid var(--border-color);
	background: none;
}

.partisan {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 38em;
	padding: 4.5em 7.5em 1.5em 5.5em;
}

.partisan__bg {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	opacity: 0.5;
}

.partisan__link {
	position: relative;
	display: -webkit-flex;
	display: flex;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-align-items: center;
	align-items: center;
}

.partisan__img,
.partisan__title {
	opacity: 0.85;
	-webkit-transition: opacity 0.1s;
	transition: opacity 0.1s;
}

.partisan__link:hover .partisan__img,
.partisan__link:hover .partisan__title {
	opacity: 1;
}

.partisan__img {
	max-width: 42%;
}

.partisan__title {
	font-family: 'Playfair Display';
	font-weight: bold;
	position: relative;
	margin: 0.5em 0 0 0.85em;
	color: var(--sponsor-title-color);
}

.partisan__title::before {
	content: 'Sponsored by:';
	font-size: 0.5em;
	font-weight: bold;
	position: absolute;
	bottom: 100%;
	left: 0;
	padding: 0 0 1em 0;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--sponsor-subtitle-color);
}

@media screen and (max-width: 80em) {
	.partisan {
		font-size: 76%;
	}

	.partisan__title::before {
		font-size: 0.25em;
	}
}

@media screen and (max-width: 60em) {


	.partisan {
		width: 100%;
		height: auto;
		padding: 1.75em 0.5em 0.5em;
		text-align: center;
		background: rgba(190, 215, 48, 0.5);
	}

	.partisan__bg {
		display: none;
	}

	.partisan__img {
		display: none;
	}

	.partisan__title {
		margin: 0;
	}

	.partisan__title::before {
		width: 100%;
		padding: 0 0 0.25em;
	}
}

/* Game Holder Styles */

.game-holder {
	position: absolute;
	width: 100%;
	height: 100%;
	background: -webkit-linear-gradient(var(--bg-gradient-start), var(--bg-gradient-end));
	background: linear-gradient(var(--bg-gradient-start), var(--bg-gradient-end));
}

.world {
	position: absolute;
	overflow: hidden;
	width: 100%;
	height: 100%;
	touch-action: manipulation;
}

.header {
	position: absolute;
	top: 1vh;
	left: 0;
	width: 100%;
	text-align: center;
	pointer-events: none;
}

.footer {
	position: absolute;
	bottom: 3vh;
	left: 0;
	width: 100%;
	text-align: center;
	pointer-events: none;
}

.instructions
{
	font-size: 0.8em;
	color: var(--instruction-color);
	font-style: italic;
	position: absolute;
	left: 2em;
	top: 0vh;
	text-align: left;
}

.header h1 {
	font-size: 4.5em;
	line-height: 1;
	margin: 0;
	color: var(--header-color);
}

.header h1 span {
	font-size: 0.2em;
	font-style: italic;
	display: block;
	margin: 4 -20 -1.5em -7em;
	letter-spacing: 0px;
}
.header h1 .version {
	font-size: 0.2em;
	font-style: italic;
	display: block;
	margin: 4 -370 -1.5em -7em;
	letter-spacing: 0px;
}

.header h2 {
	font-size: 0.585em;
	margin: 0.25em 0;
	white-space: nowrap;
	text-indent: 1em;
	letter-spacing: 1em;
	text-transform: uppercase;
	color: var(--subheader-color);
}

.score {
	width: 100%;
	margin: 2em 0 0;
	text-align: center;
	white-space: nowrap;
}

.score__content {
	position: relative;
	display: inline-block;
	padding: 0 1em;
	vertical-align: top;
}

.score__content:nth-child(2) {
	border-right: 1px solid var(--border-color);
	border-left: 1px solid var(--border-color);
}

.score__label {
	font-size: 9px;
	position: relative;
	margin: 0 0 0.5em 0;
	text-align: center;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--footer-text-color);
}

.score__value {
	font-family: 'Inter';
	font-weight: bold;
	color: var(--footer-text-color);
}

.score__value--level {
	font-size: 26px;
}

.score__value--dist {
	font-size: 30px;
}

.level-circle {
	position: absolute;
	left: 50%;
	width: 46px;
	margin: -37px 0 0 -23px;
	-webkit-transform: rotate(-90deg);
	transform: rotate(-90deg);
}

.score__value--energy {
	position: relative;
	width: 60px;
	height: 8px;
	margin-top: 20px;
	border-radius: 3px;
	background-color: var(--energy-bar-background);
}

.energy-bar {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: 2px;
	background-color: var(--energy-bar-color);
	-webkit-animation-name: none;
	animation-name: none;
	-webkit-animation-duration: 150ms;
	animation-duration: 150ms;
	-webkit-animation-iteration-count: infinite;
	animation-iteration-count: infinite;
}

.message {
	font-weight: bold;
	position: absolute;
	left: 0;
	width: 100%;
	text-align: center;
	text-transform: uppercase;
	pointer-events: none;
}

.play {
	font-size: 2.25vw;
	bottom: 40vh;
	display: none;
	text-indent: 0.5em;
	letter-spacing: 0.5em;
	color: var(–border-color);
}

@-webkit-keyframes blinking {
	0% {
		opacity: 1;
	}

	50% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes blinking {
	0% {
		opacity: 1;
	}

	50% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@media screen and (max-width: 40em) {
	.header {
		font-size: 0.75em;
		bottom: 6.5em;
	}

	.header h2 {
		letter-spacing: 0.65em;
	}
}

canvas {
	touch-action: none !important;
}



html,
body {
	overflow: hidden;
	height: 100%;
	touch-action: none;
	-ms-touch-action: none;
	-webkit-overflow-scrolling: none;
}