* {
	box-sizing: border-box;
}

body,
nav,
main,
footer,
.skill-card-container,
.card,
a {
	transition: background-color 0.2s ease, color 0.1s ease;
}

:root {
	--main-bg-color: #282b2e;
	--skill-card-bg-color: #282b2e;
	--text-color: white;
	--alt-text-color: white;
	--button-color: white;
	--button-hover-color: gray;
}

@media (prefers-color-scheme: light) {
	:root {
		--main-bg-color: #e9ecef;
		--skill-card-bg-color: #e9ecef;
		--text-color: black;
		--alt-text-color: black;
		--button-color: black;
		--button-hover-color: gray;
	}
}

[data-theme="dark"] {
	--main-bg-color: #2f3338;
	--skill-card-bg-color: #282b2e;
	--text-color: white;
	--alt-text-color: white;
	--button-color: white;
	--button-hover-color: gray;
}

[data-theme="light"] {
	--main-bg-color: #e9ecef;
	--skill-card-bg-color: #e9ecef;
	--text-color: black;
	--alt-text-color: black;
	--button-color: black;
	--button-hover-color: gray;
}

html {
	overflow-x: hidden;
}

body {
	background-color: var(--main-bg-color);
	color: var(--text-color);
	font-family: sans-serif;
	margin: 0 auto;
	max-width: 1100px;
	min-width: 320px;
	overflow-x: hidden;
	padding: 0;
}

section {
	margin-bottom: 50px;
	padding-bottom: 30px;
	border-bottom: 2px solid #6a6a6a;
}

li {
	margin-bottom: 10px;
	line-height: 1.4;
}

a {
	color: var(--text-color);
}

svg {
	fill: var(--button-color);
	height: 40px;
	width: 40px;
}

nav {
	background-color: var(--main-bg-color);
	max-width: 1100px;
	min-width: 320px;
	padding: 10px;
	position: fixed;
	width: 100%;
	z-index: 100;
	border-bottom: 2px solid #6a6a6a;
	& > div {
		display: flex;
		align-items: center;
		justify-content: space-between;
		& > .nav-links {
			padding-top: 10px;
			& a {
				align-items: center;
				display: inline-flex;
				justify-content: center;
				line-height: 0;
				margin: 0;
				padding: 0;
				text-decoration: none;
			}
		}
	}
}

.navBtn {
	background: none;
	margin: 5px;
	width: 5vh;
}

main {
	margin-top: 60px;
	padding: 0 10px;
	& .card {
		background-color: var(--main-bg-color);
		border: 1px solid black;
		border-radius: 5px;
		box-shadow: 2px 2px 4px black;
		margin: 0 0 20px 0;
		padding: 5px 10px;
		position: relative;
		margin-bottom: 10px;
		&:hover {
			background-color: color-mix(in srgb, var(--main-bg-color) 90%, var(--text-color) 10%);
		}
	}
	& #info-section {
		margin-top: 70px;
		margin-bottom: 30px;
		border-bottom: 2px solid #6a6a6a;
		& > #headshot-info {
			align-items: center;
			display: flex;
			padding: 30px 0 0 0;
			& #headshot > img {
				border-radius: 50%;
				height: 20vh;
				margin: 15px 20px 0 0;
				object-fit: cover;
				width: 20vh;
			}
			& #info {
				margin-bottom: 5px;
			}
		}
	}
	& #skills-section {
		& #skills-header {
			margin-bottom: 25px;
		}
		& div > #skills {
			align-items: center;
			display: flex;
			flex-wrap: wrap;
			& .skill-card-container {
				color: var(--text-color);
				background-color: var(--skill-card-bg-color);
				border: 1px solid black;
				border-radius: 5px;
				box-shadow: 2px 2px 4px black;
				font-size: 1.2em;
				margin: 0 15px 10px 0;
				padding: 0.6em;
				&:hover {
					background-color: color-mix(in srgb, var(--main-bg-color) 90%, var(--text-color) 10%);
				}
				& > svg {
					cursor: default;
					height: 1em;
					vertical-align: -10%;
					width: 1em;
				}
			}
		}
	}
	& #projects-section {
		margin-bottom: 20px;
	}
}

.link-spanner {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 1;
}

footer {
	margin-bottom: 10px;
	padding: 0 10px;
	text-align: center;
	& a {
		align-items: center;
		display: inline-flex;
		justify-content: center;
		line-height: 0;
		margin: 0;
		padding: 0;
		text-decoration: none;
		& .footerBtn {
			width: 5vh;
			background: none;
			margin: 5px;
		}
	}
}

@media (max-width: 480px) {
	.project h3 {
		font-size: clamp(0.9rem, 3vw, 1.2rem);
	}

	.project h3 a {
		font-size: clamp(0.8rem, 2.7vw, 1rem);
	}
}
