
:root{
  --paper:#f5f0e5; --card:#fffdf7; --ink:#1a2332; --body:#3d4553;
  --muted:#8a8171; --line:#ddd2bf; --accent:#a63d2f; --ok:#3c7a52;
  --mono:ui-monospace,"SF Mono",Consolas,monospace;
}
*{box-sizing:border-box}
body{
  margin:0;background:var(--paper);color:var(--body);
  font-family:"PingFang SC","Microsoft YaHei","Songti SC",system-ui,sans-serif;
  line-height:1.72;-webkit-font-smoothing:antialiased;
}
.wrap{max-width:760px;margin:0 auto;padding:44px 22px 90px}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(166,61,47,.25)}
a:hover{border-bottom-color:var(--accent)}
.crumb{font-size:12.5px;color:var(--muted);margin-bottom:26px;letter-spacing:.3px}
.crumb a{color:var(--muted);border:none}
.crumb a:hover{color:var(--accent)}
h1{font-size:29px;color:var(--ink);letter-spacing:.5px;margin:0 0 10px;font-weight:600}
h2{font-size:17px;color:var(--ink);margin:40px 0 14px;letter-spacing:.6px;
   padding-bottom:8px;border-bottom:1px solid var(--line);font-weight:600}
.meta{font-size:12.5px;color:var(--muted);margin-bottom:30px;letter-spacing:.2px}
.meta span{margin-right:16px}
.lede{font-size:15.5px;color:var(--body);margin:0 0 8px}
ol.assert{list-style:none;margin:0;padding:0;counter-reset:a}
ol.assert li{
  counter-increment:a;position:relative;padding:13px 14px 13px 46px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  margin-bottom:9px;font-size:15px;color:var(--ink);
}
ol.assert li::before{
  content:counter(a);position:absolute;left:14px;top:13px;
  width:21px;height:21px;border-radius:50%;background:#e9e2d4;color:var(--muted);
  font-size:11px;display:grid;place-items:center;font-family:var(--mono);
}
ol.assert li:target{border-color:var(--accent);box-shadow:0 0 0 3px rgba(166,61,47,.09)}
ol.assert cite{
  display:block;margin-top:6px;font-size:12.5px;color:#6b6353;
  font-style:normal;font-family:var(--mono);letter-spacing:.2px;
}
ol.assert li.nosrc{border-left:3px solid var(--accent)}
ol.assert li.nosrc cite{color:var(--accent)}
.foot{margin-top:56px;padding-top:18px;border-top:1px solid var(--line);
      font-size:12px;color:var(--muted);line-height:1.9}
.foot a{color:var(--muted);border:none}
.tag{display:inline-block;padding:2px 8px;border-radius:5px;background:#e9e2d4;
     color:var(--muted);font-size:11.5px;margin-right:6px}
/* 索引卡 */
.cards{display:grid;gap:12px;margin-top:22px}
.card{display:block;padding:17px 18px;background:var(--card);border:1px solid var(--line);
      border-radius:12px;color:inherit;border-bottom:1px solid var(--line)}
.card:hover{border-color:var(--accent);transform:translateY(-1px);transition:.15s}
.card h3{margin:0 0 5px;font-size:16.5px;color:var(--ink);font-weight:600;letter-spacing:.3px}
.card p{margin:0;font-size:13px;color:var(--muted)}
.card .num{float:right;font-family:var(--mono);font-size:12px;color:var(--muted)}
/* 时间轴 */
.axis{position:relative;margin:26px 0 0;padding-left:26px}
.axis::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:var(--line)}
.node{position:relative;margin-bottom:8px}
.node::before{content:"";position:absolute;left:-24px;top:19px;width:9px;height:9px;
  border-radius:50%;background:var(--paper);border:1.5px solid var(--muted)}
.node.has::before{background:var(--accent);border-color:var(--accent)}
.node.empty::before{background:var(--paper);border-color:#c9bfad}
.node summary{list-style:none;cursor:pointer;padding:11px 14px;border-radius:9px;
  background:var(--card);border:1px solid var(--line);font-size:15px;color:var(--ink)}
.node summary::-webkit-details-marker{display:none}
.node summary::after{content:"›";float:right;color:var(--muted);transition:.15s}
.node[open] summary::after{transform:rotate(90deg)}
.node summary .k{margin-left:8px;font-size:12px;color:var(--muted);font-family:var(--mono)}
.node.empty summary{color:var(--muted);background:transparent;border-style:dashed}
.node .body{padding:12px 4px 4px 2px}
