:root {
	--color-gold: #BDA66A;
	--color-paper: #FCFAF1;
	--color-transparent-paper: rgba(252 250 241 / 0.5);
	--fontsize: 1.125em;
	--margin: var(--fontsize);
	--margin-half: calc(0.5 * var(--margin));
	--margin-double: calc(2 * var(--margin));
	--margin-quad: calc(4 * var(--margin));
	--columns: 12;
	--column: calc((100vw - (var(--columns) + 1) * var(--margin)) / var(--columns));
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: "ToTemper";
	font-size: var(--fontsize);
	text-size-adjust: none;
	font-feature-settings: "ss01" 1;
	background-color: var(--color-paper);
}

a {
	color: inherit;
}

a,
label {
	transition: color 200ms;
}

a:hover,
label:hover {
	color: var(--color-gold);
}

h2 {
	font-size: 1.6em;
	font-weight: normal;
	text-align: center;
}

nav > :is(a, label, ul) {
	position: fixed;
	top: var(--margin);
	z-index: 10;
	line-height: 0.7;
}

nav a {
	text-decoration: none;
}

nav label {
	cursor: pointer;
}

nav > ul {
	list-style: none;
}

nav > ul > li:first-of-type {
	display: none;
}

nav > ul > li + li:not(:nth-of-type(2)) {
	margin-top: var(--margin-half);
	opacity: 0;
	pointer-events: none;
	transition: opacity 200ms;
}

figure {
	display: grid;
	gap: var(--margin);
	grid-template-columns: repeat(6, 1fr);
	overflow: hidden;
}

figure:has(figcaption) {
	grid-template-rows: 1fr auto;
}

figure > div {
	grid-column: 2 / span 4;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

figure > div > img {
	display: block;
	width: auto;
	min-width: 0;
	max-width: 100%;
	height: auto;
	min-height: 0;
	max-height: 100%;
}

figcaption {
	grid-column: 1 / -1;
	width: 100%;
	margin-top: calc(-1 * var(--margin-half));
	font-size: 0.7em;
	text-align: center;
	white-space: pre-wrap;
}

summary {
	list-style: none;
	text-align: center;
	cursor: pointer;
}

summary:hover {
	color: var(--color-gold);
}

summary::after {
	content: "…";
	display: inline-block;
	width: 0;
}

details[open] > summary {
	margin-bottom: var(--margin);
}

details[open] > summary::after {
	content: "";
}

section {
	display: grid;
	gap: var(--margin);
	position: relative;
}

section[data-key]::before {
	content: "#" attr(data-key);
	position: absolute;
	top: 50%;
	left: var(--margin);
	transform: translateY(-50%);
	opacity: 0.1;
}

.nav-left {
	left: var(--margin);
}

.nav-center {
	left: 50%;
	transform: translateX(-50%);
}

.nav-right {
	right: var(--margin);
}

:is(.full, .split) {
	height: 100vh;
	height: 100svh;
	padding: var(--margin);
	grid-template-rows: 1fr auto;
	place-items: center;
}

:is(.full, .split):has(figcaption) {
	grid-template-rows: 1fr auto;
}

.full {
	grid-template-columns: 1fr;
}

.split {
	grid-template-columns: 1fr 1fr;
}

:is(.full, .split) > figure {
	display: contents;
}

:is(.full, .split) > figure:first-of-type > * {
	grid-column: 1;
}

:is(.full, .split) > figure:last-of-type:not(:only-of-type) > * {
	grid-column: 2;
}

:is(.full, .split) > figure > div {
	grid-row: 1;
	max-height: 75vh;
	max-height: 75svh;
	padding-block: calc(0.7em + var(--margin));
	padding-inline: calc(var(--column) + var(--margin));
}

:is(.full, .split):has(figcaption) > figure > div {
	padding-bottom: 0;
}

:is(.full, .split) > figure > figcaption {
	grid-row: 2;
	margin-top: 0;
}

/* :is(.full, .split) > figure > figcaption {
	position: absolute;
	bottom: 0;
} */

.overlay {
	display: grid;
	gap: 0 var(--margin);
	grid-template-columns: repeat(var(--columns), 1fr);
	padding: var(--margin) var(--margin) 0;
	overflow: auto;
	overscroll-behavior: contain;
	position: fixed;
	inset: 0;
	z-index: 100;
	background-color: transparent;
	visibility: hidden;
	pointer-events: none;
	transition:
		-webkit-backdrop-filter 1s,
		backdrop-filter 1s,
		background-color 1s,
		visibility 0s 1s;
}

#toggle-about:checked ~ #about {
	-webkit-backdrop-filter: blur(15px);
	backdrop-filter: blur(15px);
	background-color: var(--color-transparent-paper);
	visibility: visible;
	pointer-events: all;
	transition-duration: 500ms, 500ms, 500ms, 0s;
	transition-delay: 0s, 0s, 0s, 0s;
}

.overlay::after {
	content: "";
	grid-column: 1 / -1;
	display: table;
	height: var(--margin);
}

.backdrop {
	grid-column: 1 / -1;
	height: 100vh;
	height: 100lvh;
	margin-top: -100vh;
	margin-top: -100lvh;
	margin-inline: calc(-1 * var(--margin));
	position: sticky;
	top: calc(-1 * var(--margin));
	pointer-events: none;
}

#toggle-about:checked ~ #about > .backdrop {
	pointer-events: all;
}

.overlay > label:not(.backdrop) {
	grid-column: 4 / span 6;
	width: 100%;
	margin-bottom: var(--margin);
	position: sticky;
	top: 0;
	z-index: 1;
	line-height: 0.7;
	text-align: center;
	opacity: 0;
	cursor: pointer;
	transition: color 200ms, opacity 500ms;
}

#toggle-about:checked ~ #about > label:not(.backdrop) {
	opacity: 1;
}

.overlay > section {
	grid-template-columns: repeat(6, 1fr);
	grid-column: 4 / span 6;
	width: 100%;
	max-width: 60em;
	margin-inline: auto;
	padding: var(--margin) 0;
	transform: translate3d(0, 10px, 0);
	background-color: white;
	opacity: 0;
	transition: opacity 500ms, transform 500ms;
}

.overlay > section + section {
	margin-top: -1px;
}

#toggle-about:checked ~ #about > section {
	transform: translate3d(0, 0, 0);
	opacity: 1;
}

.overlay > section > :is(details, dl, h2, p) {
	grid-column: 2 / span 4;
	width: 100%;
}

.overlay > section > figure {
	grid-column: 1 / -1;
}

.overlay > section > figure > div {
	max-height: calc(75vh - 0.7em - var(--margin));
	max-height: calc(75svh - 0.7em - var(--margin));
}

.overlay > section > .faq > dd {
	padding-left: var(--margin);
}

.overlay > section dl > dt:not(:first-of-type) {
	margin-top: var(--margin);
}

.overlay > section .achievements > dd {
	font-size: 0.7em;
}

@media (min-width: 1920px) {
	:root {
		--columns: 14;
	}

	.overlay > label:not(.backdrop),
	.overlay > section {
		grid-column: 5 / span 6;
	}
}

@media (max-width: 1440px) {
	:root {
		--columns: 10;
	}

	.overlay > label:not(.backdrop),
	.overlay > section {
		grid-column: 3 / span 6;
	}
}

@media (max-width: 960px) {
	:root {
		--fontsize: 1em;
		--columns: 8;
	}

	figcaption {
		font-size: 0.625em;
	}

	:is(.full, .split) > figure > div {
		padding-inline: 0;
	}

	.overlay > label:not(.backdrop),
	.overlay > section {
		grid-column: 2 / span 6;
	}
}

@media (max-width: 640px) {
	:root {
		--columns: 6;
	}

	.overlay > label:not(.backdrop),
	.overlay > section {
		grid-column: span 6;
	}
}

@media (min-width: 481px) {
	nav > ul:hover > li + li {
		opacity: 1;
		pointer-events: all;
	}

	nav > ul:not(:hover) > li + li {
		transition-delay: 0s !important; 
	}
}

@media (max-width: 480px) {
	nav > ul > li {
		position: relative;
	}

	nav > ul > li:first-of-type {
		display: block;
	}

	nav > ul > li:nth-of-type(2) {
		margin-top: var(--margin);
		opacity: 0;
		pointer-events: none;
		transition: opacity 200ms;
	}

	nav > ul > li + li:not(:nth-of-type(2)) {
		margin-top: var(--margin);
	}

	#toggle-menu:not(:checked) ~ #header > nav > ul > li {
		transition-delay: 0s !important; 
	}

	#toggle-menu:checked ~ #header > nav > ul > li {
		opacity: 1;
		pointer-events: all;
	}

	nav > ul > li > label > span {
		position: relative;
	}

	nav > ul > li > label::before {
		content: "";
		position: fixed;
		inset: 0;
		background-color: transparent;
		visibility: hidden;
		pointer-events: none;
		transition:
			-webkit-backdrop-filter 1s,
			backdrop-filter 1s,
			background-color 1s,
			visibility 0s 1s;
	}

	#toggle-menu:checked ~ #header > nav > ul > li > label::before {
		-webkit-backdrop-filter: blur(15px);
		backdrop-filter: blur(15px);
		background-color: var(--color-transparent-paper);
		visibility: visible;
		pointer-events: all;
		transition-duration: 500ms, 500ms, 500ms, 0s;
		transition-delay: 0s, 0s, 0s, 0s;
	}

	.split {
		height: 200vh;
		height: 200svh;
		gap: var(--margin-double);
		grid-template-columns: 1fr;
		grid-template-rows: 1fr 1fr !important;
	}

	.full,
	.split:has(figure:only-child) {
		height: 100vh;
		height: 100svh;
		grid-template-rows: 1fr !important;
	}

	/* .split > figure {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
		place-items: center;
		height: 100%;
	} */

	.split > figure:has(figcaption) {
		grid-template-rows: 1fr auto;
	}

	:is(.full, .split) > figure {
		display: flex;
		flex-direction: column;
		justify-content: center;
		height: 100%;
	}

	:is(.full, .split) > figure > div {
		height: auto;
		max-height: 100%;
		padding-bottom: 0;
	}

	:is(.full, .split) > figure > :is(div, figcaption) {
		grid-row: initial;
	}

	:is(.full, .split) > figure:last-of-type > * {
		grid-column: 1 !important;
	}

	/* :is(.full, .split):has(figcaption) > figure > div {
		padding-bottom: calc(0.7em + var(--margin));
	} */

	figure > div,
	.overlay > section > :is(details, dl, h2, p) {
		grid-column: span 6;
	}

	.overlay > section {
		padding-inline: var(--margin);
	}
}