body {
	background-color: #fff;
	background-attachment: fixed;
	min-height: 100vh;
	color: black;
	padding: 0;
	margin: 0;
	font-family: sans-serif;
	font-size: 12pt;
}
header {
	background-color: #fde;
	box-shadow: 0 0 10px #fde;
	padding: 20px;
	padding-left: max(10px, calc(50% - 420px));
	padding-right: max(10px, calc(50% - 420px));
	margin: 0;
	font-size: 16pt;

	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: end;

	background-image: linear-gradient(#fac, #fde, #fac);
	background-size: 100% 200%;
	background-repeat: repeat;
	animation-name: header;
	animation-duration: 10s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
}
@media (prefers-reduced-motion: reduced) {
	header {
		animation-name: unset;
	}
}
@keyframes header {
	from {
		background-position: 0 0;
	}
	to {
		background-position: 0 200%;
	}
}
header > div {
	padding: 0;
	margin: 0;
	max-width: 800px;

	display: flex;
	flex-direction: column;
	justify-content: start;
}
header > div > h1 {
	font-size: 20pt;
}
header > div > h1, header > div > p {
	padding: 0;
	margin: 20px;

	display: block;
}
header > * > ul {
	padding: 0;
	margin: 0;

	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}
header > * > ul > li {
	padding: 0;
	margin: 20px;

	display: block;
}
main, footer {
	background-color: transparent;
	padding: 20px;
}
main {
	margin: 0;
	margin-bottom: 20px;
	min-height: 500px;

	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}
footer {
	margin: 20px;
	text-align: center;
}
main table, main video, main img {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}
@media (prefers-color-scheme: dark) {
	body {
		background-color: #181818; 
		background-attachment: fixed;
		color: white;
	}
	header {
		background-color: #222;
		background-image: linear-gradient(#222, #423, #222);
		box-shadow: 0 0 10px #423;
	}
	a {
		color: #9ad;
	}
	a:visited {
		color: #a9d;
	}
	a:active {
		color: #d6a;
	}
}

.button {
	width: 176px;
	height: 62px;
	image-rendering: pixelated;

	margin: 2px;
	padding: 0;

	vertical-align: bottom;
}
h2.button, h3.button, h4.button, p.button {
	font-size: 20px;
	font-family: unifont, sans-serif;
	line-height: 48px; 
	display: inline-block;
	padding: 5px;
	box-sizing: border-box;
	background: linear-gradient(#fac, #fde);
	border: 2px solid #fac;
}
.buttons a {
	color: inherit;
}
h2.button, h3.button, h4.button {
	text-decoration: underline;
}
@media (prefers-color-scheme: dark) {
	h2.button, h3.button, h4.button, p.button {
		background: linear-gradient(#222, #423);
		border: 2px solid #222;
	}
}
.buttons-container {
	max-width: 800px;
       	margin: auto;
}  
.buttons {
	padding: 10px;
}
h2.button, h3.button, h4.button {
	font-size: 120%;
}
@media(max-width: 352px) {
	.button {
		width: 88px;
		height: 31px;
	}
	h2.button, h3.button, h4.button, p.button {
		font-size: 50%;
		line-height: 9px;
	}
}
a:hover .button, .button:focus, :focus .button {
	transform: scale(1.2);
	outline: 2px solid currentColor;
}

.button-animated .button.static {
	display: inline;
}
.button-animated .button.animated {
	display: none;
}
@media not (prefers-reduced-motion) {
	.button-animated:hover .button.static, .button-animated:focus .button.static {
		display: none;
	}
	.button-animated:hover .button.animated, .button-animated:focus .button.animated {
		display: inline;
	}
}

.buttons {
	filter: grayscale(1);
}
.buttons:hover, .buttons:focus-within {
	filter: none;
	opacity: 1;
}
