:root {
  color-scheme: light dark;

  --bg: light-dark(#fbfaf7, #14161a);
  --bg-hero: light-dark(#eef1e8, #1b2018);
  --fg: light-dark(#1c1e1a, #e7e9e3);
  --fg-muted: light-dark(#5b5f56, #a3a89a);
  --accent: light-dark(#3f7d3a, #7fce78);
  --border: light-dark(#dedad0, #2a2e26);
  --surface: light-dark(#ffffff, #1b1e19);
  --code-bg: light-dark(#f0efe9, #22261f);

  --font: system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

/* Fallback for browsers without light-dark() support (Baseline 2024). */
@supports not (color: light-dark(#000, #fff)) {
  :root {
    --bg: #fbfaf7;
    --bg-hero: #eef1e8;
    --fg: #1c1e1a;
    --fg-muted: #5b5f56;
    --accent: #3f7d3a;
    --border: #dedad0;
    --surface: #ffffff;
    --code-bg: #f0efe9;
  }

  @media (prefers-color-scheme: dark) {
    :root {
      --bg: #14161a;
      --bg-hero: #1b2018;
      --fg: #e7e9e3;
      --fg-muted: #a3a89a;
      --accent: #7fce78;
      --border: #2a2e26;
      --surface: #1b1e19;
      --code-bg: #22261f;
    }
  }
}

* {
  box-sizing: border-box;
}

html {
  color-scheme: light dark;
}

body {
  margin: 0;
  font-family: var(--font);
  color: var(--fg);
  background: var(--bg);
  line-height: 1.65;
}

.wrap {
  max-width: 46rem;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}

.sitenav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.25rem;
  align-items: center;
  padding-block: 0.9rem;
  border-block-end: 1px solid var(--border);
  font-size: 0.95rem;

  a {
    color: var(--fg-muted);
    text-decoration: none;
    font-weight: 500;
  }

  a:hover,
  a:focus-visible {
    color: var(--fg);
  }

  a[aria-current="page"] {
    color: var(--accent);
    font-weight: 700;
  }
}

.hero {
  background: var(--bg-hero);
  border-block-end: 1px solid var(--border);
  padding-block: clamp(2.5rem, 8vw, 5rem) clamp(2rem, 6vw, 3rem);

  .eyebrow {
    margin: 0;
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fg-muted);
  }

  h1 {
    margin-block: 0.25rem 0.5rem;
    font-size: clamp(2.5rem, 8vw, 4rem);
    text-wrap: balance;
  }

  .summary {
    max-width: 38rem;
    font-size: clamp(1.05rem, 2.5vw, 1.3rem);
    color: var(--fg-muted);
    text-wrap: pretty;
  }

  .links {
    display: flex;
    gap: 1.25rem;
    margin-block-start: 1.5rem;

    a {
      color: var(--fg);
      font-weight: 600;
      text-decoration: none;
      border-block-end: 2px solid var(--accent);
      padding-block-end: 0.15rem;
    }

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

main {
  padding-block: clamp(2rem, 6vw, 3.5rem);
  text-wrap: pretty;
}

article {
  h2 {
    margin-block-start: 2.5rem;
    padding-block-start: 0.5rem;
    border-block-start: 1px solid var(--border);
    font-size: clamp(1.4rem, 3vw, 1.75rem);
    text-wrap: balance;
  }

  h2:first-child {
    margin-block-start: 0;
    border-block-start: none;
    padding-block-start: 0;
  }

  h3 {
    font-size: 1.15rem;
  }

  p,
  li {
    color: var(--fg);
  }

  ul,
  ol {
    padding-inline-start: 1.25rem;
  }

  li + li {
    margin-block-start: 0.35rem;
  }

  code {
    font-family: var(--font-mono);
    background: var(--code-bg);
    padding: 0.1em 0.4em;
    border-radius: 0.3em;
    font-size: 0.9em;
  }

  pre {
    background: var(--code-bg);
    border: 1px solid var(--border);
    border-radius: 0.5em;
    padding: 1rem;
    overflow-x: auto;

    code {
      background: none;
      padding: 0;
      font-size: 0.85em;
    }
  }

  img {
    max-width: 100%;
    height: auto;
    display: block;
    margin-block: 1.25rem;
    border-radius: 0.5em;
    border: 1px solid var(--border);
  }

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

  table {
    width: 100%;
    border-collapse: collapse;
    margin-block: 1.25rem;
    font-size: 0.95rem;
  }

  th,
  td {
    text-align: left;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border);
  }

  th {
    background: var(--surface);
  }
}

.loading {
  color: var(--fg-muted);
}

footer {
  border-block-start: 1px solid var(--border);
  padding-block: 2rem;
  color: var(--fg-muted);
  font-size: 0.9rem;
}
