:root{
  --bg:#f6f1e8;
  --panel:#fffaf2;
  --ink:#23201c;
  --muted:#6a6158;
  --line:#dccfbf;
  --accent:#ab6b41;
  --accent2:#5b8878;
  --accent3:#5e79a2;
  --soft:#f2e8dc;
  --shadow:0 18px 40px rgba(47,36,26,.08);
}
html[data-theme="dark"]{
  --bg:#171512;
  --panel:#24201b;
  --ink:#f4ede4;
  --muted:#c1b3a5;
  --line:#4a4037;
  --accent:#f2ab79;
  --accent2:#8fc3b1;
  --accent3:#90add7;
  --soft:#2f2822;
  --shadow:0 18px 40px rgba(0,0,0,.26);
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
  color:var(--ink);
  background:radial-gradient(circle at top left, rgba(171,107,65,.08), transparent 24rem), radial-gradient(circle at top right, rgba(91,136,120,.08), transparent 22rem), var(--bg);
  line-height:1.75;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;gap:16px;align-items:center;justify-content:space-between;
  padding:14px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(12px);
}
.brand{font-weight:800;letter-spacing:.02em}
nav{display:flex;gap:10px;flex-wrap:wrap}
nav a,.tag,.button{
  border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:var(--panel)
}
nav a.active,.tag:hover,.button:hover{border-color:var(--accent);color:var(--accent)}
.icon-button{
  border:1px solid var(--line);border-radius:999px;padding:9px 14px;background:var(--panel);color:var(--ink);cursor:pointer
}
main{max-width:1240px;margin:0 auto;padding:28px 22px 72px}
.hero{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:22px;align-items:stretch;padding:26px;
  border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg, var(--panel), color-mix(in srgb, var(--soft) 35%, var(--panel)));box-shadow:var(--shadow);margin-bottom:24px
}
.hero h1{margin:0 0 12px;font-size:clamp(34px,5vw,62px);line-height:1.08}
.hero p{margin:0 0 12px;color:var(--muted)}
.hero-panel,.card{
  border:1px solid var(--line);border-radius:24px;background:var(--panel);box-shadow:var(--shadow)
}
.hero-panel{padding:20px}
.card{padding:20px;margin:16px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.metric{padding:16px;border-left:4px solid var(--accent);border-radius:16px;background:color-mix(in srgb, var(--panel) 75%, white)}
.metric strong{display:block;font-size:28px;margin-bottom:4px}
.section-title{margin:30px 0 12px;font-size:28px}
.chapter-layout,.plate-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.side{position:sticky;top:84px}
.plate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.plate-thumb,.toc-item{
  display:block;border:1px solid var(--line);border-radius:18px;background:var(--panel);overflow:hidden
}
.plate-thumb img{width:100%;height:100%;object-fit:contain;background:#fff}
.toc-item{padding:14px 16px}
.tag-row,.route{display:flex;gap:8px;flex-wrap:wrap}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.deep-card{padding:16px 0;border-top:1px solid var(--line)}
.deep-card:first-child{padding-top:0;border-top:0}
.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--accent);font-weight:800;text-transform:uppercase}
.snippet,.muted{color:var(--muted)}
details{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:color-mix(in srgb, var(--soft) 35%, var(--panel))}
summary{cursor:pointer;font-weight:800}
.footer-nav{display:flex;gap:12px;justify-content:space-between;margin-top:22px}
.footer-nav a{flex:1;text-align:center}
.glossary-row{display:grid;grid-template-columns:1.2fr .9fr 2fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.glossary-row:first-child{border-top:0;padding-top:0}
@media (max-width: 980px){
  .hero,.chapter-layout,.plate-layout{grid-template-columns:1fr}
  .side{position:static}
}
@media (max-width: 700px){
  nav{display:none}
  .split,.metric-grid,.glossary-row{grid-template-columns:1fr}
  main{padding:22px 14px 56px}
}
