:root {
	--foreground: #222222;
	--background: #eeeeee;
	--secondary: gray;
	--tertiary: #dddddd;
	--accent: #3d3cba;
	--accent-hover: #15145c;
	--tertiary-light: #f2f2f2;
	--tertiary-dark-border: #d0d0d0;
}

@media (prefers-color-scheme: dark) {
	:root {
		--foreground: #eeeeee;
		--background: #161616;
		--secondary: #999999;
		--tertiary: #444444;
		--accent: #959bf0;
		--accent-hover: #b8bcf5;
		--tertiary-light: #232323;
		--tertiary-dark-border: #444444;
	}
}

html,
body {
	margin: 0;
	padding: 0;
}

body {
	font-family: "Lato", sans-serif;
	font-weight: 400;
	font-size: 14pt;
	line-height: 1.3em;
	padding: 5em 25%;
	color: var(--foreground);
	background-color: var(--background);
}

.header-links a {
	margin-right: 0.5em;
}

.header-links a:last-of-type {
	margin-right: 0;
}

.space {
	margin-bottom: 2em;
}

.doublespace {
	margin-bottom: 4em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.25;
}

img {
	max-width: 100%;
}

video {
	max-width: 100%;
}

blockquote {
	margin-left: 0;
	padding-left: 1em;
	border-left: 2px solid var(--secondary);
}

code {
	padding: 0.1em 0.2em;
	font-size: 12pt;
	background-color: var(--tertiary);
}

pre {
	overflow: auto;
	padding: 0.3em;
}

pre code {
	padding: 0;
	background-color: transparent;
}

.footnote-definition {
	margin-top: 1em;
}

.footnote-definition:first-of-type {
	margin-top: 3em;
}

.footnote-definition p {
	display: inline;
}

.footnote-definition sup {
	color: var(--secondary);
}

table {
	border-spacing: 0;
}

table th,
table td {
	border: 1px solid var(--tertiary-dark-border);
	border-left: none;
	padding: 0.2em;
}

table th:first-child,
table td:first-child {
	border-left: 1px solid var(--tertiary-dark-border);
}

table th {
	border-top: 1px solid var(--tertiary-dark-border);
}

table td {
	border-top: none;
}

table thead,
table tr:nth-child(even) {
	background-color: var(--tertiary-light);
}

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

a:hover {
	color: var(--accent-hover);
}

a.img-link {
	color: var(--accent);
}

.link-icon {
	color: var(--accent);
}

.secondary {
	margin-top: 0;
	color: var(--secondary);
}

.caption {
	font-size: 12pt;
	color: var(--secondary);
}

li p.secondary {
	display: inline-block;
	padding: 0 0.3em;
}

.about-page {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 1.5em;
}

.about-page .experience-title,
.about-page > p {
	grid-column: 2;
}

.about-page .experience-separator {
	grid-column: 1 / -1;
	width: 100%;
}

.experience {
	display: grid;
	grid-template-columns: subgrid;
	grid-column: 1 / -1;
	margin-bottom: 1em;
}

.experience .date-range {
	font-size: 12pt;
	white-space: nowrap;
	padding-top: 0.3em;
	text-align: right;
	color: var(--secondary);
}

.experience .experience-content {
	min-width: 0;
}

.experience h2 {
	margin-top: 0;
	margin-bottom: 0.3em;
	margin-right: 1em;
}

.experience h4 {
	margin-top: 0;
	margin-bottom: 0.3em;
	color: var(--secondary);
}

.experience p {
	margin-top: 0;
	margin-bottom: 0.3em;
}

.experience span {
	font-size: 12pt;
	color: var(--secondary);
}

.experience .tech-chips {
	margin-top: 1em;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
}

.experience .chip {
	padding: 0 0.6em;
	font-size: 10pt;
	font-weight: 500;
	border-radius: 16px;
	display: inline-block;
	white-space: nowrap;
	background-color: var(--tertiary);
	color: var(--foreground);
}

.experience a {
	margin-top: 0;
	margin-right: 0.5em;
}

.experience-title {
	margin-top: 1em;
	font-size: 24pt;
	color: var(--accent);
}

.experience-separator {
	margin-top: 2em;
	border: 1px solid var(--tertiary);
}

.typewriter {
	display: inline-block;
}

.typewriter h1 {
	font-family: "Roboto Mono", monospace;
	font-weight: 400;
	font-size: 24pt;
	width: 100%;
	overflow: hidden;
	white-space: nowrap;
	border-right: 0.1em solid;
	animation:
		typing 2s steps(11),
		cursor 0.5s step-end infinite alternate;
}

@keyframes typing {
	from {
		width: 0;
	}
}

@keyframes cursor {
	from,
	to {
		border-color: transparent;
	}
	50% {
		border-color: var(--accent);
	}
}

@media all and (max-width: 1200px) {
	body {
		padding: 3em 15%;
	}
}

@media all and (max-width: 800px) {
	body {
		padding: 1em 1em;
	}
}
