:root {
	font-size: 16px;
	font-family: "Lexend", sans-serif;

	--dark: #242423;
	--light: #e8eddf;
	--bg: #f5cb5c;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	padding: 2rem 0 1rem 2rem;
	box-sizing: border-box;
	margin: 0;
	overflow: hidden;
	color: var(--dark);
	background: var(--bg);
}

.container {
	display: flex;
	flex: 1 0 0;
}

main {
	flex: 1 0 0;
	margin-left: 5rem;
}

section {
}

h1 {
	width: fit-content;
	padding: 0 0.5rem;
	margin: 0;
	font-family: "Major Mono Display", monospace;
	font-size: 3rem;
	line-height: 4rem;
	font-weight: normal;
	background: var(--light);
}

p {
	margin: 1rem 0 0 0;
}

/* HEADER */
header {
	margin-bottom: 2rem;
}

header a {
	display: flex;
	width: fit-content;
	text-decoration: none;
	user-select: none;
}

header a div {
	display: flex;
	justify-content: center;
	width: 5rem;
	padding: 0.75rem 0 1.25rem 0;
	border-right: 0 solid var(--bg);
	line-height: 4rem;
	font-family: "Major Mono Display", monospace;
	font-size: 6rem;
	color: var(--bg);
	background: var(--dark);
	transition: border-width 100ms ease-in-out;
}

header a:link:hover div,
header a:link:visited div {
	border-right: 0.25rem solid var(--bg);
}

/* NAVIGATION */
nav {
	display: flex;
	flex-direction: column;
	flex: 0 0 160px;
}

.lvl-2 {
	width: fit-content;
	display: flex;
}

.lvl-2 a {
	position: relative;
	display: block;
	width: 5rem;
	padding-bottom: 0.5rem;
	border-top: 2px solid var(--dark);
	box-sizing: border-box;
	font-family: "Major Mono Display", monospace;
	font-size: 6rem;
	line-height: 5rem;
	writing-mode: vertical-rl;
	text-orientation: upright;
	text-decoration: none;
	user-select: none;
	color: var(--light);
	background: var(--dark);
}

.lvl-2 a:link:not(.selected),
.lvl-2 a:visited:not(.selected) {
	color: var(--dark);
	background: transparent;
	transition: color 100ms ease-in-out;
}

.lvl-2 a:link:hover,
.lvl-2 a:visited:hover {
	color: var(--light);
}

.lvl-2 a:link::before,
.lvl-2 a:visited::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 100%;
	height: 0;
	opacity: 1;
	background: var(--dark);
	z-index: -1;
	transition: height 100ms ease-in-out;
}

.lvl-2 a:link:hover::before,
.lvl-2 a:visited:hover::before {
	height: 100%;
}

.lvl-3 {
	display: flex;
	flex-direction: column;
	margin-top: 1rem;
}

.lvl-3 a {
	position: relative;
	display: block;
	padding: 0.5rem 0.5rem;
	border-right: 2px solid var(--dark);
	font-size: 1rem;
	font-weight: bold;
	text-decoration: none;
	text-align: right;
	color: var(--light);
	background: var(--dark);
	user-select: none;
	transition: color 100ms ease-in-out;
}

.lvl-3 a:link,
.lvl-3 a:visited {
	color: var(--dark);
	background: transparent;
	transition: color 100ms ease-in-out;
}

.lvl-3 a:link:hover,
.lvl-3 a:visited:hover {
	color: var(--light);
}

.lvl-3 a:link::before,
.lvl-3 a:visited::before {
	position: absolute;
	top: 0;
	right: 0;
	content: "";
	width: 0;
	height: 100%;
	opacity: 1;
	background: var(--dark);
	z-index: -1;
	transition: width 100ms ease-in-out;
}

.lvl-3 a:link:hover::before,
.lvl-3 a:visited:hover::before {
	width: 100%;
}

/* FOOTER */
footer {
	margin-top: 1rem;
}

footer div {
	width: fit-content;
	padding: 0.5rem;
	font-weight: bold;
	color: var(--light);
	background: var(--dark);
}
