/* 黑盒 BLACKBOX — 纯黑克制，Leica 审美 */
:root{
  --bg:#0a0a0a;
  --bg2:#111111;
  --bg3:#161616;
  --ink:#e6e6e6;
  --dim:#8a8a8a;
  --faint:#4a4a4a;
  --accent:#ff4d00;
  --line:#1f1f1f;
  --serif:"Songti SC","Noto Serif SC",STSong,"SimSun",serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--serif);
  line-height:1.9;
  min-height:100vh;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#0a0a0a}

/* ── 导航 ── */
.nav{
  display:flex;align-items:baseline;gap:2rem;
  padding:1.4rem 2rem;
  border-bottom:1px solid var(--line);
  position:sticky;top:0;background:rgba(10,10,10,.92);
  backdrop-filter:blur(8px);z-index:10;
}
.brand{font-size:1.15rem;letter-spacing:.08em;font-weight:700}
.brand span{color:var(--faint);font-size:.72rem;letter-spacing:.28em;margin-left:.5em;font-weight:400}
.nav nav{display:flex;gap:1.6rem;margin-left:auto;font-size:.95rem}
.nav nav a{color:var(--dim);transition:color .2s}
.nav nav a:hover{color:var(--ink)}
.nav nav a.active{color:var(--accent)}

/* 移动端：压扁导航占位 */
@media (max-width:640px){
  .nav{flex-wrap:wrap;gap:.4rem 1rem;padding:.7rem 1rem}
  .brand{font-size:1rem}
  .brand span{display:none}
  .nav nav{gap:.9rem;font-size:.82rem;margin-left:0;width:100%;overflow-x:auto;white-space:nowrap}
  .nav nav a{padding:.2rem 0}
}

/* ── 布局 ── */
.container{max-width:880px;margin:0 auto;padding:3.5rem 2rem 6rem}
.hero{padding:3rem 0 2.5rem}
h1{font-size:3.2rem;font-weight:700;letter-spacing:.12em}
.hero .sub{margin-top:1.2rem;font-size:1.05rem;color:var(--ink)}
.hero .dim{color:var(--dim);font-size:.9rem;margin-top:.5rem}
section h2{
  font-size:1.05rem;letter-spacing:.22em;color:var(--dim);
  border-bottom:1px solid var(--line);padding-bottom:.8rem;margin:3rem 0 1.4rem;
}

/* ── 卡片 ── */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.card{
  display:block;background:var(--bg2);border:1px solid var(--line);
  padding:1.6rem 1.4rem;transition:border-color .25s, transform .25s;
}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card h2{font-size:1.05rem;color:var(--ink);border:none;margin:0 0 .5rem;letter-spacing:.08em}
.card p{color:var(--dim);font-size:.86rem;line-height:1.7}

/* ── 反转链 ── */
.reveals ol{list-style:none;counter-reset:r}
.reveals li{
  counter-increment:r;padding:.9rem 0;border-bottom:1px solid var(--line);
  display:flex;gap:1rem;align-items:baseline;font-size:.95rem;
}
.reveals li::before{
  content:counter(r);color:var(--faint);font-size:.8rem;
  min-width:1.6rem;font-family:ui-monospace,monospace;
}
.reveals li b{color:var(--accent);font-weight:600;min-width:5.5em}
.reveals li:last-child{border-bottom:none}
.reveals li:last-child b{color:var(--ink)}

/* ── 表格 ── */
table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0}
th,td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--faint);font-weight:500;font-size:.8rem;letter-spacing:.1em;white-space:nowrap}
td b{color:var(--accent);font-weight:600}
.tag{display:inline-block;font-size:.72rem;border:1px solid var(--faint);color:var(--dim);padding:.05rem .5rem;border-radius:2px;margin-right:.35rem}
.tag.hot{border-color:var(--accent);color:var(--accent)}

/* ── 章节块 ── */
.ch-block{margin-bottom:2.2rem;border-left:2px solid var(--line);padding-left:1.2rem}
.ch-block h3{font-size:1.1rem;letter-spacing:.1em;margin-bottom:.3rem}
.ch-block .meta{color:var(--faint);font-size:.78rem;font-family:ui-monospace,monospace;margin-bottom:.6rem}
.ch-block p{color:var(--dim);font-size:.9rem;line-height:1.8}

/* ── 人物卡 ── */
.person{background:var(--bg2);border:1px solid var(--line);padding:1.5rem 1.6rem;margin-bottom:1.2rem}
.person h3{font-size:1.15rem;letter-spacing:.06em}
.person .meta{color:var(--faint);font-size:.8rem;margin:.3rem 0 .8rem;font-family:ui-monospace,monospace}
.person p{color:var(--dim);font-size:.9rem;line-height:1.85}
.person .quote{color:var(--ink);border-left:2px solid var(--accent);padding-left:.9rem;margin-top:.9rem;font-size:.92rem}
.person.dead{border-style:dashed}
.person.dead h3{color:var(--dim)}

/* ── 关系图 ── */
.graph-wrap{background:var(--bg2);border:1px solid var(--line);padding:1.2rem;margin-top:1rem}
.graph-wrap svg{width:100%;height:auto;display:block}
.node rect{fill:var(--bg3);stroke:var(--faint)}
.node text{fill:var(--ink);font-family:var(--serif)}
.node .sub{fill:var(--faint);font-size:10px}
.edge{stroke:#333;stroke-width:1}
.edge.dashed{stroke-dasharray:4 4}
.edge.hot{stroke:var(--accent)}
.elabel{fill:var(--faint);font-size:10.5px;font-family:var(--serif)}
.hot rect{stroke:var(--accent)}
.hot .title{fill:var(--accent)}

/* ── 阅读器 ── */
.reader{max-width:760px;margin:0 auto;padding:2rem 2rem 6rem}
.chapter{display:none;min-height:60vh}
.chapter.active{display:block;animation:fade .4s}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chapter .ch-title{
  font-size:1.6rem;letter-spacing:.14em;margin:2rem 0 .4rem;font-weight:700;
}
.chapter .ch-num{color:var(--faint);font-size:.8rem;font-family:ui-monospace,monospace}
.chapter .body{margin-top:2.4rem}
.chapter .body p{margin-bottom:1.6rem;font-size:1.02rem;color:#cfcfcf;text-align:justify}
.chapter .body .frag{font-style:italic;color:var(--faint);border-left:2px solid var(--line);padding-left:1rem}
.chapter .body .punch{font-style:italic;color:var(--accent);border-left:2px solid var(--accent);padding-left:1rem}
.reader-nav{
  display:flex;align-items:center;gap:1.4rem;justify-content:center;
  padding:1.2rem;border-top:1px solid var(--line);
  position:sticky;bottom:0;background:rgba(10,10,10,.94);backdrop-filter:blur(8px);
}
.reader-nav button{
  background:none;border:1px solid var(--line);color:var(--dim);
  font-family:var(--serif);font-size:.9rem;padding:.45rem 1.1rem;cursor:pointer;
  transition:border-color .2s,color .2s;
}
.reader-nav button:hover{border-color:var(--accent);color:var(--accent)}
.reader-nav .page{color:var(--faint);font-size:.8rem;font-family:ui-monospace,monospace;min-width:4.5em;text-align:center}
.reader-hint{color:var(--faint);font-size:.75rem;text-align:center;padding:.6rem 0 0}

footer{padding:3rem 2rem;border-top:1px solid var(--line);color:var(--faint);font-size:.78rem;text-align:center;letter-spacing:.14em}
