* {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	font-size: 16px;
	scroll-behavior: smooth;
	// scrollbar-color: var(--primary-color) transparent;
	accent-color: var(--primary-color);
	overflow-wrap: break-word;
	overflow: hidden; // Disable scroll of html, scroll body instead
}

// Smaller font size on mobile
// @media only screen and (max-width: 480px) {
//   html {
//     font-size: 14px;
//   }
// }

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

body {
	overflow: scroll; // Scroll body instead of html
	height: 100vh;
	font-family: var(--font-system);
	line-height: 1.6;
	color: var(--fg-color);
	background: var(--bg-color);
	// Put footer at the bottom for short pages, such as the 404
	display: grid;
	min-height: 100vh;
	grid-template-rows: auto minmax(auto, 1fr) auto; // Header, stuff, footer
}

// Style text selection to use primary color
::selection {
	color: var(--fg-color);
	background-color: var(--primary-color);
}

// Make focused anchor not get covered by nav,
// and flash it with primary color when jumping to it
:target:not(#main) {
	scroll-margin-top: 15vh;
	animation: var(--transition-long) 1s highlight-in-out;
	color: var(--primary-color);
	text-shadow: var(--primary-color-alpha) 0 0 4px, var(--primary-color) 0 0 12px;

	@keyframes highlight-in-out {
		50% {
			letter-spacing: 0.125rem;
		}
	}

	@media (prefers-reduced-motion) {
		animation: none;
	}
}

// LAYOUT
.container {
	margin-left: auto;
	margin-right: auto;
	width: min(var(--content-width), 90%);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--font-serif);
	font-weight: lighter;
	letter-spacing: -0.05em;
	line-height: 1.25;
	margin: 3rem 0 1rem;

	.zola-anchor {
		display: none;
		visibility: hidden;
	}

	&:hover .zola-anchor {
		display: inline-block;
		text-decoration: none;
		visibility: visible;
	}
}

h1 {
	font-size: 3rem;
}

h2 {
	font-size: 2.4rem;
}

h3 {
	font-size: 1.5rem;
}

a {
	color: var(--primary-color);
	font-weight: bold;

	&:hover {
		text-decoration: underline wavy;
		-webkit-text-decoration: underline wavy;
	}
}

small {
	color: var(--fg-muted-5);
	font-size: 0.8rem;
}

dl {
	padding: 0;

	dt {
		padding: 0;
		margin-top: 1rem;
		font-size: 1rem;
		font-weight: bold;
	}

	dd {
		padding: 0;
		margin-bottom: 1rem;
	}
}

hr {
	border: 0;
	border-top: 1px solid var(--fg-muted-2);
	margin: 2rem auto;
	width: 100%;
}

.blog-list hr:last-of-type {
	display: none;
}

blockquote {
	border-left: 0.25rem solid var(--primary-color);
	border-radius: 0.2rem;
	color: var(--fg-muted-5);
	margin: 0;
	padding: 0 0.75rem;

	& & {
		border-radius: 0;
	}
}

abbr[title] {
	cursor: help;
	text-decoration: underline dotted;
	-webkit-text-decoration: underline dotted;
}

aside {
	background-color: var(--primary-color-alpha);
	border-radius: var(--rounded-corner);
	box-shadow: var(--edge-highlight);
	float: right;
	margin-inline-start: 1rem;
	padding: 1rem;
	width: 30%;

	@media only screen and (max-width: 720px) {
		& {
			width: 100%;
			float: none;
			margin-inline-start: 0;
		}
	}
}

// CODE
pre,
code,
kbd {
	font-family: var(--font-monospace);
}

code:not(pre code) {
	background-color: var(--fg-muted-2);
	border-radius: var(--rounded-corner-small);
	box-shadow: var(--edge-highlight);
	color: var(--red-fg);
	padding: 0.125rem 0.375rem;
}

pre {
	border-radius: var(--rounded-corner);
	box-shadow: var(--edge-highlight), var(--shadow);
	line-height: normal; // Unset line height
	margin: 1rem 0 1rem;
	max-width: 100vw;
	overflow: auto;
	padding: 1rem;

	table td {
		padding: 0;
		border: none;
	}

	// The line number cells
	table td:nth-of-type(1) {
		text-align: center;
		user-select: none;
	}

	mark {
		background-color: var(--fg-muted-1);
		border-radius: 0; // Unset code block border radius
		color: var(--fg-color); // Unset mark color from primary color to text color
		display: block;
		padding: 0; // Unset mark padding
	}

	table {
		width: 100%;
		border-collapse: collapse;
	}

	// The line numbers already provide some kind of left/right padding
	&[data-linenos] {
		padding: 1rem 0;
	}
}

kbd {
	background-color: var(--fg-muted-2);
	border-radius: var(--rounded-corner-small);
	box-shadow: inset 0 -2px 0 var(--fg-muted-2), 0 -1px 0 var(--fg-muted-3);
	cursor: pointer;
	display: inline-block;
	font-size: 0.8rem;
	line-height: normal;
	padding: 0.125rem 0.375rem;
	transition: var(--transition);

	// Small nice thingy, keys can be pressed!
	&:active {
		background-color: var(--fg-muted-3);
		box-shadow: inset 0 1px 0 var(--fg-muted-2);
		transform: translateY(2px);
	}
}

mark {
	background-color: var(--primary-color-alpha);
	border-radius: var(--rounded-corner-small);
	box-shadow: var(--edge-highlight);
	color: var(--primary-color);
	padding: 0.125rem 0.375rem;
}

figcaption {
	display: block;
	text-align: center;
	color: var(--fg-muted-4);
	font-size: 0.8rem;
}

details {
	background-color: var(--fg-muted-1);
	border-radius: var(--rounded-corner);
	padding: 1rem;

	&>summary {
		cursor: pointer;
	}
}

// TABLES
table {
	border-collapse: collapse;
	border-radius: var(--rounded-corner);
	box-shadow: var(--edge-highlight);
	overflow: hidden;
	table-layout: fixed;
	width: 100%;

	th {
		font-weight: bold;
	}

	th,
	td {
		padding: 0.5rem 1rem;
	}

	tr {
		&:nth-child(even) {
			background-color: var(--fg-muted-1);
		}

		th {
			background-color: var(--fg-muted-2);
		}
	}
}

td,
th {
	padding: 0;
}
