/* The :root is where you can change the colors */
	:root {
	color-scheme: light dark;
	accent-color: var(--main);
    --main: var(--gray);
	--bg: hsl(from var(--main) h calc(s - 10) calc(l - 5));
    --bg-image: var(--bones);
	--link: light-dark(var(--main), hsl(from var(--main) h s calc(l + 50)));
	--link-hover-text: light-dark(#dad4c9, #272a32);
	--special-hover: hsl(from var(--main) calc(h - 7) s calc(l + 5)), hsl(from var(--main) calc(h + 5) s calc(l - 5));
	--text-bg: light-dark(#dad4c9, #272a32);
	--text: light-dark(#272a32, #dad4c9);
/* light-dark function: https://css-tricks.com/almanac/functions/l/light-dark/ */

/* Presets */
	--blue: #152e83;
	--teal: #005372;
	--green: #073d07;
    --gray: #323232;
	--bones: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="50" viewBox="0 0 26.458 13.229"><defs><clipPath id="a" clipPathUnits="userSpaceOnUse"><path d="M111.852 155.648h52.917v39.688h-52.917z" style="fill:%23131313;fill-opacity:1;fill-rule:evenodd;stroke-width:.15979"/></clipPath><clipPath id="d" clipPathUnits="userSpaceOnUse"><path d="M-168.833 91.92a.418.418 0 0 0-.143-.327c-.232-.202-.66-.154-.96.108l-.646.565h-6.424l-.646-.565c-.3-.262-.728-.31-.96-.108a.417.417 0 0 0-.143.327c.001.171.093.36.267.512 0 0 .124.174.124.329 0 .154-.124.328-.124.328-.3.262-.355.637-.124.84.232.202.66.153.96-.11l.646-.564h6.424l.646.565c.3.262.728.31.96.108.231-.202.176-.577-.124-.839 0 0-.124-.174-.124-.328 0-.155.124-.329.124-.329.174-.151.265-.34.267-.512z" style="display:inline;opacity:.5;fill:%23efefef;fill-opacity:1;stroke-width:.155067"/></clipPath><clipPath id="c" clipPathUnits="userSpaceOnUse"><path d="M137.642 116.001H164.1v39.688h-26.458z" style="fill:%23323232;fill-opacity:1;fill-rule:evenodd;stroke-width:.112989"/></clipPath><clipPath id="b" clipPathUnits="userSpaceOnUse"><path d="M-173.794 82.839h13.229v19.844h-13.229z" style="fill:%23323232;fill-opacity:1;fill-rule:evenodd;stroke-width:.0564944" transform="rotate(-90)"/></clipPath><clipPath id="e" clipPathUnits="userSpaceOnUse"><path d="M-173.794 82.839h13.229v19.844h-13.229z" style="fill:%23323232;fill-opacity:1;fill-rule:evenodd;stroke-width:.0564944" transform="rotate(-90)"/></clipPath><clipPath id="f" clipPathUnits="userSpaceOnUse"><path d="M137.642 116.001H164.1v39.688h-26.458z" style="fill:%23323232;fill-opacity:1;fill-rule:evenodd;stroke-width:.112989"/></clipPath><clipPath id="g" clipPathUnits="userSpaceOnUse"><path d="M-168.833 91.92a.418.418 0 0 0-.143-.327c-.232-.202-.66-.154-.96.108l-.646.565h-6.424l-.646-.565c-.3-.262-.728-.31-.96-.108a.417.417 0 0 0-.143.327c.001.171.093.36.267.512 0 0 .124.174.124.329 0 .154-.124.328-.124.328-.3.262-.355.637-.124.84.232.202.66.153.96-.11l.646-.564h6.424l.646.565c.3.262.728.31.96.108.231-.202.176-.577-.124-.839 0 0-.124-.174-.124-.328 0-.155.124-.329.124-.329.174-.151.265-.34.267-.512z" style="display:inline;opacity:.5;fill:%23efefef;fill-opacity:1;stroke-width:.155067"/></clipPath></defs><g style="opacity:.3"><path d="M-13.266.003H-.037v26.458h-13.229z" style="fill:%23323232;fill-opacity:1;fill-rule:evenodd;stroke-width:.065234" transform="rotate(-90 -.02 -.017)"/><path d="M81.998 162.219a.418.418 0 0 0-.327.143c-.202.231-.154.66.109.96l.564.646v6.423l-.564.646c-.263.3-.311.729-.109.96a.417.417 0 0 0 .327.143c.172 0 .36-.093.512-.267 0 0 .174-.124.329-.124.155 0 .328.124.328.124.263.3.637.356.84.124.202-.231.153-.66-.109-.96l-.564-.646v-6.423l.564-.646c.262-.3.31-.729.108-.96-.202-.232-.576-.177-.839.124 0 0-.173.123-.328.123-.155 0-.329-.123-.329-.123-.151-.174-.34-.266-.512-.267z" clip-path="url(%23e)" style="display:inline;opacity:.6;fill:%23efefef;fill-opacity:1;stroke-width:.155067" transform="translate(-82.839 -160.565)"/><g clip-path="url(%23f)" style="opacity:.6;fill:%23efefef;fill-opacity:1" transform="matrix(0 -.5 .5 0 -51.386 82.05)"><path d="M160.793 154.007a.833.833 0 0 0-.286-.653c-.463-.405-1.32-.309-1.92.216l-1.292 1.129h-12.847l-1.291-1.129c-.601-.525-1.458-.621-1.92-.216a.834.834 0 0 0-.287.653c.003.343.187.721.534 1.025 0 0 .248.347.248.656 0 .31-.248.657-.248.657-.6.525-.711 1.274-.248 1.678.463.405 1.32.309 1.92-.216l1.292-1.129h12.847l1.292 1.129c.6.525 1.457.621 1.92.216.463-.404.353-1.153-.248-1.678 0 0-.247-.347-.247-.657 0-.31.248-.656.248-.656.347-.304.53-.682.533-1.025z" style="display:inline;fill:%23efefef;fill-opacity:1;stroke-width:.310133"/></g><path d="M-173.794 82.839h13.229v19.844h-13.229z" clip-path="url(%23g)" style="opacity:.6;fill:%23efefef;fill-opacity:1;fill-rule:evenodd;stroke-width:.0564943" transform="rotate(-90 -120.048 -40.517)"/><path d="M-173.794 82.839h13.229v19.844h-13.229z" clip-path="url(%23g)" style="opacity:.6;fill:%23efefef;fill-opacity:1;fill-rule:evenodd;stroke-width:.0564943" transform="matrix(0 1 1 0 -79.531 173.794)"/></g></svg>');
}

/* In case you're wondering, the hideous code in the bones variable is an SVG code.
You can generate one of those from SVG files with a SVG-to-CSS converter: https://www.svgbackgrounds.com/tools/svg-to-css
This lets you get the background pattern without having to download any extra files outside of the code.
But if you're a beginner and want to add a pattern of your own, I recommend just using a normal image file. */

/* title font - w95fa */
@font-face {
  font-family: "w95fa";
  src:
    url("../fonts/w95fa/w95fa.woff") format("woff"),
    url("../fonts/w95fa/w95fa.woff2") format("woff2"),
    url("../fonts/w95fa/w95fa.otf");
}

/* body font - DM mono */
@font-face {
  font-family: "DM Mono";
  font-style: normal;
  src:
    url("../fonts/DM Mono/dm-mono-v11-latin-regular.woff") format("woff"),
    url("../fonts/DM Mono/dm-mono-v11-latin-regular.woff2") format("woff2"),
    url("../fonts/DM Mono/dm-mono-v11-latin-regular.ttf");
}

@font-face {
  font-family: "DM Mono";
  font-style: italic;
  src:
    url("../fonts/DM Mono/dm-mono-v11-latin-italic.woff") format("woff"),
    url("../fonts/DM Mono/dm-mono-v11-latin-italic.woff2") format("woff2"),
    url("../fonts/DM Mono/dm-mono-v11-latin-italic.ttf");
}

@font-face {
  font-family: "DM Mono";
  font-style: normal;
  font-weight: bold;
  src:
    url("../fonts/DM Mono/dm-mono-v11-latin-500.woff") format("woff"),
    url("../fonts/DM Mono/dm-mono-v11-latin-500.woff2") format("woff2"),
    url("../fonts/DM Mono/dm-mono-v11-latin-500.ttf");
}

@font-face {
  font-family: "DM Mono";
  font-style: italic;
  font-weight: bold;
  src:
    url("../fonts/DM Mono/dm-mono-v11-latin-500.woff") format("woff"),
    url("../fonts/DM Mono/dm-mono-v11-latin-500.woff2") format("woff2"),
    url("../fonts/DM Mono/dm-mono-v11-latin-500.ttf");
}
/* Body sets the main defaults for the whole page */

	body {
		color: var(--text);
		background-color: var(--bg);
		background-image: var(--bg-image);
    font-family:DM Mono;
		text-align: center;
		font-size: 1.1em;
	}

/* Main is type of semantic area within a page.
More on Semantic HTML: https://www.w3schools.com/html/html5_semantic_elements.asp
By selecting main > div, this code says that all divs within the <main> tag should follow these rules.
You can add more divs, but don't get rid of the <main> tag without changing the code here or you'll break stuff. */

	main > div {
		background: var(--text-bg);
		width: 95vw;
		max-width: 700px;
		margin: 2em auto;
		padding: 15px 25px;
		border-radius: 20px;
		text-align: left;
		box-sizing: border-box;
		box-shadow: 4px 4px 2px #dad4c9;
	} /* setting the side margins to auto is how you center a div: https://www.w3schools.com/csS/css_align.asp */

/* Headers */
	h1, h2, h3 {
    text-align: center;
  }
	h1 {font-size: 2em}
	h2 {
		margin-top: 1.5em;
		padding-bottom: 3px;
		border-bottom: 5px solid var(--link);
	}

h1,
h2,
h3,
h4,
h5,
h6 {
 font-family: w95fa;
}

/* Circle class can be added to images that you want to feature as a main icon or user avatar.
This is best suited to square images, not rectangular ones.
Change or get rid of the width if you want a different size. */
	.circle {
	    clip-path: circle(50%);
	    width: 100px;
	   }
	p:has(.circle) {text-align: center}

/* Links */
	a {
		color: var(--link);
		text-decoration-style: dashed;
		text-underline-offset: .1em;
	}
	a:hover {
		color: var(--link-hover-text);
		background: var(--link);
		text-decoration: none;
	}

/* Lists - this code makes the list items a little more spaced out */
	li {margin: .5em auto}

/* Focus Outlines - essential accessibility feature for visitors navigating by keyboard */
	*:focus-visible {outline: 3px solid var(--link); outline-offset: .2em; text-decoration: none;}

/* Selection controls click-and-drag highlighted text */
	::selection {color: white; background: var(--main);}

/* Button Elements (elements that use Javascript, like the theme switch buttons) */

	button {
		background: none;
		border: .1em solid var(--link);
		font-size: 1rem;
		color: var(--link);
		cursor: pointer;
		padding: .7em 2em;
		margin: .2em .3em;
		border-radius: 5px;
	}
	button:hover, button:focus {
		color: white;
		background: var(--link); /* fallback */
		background: linear-gradient(90deg, var(--special-hover));
		text-shadow: 1px 1px black;
	}
	.button:focus-visible {border-radius: 15px;}
	p:has(button) {text-align: center; margin: 2em auto}

/* Featured Links */

	.featured {
		border: .1em solid var(--link);
		text-decoration: none;
		text-align: center;
		padding: 1em;
		margin: .5em auto;
		display: inline-block;
		box-sizing: border-box;
		width: 100%;
		box-shadow: 4px 4px var(--link);
	}
	.featured:hover, .featured:focus {
		text-shadow: 1px 1px black;
		color: white;
		background: linear-gradient(90deg, var(--special-hover));
	}
	.featured:focus-visible {outline-offset: 0}

	.featured-list {
		text-align: center;
		width: 80%;
		margin: 2em auto;
	}

/* Footer goes at the end of the page */

	footer {
		color: var(--text);
		background: var(--text-bg);
		text-align: center;
		margin: 2em auto;
		padding: 1em;
		box-sizing: border-box;
		width: 70vw;
		max-width: 550px;
		border-radius: 20px;
		filter: opacity(80%);
	}

/* Code elements change the look of how text is displayed on the page (to visually communicate "this is a piece of code"). You don't need to keep this. */
	code {
		color: var(--text);
		background-color: rgba(0,0,0, .1);
		padding: .05em .3em;
		border-radius: 10px;
		font-size: 1em;
		font-family: "Courier New", monospace;
	}
