* {
	box-sizing: border-box;
}

html,
body {
	background-color: #006dfe;
	font-family: sans-serif;
	font-size: 24px;
	line-height: 1.6;
}

header {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;

	width: 100%;
	height: 100vh;
	padding: 24px;
	margin: 0;
}

.meta {
	position: relative;
}

.index {
	position: absolute;

	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);

	display: flex;
	justify-content: center;
	align-content: center;

	flex-wrap: wrap;
	gap: 12px;

	list-style: none;
}

ul {
	padding: 0;
	margin: 0;
}

.index li,
.meta button {
	position: relative;
	padding: 6px 12px;
	background-color: white;
	border-radius: 42px;
	margin: 0;
	font-size: 42px;
}

.index li {
	display: inline-block;
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.index img {
	padding: 8px;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;

	object-fit: contain;
}

.index a {
	width: 100%;
	height: 100%;
}

a {
	color: currentColor;
	text-decoration: none;
}

.index a:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

li:hover {
	transform: scale(1.05);
}

#background,
#foreground {
	position: absolute;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;

	object-fit: contain;
}

#foreground {
	pointer-events: none;
}

.meta button {
	background-color: white;
	border: none;
	font-size: 1rem;
	font-family: sans-serif;
	margin-top: 16px;
}

.meta .title {
	margin: 0;
	background-color: white;
}

.meta .description {
	max-width: 60ch;
	margin: 0;
}

.meta.release {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 8px;
}

.meta .title,
.meta.release .title,
.meta.release .date {
	font-size: 1rem;

	background-color: white;

	padding: 6px 12px;
	border-radius: 6px;
}

.hidden {
	visibility: hidden;
}

main,
footer {
	font-size: 24px;
	padding: 24px;
}

main * {
	max-width: 60ch;
}

main img {
	display: inline-block;
}

dl {
	display: grid;
	grid-template-columns: 1fr 4fr;
	gap: 32px;
}

footer h3 {
	margin: 64px 0;
	font-size: 1rem;
	font-weight: normal;
	font-style: italic;
}

dt {
	background-color: white;
	justify-self: start;
	align-self: flex-start;
	padding: 6px 12px;

	border-radius: 24px;
}

dd {
	margin: 0;
	max-width: 60ch;
}

.note {
	background-color: white;
	padding: 2px 4px;
}

@media (max-width: 767.98px) {
	.index li {
		width: 32px;
		height: 32px;
	}

	#background {
		object-fit: contain;
		object-position: middle;
	}

	main img {
		max-width: 100%;
	}

	dl {
		display: flex;
		flex-direction: column;
	}

	dd + dt {
		margin-top: 48px;
	}
}
