:root {
	--paper: #D0C0A0;
	--soft: #CCB49C;
	--sand: #B0A080;
	--ink: #302020;
	--bark: #543C24;
	--bistre: #483018;
	--amber: #605030;
	--moss: #3C4830;
	--olive: #807030;
	--clay: #A86C60;
	--mainfont: "Rubik";
	--headfont: "Spectral";
	--titlefont: "Cinzel";
}

html * {box-sizing: border-box;}

body {
	font-family: var(--mainfont), system-ui, sans-serif;
	font-size: 100%;
	line-height: 150%;
	background-color: var(--paper);
	color: var(--ink);
	margin: 0;
}

img {
	display: block;
	width: 100%;
	height: auto;
}

header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1em;
	text-align: center;
	min-height: 30vh;
	padding: 2em 1em;
	background-color: var(--ink);
	background-size: cover;
	background-position: center;
	color: var(--paper);
	text-shadow: 0 2px 2px var(--ink);
	border-bottom: 6px solid var(--moss);
}

.home header {
	min-height: 40vh;
	background-image: url("images/TitleCover.jpg");
}
.maps header {background-image: url("images/EvergreenDroneimagery_RS.jpg");}
.habitat header {background-image: url("images/BambooCanopy.jpg");}
.resume header {background-image: url("images/CooperinField.jpg");}

h1 {
	font-family: var(--titlefont), serif;
	font-size: clamp(1.8rem, 7vw, 3rem);
	letter-spacing: .08em;
	line-height: 1.1em;
	margin: 0;
}

header p {
	font-family: var(--headfont), serif;
	font-style: italic;
	margin: 0;
}

ul.topnav {
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: .3em;
	width: 100%;
	max-width: 45em;
	margin: 0;
	padding: 0;
	text-shadow: none;
}

ul.topnav li {
	flex: 1;
	border-radius: 5px;
	overflow: hidden;
	margin: 0;
}

ul.topnav a {
	display: block;
	padding: .4em .5em;
	background-color: var(--amber);
	color: var(--soft);
	font-size: .85rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
}

ul.topnav a:hover {background-color: var(--clay);}
ul.topnav a.current {
	background-color: var(--bistre);
	pointer-events: none;
}

main, footer {
	max-width: 60em;
	margin: 0 auto;
	padding: 2em 1.5em;
}

h2 {
	font-family: var(--headfont), serif;
	font-size: clamp(1.3rem, 4vw, 1.8rem);
	color: var(--bistre);
	line-height: 1.2em;
	margin: 0 0 .3em;
}

h3 {
	font-family: var(--headfont), serif;
	font-size: 1.1rem;
	color: var(--amber);
	margin: 0 0 .2em;
}

p {margin: 0 0 1em;}

.lead {
	font-family: var(--headfont), serif;
	font-size: 1.15rem;
	color: var(--bark);
}

.meta {
	font-size: .8rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--olive);
	margin: 0 0 .3em;
}

section {margin-bottom: 2.5em;}

article {
	border-left: 3px solid var(--sand);
	padding-left: 1em;
	margin-bottom: 1.5em;
}

a {color: var(--bark);}
a:hover {color: var(--clay);}

ul {padding-left: 1.2em;}
li {margin-bottom: .3em;}

ul.cards {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2em;
	padding: 0;
	margin: 0;
}

ul.cards li {
	flex: 1 1 11em;
	max-width: 15em;
	text-align: center;
	margin: 0;
}

ul.cards figure {margin: 0;}

ul.cards img {
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 50%;
	border: 5px solid var(--sand);
}

ul.cards a {
	display: block;
	text-decoration: none;
	color: var(--bark);
}

ul.cards a:hover img {border-color: var(--clay);}

ul.cards figcaption {
	font-family: var(--headfont), serif;
	font-size: 1.2rem;
	margin-top: .5em;
}

ul.gallery {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	padding: 0;
	margin: 0;
}

ul.gallery li {
	flex: 1 1 13em;
	margin: 0;
}

ul.gallery figure {
	margin: 0;
	line-height: 1.3em;
}

ul.gallery figcaption {
	background-color: var(--sand);
	padding: .3em .5em .5em;
	font-size: .85rem;
}

table {
	border-collapse: collapse;
	width: 100%;
}

th, td {
	text-align: left;
	vertical-align: top;
	padding: .5em;
	border-bottom: 1px solid var(--sand);
}

th {
	font-family: var(--headfont), serif;
	color: var(--bistre);
}

footer {
	font-size: .85rem;
	color: var(--amber);
	border-top: 1px solid var(--sand);
}

@media (min-width: 600px) {
	ul.topnav {flex-direction: row;}
}

@media (prefers-color-scheme: dark) {
	body {
		background-color: var(--ink);
		color: var(--soft);
	}
	h2, th {color: var(--sand);}
	h3, footer {color: var(--olive);}
	.lead, a, ul.cards a {color: var(--soft);}
	ul.gallery figcaption {
		background-color: var(--bistre);
		color: var(--soft);
	}
}