:root {
  --desk: #d4d4d4;
  --paper: #ececec;
  --sheet: rgba(236, 236, 236, 0.99);
  --paper-raised: #f6f6f6;
  --ink: #1d1d1f;
  --ink-muted: #63636a;
  --line: #c4c4c8;
  --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 {
    --desk: #141414;
    --paper: #1e1e1e;
    --sheet: rgba(30, 30, 30, 0.91);
    --paper-raised: #262626;
    --ink: #e4e4e4;
    --ink-muted: #9b9b9b;
    --line: #3a3a3a;
    --accent: #f59e0b;
    --accent-ink: #78b4ff;
  }
}

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

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

body {
  margin: 0;
  background-color: var(--desk);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background: var(--desk) url("../assets/images/stars-wide.jpg") center / cover no-repeat;
  filter: brightness(0.4) contrast(1.15);
}

@media (max-width: 719px) {
  body::before {
    background-image: url("../assets/images/stars-tall.jpg");
  }
}

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);
}
