
  :root{
    --ink:#2b2b26; --ink-soft:#5a564a; --paper:#faf8f3; --panel:#f3efe6;
    --accent:#7a1f1f; --accent-soft:#a34040; --gold:#b08d57; --line:#ddd5c4;
    --de-col:#3d3a33; --zh-col:#1f1f1c;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    font-family:"Noto Serif SC","Source Han Serif SC","Songti SC",serif;
    background:var(--paper); color:var(--ink); line-height:1.9;
  }
  /* ── 顶部 ── */
  header{
    position:sticky; top:0; z-index:50; background:rgba(250,248,243,.96);
    backdrop-filter:blur(6px); border-bottom:1px solid var(--line);
    padding:.65rem 1.4rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
  }
  header .brand{font-weight:700; font-size:1.02rem; color:var(--accent); letter-spacing:.04em}
  header .brand small{display:block; font-size:.68rem; color:var(--ink-soft); font-style:italic; letter-spacing:0}
  header nav{display:flex; gap:.4rem; margin-left:auto; flex-wrap:wrap}
  header nav button{
    font-family:inherit; font-size:.78rem; padding:.28rem .7rem; border:1px solid var(--line);
    background:#fff; color:var(--ink-soft); border-radius:999px; cursor:pointer; transition:.2s;
  }
  header nav button:hover{border-color:var(--accent); color:var(--accent)}
  header nav button.on{background:var(--accent); color:#fff; border-color:var(--accent)}
  /* ── 布局 ── */
  .layout{display:flex; max-width:1500px; margin:0 auto; min-height:calc(100vh - 58px)}
  aside{
    width:280px; flex-shrink:0; border-right:1px solid var(--line); padding:1.6rem 1.2rem;
    position:sticky; top:58px; height:calc(100vh - 58px); overflow-y:auto; background:var(--panel);
  }
  aside h3{font-size:.8rem; color:var(--gold); letter-spacing:.25em; margin-bottom:1rem; font-weight:600}
  .toc-item{padding:.5rem .6rem; border-radius:8px; cursor:pointer; margin-bottom:.15rem; transition:.15s}
  .toc-item:hover{background:#fff}
  .toc-item.on{background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.07); border-left:3px solid var(--accent)}
  .toc-item .t-zh{font-size:.9rem; font-weight:600; color:var(--ink)}
  .toc-item .t-de{font-size:.7rem; color:var(--ink-soft); font-style:italic}
  .toc-item .t-status{font-size:.65rem; margin-top:.15rem}
  .st-done{color:#3a7d44}.st-doing{color:var(--accent)}.st-todo{color:#a9a294}
  main{flex:1; padding:2.2rem 3rem 6rem; max-width:1150px}
  /* ── 封面 ── */
  .cover{text-align:center; padding:4rem 1rem 3rem; border-bottom:1px solid var(--line); margin-bottom:2.5rem}
  .cover .la{font-style:italic; color:var(--ink-soft); font-size:1rem; letter-spacing:.02em}
  .cover h1{font-size:2.1rem; color:var(--accent); margin:.9rem 0 .4rem; letter-spacing:.08em}
  .cover .sub{color:var(--ink-soft); font-size:.95rem}
  .cover .meta{margin-top:1.6rem; font-size:.82rem; color:var(--ink-soft); line-height:2}
  .cover .rule{width:64px; height:2px; background:var(--gold); margin:1.4rem auto}
  /* ── 章节标题 ── */
  .chap-head{margin:3rem 0 1.6rem; padding-bottom:.8rem; border-bottom:2px solid var(--accent)}
  .chap-head .no{font-size:.8rem; color:var(--gold); letter-spacing:.3em}
  .chap-head h2{font-size:1.55rem; color:var(--ink); margin:.2rem 0}
  .chap-head .de{font-style:italic; color:var(--ink-soft); font-size:.95rem}
  .sec-head{margin:2.4rem 0 1rem; font-size:1.12rem; color:var(--accent); font-weight:700}
  .sec-head .de{font-weight:400; font-style:italic; color:var(--ink-soft); font-size:.85rem; margin-left:.6rem}
  .pageref{font-size:.68rem; color:var(--gold); letter-spacing:.1em; margin:1.8rem 0 .4rem; user-select:none}
  /* ── 对照句对 ── */
  .pair{display:grid; grid-template-columns:1fr 1fr; gap:0; border-bottom:1px dashed #e8e2d4; transition:background .15s}
  .pair:hover{background:#fffdf7}
  .pair.sel{background:#fdf6e8}
  .pair .cell{padding:.7rem 1rem; font-size:.92rem}
  .pair .de{color:var(--de-col); border-right:1px solid var(--line); font-family:"Noto Serif","Noto Serif SC",serif}
  .pair .zh{color:var(--zh-col)}
  .pair.fn .cell{font-size:.78rem; color:var(--ink-soft); padding:.45rem 1rem}
  .pair.fn .de{border-right-style:dotted}
  .fn-tag{display:inline-block; font-size:.62rem; color:var(--gold); border:1px solid var(--gold);
    border-radius:4px; padding:0 .3rem; margin-right:.4rem; vertical-align:.1em}
  .sn{font-size:.62rem; color:#c3baa5; margin-right:.45rem; user-select:none}
  /* ── 术语 ── */
  .term{border-bottom:1px dotted var(--accent-soft); cursor:help; color:inherit}
  .term:hover{background:#f7e9e9}
  /* ── 词条卡片 ── */
  #glossary-card{
    position:fixed; z-index:99; max-width:360px; background:#fff; border:1px solid var(--line);
    border-left:4px solid var(--accent); border-radius:10px; box-shadow:0 8px 30px rgba(0,0,0,.14);
    padding:.9rem 1.1rem; display:none; font-size:.84rem; line-height:1.8;
  }
  #glossary-card .gw{font-weight:700; color:var(--accent); font-size:.95rem}
  #glossary-card .gz{color:var(--ink); font-weight:600; margin-left:.5rem}
  #glossary-card .gn{color:var(--ink-soft); margin-top:.3rem; display:block}
  #glossary-tip{position:fixed; z-index:98; background:#2b2b26; color:#f5f2ea; font-size:.72rem;
    padding:.3rem .7rem; border-radius:6px; display:none; pointer-events:none; max-width:300px}
  /* ── 图例 ── */
  .legend{display:flex; gap:1.2rem; flex-wrap:wrap; font-size:.72rem; color:var(--ink-soft);
    margin:0 0 1.4rem; padding:.6rem .9rem; background:var(--panel); border-radius:8px}
  .legend b{color:var(--accent)}
  .progress-note{font-size:.75rem; color:var(--ink-soft); background:#fff8e8; border:1px solid #eed9a4;
    padding:.5rem .9rem; border-radius:8px; margin-bottom:1.4rem}
  .bio-wrap{max-width:780px; font-size:.94rem; line-height:2.15}
  .bio-wrap h4{color:var(--accent); margin:1.9rem 0 .5rem; font-size:1.05rem; border-left:3px solid var(--gold); padding-left:.6rem}
  .bio-wrap p{margin:.6rem 0; text-align:justify}
  footer{border-top:1px solid var(--line); margin-top:3rem; padding:1.4rem; text-align:center;
    font-size:.72rem; color:var(--ink-soft)}
  @media (max-width:900px){
    aside{display:none}
    main{padding:1.2rem 1rem 4rem}
    .pair{grid-template-columns:1fr}
    .pair .de{border-right:none; border-bottom:1px dotted var(--line); padding-bottom:.2rem}
    .pair .zh{padding-top:.2rem}
  }
