* {
	scrollbar-color: var(--accent) transparent;
	scrollbar-width: thin;
}

::selection {
	color: var(--background);
	background: var(--accent);
}

html, body {
	margin: 0;
	color: var(--text);
	font-size: 18pt;
	font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace;
	scroll-behavior: smooth;
	background-color: var(--background);
}

b, u, i {
	color: var(--accent);
}

small {
	font-size: .8rem;
	color: #848291;
}

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

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

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

section.footer {
	position: relative;
}

table.footer {
	position: absolute;
	bottom: 1em;
	color: #848291;
	text-align: left;
	width: 50%;
	font-size: .7rem;
	table-layout: fixed;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

table.footer th {
	font-size: .85rem;
}

table.footer a {
	color: rgba(var(--accent-rgb), 0.6);
	text-decoration: none;
}

table.footer a:hover {
	color: rgba(var(--accent-rgb), 0.8);
	text-decoration: underline;
}

img, video {
	max-width: 100%;
	max-height: 75vh;
	box-sizing: border-box;
}

img.circle {
	border-radius: 50%;
}
	
img.squirgle,
video.squirgle {
	border-radius: 30px;
	box-shadow: 10px 10px 5px #1c1c22;
}

img.border {
	padding: .5em;
	border: .5em solid var(--accent);
}

img.shorter {
	max-height: 50vh;
	width: 100%;
	object-fit: cover;
}

section {
	min-height: 100vh;
	width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

.responsive {
	padding: 10em;
}

@media screen and (max-width: 2000px) {
	.responsive {
		padding: 5em;
	}
}

@media screen and (max-width: 1200px) {
	.responsive {
		padding: 3em;
	}
	table.footer {
		width: 70%;
	}
}

@media screen and (max-width: 800px) {
	.responsive {
		padding: 1em;
	}
	img.shorter {
		max-height: 33vh;
	}
	table.footer {
		width: 95%;
	}
}

@media screen and (max-width: 400px) {
	.responsive {
		padding: .5em;
	}
}

table.tabs-buttons {
	width: 100%;
	box-sizing: border-box;
	table-layout: fixed;
	padding: 5px;
	border-left: 4px solid var(--accent);
	background-color: var(--background);
	box-shadow: 10px 10px 5px #1c1c22;
	border-radius: 5px 5px 0 0;
}

table.tabs-buttons tr,
table.tabs-buttons td {
	border: 1px solid var(--background-secondary);
	box-sizing: border-box;
	text-align: center;
	font-size: .85em;
	border-radius: 5px;
	transition: .3s;
}

pre.language-pad {
	position: relative;
	margin-top: 0;
}

pre.language-pad:after {
	content: '\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a'; /* TODO awful! 27 lines of padding to make the position:absolute trick work */
}

table.tabs-buttons td:hover {
	background-color: var(--background-secondary);
	cursor: pointer;
}

table.tabs-buttons td.active {
	color: var(--background);
	font-weight: bold;
	background-color: var(--accent);
	border-color: var(--accent);
}

div[class*="language-"],
pre[class*="language-"] {
	font-size: 12px;
}

pre {
	line-height: .8rem;
	background-color: var(--background);
	border-left: 4px solid var(--accent);
	padding: 5px;
	padding-left: 9px;
	overflow-x: scroll;
	box-shadow: 10px 10px 5px #1c1c22;
	tab-size: 4;
	scrollbar-width: thin;
	border-radius: 0 0 5px 5px;
}

input {
	width: 100%;
	background-color: var(--background-dim);
	border: 1px solid var(--accent);
	border-radius: 15px;
	padding: 5px;
	color: var(--text);
	box-sizing: border-box;
	box-shadow: 10px 10px 5px #1c1c22;
}
input:focus {
	outline-width: 2px;
	outline-style: solid;
	outline-color: var(--accent);
}
input[type="submit"]:hover {
	color: var(--background-dim);
	background-color: var(--accent);
	cursor: pointer;
}

input.contact {
	margin: .5em;
}

div.button-circle {
	border: 2px dashed;
	border-color: rgba(var(--accent-rgb), 0.2);
	text-align: center;
	width: 300px;
	height: 300px;
	margin: auto;
	line-height: 300px;
	border-radius: 50%;
	animation: linear rotation 90s infinite;
	transition: .3s;
}

button.locked {
	animation: linear antirotation 90s infinite;
}

div.button-circle:has(button.locked:hover) {
	border-color: rgba(var(--accent-rgb), 0.6);
	transition: .3s;
}

section.a {
	background-color: var(--background);
}

section.b {
	background-color: var(--background-dim);
}

table.comparison {
	width: 100%;
	text-align: center;
	border-collapse: separate;
	border-spacing: 1em;
}
table.comparison th,
table.comparison td {
	border: solid 2px var(--background-dim);
	box-shadow: 10px 10px 5px #1c1c22;
	padding: 1.5em;
	transition: .5s;
}

table.comparison th:hover,
table.comparison td:hover {
	background-color: var(--background-dim);
}

.pointer {
	cursor: pointer;
}

img.comparison,
td.tabs img {
	margin: 10px;
	animation: .5s;
}

img.comparison:hover {
	height: 100px;
	margin: 0px;
	transition: .5s;
}

td.tabs {
	background-color: var(--background);
}

td.tabs.active {
	background-color: var(--background-dim);
}

td.tabs.active img {
	height: 100px;
	margin: 0px;
	transition: .5s;
}

div.instructions {
	background-color: var(--background);
	padding: 2em 1em;
	margin: 1em 1em;
	border: 2px solid var(--background-dim);
	box-shadow: 10px 10px 5px #1c1c22;
}

.tabs-content {
	display: none;
}

.tabs-content.active {
	display: inherit;
}

hr {
	color: var(--background-dim);
	border: 1px solid var(--background-dim);
}

hr.bg {
	color: var(--background);
	border: 1px solid var(--background);
}

a.block {
	background-color: var(--accent);
	color: var(--background);
	padding: 0 .25em;
}

a.block:visited {
	color: var(--background-dim);
}

a.block:hover {
	background-color: var(--accent-dim);
}

h1.hero {
	margin: 0;
	padding-top: auto;
	font-size: 10em;
	font-weight: bold;
	color: var(--accent);
	vertical-align: middle;
	/* text-shadow: 10px 10px 5px #1c1c22; */
}

h2 {
	color: var(--accent);
	font-size: 2em;
	margin-left: .75em;
	margin-right: .75em;
}

h1 a,
h2 a {
	text-decoration: none;
}

p {
	color: var(--text);
	margin-left: 1.5em;
	margin-right: 1.5em;
}

h3.hero {
	margin: 0;
	padding-left: 5vh;
	font-size: 1.8em;
	color: #7d7971;
	vertical-align: middle;
}

span.title-overlay {
	position: relative;
	top: -1.5rem;
	margin-bottom: -1.5rem;
	margin-left: 22em;
	color: #7d7971;
	font-weight: bold;
}

@media screen and (max-width: 1200px) {
	h1.hero {
		font-size: 8em;
	}
	span.title-overlay {
		margin-left: 15em;
	}
}

code.color {
	background-color: rgba(var(--accent-rgb), 0.2);
	color: var(--accent);
	padding: 1px 6px;
}

@media screen and (max-width: 900px) {
	h1.hero {
		font-size: 6em;
		margin-top: 2em;
		margin-left: 2rem;
	}
	span.title-overlay {
		font-size: .9em;
	}
	h3.hero {
		font-size: 1.5em;
		margin-left: 1rem;
	}
	html, body {
		font-size: 16pt;
	}
}

@media screen and (max-width: 600px) {
	h1.hero {
		margin-top: 2em;
		margin-left: 1rem;
		font-size: 5em;
	}
	span.title-overlay {
		margin-left: 8em;
		font-size: .8em;
	}
	h2 {
		margin-right: .25em;
	}
	p {
		margin-left: 1em;
		margin-right: 1em;
	}
	html, body {
		font-size: 14pt;
	}
}

@media screen and (max-width: 400px) {
	html, body {
		font-size: 12pt;
	}
	span.title-overlay {
		top: -1rem;
		margin-bottom: -1rem;
	}
	h1.hero {
		font-size: 4em;
	}
	h3.hero {
		font-size: 1.15em;
	}
}

@media screen and (max-width: 300px) {
	html, body {
		font-size: 10pt;
	}
}

.two-col:after {
	content: "";
	display: table;
	clear: both;
}

.col-eq {
	float: left;
	width: 50%;
}

.col-main {
	float: left;
	width: 60%;
}

.col-side {
	float: left;
	width: 40%;
}

@media screen and (max-width: 1200px) {
	.col-eq {
		width: 100%;
	}
	.col-main {
		width: 100%;
	}
	.col-side {
		width: 100%;
	}
}

.mt-0 {
	margin-top: 0;
}


.hero-gradient {
	background: linear-gradient(30deg, rgba(32, 31, 41, 1) 33%, rgba(32, 31, 41, 0) 100%);
}

.footer-gradient {
	background: linear-gradient(190deg, rgba(32, 31, 41, 1) 33%, rgba(32, 31, 41, 0) 100%);
}

.install-gradient {
	background: linear-gradient(340deg, rgba(32, 31, 41, 1) 30%, rgba(32, 31, 41, 0) 100%);
}

@keyframes rotation {
	0% {
		transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}

@keyframes antirotation {
	0% {
		transform: rotate(360deg);
	}
	100% {
		transform: rotate(0deg);
	}
}
