html, body {
	margin: 0;
	font-family: 'Open Sans', sans-serif;
	font-size: 14px;
	color: #303030;
}
h1 {
	margin: 0;
	font-weight: normal;
	font-size: 280%;
}
	h1 a, h1 a:visited {
		color: inherit;
	}
h2 {
	margin: 0;
	border-bottom: 1px solid #303030;
	line-height: 1.5em;
	font-weight: normal;
	font-variant: small-caps;
	font-size: 125%;
}
	h2 span {
		display: inline-block;
		padding: 0 0.25em;
		background-color: #303030;
		color: #ffffff;
	}
		h2 a, h2 a:visited {
			color: inherit;
		}
h3 {
	margin: 1.5em 0 1em;
	border-bottom: 1px dotted #303030;
	font-weight: bold;
	font-variant: small-caps;
	font-size: 120%;
}
h4 {
	margin: 1.5em 0 1em;
	font-weight: bold;
	font-variant: small-caps;
	font-size: 110%;
}
p {
	margin: 1em 0;
}
ul, ol {
	margin: 1em 0;
	padding: 0 0 0 2.5em;
}
blockquote {
	margin: 1em 2.5em 1em 2.25em;
	padding: 0 1em;
	border-left: 0.25em solid #303030;
}
aside {
	margin: 1em 2.5em;
	padding: 1em 1.5em;
	border-width: 1px 0;
	border-style: dotted;
	border-color: #303030;
}
	aside h3, aside h4, aside h5, aside h6 {
		border-width: 0;
		border-style: none;
		margin: 0;
	}
a {
	text-decoration: none;
	color: #2d72c8;
}
a:visited {
	color: #2c5f9d;
}
a:hover, a:focus {
	outline: none;
	text-decoration: underline;
}
a:active {
	outline: none;
	text-decoration: underline;
	color: #802020;
}
input,
textarea {
	padding: 1px 0.25em;
	border: 1px solid #303030;
	outline: none;
	background-color: #ffffff;
	vertical-align: middle;
	line-height: normal;
	white-space: nowrap;
	font-family: inherit;
	color: #303030;
}
input {
	height: 2em;
}
textarea {
	height: 8em;
	width: 30em;
	resize: vertical;
}
input:hover, input:focus,
textarea:hover, textarea:focus {
	border-color: #2c5f9d;
}
label {
	display: inline-block;
	width: 7em;
	vertical-align: top;
	text-align: right;
	font-variant: small-caps;
}
button {
	height: 2em;
	padding: 0 0.75em;
	border: 1px solid #303030;
	outline: none;
	background-color: #303030;
	vertical-align: middle;
	line-height: normal;
	white-space: nowrap;
	font-family: inherit;
	color: #ffffff;
	cursor: pointer;
}
button:hover, button:focus {
	border-color: #2c5f9d;
	background-color: #2c5f9d;
}
button:active {
	border-color: #802020;
	background-color: #802020;
}
pre, code {
	font-family: 'Inconsolata', monospace;
}
main, section, article, header, footer, aside {
	display: block;
}
.loading {
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	padding: 0.25em;
	margin: 0.25em;
	overflow: hidden;
	position: relative;
}
	.loading span {
		display: inline-block;
		width: inherit;
		height: inherit;
		border: 0.25em solid #303030;
		border-radius: 50%;
		position: absolute;
		top: 0;
		left: 0;
		animation: rotate 4s infinite linear;
	}
		.loading span::before,
		.loading span::after {
			content: '';
			width: 100%;
			height: 200%;
			background-color: #ffffff;
			position: absolute;
			top: -50%;
			animation: rotate 3s infinite ease;
		}
		.loading span::before {
			left: -50%;
			transform-origin: 100% 50%;
		}
		.loading span::after {
			right: -50%;
			transform-origin: 0 50%;
			animation-delay: 0.75s;
		}
.description {
	display: none;
}

#top {
	height: 5em;
	padding: 0 0.5em;
	border-bottom: 1px solid #303030;
	line-height: 5em;
	white-space: nowrap;
	font-size: 95%;
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}
	#accessibility {
		width: 100%;
		white-space: normal;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
	}
		#accessibility a {
			padding: 0.5em 0.75em;
			border: 1px solid #303030;
			font-weight: bold;
			text-align: center;
			text-decoration: none;
			line-height: normal;
			background-color: #ffffff;
			color: #303030;
			position: absolute;
			top: 1em;
			right: 100%;
		}
		#accessibility a:hover, #accessibility a:focus {
			left: 1em;
			right: auto;
			color: #2c5f9d;
		}
		#accessibility a:active {
			left: 1em;
			right: auto;
			color: #802020;
		}
	#top .container {
		max-width: 150em;
		height: 100%;
		margin: 0 auto;
		position: relative;
	}
		#top .loading {
			position: absolute;
			top: 1.25em;
			left: 0.25em;
		}
		#logo {
			display: block;
			width: 25%;
			height: 100%;
			font-size: 220%;
			text-align: center;
			color: #303030;
			position: absolute;
			top: 0;
			left: 0;
		}
		#logo:hover, #logo:focus {
			text-decoration: none;
			color: #2c5f9d;
		}
		#logo:active {
			text-decoration: none;
			color: #802020;
		}
			#logo span {
				font-size: 80%;
			}
		#top nav {
			display: block;
			height: 100%;
			text-align: center;
			overflow: hidden;
			position: absolute;
			bottom: 0;
			left: 25%;
			right: 25%;
		}
			#top nav ul {
				display: block;
				height: 100%;
				margin: 0;
				padding: 0;
			}
				#top nav li {
					display: inline;
					list-style: none;
					white-space: nowrap;
				}
					#top nav a {
						display: inline-block;
						height: 100%;
						padding: 0 1.25em;
						font-weight: bold;
						text-align: center;
						text-transform: uppercase;
						color: #303030;
					}
					#top nav .active a {
						background-color: #303030;
						color: #ffffff;
					}
					#top nav a:hover, #top nav a:focus,
					#top nav .active a:hover, #top nav .active a:focus {
						text-decoration: none;
						background-color: #2c5f9d;
						color: #ffffff;
					}
					#top nav a:active,
					#top nav .active a:active {
						text-decoration: none;
						background-color: #802020;
						color: #ffffff;
					}
		#search {
			display: block;
			width: 25%;
			height: 100%;
			text-align: center;
			position: absolute;
			top: 0;
			right: 0;
		}
			#search label {
				display: none;
			}
			#search input {
				text-align: left;
			}
		#language {
			display: block;
			border: 1px solid #ffffff;
			margin: 0;
			padding: 0;
			text-align: center;
			line-height: 1.75em;
			position: absolute;
			top: 5.75em;
			right: 0;
		}
			#language li {
				display: block;
				list-style: none;
			}
				#language a {
					display: block;
					padding: 0 0.25em;
					border: 1px solid #303030;
					background-color: #ffffff;
					text-transform: uppercase;
					color: #303030;
				}
				#language .active a {
					background-color: #303030;
					color: #ffffff;
				}
				#language a:hover, #language a:focus,
				#language .active a:hover, #language .active a:focus {
					text-decoration: none;
					background-color: #2c5f9d;
					border-color: #2c5f9d;
					color: #ffffff;
				}
				#language a:active,
				#language .active a:active {
					text-decoration: none;
					background-color: #802020;
					border-color: #802020;
					color: #ffffff;
				}

#bottom {
	padding: 0 0.5em;
	border-top: 1px solid #303030;
	text-align: center;
	font-size: 95%;
	clear: both;
}
	#bottom .container {
		max-width: 150em;
		margin: 0 auto;
		position: relative;
	}
		#bottom ul {
			display: block;
			margin: 0;
			padding: 0;
		}
			#bottom li {
				display: inline;
				list-style: none;
				white-space: nowrap;
			}
				#bottom a {
					display: inline-block;
					padding: 0.75em;
					font-weight: bold;
					text-align: center;
					text-transform: uppercase;
					color: #303030;
				}
				#bottom a:hover, #bottom a:focus {
					text-decoration: none;
					background-color: #2c5f9d;
					color: #ffffff;
				}
				#bottom a:active {
					text-decoration: none;
					background-color: #802020;
					color: #ffffff;
				}
					#bottom a span {
						display: block;
						font-weight: normal;
					}
		#bottom .copyright {
			font-size: 85%
		}

#main {
	margin: 7.5em 0.5em 2.5em;
}
	#main .container {
		max-width: 48em;
		margin: 0 auto;
		text-align: justify;
		position: relative;
		clear: both;
	}
		#main header {
			margin: 2.5em 0;
			text-align: center;
		}
			#main header p {
				margin: 0;
				font-style: italic;
				font-size: 125%;
			}
		#main section {
			max-width: 42em;
			margin: 1.25em auto;
		}
		#main section.summary {
			max-width: 34em;
			font-size: 105%;
			margin: 1.25em auto 2.25em;
			font-style: italic;
		}
		#main aside.articles,
		#main aside.comments {
			margin-left: 0;
			margin-right: 0;
			padding-left: 0;
			padding-right: 0;
			border-width: 0;
			border-style: none;
		}
		#main aside.articles {
			display: -webkit-box;
			display: -moz-box;
			display: -ms-flexbox;
			display: -webkit-flex;
			display: -moz-flex;
			display: flex;
			-ms-box-orient: horizontal;
			-webkit-justify-content: space-between;
			justify-content: space-between;
		}
			#main aside.articles section {
				max-width: 100%;
				margin: 1.25em 0.625em 0;
				-webkit-box-flex: 1;
				-moz-box-flex: 1;
				-webkit-flex-grow: 1;
				-ms-flex-positive: 1;
				flex-grow: 1;
				-webkit-flex-basis: 0;
				flex-basis: 0;
			}
			#main aside.articles section:only-child {
				max-width: 42em;
				margin: 0 auto;
				-webkit-flex-basis: 100%;
				flex-basis: 100%;
			}
				#main aside.articles section p {
					margin-bottom: 0;
				}
		ul.section {
			display: block;
			width: 100%;
			padding: 0;
			margin-bottom: -1.25em;
			-webkit-column-count: 2;
			-moz-column-count: 2;
			column-count: 2;
			-webkit-column-gap: 1em;
			-moz-column-gap: 1em;
			column-gap: 1em;
		}
			ul.section li {
				display: block;
				padding-bottom: 1.25em;
				list-style: none;
				line-height: 1.25em;
				text-align: left;
				-webkit-column-break-inside: avoid;
				page-break-inside: avoid;
				break-inside: avoid;
			}
				ul.section .separator {
					display: none;
				}
				ul.section .date,
				ul.section .language {
					display: block;
					font-size: 95%;
				}
				ul.section .type:before {
					content: '';
					display: block;
				}
				ul.section .additions {
					font-size: 95%;
					color: #6cc644;
				}
				ul.section .deletions {
					font-size: 95%;
					color: #bd3300;
				}
				ul.section .title,
				ul.section .author {
					font-weight: bold;
					font-size: 105%;
				}
				ul.section .content,
				ul.section .content p {
					margin: 0;
				}
		ul.stub {
			-webkit-column-count: 1;
			-moz-column-count: 1;
			column-count: 1;
		}
		.comments ul.section {
			-webkit-column-count: 1;
			-moz-column-count: 1;
			column-count: 1;
			margin: 0;
		}
			.comments ul li,
			.comments form {
				margin: 1.25em 0;
				padding-left: 1em;
				padding-bottom: 0;
				border-left: 0.25em solid #303030;
			}
				.comments form span {
					display: inline-block;
					padding-left: 2.5em;
				}
		.code {
			line-height: 1.25em;
			margin: 0 -3em;
			padding: 1.75em 3em;
			background-color: #f0f3f3;
			overflow: auto;
		}
			.code pre {
				margin: 0;
			}

::selection {
	background-color: #c0c0c0;
	color: #000000;
}

@keyframes rotate {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

@media all and (max-width: 62em) {
	#top {
		height: 8em;
		padding: 0;
		line-height: 3em;
	}
		#top .loading {
			top: 0.25em;
		}
		#logo, #search {
			height: 37.5%;
			padding: 0 0.5%;
			width: 49%;
		}
		#top nav {
			border-top: 1px solid #303030;
			height: 62.5%;
			line-height: 5em;
			left: 0;
			right: 0;
		}
		#language {
			top: 8.25em;
			right: 0.25em;
		}
	#main {
		margin-top: 10em;
	}
}
@media all and (max-width: 48em) {
	#main aside.articles {
		display: block;
	}
		#main aside.articles section {
			max-width: 42em;
			margin: 1.25em auto;
		}
	.code {
		margin: 0;
		padding: 1.75em;
	}
}
@media all and (max-width: 35em) {
	blockquote {
		margin-left: 1em;
		margin-right: 1em;
		padding-left: 0.75em;
	}
	aside {
		margin-left: 1em;
		margin-right: 1em;
	}
	#logo {
		width: 99%;
	}
	#search {
		display: none;
	}
	#top nav a {
		padding: 0 1em;
	}
	ul.section {
		-webkit-column-count: 1;
		-moz-column-count: 1;
		column-count: 1;
	}
}
@media all and (max-width: 28em) {
	blockquote {
		margin-left: 0.5em;
		margin-right: 0.5em;
	}
	aside {
		margin-left: 0;
		margin-right: 0;
		padding: 0.5em 1em;
	}
	#top {
		height: auto;
		position: relative;
	}
		#accessibility a:hover, #accessibility a:focus, #accessibility a:active {
			right: 1em;
		}
		#language {
			top: 9.5em;
		}
	#main {
		margin-top: 2.5em;
	}
	#logo {
		position: relative;
	}
	#top nav {
		position: relative;
		white-space: normal;
		line-height: 3em;
	}
		#top nav a {
			min-width: 40%;
		}
}

@media (prefers-color-scheme: dark) {
	html,
	body,
	input,
	textarea,
	#accessibility a,
	#language a {
		background-color: #000000;
		color: #cfcfcf;
	}
	h2 span,
	button,
	#logo,
	#top nav a,
	#language .active a,
	#bottom a {
		color: #cfcfcf;
	}
	.loading span::before,
	.loading span::after {
		background-color: #000000;
	}
	#language {
		border-color: #000000;
	}
	.code {
		background-color: #161313;
	}
	::selection {
		color: #ffffff;
	}
}

@font-face {
	font-family: 'Open Sans';
	font-weight: normal;
	font-style: normal;
	src: url('/skin/fonts/opensans-regular.eot');
	src: url('/skin/fonts/opensans-regular.eot?#iefix') format('embedded-opentype'),
		local('Open Sans'), local('OpenSans'),
		url('/skin/fonts/opensans-regular.woff2') format('woff2'),
		url('/skin/fonts/opensans-regular.woff') format('woff'),
		url('/skin/fonts/opensans-regular.ttf') format('truetype'),
		url('/skin/fonts/opensans-regular.svg#Regular') format('svg');
}
@font-face {
	font-family: 'Open Sans';
	font-weight: bold;
	font-style: normal;
	src: url('/skin/fonts/opensans-bold.eot');
	src: url('/skin/fonts/opensans-bold.eot?#iefix') format('embedded-opentype'),
		local('Open Sans Bold'), local('OpenSans-Bold'),
		url('/skin/fonts/opensans-bold.woff2') format('woff2'),
		url('/skin/fonts/opensans-bold.woff') format('woff'),
		url('/skin/fonts/opensans-bold.ttf') format('truetype'),
		url('/skin/fonts/opensans-bold.svg#Bold') format('svg');
}
@font-face {
	font-family: 'Open Sans';
	font-weight: normal;
	font-style: italic;
	src: url('/skin/fonts/opensans-italic.eot');
	src: url('/skin/fonts/opensans-italic.eot?#iefix') format('embedded-opentype'),
		local('Open Sans Italic'), local('OpenSans-Italic'),
		url('/skin/fonts/opensans-italic.woff2') format('woff2'),
		url('/skin/fonts/opensans-italic.woff') format('woff'),
		url('/skin/fonts/opensans-italic.ttf') format('truetype'),
		url('/skin/fonts/opensans-italic.svg#Italic') format('svg');
}
@font-face {
	font-family: 'Open Sans';
	font-weight: bold;
	font-style: italic;
	src: url('/skin/fonts/opensans-bolditalic.eot');
	src: url('/skin/fonts/opensans-bolditalic.eot?#iefix') format('embedded-opentype'),
		local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
		url('/skin/fonts/opensans-bolditalic.woff2') format('woff2'),
		url('/skin/fonts/opensans-bolditalic.woff') format('woff'),
		url('/skin/fonts/opensans-bolditalic.ttf') format('truetype'),
		url('/skin/fonts/opensans-bolditalic.svg#BoldItalic') format('svg');
}
@font-face {
	font-family: 'Inconsolata';
	font-weight: normal;
	font-style: normal;
	src: url('/skin/fonts/inconsolata-regular.eot');
	src: url('/skin/fonts/inconsolata-regular.eot?#iefix') format('embedded-opentype'),
		local('Inconsolata'),
		url('/skin/fonts/inconsolata-regular.woff2') format('woff2'),
		url('/skin/fonts/inconsolata-regular.woff') format('woff'),
		url('/skin/fonts/inconsolata-regular.ttf') format('truetype'),
		url('/skin/fonts/inconsolata-regular.svg#Regular') format('svg');
}
@font-face {
	font-family: 'Inconsolata';
	font-weight: bold;
	font-style: normal;
	src: url('/skin/fonts/inconsolata-bold.eot');
	src: url('/skin/fonts/inconsolata-bold.eot?#iefix') format('embedded-opentype'),
		local('Inconsolata Bold'), local('Inconsolata-Bold'),
		url('/skin/fonts/inconsolata-bold.woff2') format('woff2'),
		url('/skin/fonts/inconsolata-bold.woff') format('woff'),
		url('/skin/fonts/inconsolata-bold.ttf') format('truetype'),
		url('/skin/fonts/inconsolata-bold.svg#Bold') format('svg');
}
