:root {
  color-scheme: light dark;
  --primary-background: #718CB7;
  --primary-text: #FFFFFF;
  --secondary-background: #FFFFFF;
  --secondary-text: #000000;
  --secondary-accent: #3B5789;
  --secondary-link: #114499;
  --secondary-quiet: #777777;
  --heading-font: Righteous, Helvetica, Arial, sans;
  --body-font: Jost, Helvetica, Arial, sans;
}

@media (prefers-color-scheme: light) {
  :root {
  --primary-background: #718CB7;
  --primary-text: #FFFFFF;
  --secondary-background: #FFFFFF;
  --secondary-text: #000000;
  --secondary-accent: #3B5789;
  --secondary-link: #114499;
  --secondary-quiet: #777777;
  }
}

@media (prefers-color-scheme: dark) {
  :root {
  --primary-background: #000000;
  --primary-text: #718CB7;
  --secondary-background: #192537;
  --secondary-text: #CCCCCC;
  --secondary-accent: #57ACA4;
  --secondary-link: #718CB7;
  --secondary-quiet: #CCCCCC;
  }
}

body {
	background: var(--primary-background);
	color: var(--secondary-text);
	margin: 0;
	padding: 0;
	font-family: var(--body-font);
}
header, footer, section, nav {
	margin: 0;
	padding: 0.25em;
}
section p {
	margin: 0 2em;
}
img {
	border-style: none;
}
#outer {
	height: 100vh;
	display: grid;
	grid-template-columns: 1fr minmax(40%, 800px) 1fr;
	gap: 1em;
}
header {
	grid-column: 1;
	text-align: right;
}
	header .inner {
		background: var(--secondary-background);
		padding: 1em;
		position: sticky;
		display: inline-block;
		text-align: center;
		top: 1em;
	}
#content {
	grid-column: 2;
	background: var(--secondary-background);
	display: inline-block;
}
nav {
	text-align: left;
}

h1 {
	margin: 0;
	padding: 0;
	font-family: var(--heading-font);
}
h2 {
	background: var(--primary-background);
	color: var(--primary-text);
	display: block;
	padding: 0.25em 0.4em;
	text-transform: uppercase;
}
	h2:first-letter {
		font-size: 1.1em;
	}
h3 {
	color: var(--secondary-accent);
	margin: 0;
	padding: 0;
}
h4 {
	margin: 0;
	padding: 0;
}
h5 {
	font-weight: normal;
	margin: 0;
	padding: 0;
}
ul {
	margin: 0;
}
a:link, a:visited {
	color: var(--secondary-link);
	text-decoration: none;
}
a.contact {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

li, article {
	position: relative;
}
.address {
	display: none;
	position: absolute;
	text-align: left;
	top: 4em;
}
.datetime, .technologies {
	color: var(--secondary-quiet);
	padding: 0.25em 0;
	position: absolute;
	right: 70%;
}
.datetime {
	text-transform: uppercase;
}

article {
	margin-bottom: 0.5em;
	text-align: right;
	min-height: 2em;
	width: auto;
}
	article h3 {
		display: inline-block;
		float: left;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		width: 30%;
	}
	article h4, article h5, article > ul {
		display: inline-block;
		text-align: left;
		width: 66%;
	}
	article h5 {
		margin-top: 0.25em;
	}
	article ul {
		margin-left: 0;
		padding-left: 0;
	}
	article > ul {
		padding-right: 3%;
		width: 63%;
	}
	article li {
		list-style: square;
		margin-left: 1.5em;
		padding-left: 0;
	}
		article:hover .address {
			display: block;
		}
	article .icon {
		display: none;
		float: left;
	}
		article:hover .icon {
			display: block;
		}
#employment article {
	min-height: 5em;
}
span.caveat {
	color: var(--secondary-accent);
	opacity: 0.75;
}

h1 {
	font-size: xx-large;
}
h2 {
	font-size: large;
}
h3 {
	font-size: medium;
}
h4, h5 {
	font-size: small;
}
nav, ul, a.contact {
	font-size: small;
}
.address, .datetime, .technologies {
	font-size: x-small;
}

@media (max-width: 1350px) {
	body {
		background: var(--secondary-background);
	}
	#outer {
		display: block;
	}
		header .inner {
			width: 100%;
			padding: 0;
			margin: 0;
			text-align: center;
			top: 1em;
		}
		header .inner nav {
			display: none;
		}
	body {
		font-size: 1.5vw;
	}
	h1 {
		font-size: 2.25vw;
	}
	h2, h3, h4, h5 {
		font-size: 1.5vw;
	}
	ul, a.contact {
		font-size: 1.2vw;
	}
	.datetime, .technologies, .address {
		font-size: 1vw;
	}
}

@media (max-width: 1024px) {
	body {
		font-size: 2vw;
	}
	h1 {
		font-size: 2.75vw;
	}
	h2, h3, h4, h5 {
		font-size: 2vw;
	}
	ul, a.contact {
		font-size: 1.7vw;
	}
	.datetime, .technologies, .address {
		font-size: 1vw;
	}
}

@media (max-width: 600px) {
	article {
		text-align: left;
		padding: 0.25em 0.5em;
		margin-bottom: 0.25em;
	}
		article h3 {
			display: block;
			width: auto;
			float: none;
		}
		article h4, article h5, article ul {
			display: block;
			text-align: left;
			width: auto;
		}
		article h5 {
			margin-top: 0.75em;
		}
			article:hover .address, article:hover .icon {
				display: none;
			}
	.datetime, .technologies {
		right: 0;
		position: inherit;
		display: inline-block;
		text-align: left;
		padding: 0;
	}
	#employment article {
		min-height: 4em;
	}
	body {
		font-size: 2.75vw;
	}
	h1 {
		font-size: 3.75vw;
	}
	h2 {
		font-size: 3.5vw;
	}
	h3, h4, h5 {
		font-size: 3.2vw;
	}
	ul, a.contact {
		font-size: 2.75vw;
	}
	.datetime, .technologies, .address {
		font-size: 2vw;
	}
}