:root {
  color-scheme: dark;
  --night: #0a1017;
  --ink: #ece7dc;
  --muted: #c8c0b1;
  --lamp: #d7a85b;
  --rule: #34404a;
}
* { box-sizing: border-box; }
html { background: var(--night); }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--night);
  color: var(--ink);
  font-family: Iowan Old Style, Baskerville, "Times New Roman", serif;
  font-size: clamp(1.06rem, 0.98rem + 0.35vw, 1.25rem);
  line-height: 1.72;
  text-rendering: optimizeLegibility;
}
main { width: 100%; }
article {
  width: min(42rem, calc(100% - 2.5rem));
  margin: 0 auto;
  padding: clamp(4.5rem, 12vh, 8.5rem) 0 clamp(6rem, 16vh, 11rem);
}
header {
  margin: 0 0 clamp(3.3rem, 8vh, 5.5rem);
  padding-top: 1.1rem;
  border-top: 2px solid var(--lamp);
}
h1 {
  margin: 0;
  color: #fffaf0;
  font-size: clamp(2.35rem, 1.9rem + 2.25vw, 4rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
}
p { margin: 0 0 1.45em; }
em { color: #fff3d8; }
::selection { background: #74582f; color: #ffffff; }
:focus-visible { outline: 3px solid var(--lamp); outline-offset: 4px; }
@media (max-width: 30rem) {
  article { width: min(100% - 1.75rem, 42rem); }
  body { line-height: 1.65; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
@media print {
  :root { color-scheme: light; }
  html, body { background: #fff; color: #111; }
  body { font-size: 11.5pt; line-height: 1.5; }
  article { width: 100%; max-width: none; padding: 0; }
  header { border-color: #555; margin-bottom: 2rem; }
  h1, em { color: #111; }
  p { orphans: 3; widows: 3; }
}
