:root { color-scheme: dark }

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

body { margin: 0; }
main {
	padding: min(8ch, 5%);
	margin: 0 auto;
	max-width: 75ch;
}
main * { max-width: 100%; }
main > :first-child { margin-top: 0; }

::selection, ::-moz-selection  {
	background-color: #ebd873;
	color: #3f3f3f;
}
a {
	color: white;
	text-decoration: underline;
	text-decoration-style: dotted;
	outline: none;
}
a:active, a:hover { text-decoration: none; }

h1, h2, h3, th, dt {
	text-transform: uppercase;
	font-family: "DIN 1451 Breitschrift", sans-serif;
	font-weight: normal;
	font-style: 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: #777;
	color: #777;
	height: 1px;
}
main {
	font-family: "Computer Modern Sans", sans-serif;
	font-rendering: optimizeLegibility;
	color: white;
	line-height: 1.6;
	font-size: 100%;
}

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: 0 30% 0.5ch 30%;
	margin: 0 0 3ch calc(50% - 50vw);
	min-width: calc(100vw - 60%);
	border-bottom: 1px solid white;
	font-size: 150%;
	text-align: center;
	  }
h1 a {
	line-height: 2.25rem;
	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: 580px) {
	h1 { font-size: 150%; }
	h2 { font-size: 125%; }
	h3 { font-size: 100%; }
}

nav {
	margin-top: 2em;
	border-top: 1px solid #777;
	text-align: right;
}
nav menu {
	padding: 0.3em 5% 0 0;
	margin: 0;
}
nav li { display: inline; }
time.date {
	position: fixed;
	display: block;
	bottom: 2em;
	left: 2em;
}
@media(max-width: 1130px) {
	main { padding-bottom: 0.1em; }
	time.date {
		position: revert;
		font-size: 50%;
		margin-top: 6ex;
		text-align: center;
	}
}

dfn, dt {
	font-size-adjust: 0.45;
}
code, pre, time {
	font-family: "Server Mono", monospace;
	font-size: 100%;
	font-size-adjust: 0.4;
}
code.prompt::before {
	display: inline;
	content: ">>>";
	color: #777;
	padding-right: 1ch;
}

code.block {
	background-color: #555;
}
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: 5ch;
	margin: 5ch 0;
	background: #111;
}
blockquote > :first-child { margin-top: 0; }
blockquote p + p { margin-top: 3%; }
blockquote cite {
	display: block;
	text-align: right;
}
q { quotes: "“" "”" "‘" "’"; }
q::before { margin-right: 0.1rem; }
q::after { margin-left: 0.1rem; }
ul { list-style-type: none; }
ul li::before { content: "— "; }
ul.quiet li::before, ol.quiet li::before { content: ""; }
.dot li::before { 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 { border-collapse: collapse; }
ol { padding-left: 30px; }
ul { padding-left: 0; }
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: #111;
  background-image: 		linear-gradient(#222 1px, transparent 1px),
		linear-gradient(90deg, #222 1px, transparent 1px);
  background-size: 1.25em 1.25em;
	background-attachment: fixed;
}
main {
	background: rgba(9,9,9,0.95);
	border-left: 1px solid white;
}
@media(max-width: 890px) {
	body { background: black; }
}

@font-face {
	font-family: "Computer Modern Sans";
	font-style: normal;
	font-weight: normal;
	font-display: swap;
	src: url("static/lmsans10-regular.otf");
}
@font-face {
	font-family: "Computer Modern Sans";
	font-style: italic;
	font-weight: normal;
	font-display: swap;
	src: url("static/lmsans10-oblique.otf");
}
@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");
}

