:root {
  /* WHENRESET web color roles */
  --wr-paper: #fcfcf5;
  --wr-surface: #ffffff;
  --wr-ink: #293e32;
  --wr-ink-secondary: #4f5d52;
  --wr-muted: #788476;
  --wr-green: #658c60;
  --wr-green-dark: #41643d;
  --wr-green-soft: #eef4e7;
  --wr-line: #dce4d6;
  --wr-yellow: #f5d77c;
  --wr-focus: #82a4cc;

  /* Typography: use by meaning, not by whichever size fits locally. */
  --wr-font: "Avenir Next", "Nunito", "PingFang SC", "Microsoft YaHei", sans-serif;
  --wr-text-display: clamp(2.5rem, 5vw, 4.375rem);
  --wr-text-page-title: clamp(2rem, 4vw, 3.5rem);
  --wr-text-section: 1.5rem;
  --wr-text-subsection: 1.125rem;
  --wr-text-body: 0.9375rem;
  --wr-text-body-compact: 0.875rem;
  --wr-text-meta: 0.75rem;
  --wr-text-caption: 0.6875rem;
  --wr-leading-tight: 1.25;
  --wr-leading-heading: 1.4;
  --wr-leading-body: 1.8;
  --wr-weight-regular: 400;
  --wr-weight-medium: 600;
  --wr-weight-semibold: 700;
  --wr-weight-bold: 800;

  /* Layout and spacing */
  --wr-space-1: 0.25rem;
  --wr-space-2: 0.5rem;
  --wr-space-3: 0.75rem;
  --wr-space-4: 1rem;
  --wr-space-5: 1.25rem;
  --wr-space-6: 1.5rem;
  --wr-space-8: 2rem;
  --wr-space-12: 3rem;
  --wr-space-16: 4rem;
  --wr-width-site: 72.5rem;
  --wr-width-reading: 61.25rem;
  --wr-width-article: 47.5rem;
  --wr-radius-control: 0.75rem;
  --wr-radius-card: 1.25rem;
  --wr-radius-panel: 1.5rem;
}

.wr-shell {
  width: min(var(--wr-width-site), calc(100% - 3rem));
  margin-inline: auto;
}

.wr-reading-shell {
  width: min(var(--wr-width-reading), calc(100% - 3rem));
  margin-inline: auto;
}

@media (max-width: 650px) {
  .wr-shell,
  .wr-reading-shell {
    width: calc(100% - 1.75rem);
  }
}

/* Public pages use one quiet divider below the brand footer. */
body > footer:not([data-wr-analytics-footer]),
#page-footer {
  border-top: 0 !important;
  border-bottom: 1px solid var(--wr-line) !important;
}
