:root {
	--bg0:        #181818;
	--bg1:        #252525;
	--bg2:        #3b3b3b;
	--dim0:       #777777;
	--fg0:        #b9b9b9;
	--fg1:        #dedede;
	--red:        #ed4a46;
	--green:      #70b433;
	--yellow:     #dbb32d;
	--blue:       #368aeb;
	--magenta:    #eb6eb7;
	--cyan:       #3fc5b7;
	--orange:     #e67f43;
	--violet:     #a580e2;
	--br-red:     #ff5e56;
	--br-green:   #83c746;
	--br-yellow:  #efc541;
	--br-blue:    #4f9cfe;
	--br-magenta: #ff81ca;
	--br-cyan:    #56d8c9;
	--br-orange:  #fa9153;
	--br-violet:  #b891f5;
	--header-font-size: 150%;
	--left-column-width: 18ex;
	--border-width: 1px;
	--padding: 2ex;
	--margin: 1ex;
	--content-padding-left: 8ex;
	--content-padding-right: 4ex;
	--ul-padding-left: 3ex;
	--body-max-width: 140ex;
	--body-font-size: 17px;
	--first-letter-font-size: 115%;
	--dt-font-size: 120%;
	--content-background-color: var(--bg0);
	--filling-background-color: var(--bg1);
	--text-color: var(--fg0);
	--column-header-text-color: var(--fg1);
	--column-header-background-color: var(--bg2);
	--font-family: 'Libertine';
	--link-text-color: var(--br-yellow);
	--highlight-text-color: var(--br-cyan);
	--pre-border-color: var(--blue);
	--h2-border-color: var(--orange);
}

@font-face {
	font-family: 'Libertine';
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url('/LinLibertine.woff2') format('woff2');
}

@font-face {
	font-family: 'Libertine';
	font-style: normal;
	font-weight: bold;
	font-display: swap;
	src: url('/LinLibertineB.woff2') format('woff2');
}

@font-face {
	font-family: 'Libertine';
	font-style: italic;
	font-weight: normal;
	font-display: swap;
	src: url('/LinLibertineI.woff2') format('woff2');
}

@font-face {
	font-family: 'Libertine';
	font-style: italic;
	font-weight: bold;
	font-display: swap;
	src: url('/LinLibertineBI.woff2') format('woff2');
}

body {
	font: var(--body-font-size) var(--font-family), serif;
	color: var(--text-color);
	max-width: var(--body-max-width);
	background-color: var(--filling-background-color);
	margin: auto;
	overflow-wrap: anywhere;
}

section {
	background-color: var(--content-background-color);
	margin: var(--margin);
	padding: var(--padding);
}

em,
strong {
	color: var(--highlight-text-color);
}

article p::first-letter {
	font-size: var(--first-letter-font-size);
	color: var(--highlight-text-color);
}

article p {
	text-indent: 4ex;
	text-align: justify;
	margin-top: 1ex;
	margin-bottom: 1ex;
}

article {
	padding-top: var(--padding);
	padding-bottom: var(--padding);
}

menu,
ul {
	padding-left: var(--ul-padding-left);
}

dt {
	font-size: var(--dt-font-size);
}

header,
footer {
	text-align: center;
}

h1,
h2 {
	border-top: 1px solid var(--h2-border-color);
}

pre {
	padding: 1ex;
	border: var(--border-width) solid var(--pre-border-color);
	white-space: pre-wrap;
}

:link,
:visited {
	color: var(--link-text-color);
}

.mainheader header {
	font-size: 220%;
}

.logo {
	height: 4ex;
	vertical-align: middle;
}

.navigation {
	text-align: center;
}

.main {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: start;
}

.column header {
	font-size: var(--header-font-size);
	color: var(--column-header-text-color);
	background-color: var(--column-header-background-color);
}

.left {
	flex-shrink: 0;
	width: var(--left-column-width);
}

.content {
	flex-grow: 1;
	flex-basis: 50ex;
	padding-left: var(--content-padding-left);
	padding-right: var(--content-padding-right);
}

