:root {
	--site-max-width: 120ch;
}

html {
	font-family: sans-serif;
	background: var(--ui-background);
	color: var(--ui-text);
}

/* Single column layout, where main content stretches to fill. */
body {
	display: flex;
	flex-flow: column;
	min-height: calc(var(--vh, 1vh) * 100);
	max-width: 100vw;
	margin: auto;
}
main {flex-grow: 1;}

/*
Sections are primary block units, usually of type <section>.
Containers are an immediate child <div>, purely for constraining width.
*/
.section {
	padding: 2em 0; /* we apply a vertical padding only to sections */
	box-sizing: border-box;
}
.container {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--site-max-width);
	margin: 0 auto;
	padding: 0 1em; /* and we apply a horizontal padding only to containers */
}

/* Ensure consistent colors for text selection and element focus */
::selection {
	background: var(--primary-accent);
	color: var(--primary-accent-text);
}

*:focus {
	border-radius: 2px;
	text-decoration: none;
	outline: 1px dashed var(--ui-text);
	outline-offset: 4px;
}