@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-BoldItalic.woff2");
	font-weight: bold;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-Bold.woff2");
	font-weight: bold;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-ExtraBoldItalic.woff2");
	font-weight: 800;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-ExtraBold.woff2");
	font-weight: 800;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-ExtraLightItalic.woff2");
	font-weight: 200;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-ExtraLight.woff2");
	font-weight: 200;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-Italic.woff2");
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-LightItalic.woff2");
	font-weight: 300;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-Light.woff2");
	font-weight: 300;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-MediumItalic.woff2");
	font-weight: 500;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-Medium.woff2");
	font-weight: 500;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-Regular.woff2");
	font-weight: normal;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-SemiBoldItalic.woff2");
	font-weight: 600;
	font-style: italic;
}

@font-face {
	font-family: PlusJakartaSans;
	src: local("PlusJakartaSans"), url("../fonts/plusjakartasans/PlusJakartaSans-SemiBold.woff2");
	font-weight: 600;
}

@font-face {
	font-family: FiraMono;
	src: local("FiraMono"), url("../fonts/fira/FiraMono-Bold.woff2");
	font-weight: bold;
}

@font-face {
	font-family: FiraMono;
	src: local("FiraMono"), url("../fonts/fira/FiraMono-Medium.woff2");
	font-weight: 500;
}

@font-face {
	font-family: FiraMono;
	src: local("FiraMono"), url("../fonts/fira/FiraMono-Regular.woff2");
	font-weight: normal;
}

:root {
	--color-1: #2d2d2d;
	--color-2: #423f3f;
	--color-3: #522121;
	--color-4: #c1a4a4;
	--color-5: #c6c0c0;
	--color-6: #d2d2d2;
}

@media (prefers-color-scheme: light) {
	:root {
		--color-darkest: var(--color-1);
		--color-dark: var(--color-3);
		--color-light: var(--color-4);
		--color-lighter: var(--color-5);
		--color-lightest: var(--color-6);
	}

	html {
		color-scheme: light;
	}
}

@media (prefers-color-scheme: dark) {
	:root {
		--color-darkest: var(--color-6);
		--color-dark: var(--color-4);
		--color-light: var(--color-3);
		--color-lighter: var(--color-2);
		--color-lightest: var(--color-1);
	}

	html {
		color-scheme: dark;
	}
}

:root {
	--size-base: 12pt;
	--size-sm: 0.25em;
	--size-rsm: 0.25rem;
	--size-md: calc(var(--size-sm) * 2);
	--size-rmd: calc(var(--size-rsm) * 2);
	--size-xs: calc(var(--size-sm) / 2);
	--size-xxs: calc(var(--size-xs) / 2);
	--size-lg: calc(var(--size-sm) * 3);
	--size-xl: calc(var(--size-md) * 2);
	--size-rxl: calc(var(--size-rmd) * 2);
	--size-xxl: calc(var(--size-sm) * 5);
	--font-serif: Georgia, Times New Roman, serif;
	--font-sans: PlusJakartaSans, Verdana, Helvetica, Arial, sans-serif;
	--font-mono: FiraMono, 'Courier New', Courier, monospace;
	--gradient: linear-gradient(to right, var(--color-header), var(--color-background), var(--color-background));

	--color-background: var(--color-lightest);
	--color-header: var(--color-dark);
	--color-text: var(--color-darkest);

	--size-nav-link-width: calc(var(--size-rxl) * 4);

	font-size: var(--size-base);
	font-family: var(--font-sans);
	background-color: var(--color-background);
	color: var(--color-text);

	--size-header: 2em;
}

* {
	box-sizing: border-box;
}

html {
	min-height: calc(100dvh - calc(var(--size-lg) * 2));
}

body {
	max-width: 512px;
	padding: 0 var(--size-sm);
	display: block;
	margin: 0 auto;
}

a[href] {
	color: var(--color-dark);
}

a[href]:active {
	color: var(--color-light);
}

a[href]:hover {
	color: var(--color-darkest);
}

mark {
	background-color: var(--color-light);
}

h1,h2,h3,h4,h5,h6 {
	color: var(--color-header);
	font-family: var(--font-sans);
	text-shadow: 0.75rem 0.25rem 0.5rem #000000aa;
}

h1,h2,h3,h4,h5,h6,p {
	text-wrap: pretty;
}

blockquote {
	margin-left: 0;
	padding-left: calc(2.5em - var(--size-xs));
	border-left: var(--size-xs) solid var(--color-header);
}

@keyframes targeted {
	0%,
	55% {
		text-decoration-color: var(--color-light);
	}

	100% {
		text-decoration-color: var(--color-lightest);
	}
}

a:target {
	text-decoration: underline;
	text-decoration-color: var(--color-light);
	animation-name: targeted;
	animation-direction: alternate;
	animation-duration: 1.0s;
	animation-iteration-count: infinite;
}

hr {
	height: var(--size-xxs);
	color: none;
	border: none;
	background: var(--gradient);
}

h1.sitewide-header {
	display: inline-block;
	width: calc(100% - var(--size-nav-link-width));
	font-size: var(--size-header); /* default, just want verbosity */
}

nav.navbar {
	display: inline-block;
	text-align: end;
	width: var(--size-nav-link-width);
}

a.navlink {
	text-decoration: none;
	color: var(--color-dark);
	font-size: var(--size-header);
	text-shadow: 0.75rem 0.25rem 0.5rem #000000aa;
}

a.navarrow {
	line-height: 0.5;
}

hr.sitewide-rule {
	height: var(--size-xs);
}

p {
	line-height: 1.5;
}

sup,sub {
	line-height: 0;
}

pre,code {
	font-family: var(--font-mono);
}

pre {
	background-color: var(--color-lighter);
	padding: var(--size-sm);
}

pre,table {
	overflow-x: auto;
}

table,table tr,table th,table td {
	border-collapse: collapse;
	border: var(--size-xxs) solid var(--color-lighter);
}

table th,table td {
	padding: var(--size-xs) var(--size-lg) var(--size-xs) var(--size-xs);
	text-align: start;
}

table th {
	color: var(--color-dark);
}

table td {
	color: var(--color-darkest);
}

img.thumbnail {
	width: calc(8em - calc(var(--size-xs) * 2));
	height: auto;
	border: var(--size-xs) solid var(--color-dark);
}

img.thumbnail.thumbnail-link:hover {
	border: var(--size-xs) solid var(--color-darkest);
}

table.layout,
table.layout>thead>tr,
table.layout>tbody>tr,
table.layout>thead>tr>th,
table.layout>tbody>tr>td {
	border: none;
}

table.lcr {
	width: 100%;
	table-layout: fixed;
}

table.lcr,
table.lcr tr,
table.lcr th,
table.lcr td {
	border: none;
}

table.lcr td {
	padding-left: 0;
	padding-right: 0;
}

table.lcr td:nth-child(1) {
	text-align: left;
}

table.lcr td:nth-child(2) {
	text-align: center;
}

table.lcr td:nth-child(3) {
	text-align: right;
}

p.photo-title {
	margin-bottom: 0;
	margin-top: -1.75em;
	margin-left: 0.25em;
}

img.photo {
	width: 100%;
	height: auto;
}

label {
	font-size: var(--size-xxl);
	margin-bottom: var(--size-xs);
}

select,
input[type=text],
input[type=password],
input[type=file],
button,
input[type=submit],
textarea {
	border: var(--size-xs) solid var(--color-header);
	width: calc(100% - calc(2 * var(--size-xs)));
	background-color: var(--color-background);
	color: var(--color-text);
	font-size: var(--size-xxl);
	padding: var(--size-xs);
	border-radius: var(--size-xs);
}

button,
input[type=submit],
input[type=checkbox],
input[type=file],
input[type=file]::file-selector-button {
	cursor: pointer;
}

input[type=file]::file-selector-button {
	border: none;
	border-right: var(--size-xs) solid var(--color-header);
	background-color: var(--color-background);
	color: var(--color-text);
	font-size: var(--size-xl);
}
