/* edwrdsr.com: text first. White, black, no JS, no graphics. */
:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #fff;
  color: #111;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  line-height: 1.58;
}
.wrap { width: min(100% - 42px, 710px); margin: 0 auto; }
a, a:visited { color: #111; text-decoration: underline; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
header { padding-top: 45px; }
.masthead { font-family: "Courier New", Courier, monospace; font-weight: bold; font-size: 20px; letter-spacing: -.035em; }
.masthead a { text-decoration: none; }
.masthead a:hover { text-decoration: underline; }
nav { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; padding: 0 0 25px; font: 14px/1.7 "Courier New", Courier, monospace; }
nav a { white-space: nowrap; }
.rule, hr { border: 0; border-top: 1px solid #111; margin: 0; }
main { padding: 40px 0 55px; }
h1, h2, h3 { font-family: "Courier New", Courier, monospace; letter-spacing: -.045em; line-height: 1.25; }
h1 { font-size: clamp(29px, 6vw, 38px); margin: 0 0 18px; }
h2 { font-size: 23px; margin: 0 0 18px; }
h3 { font-size: 18px; margin: 0 0 7px; }
p { margin: 0 0 16px; }
.lede { font-size: 20px; line-height: 1.5; }
.small, .meta, .section-meta, time { font: 13px/1.65 "Courier New", Courier, monospace; }
.meta, .section-meta { color: #555; }
.section-meta { margin-bottom: 10px; }
section { margin-top: 47px; }
section + section { border-top: 1px solid #d0d0d0; padding-top: 28px; }
.entry { padding: 0 0 14px; margin: 0 0 14px; }
.entry + .entry { border-top: 1px dotted #b0b0b0; padding-top: 19px; }
.entry h3 a { text-decoration: underline; }
.entry p { margin: 7px 0 5px; }
.entry .meta { margin: 0; }
.list-links { margin: 0; padding-left: 23px; }
.list-links li { margin-bottom: 12px; }
.note { border-left: 2px solid #111; padding-left: 16px; margin: 25px 0; }
footer { border-top: 1px solid #111; padding: 20px 0 50px; font: 13px/1.8 "Courier New", Courier, monospace; }
.footer-links { display: inline; }
.footer-links a { margin-right: 14px; }
.breadcrumb { font: 13px/1.5 "Courier New", Courier, monospace; margin-bottom: 28px; }
.text-list { margin: 5px 0 20px; padding-left: 24px; }
.text-list li { margin-bottom: 9px; }
article.prose { font-size: 18px; }
.prose p { margin-bottom: 20px; }
.prose h2 { font-size: 23px; margin: 40px 0 16px; }
.prose blockquote { margin: 25px 0; padding: 0 0 0 19px; border-left: 2px solid #111; font-size: 19px; }
.prose blockquote p { margin: 0; }
.prose em { font-style: italic; }
.prose strong { font-weight: bold; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 20px; top: 12px; background: white; padding: 5px; }
@media (max-width: 580px) {
  body { font-size: 17px; }
  header { padding-top: 24px; }
  nav { gap: 7px 13px; padding-bottom: 21px; }
  main { padding-top: 28px; }
  h1 { font-size: 29px; }
  h2, .prose h2 { font-size: 21px; }
  .lede { font-size: 18px; }
  section { margin-top: 38px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Technical notes: terminal text without a terminal aesthetic. */
pre.ascii, pre.terminal {
  margin: 16px 0 24px; padding: 16px 0; background: #fff; color: #111;
  border-top: 1px dotted #777; border-bottom: 1px dotted #777;
  font: 13px/1.4 "Courier New", Courier, monospace; white-space: pre; overflow-x: auto;
}
code { font: 0.9em "Courier New", Courier, monospace; }

/* Article references */
.prose .sources { margin: 10px 0 28px; padding-left: 25px; }
.prose .sources li { margin-bottom: 14px; overflow-wrap: anywhere; }
.prose a { overflow-wrap: anywhere; }
