.book {
	filter: drop-shadow(0px 0px 5px rgb(103, 103, 103));
	height: 100%;
	aspect-ratio: 1.414/1;
	margin: 0px auto;
}

.book.hidden,
.navigator.hidden {
	display: none;
}

.page {
	height: 100%;
	aspect-ratio: 1/1.414;
	position: absolute;
	left: 0px;
	cursor: pointer;
	box-sizing: border-box;
	transform-origin: center right;
	-webkit-transform: translate3d(0,0,0);
	transition: all 0.5s ease-in-out;
	border: 1px solid rgb(180, 180, 180);
}

.page .front,
.page .back {
	background: white;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: opacity 0s;
	transition-delay: 0.25s;
	overflow: hidden;
}

.page .front.cover {
	background: linear-gradient(to left, #ffdb05 80%, #b79b00 100%);
	border-radius: 20px;
	position: relative;
}

.page .front.cover:before {
	content: '';
	display: block;
	background-image: url("../assets/imgs/notebook-stamp.png");
	width: 20%;
	padding-bottom: 100%;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	left: 40%;
	top: 30%;
}

.page .front.cover:after {
	content: '';
	display: block;
	background-image: url("../assets/imgs/notebook-name.png");
	width: 20%;
	padding-bottom: 20%;
	background-size: contain;
	background-repeat: no-repeat;
	position: absolute;
	left: 40%;
	bottom: 10%;
}

.page .back.cover {
	background: linear-gradient(to right, #ffdb05 80%, #b79b00 100%);
	border-radius: 20px;
}

.page .front {
	transform: rotateY(180deg);
}

.page .back::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to right, rgb(255, 255, 255) 80%, rgb(210, 210, 210) 100%);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.page .back.cover::after {
	background: none;
}

/* .page .front h2 {
	text-align: right;
} */

.page.left .front {
	opacity: 0;
	pointer-events: none;
}

.page.left .back {
	opacity: 1;
	pointer-events: auto;
	border-radius: 20px 0 0 20px;
}

.page.right {
	transform: rotateY(180deg);
	left: 0px;
}

.page.right .front {
	opacity: 1;
	pointer-events: auto;
	overflow: hidden;
	border-radius: 0 20px 20px 0;
}

.page.right .back {
	opacity: 0;
	pointer-events: none;
	overflow: hidden;
	border-radius: 0 20px 20px 0;
}

.book h1 {

	text-align: center;
	/* font-size: 1.2rem; */
	font-size: 4vh;
	font-weight: 400;
	line-height: 4vh;
	margin-bottom: 0;

}

.right h1.margin-top {
	margin-top: 40%;
}

.answer h1 {
	margin-top: 3vh;
}

.answer button, button.clear-maze {

	border: none;
	background-color: #eeeeee;
	border-radius: 999px;
	padding: 1vh 4vh;
	font-size: 2.4vh;
	float: right;

}

.book h2 {

	font-family: Arial, Helvetica, sans-serif;
	text-align: center;
	font-weight: 400;
	letter-spacing: 0.3rem;
	color: #808080;
	/* font-size: 0.8rem; */
	font-size: 2.5vh;
	position: absolute;
	bottom: 3vh;
	margin: auto;
	width: 100%;

}

.book p {
	/* margin: 1rem 0.5rem; */
	/* font-size: 0.8rem; */
	margin: 4vh 2vh;
	font-size: 3.4vh;
	line-height: 3.6vh;
}

.book ul {
	/* font-size: 0.8rem; */
	font-size: 3.4vh;
	line-height: 3.6vh;
}


.page .inner {
	position: relative;
	padding: 2.5% 5% 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	box-sizing: border-box;
}

.page .inner .holder {
	width: 100%;
	min-width: 200px;
}

.navigator {
	display: flex;
	justify-content: flex-end;
	position: fixed;
	bottom: 5vh;
	right: 5vw;
}

.navigator.hidden {
	opacity: 0;
	pointer-events: none;
}

.navigator button {
	padding: 1rem;
	background: url("../assets/imgs/arrow.svg");
	background-size: contain;
	background-repeat: no-repeat;
	border: none;
	margin: 0 1rem;
}

.navigator button.next {
	transform: rotate(180deg);
}

.navigator button.hidden {
	opacity: 0.2;
	pointer-events: none;
}

/* Cipher Puzzle */

.code-clue {
	/* margin: 4rem 0 0; */
	/* padding: 30px 20px; */
	margin: 16vh 0 0;
	padding: 3vh 5vh;
	position: relative;
	background-image: url("../assets/imgs/code-border.svg");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.code-clue p {
	/* margin: 0; */
	text-align: center;
}

.answer textarea {
	width: 100%;
	/* font-size: 0.8rem; */
	font-size: 3.4vh;
	font-family: sans-serif;
	/* min-height: 2.6rem; */
	min-height: 15vh;
}

/* Sudoku Puzzle */

.sudoku {
	display: flex;
	flex-flow: row wrap;
	border: 1px solid black;
	margin: 1rem 0;
}

.sudoku input {
	border: none;
	width: calc(100% / 9);
	aspect-ratio: 1;
	border-right: 1px solid black;
	background: transparent;
	border-bottom: 1px solid black;
	color: black;
	padding: 0;
	border-radius: 0;
	margin: 0;
	text-align: center;
}

.sudoku input:nth-child(3n) {
	border-right: 3px solid black;
}

.sudoku input:nth-child(9n) {
	border-right: none;
}

.sudoku input:nth-child(n + 19):nth-child(-n + 27),
.sudoku input:nth-child(n + 46):nth-child(-n + 54) {
	border-bottom: 3px solid black;
}

.sudoku input:nth-child(n + 73):nth-child(-n + 81) {
	border-bottom: none;
}

.sudoku input.highlight {
	background-image: url("../assets/imgs/square-highlight.svg");
	background-size: 100%;
	background-repeat: no-repeat;
}

.sudoku input:disabled {
	background-color: rgba(0, 0, 0, 0.05);
	opacity: 1;
}

/* Maze Puzzle */

#maze {
	position: relative;
	background-image: url("../assets/imgs/maze.svg");
	background-repeat: no-repeat;
	background-size: 100%;
	margin: auto;
	background-position: 50%;
	/* margin: 1rem 0 0; */
}

/* Random */

.random-left {
	padding: 10px 0 10px 10px!important;
}

.random-right {
	padding: 10px 10px 10px 0!important;
}

.random-left .random-notes {

	width: 100%;
	height: 100%;
	background-image: url("../assets/imgs/random-notes-left.png");
	background-position: right;
	background-size: contain;
	background-repeat: none;

}

.random-right .random-notes {

	width: 100%;
	height: 100%;
	background-image: url("../assets/imgs/random-notes-right.png");
	background-position: left;
	background-size: contain;
	background-repeat: none;

}

/* Map Puzzle */

.map {
	position: relative;
	height: 75%;
	margin: 1rem 0 0;
}

.map img {
	position: absolute;
	height: 100%;
}

.map.map-left img {
	right: -5%;
}

.map.map-right img {
	left: -5%;
}

.map .links {
	position: absolute;
	display: flex;
	flex-flow: row wrap;
}

.map .links .map-square {
	display: block;
	width: calc(100% / 3);
	aspect-ratio: 1;
	background: none;
    border: none;
}

.map.map-left .links {
	right: -5%;
	padding: 3.8% 0px 38% 17%;
}

.map.map-right .links {
	left: -5%;
	padding: 3.8% 17% 38% 0;
}

.map-help-button {
	position: absolute;
	left: 5%;
	bottom: 5%;
	width: 20%;
	aspect-ratio: 1;
}

.map-help img {
	height: 100%;
	aspect-ratio: 254/249;
}

.airport-select {
	position: absolute;
	bottom: 5%;
	right: 5%;
	font-size: 0.5rem;
	text-align: right;
    border: none;
    border-bottom: 1px solid lightgrey;
}

h2 {
	font-size: 1rem;
	margin-bottom: 0;
	margin-top: 0;
	pointer-events: none;
}

button.answer {
	border: 5px solid white;
	background-color: #eeeeee;
	border-radius: 999px;
	width: 80%;
	padding: 0.5rem;
	margin: 0.2vh 10%;
	font-size: 2.5vh;
}

button.answer.disabled {
	opacity: 0.5;
	pointer-events: none;
}

button.answer.selected {
	border: 5px solid green;
}

#answers8 {
	display: none;
}

.timer-container {
	display: flex;
	align-items: center;
	float: right;
}

.js-timeout {
	font-family: Arial, Helvetica, sans-serif;
	font-weight: bold;
	color: #00aeac;
	margin-right: 0.5rem;
}

.completed {
	position: fixed;
	z-index: 99;
	left: 52vw;
	top: 48vh;
	width: 24vw;
	aspect-ratio: 1/1;
	display: block;
}

.incomplete {
	z-index: -1;
	display: none;
}

.completed button {
	width: 24vw;
	aspect-ratio: 1/1;
	background-color: transparent;
	border: none;
}

button img {
	width: 100%;
}

.js-page {
	font-family: Arial, Helvetica, sans-serif;
}

.full-page-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

@media screen and (min-width: 1025px) {

	.book h2 {
		pointer-events: none;
	}

	.code-clue {
		position: relative;
	}

	.sudoku {
		margin: 4rem 0;
	}

	#maze {
		margin: 3rem 0;
	}

	.map {
		margin: 1.7rem 0;
	}
	
}
