body {
	max-width: 780px;
	margin: 0 auto;
	padding: 20px;
}

:root {
	--padding: 20px;
}

h1 {
	font-weight: normal;
}

header {
	text-align: center;
}

footer {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

li, p {
	line-height: 1.5;
}

li {
	margin-bottom: 1em;
}

.img-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
}

.img-grid a {
	align-items: flex-end;
	display: flex;
	margin-bottom: 40px;
	margin-bottom: var(--padding);
	max-height: min(calc(100vh - 80px), calc(100vw - 40px));
	max-height: min(calc(100vh - 80px), calc(100vw - var(--padding)));
	overflow: hidden;
}

.img-grid a.centered {
	align-items: center;
}

.img-grid a.top {
	align-items: flex-start;
}

.img-grid img {
	display: block;
	height: 100%;
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
}

.img-view {
	align-items: center;
	display: flex;
	flex-direction: column;
}

.img-view img {
	height: 100%;
	max-height: 100vh;
	max-width: 100%;
}

img.vertical {
	width: 100%;
}

div.nav {
	display: flex;
	justify-content: space-between;
	width: 100%;
}


@media(min-width:600px) {
	header {
		text-align: left;
	}
}

@media(min-width:820px) {
	:root {
		--padding: min(40px, calc((100vw - 820px) / 2 + 20px));
	}
}

@media(prefers-color-scheme: dark) {
	body {
		background: #333;
		color: #ccc;
	}

	a {
		color: #8af;
	}

	a:visited {
		color: #c8f;
	}
}

@view-transition {
	navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation: fade 0.3s ease both;
}

@keyframes fade {
	from {
		opacity: 0;
	to {
		opacity: 100%;
	}
}
