html, body {
	margin: 0px;
	padding: 0px;
	background-color: #000;
	color: #222;
	font-family: sans-serif;
}
body {
	display: grid;
	grid-template-columns: 800px;
	width: 800px;
	height: 100vh;
	margin: auto;
	align-items: center;
	justify-items: center;
	font-size: 14px;
	background-color: #000;
}

#DEBUG {
	font-family: monospace;
	color: #69c;
}
* {
	box-sizing: border-box;
	user-select: none;
}

#APP, #BrainPOPsnapArea {
	width: 800px;
	height: 600px;
	position: relative;
	background-color: #222;
	color: white;
	overflow: hidden;
	background: rgb(2,0,36);
	background: linear-gradient(-45deg, rgba(1,0,18,1) 0%, rgba(4,4,60,1) 50%, rgba(52,0,72,1) 100%);
	user-select: none;
	/*border: 1px solid #444;*/
}
#APP:-webkit-full-screen,
#APP:-ms-fullscreen,
#APP:fullscreen {
  width: 100vw;
  height: 100vh;
}

#APP * {
	-webkit-user-select: none; /* Safari */
	-ms-user-select: none; /* IE 10 and IE 11 */
	user-select: none;
}
.app-state {
	overflow: hidden;
	position: absolute;
	width: 800px;
	height: 600px;
}

.backdrop {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
}

.tab-highlighted {
	outline: 3px solid yellow;
	outline-offset: 7px;
}

/*
-----------------------------------------------------------	Loader
*/
#Loader #loading-screen {
	display: grid;
	align-items: center;
	justify-items: center;
	width: 100%;
	height: 100%;
	position: absolute;
	left: 0px;
	top: 0px;
	transition: all 0.5s ease;
}
#Loader #loading-panel {
	padding: 2em;
	border-radius: 10px;
	background-color: #ccc;
	color: #222;
	width: 80%;
	transition: all 0.5s ease;
}
#Loader #loading-panel progress {
	width: 100%;
}
#Loader #loading-panel h1 {
	text-align: center;
	font-size: 20px;
	font-weight: bold;
}
#Loader progress[value] {
	width: 300px;
	height: 20px;
	-webkit-appearance: none;
	appearance: none;
	transition: all 1s ease;
}
#Loader progress[value]::-webkit-progress-bar {
	background-color: #300;
	border-radius: 5px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5) inset;
}
#Loader progress[value]::-webkit-progress-value {
	background-image:
	-webkit-linear-gradient(-45deg, 
					   transparent 33%, rgba(0, 0, 0, .3) 33%, 
					   rgba(0,0, 0, .3) 66%, transparent 66%),
	-webkit-linear-gradient(top, 
					   rgba(255, 255, 255, .25), 
					   rgba(0, 0, 0, .25)),
	-webkit-linear-gradient(left, green, yellow, red);

	border-radius: 2px; 
	background-size: 35px 20px, 100% 100%, 100% 100%;
	box-shadow: 0 2px 5px rgba(255, 255, 255, 0.25) inset;
}
#Loader .loading-gauge-container {
	display: grid;
	grid-template-columns: 10fr 1fr;
	align-items: center;
	justify-items: stretch;
	grid-column-gap: 20px;
}
#Loader .loading-gauge-container .button {
	border: 2px solid black;
	color: white;
	background-color: #090;
	border-radius: 5px;
	text-align: center;
	height: 2em;
	display: grid;
	align-items: center;
	justify-items: center;
}

#FPS {
	position: absolute;
	left: 0px;
	bottom: 0px;
	z-index: 1000000;
	padding: 3px;
	font-family: monospace;
	color: #555;
}


/*
-----------------------------------------------------------	Options Panel
*/

#option-container {
	position: absolute;
	width: auto !important;
	height: auto !important;
	right: -1px;
	top: -1px;
	padding: 3px;
	padding-left: 10px;
	border-radius: 6px 0px 0px 0px;
	overflow: visible;
}
.option-button {
	position: relative;
	display: inline-block;
	background-repeat: no-repeat;
	background-position: top right;
    width:26px;
    height:26px;
    background-size:cover;
    opacity:.8;
}
.option-button > div {
	position: absolute;
	right: 0px;
	top: 30px;
	color: white;
	width: 100px;
	text-align: center;
	background-color: #132228;
	border: 1px solid white;
	background-color: #230228;
	font-size: 15px;
	padding:5px;
	display: none;
	cursor: pointer;
}
.option-button:hover {
	border: 1px solid red;
}
.option-button:hover > div {
	display: block;
}
#music-button {
	background-image: url(images/icons/music-off.svg);
}
#music-button.enabled {
	background-image: url(images/icons/music.svg);
}
#quit-button {
	display: none;
	background-image: url(images/icons/quit.svg);
}
#quit-button.enabled {
	display: inline-block;
}
#help-button {
	display: none;
	background-image: url(images/icons/help.svg);
}
#help-button.enabled {
	display: inline-block;
}

/*
-----------------------------------------------------------	Logo Scene
*/

.logo {
	width: 600px;
	height: 400px;
	position: absolute;
	left: 100px;
	top: 100px;
	pointer-events: none;
	animation: logo-in-animation 4s linear;
	animation-fill-mode: both;
}
@keyframes logo-in-animation {
	0% {
		opacity: 0;
		transform: scale( 0.5, 0.5 );
	}
	10% {
		opacity: 1.0;
	}
	90% {
		opacity: 1.0;
	}
	100% {
		opacity: 0.0;
		transform: scale( 1.0, 1.0 );
	}
}

/*
-----------------------------------------------------------	Main Menu
*/

#MAIN-MENU-BACKDROP {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
	background-image: url( images/main-menu-backdrop.png );
}
#MAIN-MENU-CHARACTERS {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
	background-image: url( images/main-menu-characters.png );
}
#MAIN-MENU-TITLE {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
}
#VERSION-NUMBER {
	position: absolute;
	left: 4px;
	bottom: 2px;
	color: black;
	font-family: monospace;
	font-size: 14px;
}
						
/*
-----------------------------------------------------------	Help Box
*/

.instructions-positioner {
	width: 800px;
	height: 600px;
	position: absolute;
	left: 0px;
	top: 0px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.instructions-box {
	border: 2px solid #666;
	background-color: #333;
	color: #eee;
	padding: 20px;
	width: 80%;
	border-radius: 20px;
	font-size: 16pt;
}

/*
-----------------------------------------------------------	Credits Scene
*/
.credits-overlay {
	position: absolute;
	left: 100px;
	width: 600px;
	top: 25px;
	height: 550px;
	padding: 25px;
	display: grid;
	grid-template-rows: 1fr 60px;
	grid-row-gap: 20px;
	border: 2px solid #666;
	background-color: #333;
	border-radius: 25px;
	font-size: 16pt;
}
.credits-overlay a[href] {
	color: #9cf;
}
.credits-content {
	text-align: center;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}
.credits-content dl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-column-gap: 20px;
	grid-row-gap: 20px;
}
.credits-content dt {
	font-weight: bold;
	color: #00cce0;
	color: #f6ab00;
	text-align: right;
}
.credits-content dd {
	text-align: left;
	margin-inline-start: 0px;
}
.credits-navigation .silver-button {
	position: static;
	margin: auto;
}
.credits-content .nb {
	display: block;
	font-size: 12pt;
}




/*
-----------------------------------------------------------	Utility Classes
*/

.fade-in {
	animation: fade-in-animation 0.5s ease-in-out;
}
@keyframes fade-in-animation {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1.0;
	}
}
.slide-in-from-left {
	animation: slide-in-from-left-animation 0.5s ease-out;
}
@keyframes slide-in-from-left-animation {
	0% {
		opacity: 0;
		transform: translate( -100px, 0px );
	}
	100% {
		opacity: 1.0;
		transform: translate( 0px, 0px );
	}
}
.slide-in-from-right {
	animation: slide-in-from-right-animation 0.5s ease-out;
}
@keyframes slide-in-from-right-animation {
	0% {
		opacity: 0;
		transform: translate( 100px, 0px );
	}
	100% {
		opacity: 1.0;
		transform: translate( 0px, 0px );
	}
}

.float {
	animation: float-animation 5s ease-in-out infinite alternate;
}
.rock {
	animation: rock-animation 2.5s ease-in-out infinite alternate;
}
@keyframes float-animation {
	0% {
		transform: translate( 0px, -20px );
	}
	100% {
		transform: translate( 0px, 20px );
	}
}
@keyframes rock-animation {
	0% {
		transform: rotate( 10deg );
	}
	100% {
		transform: rotate( -10deg );
	}
}

/*
-----------------------------------------------------------	Slide Navigation
*/

.side-nav {
	position: absolute;
	left: 0px;
	top: 0px;
	background-image:url( images/side-nav.png );
	width: 120px;
	height: 600px;
}
.full-width .side-nav {
	display: none;
}

div.chapter-button {
	background-image: url( images/chapter-button.png );
	width: 54px;
	height: 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: bold;
	font-family: sans-serif;
	font-style: italic;
	font-size: 30px;
	position: absolute;
	text-align: center;
	cursor: pointer;
}
div.chapter-button:hover {
	transform: scale( 1.1 );
	filter: brightness( 110% );
}
div.chapter-button:active {
	transform: scale( 1.0 );
	filter: brightness( 50% );
}
div.chapter-button b {
	text-decoration: underline;
	font-weight: bold;
}
div.chapter-button.is-current-chapter:after {
	content: '◀';
	position: absolute;
	left: 40px;
	font-style: normal;
	font-size: 20px;
}

div.chapter-1-button {
	left: 25px;
	top: 50px;
}
div.chapter-2-button {
	left: 25px;
	top: 200px;
}
div.chapter-3-button {
	left: 25px;
	top: 350px;
}
div.main-menu-button {
	left: 25px;
	top: 500px;
	font-size: 14px;
	color: white;
}

					div.silver-button {
						background-image: url( images/button.png );
						width: 108px;
						height: 60px;
						display: flex;
						align-items: center;
						justify-content: center;
						color: white;
						font-family: sans-serif;
						font-style: italic;
						font-size: 20px;
						position: absolute;
						cursor: pointer;
					}
					div.silver-button:hover {
						transform: scale( 1.1 );
						filter: brightness( 110% );
					}
					div.silver-button:active {
						transform: scale( 1.0 );
						filter: brightness( 50% );
					}
					div.silver-button b {
						text-decoration: underline;
						font-weight: bold;
					}



					div.next-button {
						background-image: url( images/button.png );
						width: 108px;
						height: 60px;
						display: flex;
						align-items: center;
						justify-content: center;
						color: white;
						font-family: sans-serif;
						font-style: italic;
						font-size: 20px;
						cursor: pointer;
					}
					div.next-button:hover {
						transform: scale( 1.1 );
						filter: brightness( 110% );
					}
					div.next-button:active {
						transform: scale( 1.0 );
						filter: brightness( 50% );
					}
					div.next-button b {
						text-decoration: underline;
						font-weight: bold;
					}


.caption-box {
	position: absolute;
	right: 15px;
	bottom: 15px;
	width: 650px;
	height: 120px;
	background-color: rgba( 0, 0, 0, 0.8 );
	border-radius: 20px;
	padding: 30px;
	display: grid;
	align-items: center;
	justify-items: center;
	font-size: 20px;
}
.full-width .caption-box {
	width: 770px;
}

.ui-prompt {
	position: absolute;
	left: 125px;
	bottom: 15px;
	width: 385px;
	height: 80px;
	background-color: rgba( 0, 0, 0, 0.8 );
	border-radius: 20px;
	padding: 0px 30px;
	display: grid;
	align-items: center;
	justify-items: center;
	font-size: 15px;
}

.next-caption {
	display: grid;
	width: 100%;
	grid-template-columns: 1fr 108px;
	grid-column-gap: 30px;
	align-items: center;
	justify-items: center;
}

.point-of-interest {
	position: absolute;
	background: black;
	color: white;
	width: 46px;
	height: 46px;
	font-size: 20px;
	border-radius: 23px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.point-of-interest span {
	color: #6F6;
	position: absolute;
	right: -10px;
	bottom: -8px;
	font-size: 36px;
	/*
	-webkit-text-stroke-width: 2px;
	-webkit-text-stroke-color: black;
	*/
	text-shadow:
		-2px  0px 1px #000,
		 2px  0px 1px #000,
		 0px -2px 1px #000,
		 0px  2px 1px #000,
		-1px -1px 1px #000,
		-1px  1px 1px #000,
		 1px -1px 1px #000,
		 1px  1px 1px #000;
}
.point-of-interest b {
	text-decoration: underline;
	font-weight: bold;
}

.poi-image-container {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
	background-color: rgba( 0, 0, 0, 0.75 );
}

.poi-image-displayer {
	position: absolute;
	right: 15px;
	top: 50px;
	width: 650px;
	height: 400px;
	display: grid;
	align-items: center;
	justify-items: center;
}
					
.point-of-interest-done {
	position: absolute;
	bottom: 10px;
	right: 10px;
}	

/*
-----------------------------------------------------------	Horse notes
*/

.horse-note-container {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
	background-color: rgba( 0, 0, 0, 0.8 );
	display: grid;
	align-items: center;
	justify-items: center;
}
.horse-note {
	position: absolute;
	left: 100px;
	top: 50px;
	width: 600px;
	height: 400px;
	background-image: url(images/horse-note.png);
	padding-top: 120px;
	padding-bottom: 65px;
	padding-left: 127px;
	padding-right: 140px;
	color: black;
	display: grid;
	align-items: center;
	justify-items: center;
	line-height: 1.3;
}
.horse-note-caption {
	font-size: 16px;
}
.horse-note-button {
	position: absolute;
	left: 346px;
	bottom: 90px;
}
.horse-note-title {
	position: absolute;
	top: 45px;
	left: 145px;
	right: 110px;
	height: 40px;
	display: grid;
	align-items: center;
	justify-items: center;
	/*border: 1px solid red; */
}
.horse-note-title > div {
	/*border: 1px solid white;*/
	color: white;
	font-size: 30px;
}
	
	
/*
-----------------------------------------------------------	Chapter Placard
*/

.chapter-placard-container {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 800px;
	height: 600px;
	background-color: rgba( 0, 0, 0, 0.6 );
	display: grid;
	align-items: center;
	justify-items: center;
}
.chapter-placard {
	position: absolute;
	background-image: url(images/chapter-placard.png);
	width: 526px;
	height: 310px;
	left: 137px;
	top: 145px;
	padding-top: 40px;
	padding-bottom: 60px;
	padding-left: 100px;
	padding-right: 100px;
	color: white;
	text-align: center;
	display: grid;
	grid-template-rows: 3fr 1fr;
	align-items: center;
	justify-items: center;
}
.chapter-placard-chapter-number {
	font-size: 20px;
	font-weight: bold;
}
.chapter-placard-chapter-title {
	font-size: 32px;
	font-weight: bold;
}		