@import url("https://cdnjs.cloudflare.com/ajax/libs/Primer/19.1.1/tooltips.min.css");

:root {
	--primary-bg-color: #1d2021;
	--secondary-bg-color: #141619;
	--primary-accent-color: #12a6b7;
	--text-color: #f4f0ec;
	
	--sidebar-width: 450px;
	--sidebar-item-width: calc(var(--sidebar-width) - 80px);
	--toc-width: calc(var(--sidebar-width) - 94px);
	--nav-icons-width: 175px;
}

body,html {
	scroll-behavior: smooth;
	display: grid;
	background-color: var(--primary-bg-color);
	padding: 0;
	margin: 0;
}

h1,h2,h3,h4,h5,h6 {
	margin: 0;
	scroll-margin: 85px;
}

a {
	color: #dccf8f;
}

img {
	position: relative;
	width: 100%;
	height: auto;
	z-index: 1;
} 

/* GROUP 0 */
.nav-link {
	display: inline-block;
	color: var(--text-color);	
	text-decoration: none;
	font-size: 20pt;
	transition: all 0.5s ease-out; 
}

.nav-logo img {
	width: var(--sidebar-item-width);
	height: auto;
}

.nav-logo {
	padding: 10px 0px 0px 50px;	
}

.nav-link:hover {
	color: var(--primary-accent-color);
	transform: translate(0, 5px);
	cursor: pointer;
}

.nav-links {
	display: grid;
	grid-template-columns: repeat(5, min-content);
	column-gap: 20px;
	padding: 10px;
}

#nav-dropdown {
	display: none;
	border: 2px solid var(--text-color);
	position: relative;
	cursor: pointer;
	width: min-content;
	margin-left: 20px;
	padding: 2px 5px 2px;
}

#nav-dropdown-menu {
	display: none;
	position: fixed;
	width: 100vw;
	padding: 20px;
	background: var(--secondary-bg-color);	
	transition: all 0.5s ease-out;
	z-index: 5;
}


#linkedin-icon {
	height: auto; 
	width: 20px;
	margin-top: 2px;
}

#codeberg-icon {
	height: auto;
	width: 20px;
	margin-top: 0px;
}

#github-icon {
	height: auto;
	width: 20px;
}

#bluesky-icon {
	height: auto;
	width: 20px;
}

#mastodon-icon {
	height: auto;
	width: 17px;
	margin-top: 1px;
	margin-left: 4px;
}

.nav-icons {
	display: grid;
	justify-content: right;
	padding-right: 50px;
}

.nav {
	grid-area: nav;
	display: grid;
	background-color: var(--primary-bg-color);
	width: 1200px;
	position: fixed;
	height: 70px;
	z-index: 99;
	border-bottom: 6px ridge var(--primary-accent-color);
	align-items: center;
	grid-template-columns: var(--sidebar-width) 1fr var(--nav-icons-width);
}

.toc-entry {
	padding-bottom: 10px;
}

.toc-sub1 {
	margin-left: 10px;
	padding-bottom: 10px;
}

.toc-sub2 {
	margin-left: 20px;
	padding-bottom: 10px;
}

.toc-sub3 {
	margin-left: 30px;
	padding-bottom: 10px;
}

.toc-sub4 {
	margin-left: 40px;
	padding-bottom: 10px;
}

.sidebar-item {
	width: var(--sidebar-item-width); 
}

.toc {
	position: sticky; top: 96px;
	width: var(--toc-width); 
	background-color: var(--secondary-bg-color);
	border-radius: 10px;
	padding-left: 10px;
}

.sidebar {
	grid-area: sidebar;
	display: grid;
	grid-template-rows: min-content min-content;
	row-gap: 20px;
	padding: 20px 0px 0px 50px;
	overflow: scroll;
}

/* GROUP 1 */
.bottom-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 20px;
	justify-items: center;
}

.post-header {
	font-size: 20pt;
	grid-column: span 2;
}

.latest {
	padding-left: 10px;
}

/* Possibly deprecated */
.main-span-2 {
	grid-column: span 2;
}

.archive-nav {
	display: grid; 
	grid-template-columns: repeat(5, min-content);
	column-gap: 40px;
	justify-content: center;
}

.main {
	grid-area: main;
	display: grid;
	padding: 20px 50px 20px 0px;
	gap: 20px;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: repeat(4, min-content);
}
/* ENDGROUP 1 */

.footer {
	grid-area: footer;
	display: grid;
	width: 1200px;
	background-color: var(--secondary-bg-color);
	justify-items: center;
	align-items: center;
}

.container {
	display: grid;
	width: 1200px;
	justify-self: center;
	background-color: var(--primary-bg-color);
	font-family: Montserrat, sans-serif;
	color: var(--text-color);
	min-height: 100vh;
	grid-template-columns: var(--sidebar-width) 1fr;
	grid-template-rows: 70px 1fr 100px;
	grid-template-areas:
		"nav     nav"
		"sidebar main"
		"footer  footer";
}
/* ENDGROUP 0 */

/*  GROUP 2 */
.post-link {
	color: var(--text-color);
	text-decoration: none;
	padding: 10px;
	border-radius: 10px;
	transition: all 0.5s ease-out;
}

.post-link > hgroup, 
.post-link > p, 
.post-link > .post-tags {
	transition: all 0.5s ease-out;
}

.post-link:hover {
	background-color: var(--primary-accent-color);
	opacity: 65%;
	cursor: pointer;
}

.post-link:hover > hgroup {
	transform: translate(0px, 10px); 
	cursor: pointer;
}

.post-link:hover > .excerpt {
	color: black; 
	opacity: 100%;
	cursor: pointer;
}

.post-link:hover > .post-tags {
	opacity: 65%;
	cursor: pointer;
}

/* ENDGROUP 2 */

/* GROUP 3 */
.tag {
	background-color: var(--primary-bg-color);
	color: var(--text-color);
	text-decoration: none;
	border: 2px solid var(--text-color);
	border-radius: 10px;
	padding: 0px 10px;
	line-height: 1.8;
}

.tag:hover {
	background: var(--primary-accent-color);
	color: var(--text-color);
	border: 2px solid var(--primary-accent-color);
	transition: all 0.5s ease-out;
	cursor: pointer;
}
/* ENDGROUP 3 */

@media only screen and (max-width: 1199px) {
	:root {
		--sidebar-width: 350px;
	}

	.container {
		width: 100%;
	}	
	
	.nav {
		width: 100vw;
	}

	.nav-links {
		column-gap: 10px;
	}

	.nav-link {
		font-size: 16pt;
	}

	.footer {
		width: 100%;
	}
}

@media only screen and (max-width: 991px) {
	
	.main {
		grid-template-columns: 1fr;
		grid-template-rows: repeat(6, min-content);
	}

	.post-header {
		grid-column: span 1;
	}
	
	.nav-links {
		display: none;
	}
	
	#nav-dropdown {
		display: block;
	}
	
	#nav-dropdown-menu {
		display: grid;
	}

	.nav-dropdown-menu {
		visibility: hidden;
		transform: translate(0px, -120px);
	}
	
	.nav-dropdown-menu-open {
		visibility: visible;
		transform: translate(0px, 65px);	
	}
}

@media only screen and (max-width: 767px) {
	:root {
		--sidebar-width: 300px;
	}

	.sidebar {
		position: fixed;
		margin-top: 76px;
		height: calc(100vh - 76px);
		transform: translate(-400px, 0px);
		background: var(--secondary-bg-color);
		padding: 20px;
		transition: all 0.5s ease-out;
		z-index: 3;
	}
	
	.sidebar-open {
		transform: translate(0px, 0px);
	}

	.main {
		padding: 20px 20px 20px 0px;
	}

	#sidebar-button {
		display: grid;
		justify-content: center;
		align-items: center;
		visibility: visible;
		position: fixed;
		margin-top: 76px;
		height: calc(100vh - 76px);
		width: 20px;
		z-index: 3;
		transition: all 0.5s ease-out;
	}

	.sidebar-button {
		background: var(--secondary-bg-color);
	}
	
	.sidebar-button-open {
		transform: translate(256px, 0px);
		background: var(--primary-accent-color);
	}

	#sidebar-button:hover {
		background: var(--primary-accent-color);
		cursor: pointer;
	}

	.container {
		grid-template-columns: 40px 1fr;
	}
	
	#tag-cluster-2 {
		display: none;
	}
}

@media only screen and (max-width: 576px) {
	.nav {
		grid-template-columns: 1fr; 
		grid-template-rows: repeat(3, min-content);	
		height: 120px;
	}
	
	.nav-icons {
		justify-content: left;
		padding: 0px 20px 0px;
	}
	
	.container {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
		grid-template-areas:
			"nav"
			"main"
			"sidebar"
			"footer";
	}

	.nav-logo {
		display: grid;
		padding: 20px 20px 0px;
		justify-content: left;
	}
	
	.nav-logo img {
		width: 200px;
		height: auto;
	}

	.main {
		margin-top: 140px;
		padding: 0px 20px 0px 40px;
	}

	#nav-dropdown {
		order: 2;
	}
	
	.nav-dropdown-menu {
		transform: translate(0px, -65px);
	}
	
	.nav-dropdown-menu-open {
		transform: translate(0px, 125px);	
	}

	#sidebar-button {
		margin-top: 126px;
		height: calc(100vh - 126px);
	}

	.sidebar {
		margin-top: 126px;
		height: calc(100vh - 126px);
	}

	#sidebar-about {
		order: 1;
	}

	#tags {
		order: 2
	}
	
}
