body {
	background-color: #000080;
	color: white;
	font-family: sans-serif;
	font-size: min(12.8px, 2vw);
	margin: 0;
	padding: 0;
}

input {
	font-size: inherit;
}

button {
	background-color: #4cb050;
	border: 0;
	border-radius: 0.5em;
	color: inherit;
	font-size: inherit;
	padding: 0.75em 1em;
	text-transform: uppercase;
}

button:disabled {
	background-color: #2c8010;
}

a {
	color: #4cb050;
}

.hidden {
	opacity: 1;
	visibility: hidden;
}



header {
	align-items: center;
	background-color: #101060;
	display: flex;
	height: calc(3em + 20px);
	justify-content: space-between;
	padding: 0 15px;
}

header h1 {
	color: #4cb050;
	margin: 0;
}

header label {
	display: block;
}



main {
	display: grid;
	grid-template-columns: 1fr 100vw;
	height: calc(100vh - 4em - 40px);
	overflow: hidden;
}

nav {
	background-color: #303080;
	box-sizing: border-box;
	height: inherit;
	margin-left: min(-270px, -20vw);
	opacity: 1;
	padding: 10px;
	position: relative;
	transition: margin 500ms ease, opacity 500ms ease-in-out;
	width: max(270px, 20vw);
	z-index: 1;
}

nav::before {
	border-bottom-style: solid;
	border-bottom-width: calc(3vw / 5);
	border-color: #5050e0;
	border-top-style: double;
	border-top-width: calc(3vw * 3 / 5);
	box-sizing: border-box;
	content: "";
	display: block;
	height: 3vw;
	left: 100%;
	margin: 0;
	position: absolute;
	top: 0;
	transition: inherit;
	transition-property: right, width;
	transition-delay: 50ms;
	width: 3vw;
}

nav:hover,
nav.hover {
	margin: 0;
}

nav.hover::before,
nav:hover::before {
	width: 0;
}

nav > div {
	padding: 10px 0;
}

.origin {
	display: flex;
	justify-content: space-evenly;
}


#map {
	width: 100vw;
	z-index: 0;
}



#gallery {
	background-color: inherit;
	height: 100vh;
	left: 0;
	opacity: 1;
	overflow: auto;
	position: absolute;
	top: 0;
	transition: opacity 500ms ease-in;
	width: 100vw;
	z-index: 3;
}

#gallery .title {
	font-size: 3vw;
	padding: 1vw 0;
	text-align: center;
}

#gallery button {
	position: absolute;
	top: 1vw;
	right: 1vw;
}


#changePW {
	align-items: center;
	background-color: inherit;
	border-radius: 3vw;
	display: flex;
	flex-direction: column;
	height: 30vh;
	justify-content: space-around;
	left: 50%;
	opacity: 1;
	overflow: auto;
	padding: 2vw;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 40vw;
}

#changePW label {
	display: flex;
	justify-content: space-between;
	width: 100%;
}

#changePW button {
	margin-top: 1vh auto 0 auto;
}



footer {
	align-items: center;
	background-color: #101060;
	display: flex;
	height: calc(1em + 20px);
	justify-content: space-between;
	padding: 0 15px;
}

#version {
	position: absolute;
	text-align: center;
	width: 96%;
}

@media only screen and (max-width: 1080px) {
	nav::before {
		border-bottom-width: 6px;
		border-top-width: 18px;
		height: 30px;
		right: -30px;
		width: 30px;
	}
}
