:root { --ink:#2b2620; --bg:#faf7f2; --card:#fff; --accent:#8a5a2b; --muted:#8a8377; --line:#e8e1d5; --head-h:58px; }
* { box-sizing:border-box; }
:root { color-scheme:only light; }
* { scrollbar-width:thin; scrollbar-color:var(--muted) transparent; }
::-webkit-scrollbar { width:9px; height:9px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--muted); border-radius:5px; }
::-webkit-scrollbar-thumb:hover { background:var(--accent); }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink);
  font:17.5px/1.85 "PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
input,button,textarea,select { font:inherit; }

/* ---- top bar ---- */
.site-head { position:sticky; top:0; z-index:100; height:var(--head-h);
  display:flex; align-items:center; gap:14px; padding:0 22px;
  background:var(--card); border-bottom:1px solid var(--line); }
.menu-btn { display:none; border:1px solid var(--line); background:none; color:var(--ink);
  border-radius:8px; font-size:16px; line-height:1; padding:7px 10px; cursor:pointer; }
.brand { font-family:"PingFang SC","Microsoft YaHei","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  font-weight:700; font-size:18px; color:var(--accent); text-decoration:none; letter-spacing:.08em; }
.tagline { color:var(--muted); font-size:13px; letter-spacing:.02em;
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; white-space:nowrap; }
.theme-btn { margin-left:auto; border:1px solid var(--line); background:none; color:var(--muted);
  border-radius:999px; padding:6px 12px; font-size:13px; cursor:pointer; white-space:nowrap; }
.theme-btn:hover { color:var(--accent); border-color:var(--accent); }
.searchbox { position:relative; }
.searchbox input { width:240px; padding:8px 14px; font-size:14px; border:1px solid var(--line);
  border-radius:999px; outline:none; background:var(--bg); color:var(--ink);
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.searchbox input:focus { border-color:var(--accent); background:var(--card); }
.hits { position:absolute; right:0; top:calc(100% + 8px); width:min(360px,88vw); max-height:60vh;
  overflow:auto; display:none; background:var(--card); border:1px solid var(--line);
  border-radius:10px; box-shadow:0 8px 28px rgba(0,0,0,.10); }
.hits.show { display:block; }
.hits a { display:block; padding:9px 14px; text-decoration:none; color:var(--ink);
  font-size:14px; border-bottom:1px solid var(--line); }
.hits a:last-child { border-bottom:none; }
.hits a:hover { background:var(--bg); }
.hits a small { display:block; color:var(--muted); font-size:12px; }

/* ---- layout ---- */
.layout { display:flex; flex-wrap:nowrap; margin:0; gap:22px; padding:0 22px; align-items:flex-start; }
.sidebar { flex:0 0 236px; width:236px; position:sticky; top:var(--head-h);
  max-height:calc(100vh - var(--head-h) - 20px); overflow-y:auto; padding:14px 4px 30px 0; }
.sidebar nav { font-family:"PingFang SC","Microsoft YaHei","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.sidebar details { border-bottom:1px solid var(--line); }
.sidebar details:last-child { border-bottom:none; }
.sidebar summary { list-style:none; display:flex; align-items:center; justify-content:space-between;
  padding:11px 8px; cursor:pointer; font-size:14.5px; font-weight:600; color:var(--ink); border-radius:8px; }
.sidebar summary::-webkit-details-marker { display:none; }
.sidebar summary::after { content:"+"; color:var(--muted); font-size:15px; }
.sidebar > nav > details[open] > summary::after,
.sidebar details.s-g[open] > summary::after { content:"−"; }
.sidebar summary:hover { color:var(--accent); }
.s-count { color:var(--muted); font-size:12px; font-weight:400; margin-left:6px; }
.sidebar summary { gap:6px; }
.sidebar summary .s-count { margin-left:auto; }
.sidebar ul { list-style:none; margin:0; padding:2px 0 10px; }
.sidebar li a { display:block; padding:5px 10px 5px 20px; font-size:14px; line-height:1.55;
  color:var(--muted); text-decoration:none; border-left:2px solid transparent; border-radius:0 8px 8px 0; }
.sidebar li a:hover { color:var(--accent); background:var(--bg); }
.sidebar li a.current { color:var(--accent); font-weight:600; border-left-color:var(--accent); background:var(--bg); }
/* 二级分组：可折叠，默认收起；当前文章所在分组自动展开 */
.sidebar details.s-g { border-bottom:none; }
.sidebar details.s-g summary { padding:6px 8px 6px 14px; font-size:13px; font-weight:500; color:var(--muted); }
.sidebar details.s-g[open] summary, .sidebar details.s-g summary:hover { color:var(--accent); }
.gb-link { display:flex; align-items:center; gap:8px; margin:14px 8px 4px; padding:9px 12px;
  border:1px solid var(--line); border-radius:10px; text-decoration:none; color:var(--ink);
  font-size:13.5px; font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.gb-link:hover { color:var(--accent); border-color:var(--accent); }
.gb-link svg { width:18px; height:18px; flex:none; }
.main { flex:1 1 0; min-width:0; max-width:840px; margin:0 auto; padding:18px 0 40px; }

/* ---- comments ---- */
.comments { margin-top:26px; }
.comments h2 { font-size:19px; margin:0; padding:0; border:none; }
.comments .c-note { color:var(--muted); font-size:13px; margin:4px 0 8px;
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }

/* ---- article ---- */
article { background:var(--card); border:1px solid var(--line); border-radius:12px;
  padding:34px 40px 40px; }
.a-head { padding-bottom:18px; margin-bottom:26px; border-bottom:1px solid var(--line); }
.a-series { font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; font-size:12.5px; color:var(--muted); letter-spacing:.05em; }
.a-series a { color:var(--muted); text-decoration:none; }
.a-series a:hover { color:var(--accent); }
h1.a-title { font-size:27px; line-height:1.45; margin:8px 0 0; }
.a-body h1 { font-size:21px; margin-top:32px; }
.a-body h2 { font-size:19px; margin-top:34px; border-left:4px solid var(--accent); padding-left:12px; }
.a-body h3 { font-size:16.5px; margin-top:26px; }
.a-body h1:first-child, .a-body h2:first-child { margin-top:0; }
.a-body p { margin:.9em 0; text-align:justify; }

a { color:var(--accent); }
blockquote { margin:1em 0; padding:2px 16px; color:var(--muted); border-left:3px solid var(--line); }
table { border-collapse:collapse; width:100%; margin:1em 0; font-size:14px; }
th,td { border:1px solid var(--line); padding:6px 10px; text-align:left; vertical-align:top; }
th { background:#f3ede2; }
code { background:#f3ede2; padding:1px 5px; border-radius:4px; font-size:.9em; }
pre { background:#f3ede2; padding:12px; border-radius:8px; overflow-x:auto; }
pre code { background:none; padding:0; }
hr { border:none; border-top:1px solid var(--line); margin:2em 0; }

/* ---- home / series ---- */
.hero { text-align:center; padding:34px 10px 6px; }
.hero h1 { font-size:36px; letter-spacing:.12em; margin:0; }
.hero p { color:var(--muted); margin:10px 0 0; font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.series { margin-top:30px; }
.series > h2 { border:none; padding:0; font-size:20px; margin:0; }
.series > p.desc { color:var(--muted); margin:4px 0 12px; font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; font-size:14px; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.cards a { display:block; background:var(--card); border:1px solid var(--line); border-radius:10px;
  padding:12px 14px; text-decoration:none; color:var(--ink); font-size:15px; line-height:1.6;
  transition:border-color .15s; }
.cards a:hover { border-color:var(--accent); }
.cards a .t { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-weight:600; line-height:1.6; }
.cards a .excerpt { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  color:var(--muted); font-size:13.5px; line-height:1.7; margin-top:6px; }
.heat { color:var(--accent); font-size:12px; font-weight:400; margin-left:6px; white-space:nowrap; }
.count { color:var(--muted); font-size:13px; font-weight:400; font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; }
.g-name { font-size:16px; margin:20px 0 10px; }
.g-name .count { font-size:12.5px; }
.toc-h { font-size:20px; margin:26px 0 4px; padding-bottom:6px; border-bottom:1px solid var(--line); }
.toc-list { list-style:none; margin:0 0 10px; padding:0; columns:2; column-gap:30px; }
.toc-list li { break-inside:avoid; }
.toc-list a { display:block; padding:3px 0; text-decoration:none; color:var(--ink); font-size:14px; line-height:1.6; }
.toc-list a:hover { color:var(--accent); }

/* ---- about box ---- */
.intro { margin-top:28px; background:var(--card); border:1px solid var(--line);
  border-radius:12px; padding:24px 28px; }
.intro p { margin:0; font-size:15.5px; line-height:2; text-align:justify; }
.intro .ov { text-decoration:none; }
.intro .agent-line { margin-top:10px; font-size:14.5px; color:var(--muted); text-align:left; }
.intro .ebook-line { margin-top:12px; font-size:15px; }
.intro .ebook-line a { font-weight:600; }
.intro .ebook-note { color:var(--muted); font-size:13px; }
.socials { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:16px; padding-top:16px;
  border-top:1px dashed var(--line); }
.socials a, .socials .soc-txt { font-size:13.5px; text-decoration:none; color:var(--muted);
  white-space:nowrap; }
.socials a:hover { color:var(--accent); }

footer.foot { margin-top:44px; padding:14px 0 0; border-top:1px solid var(--line);
  color:var(--muted); font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif; font-size:13px; }
footer.foot a { color:var(--muted); }

@media (max-width: 860px) {
  .menu-btn { display:inline-flex; }
  .tagline { display:none; }
  .intro { padding:18px; }
  .searchbox input { width:150px; }
  .layout { gap:0; }
  .sidebar { position:fixed; z-index:90; left:0; top:var(--head-h); bottom:0; width:280px;
    flex:none; background:var(--card); border-right:1px solid var(--line); padding:14px;
    transform:translateX(-102%); transition:transform .2s ease; max-height:none; }
  .sidebar.open { transform:none; box-shadow:0 0 40px rgba(0,0,0,.18); }
  article { padding:24px 22px 30px; }
  .toc-list { columns:1; }
}
/* 暗色仅经手动切换（.dark）生效，站点默认亮色；亮色态声明 only light，
   禁用浏览器（Edge/Chrome 自动深色）对亮色页面的强制压暗 */
:root.light { color-scheme:only light; }
:root.dark { color-scheme:dark; --ink:#d8d2c7; --bg:#221f1a; --card:#2c2822; --accent:#c99b62; --muted:#948c7d; --line:#3d3830; }
:root.dark th, :root.dark code, :root.dark pre { background:#332e27; }
:root.dark .hits { box-shadow:0 8px 28px rgba(0,0,0,.45); }
