:root {
  --paper: #f3f1ea;
  --paper-raised: #faf9f5;
  --ink: #1c1e21;
  --ink-muted: #5d6066;
  --line: #c9c5b8;
  --grid: rgba(28, 30, 33, 0.045);
  --accent: #c2410c;
  --accent-ink: #1d4ed8;

  --font-display: "IBM Plex Sans Condensed", "Arial Narrow", sans-serif;
  --font-body: "Source Serif 4", Georgia, serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;

  --sheet-width: 960px;
  --gutter: 16px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #0e1726;
    --paper-raised: #132036;
    --ink: #e6ebf2;
    --ink-muted: #93a0b4;
    --line: #2b3b55;
    --grid: rgba(147, 160, 180, 0.07);
    --accent: #f59e0b;
    --accent-ink: #7fb0ff;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 72px;
}

body {
  margin: 0;
  background-color: var(--paper);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size: 24px 24px;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
}

p {
  margin: 0 0 1em;
}

a {
  color: var(--accent-ink);
  text-underline-offset: 3px;
}

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

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

.label {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
