:root { color-scheme: dark }

body {
	box-sizing: border-box; 
	background-size: 1rem 1rem;
}

body { margin: 0; }
main {
	padding: 4% 4% 4% 4%;
	margin: 0 auto;
	max-width: 70ch;
}
main * { max-width: 100%; }
main > :first-child { margin-top: 0; }

::selection, ::-moz-selection  {
	background-color: #ebd873;
	color: #3f3f3f;
}
a {
	color: #da8a67;
	text-decoration: underline;
	text-decoration-style: dotted;
	text-decoration-skip-ink: none;
	text-underline-offset: 0.2em;
	outline: none;
}
a:active, a:hover { text-decoration: none; }
a:visited { color: white; }

h1, h2, h3,
.value, dfn, time
{
	font-family: "Routed Gothic Wide", sans-serif;
	font-weight: normal;
	letter-spacing: 2px;
}
.see {
	display: block;
	padding: 2% 3%;
	text-decoration: none;
	background-image: radial-gradient(circle, #333 1px, transparent 1px);
	background-size: 5px 5px;
	overflow: hidden;
}
.see::before {
	content: "see: ";
	color: white;
}
hr {
	border: none;
	background-color: white;
	color: white;
	height: 1pt;
}
main {
	font-family: "LMSans17", sans-serif;
	font-rendering: optimizeLegibility;
	color: white;
	line-height: 1.6;
	font-size: 100%;
}
@media (max-width: 640px) {
	main { font-size: 1.125rem; }
}

h1, h2, h3 { text-transform: uppercase; }
h1 a, h2 a, h3 a {
	color: white;
	text-decoration: none;
	border: none;
}
h1 a:hover, h2 a:hover, h3 a:hover { text-decoration: none; }
h1 {
	padding: 4% 30%;
	margin: 0 0 10% calc(50% - 50vw);
	min-width: calc(100vw - 60%);
	border-top: 1px solid white;
	border-bottom: 1px solid white;
	font-size: 150%;
	text-align: center;
	background-color: #1010144f;
	text-shadow: 2px 2px black;
	  }
h1 a {
	line-height: 2.25rem;
	text-transform: uppercase;
	padding: 0;
}
h2 {
	font-size: 1.2rem;
	margin: 4% 0 4% 0;
	padding: 0.1rem 0 0 0;
	border-bottom: 1px solid #777;
	letter-spacing: 1pt;
}
h3 {
	font-size: 0.9rem;
	margin: 30px 0 10px 0;
	padding-bottom: 4px;
	letter-spacing: 1px;
	line-height: 1.1;
}
@media(max-width: 440px) {
	h1 a { font-size: 1.5rem; }
	h2 a { font-size: 1.375rem; }
	h3 a { font-size: 1.25rem; }
}

nav {
	position: fixed;
	bottom: 1em;
	left: 1em;
	background-color: #222222d0;
	border: 1px solid #777;
	padding: 0.5em 1%;
}
nav a { text-decoration: none; }
nav ul {
	padding: 0;
	list-style-type: none;
	text-align: right;
}
nav time { font-size: 75%; }

dfn {
	font-style: normal;
	text-transform: uppercase;
	font-size-adjust: 0.4;
}
code {
	font-family: "LMMonoSlant10", monospace;
	font-size: 100%;
	font-size-adjust: 0.45;
}
code.prompt::before {
	display: inline;
	content: ">>>";
	color: #777;
	padding-right: 1ch;
}

code.block { background-color: #080808; }
code pre {
	position: relative;
	overflow: hidden;
}
code pre::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 85%;
  right: 0;
  background-image: linear-gradient(to right, transparent, #080808);
}
code pre {
  display: block;
  overflow: auto;
  padding: 0.75rem 2rem;
  padding-inline-end: 8%;
}

q.block {
	display: block;
	padding: 8% 5%;
	quotes: "" "" "" "";
	font-style: italic;
}
blockquote {
	padding: 8% 5%;
	border: 2px dotted white;
}
blockquote p {
	margin: 0 5%;
}
blockquote p + p { margin-top: 3%; }
blockquote cite {
	display: block;
	text-align: right;
	line-height: 1.5rem;
	margin-top: 5%;
}
q { quotes: "“" "”" "‘" "’"; }
q::before { margin-right: 0.1rem; }
q::after { margin-left: 0.1rem; }
ul li::marker { content: "— "; }
.dot li::marker { content: ""; }
.dot li { display: inline; }
.dot li + li::before { content: " · "; }

.code-block { padding: 10px; }
.center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.block + .block { margin-top: 20px; }
p + p { margin-top: 2%; }
p + ol.inline {
	display: inline;
}
p + ol.inline li { display: inline; }
figure img { display: block; }
figure + figcaption { margin-top: 30px; }
figcaption {
	text-align: center;
	margin-bottom: 20px;
	line-height: 1.5rem;
}
em {
	font-style: italic;
	font-weight: normal;
}
a.block {
	display: inline-block;
	width: 100%;
}
cite { font-style: normal; }
cite::before { content: "— "; }
aside {
	padding: 5%;
	border: 1px dotted white;
}
table {
	color: white;
	overflow: scroll;
}
ol.quiet, ul.quiet {
	list-style-type: none;
	padding-left: 0;
}
ul.quiet li::marker { content: ""; }
ol, ul { padding-left: 30px; }
ol.roman { list-style-type: upper-roman; }

br {
	clear: both;
	line-height: 0;
	display: block;
	height: 0;
	border: none;
}

cite { text-align: right; }
abbr { text-decoration: none; }
p, section { hyphens: auto; }
dd { padding: 0 0 0.5em 2em; }

body {
	background-color: #313131;
  background-image: 		linear-gradient(#444 1px, transparent 1px),
		linear-gradient(90deg, #444 1px, transparent 1px);
  background-size: 1.25em 1.25em;
	background-attachment: fixed;
}
main {
	background: rgba(17,17,17,0.8);
	border-left: 1px solid white;
	border-right: 1px solid #777;
}
@media(max-width: 1050px) {
	body { background: black; }
}

@font-face {
	font-family: "Voxelpoint";
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url("static/Voxelpoint.ttf");
}
@font-face {
	font-family: "CMU Sans Serif";
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url("static/cmu-sans-serif-medium.ttf");
}
@font-face {
	font-family: "CMU Sans Serif";
	font-style: italic;
	font-weight: normal;
	font-display: swap;
	src: url("static/cmu-sans-serif-oblique.ttf");
}
@font-face {
	font-family: "Server Mono";
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url("static/ServerMono-Regular.woff2");
}
@font-face {
	font-family: "DIN 1451 Breitschrift";
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url("static/DIN1451-36breit.ttf");
}

