:root {
  --ink: #1c2430;
  --muted: #5d6b7c;
  --line: #e6ebf1;
  --paper: #f7f4ee;
  --card: #fff;
  --accent: #245c4a;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Source Han Serif SC", "Noto Serif SC", "Songti SC", Georgia, serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.75;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { width: min(980px, calc(100% - 40px)); margin: 0 auto; }
header {
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.bar { display: flex; align-items: center; justify-content: space-between; padding: 18px 0; gap: 16px; }
.brand { font-size: 22px; font-weight: 700; color: var(--ink); letter-spacing: 0.08em; }
nav { display: flex; gap: 22px; font-size: 15px; }
nav a { color: var(--muted); }
.hero { padding: 56px 0 28px; }
.hero p.kicker { color: var(--accent); letter-spacing: 0.18em; font-size: 13px; margin: 0 0 12px; }
.hero h1 { font-size: 36px; line-height: 1.3; margin: 0 0 14px; font-weight: 700; }
.hero .lead { color: var(--muted); font-size: 17px; max-width: 680px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; padding: 12px 0 60px; }
article.card, .card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 22px;
}
.card small { color: var(--accent); letter-spacing: 0.12em; }
.card h2 { margin: 8px 0 10px; font-size: 22px; }
.card p { margin: 0; color: var(--muted); }
.article { padding: 40px 0 80px; }
.article h1 { font-size: 32px; margin: 0 0 12px; }
.article .meta { color: var(--muted); margin-bottom: 24px; }
.article p { margin: 0 0 16px; }
footer { border-top: 1px solid var(--line); padding: 28px 0 40px; color: var(--muted); font-size: 13px; background: #fff; }
