:root {
  color-scheme: light;
  --ink: #24302c;
  --muted: #66716d;
  --paper: #f3f0e8;
  --card: #fffdf7;
  --line: #d5d0c4;
  --signal: #c45a2a;
  --signal-soft: #f3e1d5;
  --green: #365f51;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: linear-gradient(180deg, #dfe5df 0, var(--paper) 24rem);
  color: var(--ink);
  font: 18px/1.72 Georgia, "Times New Roman", serif;
}

.article-shell {
  width: min(940px, calc(100% - 32px));
  margin: 48px auto 80px;
  padding: clamp(28px, 6vw, 78px);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 26px 76px rgba(43, 53, 48, 0.13);
}

h1, h2, h3 {
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  line-height: 1.18;
  color: #233d34;
}

h1 {
  margin: 0 0 28px;
  font-size: clamp(2.4rem, 6vw, 4.55rem);
  letter-spacing: -0.045em;
}

h2 {
  margin: 58px 0 18px;
  padding-top: 10px;
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  border-top: 3px solid var(--signal-soft);
}

h3 { margin: 34px 0 10px; font-size: 1.24rem; }
p { margin: 0 0 18px; }
a { color: #9b3f19; text-decoration-thickness: 2px; text-underline-offset: 3px; }
strong { color: #233d34; }

figure { margin: 34px 0 48px; }
img { display: block; width: 100%; height: auto; border-radius: 13px; border: 1px solid #bdc5bf; }

ol, ul { margin: 0 0 26px; padding-left: 1.45em; }
li { margin: 8px 0; }

.table-wrap { margin: 28px 0 34px; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font: 0.91rem/1.48 Inter, ui-sans-serif, system-ui, sans-serif; }
th, td { padding: 13px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
th { background: var(--signal-soft); color: #4d2b1d; }

pre {
  margin: 24px 0 30px;
  padding: 20px;
  overflow-x: auto;
  border: 1px solid #c9cec8;
  border-radius: 10px;
  background: #edf1ed;
  font: 0.88rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
}

code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
p code, li code { padding: 0.12em 0.3em; border-radius: 4px; background: #edf1ed; font-size: 0.9em; }

@media (max-width: 620px) {
  body { font-size: 17px; }
  .article-shell { width: 100%; margin: 0; border: 0; border-radius: 0; }
  th, td { min-width: 150px; }
}
