body {
	font-family: "Source Sans Pro", "Fira Sans", Roboto, sans-serif;
	line-height: 1.2;

	margin: 0;
	padding: 0;
	box-sizing: border-box;
	min-height: 100vh;

	display: flex;
	flex-direction: column;
}
@media screen {
	body {
		background-color: #fff5f0; /* #efe5e0; */
	}
	body > header {
		/*background-color: #fff;*/
	}
	body > main {
		background-color: #fff5f0;
	}
}
body.blog {
	display: block;
}

@media (max-width:400px) {
	body {
		word-break: break-word;
		overflow-wrap: break-word;
		overflow-wrap: anywhere;
		hyphens: auto;
	}
}


a {
	color: #1d125f;
}
a:visited {
	color: #48122d;
}
a:hover {
	text-decoration: none;
}



body > header {
	padding: 2vmin;
	position: relative;
	display: flex;
}
body > header a {
	white-space: nowrap;
}
body > header aside {
	position: relative;
	display: inline-block;
	margin-left: auto;
	padding-left: 1em;
	text-align: right;
	font-family: "Roboto Slab", serif;
}
.adElement {
	position: absolute;
	box-sizing: border-box;
	min-width: 100%;
	padding: 1.3em 1em;
	text-align: center;
	border: 2px solid red;
	background: white;
	color: black;
	top: 0;
	right: 0;
	white-space: nowrap;
}
.adElement a {
	text-decoration: underline;
}
main {
	padding: 1px 2vmin;
	margin-bottom: 3em;
}
@media (max-width:400px) {
	body > header {
		flex-direction: column;
	}
	body > header aside {
		font-size: 75%;
		margin-top: 1em;
	}

	.adElement {
		top: auto;
		bottom: 0;
	}
}



.wordmark {
	/* Font size determines the size of the midgard word mark */

	line-height: 1;
	font-family: "Roboto Slab", serif;
	font-weight: 300;
	color: black;
	text-decoration: none;

	text-align: left;
	display: inline-block;
	width: 3.37em;

	opacity: 0.7;
}
a:hover .wordmark, a:focus .wordmark {
	opacity: 1;
}


body > header img {
	width: 100px;
	height: 100px;
	display: inline-block;

	filter: saturate(80%) opacity(50%);
}
body > header a {
	text-decoration: none;
	display: inline-block;
}
body > header a:hover img, body > header a:focus img {
	filter: saturate(100%) opacity(100%);
}
body > header h1 {
	display: inline-block;
	line-height: 1;
}
.sitename {
	margin: 0;
	margin-left: 0.3em;
	display: inline-block;
	font-size: 25pt;
}
body > header img, .sitename {
	vertical-align: middle;
}
@media (max-width:400px) or (max-height:600px) {
	body > header img {
		width: 60px;
		height: 60px;
	}
	.sitename {
		font-size: 15pt;
	}
}



.links ul {
	padding: 0;
	margin: 0 0 1em;
}
.links li {
	list-style: none;
	margin: 0;
}

.links li h3 {
	font-size: 100%;
	margin: 0;
	font-weight: normal;
}
.links li a {
	display: block;
	text-decoration: none;
	padding: 0.4em 0.5em;
	margin: 0 -0.3em;
	border-top: 1px solid transparent;
	border-bottom: 1px solid transparent;
}
.links li a:hover, li a:focus {
	background-color: #fffaf7;
	border-color: #1d125f;
}
.links li a:visited:hover, li a:visited:focus {
	border-color: #48122d;
}
.links a .published {
	display: inline;
	font-size: 75%;
	color: #777;
	margin-top: 0.3em;
	margin-right: 0.5em;
}
.links a .summary {
	display: inline;
	font-size: 75%;
	color: #333;
	margin-top: 0.3em;
}
.links a .title {
	text-decoration: underline;
}

@media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:600px)) {
	.links li a {
		border: 1px solid transparent;
	}
	.links li {
		margin: 0.5em 0;
	}
	.links ul {
		margin-bottom: 3em;
	}
}



@media screen {
	main {
		max-width: 75em;
		margin-left: auto;
		margin-right: auto;
	}
}
.blog main {
	line-height: 1.5;
}
@media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:600px)) {
	.blog main {
		line-height: 1.8;
	}
}

main h1 {
	margin: 0.5em 0 0;
}
main h2 {
	margin-bottom: 0.3em;
}
main h2 + p {
	margin-top: 0;
}
main header .metadata {
	color: #888;
	font-size: 90%;
	margin-top: -0.1em;
	font-weight: 200;
}
main header {
	border-bottom: 1px solid #aaa;
	padding-bottom: 0.8em;
}
main header .summary {
	margin-top: -0.4em;
	margin-bottom: 0.4em;
}
.metadata .author, .metadata time {
	font-weight: 400;
}


.codehilite, kbd, code {
	hyphens: manual;
}

.codehilite {
	background-color: #f4eae4;
	color: #000;
	padding: 0.5em 2vmin;
	margin: 0 -2vmin;
	overflow-x: auto;
	max-width: 100%;
	max-width: 100vw;

	word-break: normal;
	overflow-wrap: normal;
}
.codehilite .c1 {
	hyphens: auto;
}
.codehilite .w {
	tab-size: 3;
}
@media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:600px)) {
	.codehilite {
		padding: 0.5em 1em;
		margin: 0 -1em;
	}
}
.codehilite pre {
	margin: 0;
	font-size: 100%;
}

kbd, code {
	padding: 0.3em 0.4em 0.3em;

	white-space: pre-wrap;
	white-space: break-spaces;
}
kbd {
	border-radius: 0.5em;
	background-color: #fff;
	border-bottom: 2px solid #ddd;
}
code {
	background-color: #efe5e0;
	color: #222;
}
pre code {
	padding: 0;
	border-radius: 0;
	background-color: transparent;
	color: inherit;
}
kbd, code, pre {
	font-family: "Source Code Pro", monospace;
	font-size: 11pt;
}



#social {
	font-size: 75%;
}
#social a {
	display: inline-block;
	width: 4em;
	text-align: center;
	vertical-align: top;
	text-decoration: none;
	color: #000;
	opacity: 0.5;
}
#social a:hover {
	opacity: 1;
}
#social a:before {
	content: " ";
	width: 3em;
	height: 3em;
	display: inline-block;
	background-size: contain;
}
#social a:hover:before {
	background-color: #fff;
}
#rss-link:before {
	background-image: url(rss.svg);
}
#irc-link:before {
	background-image: url(irc.svg);
}
@media (min-width:900px) or ((min-aspect-ratio:1/1) and (min-width:600px)) {
	#social {
		font-size: 60%;
		margin-top: 5em;
	}
}
@media (min-width:900px) {
	#social {
		font-size: 80%;
	}
}
@media (min-width:1500px) {
	#social {
		font-size: 100%;
	}
}



footer {
	text-align: center;
	background-color: #dbc7d7;
	padding: 0.3em;
	margin-top: auto;
}
