@font-face {
	font-family: Caladea;
	src: url("/fonts/Caladea-Regular.ttf");
}

@font-face {
	font-family: CMU-Bright;
	src: url("/fonts/cmunbmr.ttf");
}

@font-face {
	font-family: "Libertinus Sans";
	font-weight: normal;
	font-style: normal;
	src: url("/fonts/LibertinusSans-Regular.otf");
}

@font-face {
	font-family: "Libertinus Sans";
	font-weight: bold;
	font-style: normal;
	src: url("/fonts/LibertinusSans-Bold.otf");
}

@font-face {
	font-family: "Libertinus Sans";
	font-weight: normal;
	font-style: italic;
	src: url("/fonts/LibertinusSans-Italic.otf");
}

@font-face {
	font-family: SourceCodePro;
	src: url("/fonts/SourceCodePro-Regular.otf");
}

html, body {
	font-family: "Libertinus Sans", "Linux Biolinum", "Liberation Sans", "Helvetica", "Arial";
	font-size: 110%;
}

body {
	padding: 16px;
}

h1, h2, h3 {
	font-family: Caladea;
	font-weight: normal;
}

h1 {
	font-size: 2.5em;
}

h2 {
	font-size: 2em;
}

h3 {
	font-size: 1.5em;
}

main p, main li {
	max-width: 800px;
}

.service_boxes {
	text-align: center;
}

.service_box {
	display: inline-block;
	width: 144px;
	padding-top: 4px;
	border: 2px solid transparent;
	vertical-align: top;
}

.service_box-img {
	max-width: 128px;
	max-height: 128px;
}

.service_box-img_wrap {
	width: 128px;
	height: 128px;
	margin: auto;
	display: flex;
	justify-content: center;
	align-items: center;
}

.service_box-link, .service_box-link:visited {
	color: #000;
	font-family: CMU-Bright;
	text-decoration: none;
}

.service_box-title {
	position: relative;
	top: 14px;
	display: inline-block;
	padding-bottom: 14px;
}

.service_box:hover, .service_box:focus {
	border-top-color: #000;
	border-left-color: #000;
	border-bottom-color: #f00;
	border-right-color: #f00;
}

.article-list_title {
	margin-bottom: 0;
}

code, pre {
	font-family: SourceCodePro, monospace, monospace;
}

code {
	background-color: rgba(255, 128, 0, 0.3);
}

pre code {
	background-color: initial;
}

.anchor, .anchor:visited {
	margin-left: -1rem;
	margin-right: 0.75rem;
	color: #aaa;
	text-decoration: none;
	font-size: 2rem;
	font-family: LinBiolinum;
}

.anchor:hover, .anchor:focus {
	color: #f00;
}

@media (prefers-color-scheme: dark) {
	html {
		background-color: #000;
		color: #fff;
	}
	
	a {
		color: #fa4;
	}
	
	a:visited {
		color: #fc8;
	}

	.service_box:hover, .service_box:focus {
		border-top-color: #fff;
		border-left-color: #fff;
	}

	.service_box-img_wrap {
		background-color: #fff;
		box-shadow: 0 0 3px 5px #fff;
	}
	
	.service_box-link, .service_box-link:visited {
		color: #fff;
	}
	
	.toc {
		border: 1px solid #333;
	}
}

.float_img {
	float: right;
	max-width: 100%;
	margin: 4px;
}

blockquote {
	border-left: 2px solid #fa4;
	border-radius: 4px 0 0 4px;
	margin: 16px;
	padding: 0 16px;
}

footer {
	margin-top: 64px;
}

footer hr {
	border: 1px dashed #fa4;
}

.footer-icons img {
	margin: 24px;
}

.toc {
	border: 1px solid #bbb;
}

.hidden {
	opacity: 0;
}

.hidden:hover, .hidden:focus {
	opacity: 1;
}

h1 a, h2 a, h3 a,
#breadcrumb a, #langs a,
.article-tags a, .toc a {
	text-decoration: none;
}

h1 a:hover, h2 a:hover, h3 a:hover,
#breadcrumb a:hover, #langs a:hover,
.article-tags a:hover, .toc a:hover,
h1 a:focus, h2 a:focus, h3 a:focus,
#breadcrumb a:focus, #langs a:focus,
.article-tags a:focus, .toc a:focus {
	text-decoration: underline;
}
