:root{--ink:#241f1b;--muted:#746c64;--paper:#fffdf8;--cream:#f4efe5;--line:#ddd4c6;--coral:#c95f48;--green:#2f6657;--gold:#ad7a29;--shadow:0 18px 50px rgba(66,49,31,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,#f5efe3 0,#fffdf8 360px);color:var(--ink);font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif}.hero{padding:54px clamp(20px,6vw,86px) 38px;border-bottom:1px solid rgba(173,122,41,.2);background:radial-gradient(circle at 84% 18%,rgba(201,95,72,.16),transparent 30%),radial-gradient(circle at 12% 20%,rgba(47,102,87,.14),transparent 28%)}.brand{color:var(--ink);font-family:"Songti SC","Noto Serif SC",serif;font-size:clamp(30px,5vw,62px);font-weight:700;letter-spacing:-.04em;text-decoration:none}.hero p{margin:15px 0 0;color:var(--muted);font-size:16px}main{width:min(1540px,100%);margin:auto;padding:30px clamp(16px,4vw,56px) 80px}.toolbar{display:flex;gap:10px;align-items:flex-end;position:sticky;top:0;z-index:10;padding:12px 0;background:rgba(255,253,248,.92);backdrop-filter:blur(14px)}.search{display:grid;gap:7px;flex:1;color:var(--muted);font-size:13px}.search input{width:100%;padding:15px 18px;border:1px solid var(--line);border-radius:14px;background:white;color:var(--ink);font-size:16px;outline:none}.search input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(47,102,87,.12)}button,.download{border:1px solid var(--line);border-radius:11px;background:white;color:var(--ink);padding:10px 14px;font:inherit;cursor:pointer;text-decoration:none}.quiet{height:51px}.stats{margin:14px 0;color:var(--muted)}.categories{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 28px}.categories button.active{background:var(--ink);color:white;border-color:var(--ink)}.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.card{display:flex;flex-direction:column;min-height:238px;padding:22px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.84);box-shadow:0 4px 18px rgba(66,49,31,.04);cursor:pointer;transition:.2s}.card:hover{transform:translateY(-3px);border-color:#c5b9aa;box-shadow:var(--shadow)}.card .eyebrow,.reader .eyebrow{color:var(--coral);font-size:12px;font-weight:700;letter-spacing:.06em}.card h2{font-family:"Songti SC","Noto Serif SC",serif;font-size:21px;line-height:1.48;margin:12px 0}.card .book{margin-top:auto;color:var(--muted);font-size:13px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}.tag{padding:4px 8px;border-radius:999px;background:var(--cream);color:var(--green);font-size:12px}.reader{min-height:60vh}.back{margin-bottom:24px}.reader-head{display:flex;justify-content:space-between;gap:28px;align-items:flex-start;padding:28px 0;border-bottom:1px solid var(--line)}.reader h1{max-width:900px;margin:8px 0;font-family:"Songti SC","Noto Serif SC",serif;font-size:clamp(30px,4vw,52px);line-height:1.25}.reader-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:520px}.download.accent{background:var(--green);color:white;border-color:var(--green)}.tree{padding:30px 0}.tree ul{list-style:none;margin:0;padding-left:30px;border-left:1px solid var(--line)}.tree>ul{padding-left:0;border-left:0}.tree li{position:relative;margin:8px 0}.tree li::before{content:"";position:absolute;left:-30px;top:18px;width:22px;border-top:1px solid var(--line)}.tree>ul>li::before{display:none}.node{display:flex;align-items:flex-start;gap:9px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:transparent;text-align:left;line-height:1.65}.node:hover{background:var(--cream)}.node .toggle{flex:0 0 20px;color:var(--coral);font-weight:700}.node.leaf .toggle{color:var(--gold)}.node.level-0{font-weight:700;font-size:17px;color:var(--green);background:rgba(47,102,87,.055)}.collapsed>ul{display:none}.raw{white-space:pre-wrap;word-break:break-word;padding:24px;border:1px solid var(--line);border-radius:16px;background:#25211d;color:#f4efe5;line-height:1.7;max-height:72vh;overflow:auto}footer{padding:32px;text-align:center;color:var(--muted);border-top:1px solid var(--line)}.empty{grid-column:1/-1;padding:70px 20px;text-align:center;color:var(--muted)}@media(max-width:860px){.reader-head{display:block}.reader-actions{justify-content:flex-start;margin-top:22px}.tree ul{padding-left:18px}.tree li::before{left:-18px;width:12px}}@media(max-width:560px){.hero{padding-top:34px}.map-grid{grid-template-columns:1fr}.reader-actions>*{flex:1 1 45%;text-align:center}.node{padding-left:6px}.toolbar{align-items:stretch}.quiet{margin-top:20px}}
