  --bg:#fcfcfa; --fg:#2b2b2b; --muted:#8a8579; --line:#e4e1d8;
  --accent:#7a2e2e; --card:#fff;
  --serif:"Georgia","Times New Roman",serif;
  --sans:-apple-system,"Segoe UI",Roboto,Ubuntu,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--serif);line-height:1.55}
header{background:linear-gradient(180deg,#f4f1ea, #fcfcfa);border-bottom:2px solid var(--gold,#c8a951);padding:14px 18px}
header h1{margin:0 0 8px;font-size:22px;font-family:var(--serif);font-weight:600}
header .sub{color:var(--muted);font-size:14px;font-weight:normal}
.topbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
#q{flex:1;min-width:220px;padding:8px 12px;font-size:15px;font-family:var(--sans);border:1px solid var(--line);border-radius:6px;background:#fff}
#counter{font:12px var(--sans);color:var(--muted)}
main{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;min-height:calc(100vh - 80px)}
nav{border-right:1px solid var(--line);padding:14px;max-height:calc(100vh - 80px);overflow:auto}
nav h3{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;margin:18px 0 6px;letter-spacing:.06em}
nav a{display:block;justify-content:space-between;font:13.5px var(--sans);color:var(--fg);padding:3px 6px;border-radius:4px;cursor:pointer;text-decoration:none}
nav a:hover{}
nav a{background:none}
nav a:hover{color:var(--bg)}
nav a:hover{background:var(--accent);color:#fff}
nav .cnt{color:var(--muted);font-size:11px;margin-left:6px}
nav a:hover .cnt{color:#f1dfa8}
nav a.active{background:var(--accent);color:#fff}
nav a.active .cnt{color:#f1dfa8}
#results{padding:0;overflow:auto;max-height:calc(100vh - 80px)}
.post{padding:12px 20px;border-bottom:1px solid var(--line);cursor:pointer}
.post:hover{background:#f7f4ec}
.post .date{font:11.5px var(--sans);color:var(--muted)}
.post h3{margin:1px 0 4px;font-size:15.5px;font-weight:600;font-family:var(--serif);line-height:1.3;color:var(--fg)}
.post .cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.chip{font:11px var(--sans);color:var(--accent);background:#f3ede2;border:1px solid #e2d2b8;padding:1px 8px;border-radius:10px;cursor:pointer}
.tagchip{color:#5a5a5a;border-color:#dad6cc;background:#f6f4ee}
.post .type-tag{font:10px var(--sans);color:#fff;background:#a4a197;border-radius:8px;padding:1px 6px;margin-right:6px}
.post .type-tag.page{background:#4a6f8a}
.post.mark{background:#faf7f0}
#detail{position:fixed;inset:0;background:rgba(20,18,16,0.88);overflow:auto;padding:4vh 2vw;z-index:5}
.sheet{background:#fcfcfa;max-width:880px;margin:0 auto;padding:34px 44px;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.sheet h2{margin:.1em 0 .2em;font-size:24px;line-height:1.3}
.sheet .meta{font:13px var(--sans);color:var(--muted);margin-bottom:18px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.sheet .meta a{color:var(--muted)}
.sheet .close{position:sticky;top:0;float:right;background:none;border:none;font-size:26px;color:var(--muted);cursor:pointer;line-height:1}
.sheet img{max-width:100%;height:auto;border-radius:6px}
.sheet img.missing{border:1px dashed #d99;padding:18px;color:#8a5a44;font:13px var(--sans);opacity:.8}
.sheet blockquote{border-left:3px solid #c8a951;margin:1em 0;padding:.2em 1em;color:#5a5449}
.sheet table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:13.5px}
.sheet td,.sheet th{border:1px solid var(--line);padding:5px 8px}
.sheet h4{margin:1.1em 0 .3em}
.sheet p{margin:.5em 0}
mark.hl{background:#f5e08a}
.no-results{padding:40px;color:var(--muted);font-family:var(--sans)}
mark.he{background:#ffe9a1;padding:0 2px;border-radius:2px}
@media(max-width:760px){main{grid-template-columns:1fr}nav{display:none}}
