:root{--paper:#f6f3ec;--paper2:#fdfbf6;--ink:#26231d;--ink2:#4b463c;--muted:#8b8474;--accent:#b3452e;--line:#e4dcc9;--line2:#d6ccb6;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.9 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.8}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix type='saturate' values='0'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='0.045'/></svg>")}
#progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:50;transition:width .1s linear}
::selection{background:rgba(179,69,46,.16)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.site-wrap{position:relative;z-index:2;max-width:780px;margin:0 auto;padding:0 22px 60px}
.site-header{display:flex;align-items:baseline;gap:18px;padding:26px 0 14px;border-bottom:1px solid var(--line)}
.brand{font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.4px;color:var(--ink);text-decoration:none}
.brand:hover{text-decoration:none}
.brand-dot{color:var(--accent)}
.site-header nav{margin-left:auto;display:flex;gap:16px}
.site-header nav a{font-size:14px;color:var(--ink2);padding-bottom:2px;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.site-header nav a:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}
main{min-height:60vh}
.hero{padding:52px 0 30px}
.kicker{font-size:12px;letter-spacing:.42em;color:var(--muted);margin:0 0 14px}
.hero h1{font-family:var(--serif);font-size:40px;line-height:1.25;margin:0 0 12px;font-weight:700}
.hero-sub{color:var(--muted);font-size:15px;margin:0 0 26px}
.search-row{max-width:460px;margin-bottom:16px}
#search{width:100%;font:15px/1.6 var(--sans);color:var(--ink);background:var(--paper2);border:1px solid var(--line2);border-radius:8px;padding:10px 14px;outline:none;transition:border-color .15s,box-shadow .15s}
#search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(179,69,46,.12)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.chip{font-size:12.5px;color:var(--ink2);background:var(--paper2);border:1px solid var(--line2);border-radius:999px;padding:4px 12px;cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.active{background:var(--accent);border-color:var(--accent);color:#fdfbf6}
.cards{display:flex;flex-direction:column;gap:0}
.card{background:var(--paper2);border:1px solid var(--line);border-radius:10px;padding:22px 24px;margin-bottom:14px;transition:border-color .18s,transform .18s,box-shadow .18s}
.card:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(90,80,55,.08)}
.card-title{font-family:var(--serif);font-size:21px;font-weight:700;margin:0 0 8px;line-height:1.4}
.card-title a{color:var(--ink)}
.card-title a:hover{color:var(--accent);text-decoration:none}
.card-meta{font-size:13px;color:var(--muted);margin:0 0 8px}
.tag{display:inline-block;font-size:12px;color:var(--accent);border:1px solid rgba(179,69,46,.35);border-radius:999px;padding:0 8px;margin-right:4px}
.tag:hover{background:var(--accent);color:#fdfbf6;text-decoration:none}
.card-excerpt{font-size:14.5px;color:var(--ink2);margin:0;line-height:1.75}
.empty{padding:30px 0;color:var(--muted);text-align:center}
.post{background:var(--paper2);border:1px solid var(--line);border-radius:12px;padding:40px 44px;margin-top:26px}
.post-head{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:26px}
.post-head h1{font-family:var(--serif);font-size:32px;line-height:1.35;margin:0 0 12px;font-weight:700}
.post-meta{font-size:13px;color:var(--muted);margin:0}
.post-body{font-size:16.5px;line-height:1.95}
.post-body h2{font-family:var(--serif);font-size:23px;margin:2em 0 .7em;padding-left:.55em;border-left:4px solid var(--accent);line-height:1.4}
.post-body h3{font-family:var(--serif);font-size:19px;margin:1.7em 0 .5em}
.post-body h4{font-size:16px;margin:1.5em 0 .4em}
.post-body p{margin:1em 0}
.post-body ul,.post-body ol{margin:1em 0;padding-left:1.7em}
.post-body li{margin:.35em 0}
.post-body a{border-bottom:1px solid rgba(179,69,46,.4)}
.post-body a:hover{border-bottom-color:var(--accent);text-decoration:none}
.post-body img{max-width:100%;height:auto;border-radius:8px;margin:.8em 0;border:1px solid var(--line)}
.post-body pre{background:#efe9da;border:1px solid var(--line);border-radius:8px;padding:14px 16px;overflow-x:auto;font:13.5px/1.65 var(--mono)}
.post-body code{font-family:var(--mono);font-size:.9em;background:#efe9da;border-radius:4px;padding:1px 5px}
.post-body pre code{background:none;padding:0}
.post-body blockquote{margin:1.2em 0;padding:.3em 1.1em;border-left:3px solid var(--line2);color:var(--muted)}
.post-body hr{border:none;border-top:1px solid var(--line);margin:2.4em 0}
.post-nav{display:flex;gap:18px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line)}
.post-nav a{flex:1;font-size:14px;color:var(--ink2);border:1px solid var(--line);border-radius:8px;padding:12px 14px;transition:border-color .15s,color .15s}
.post-nav a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.post-nav .nav-next{text-align:right}
.post-nav .nav-label{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}
.post-nav .nav-title{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--ink)}
.site-footer{border-top:1px solid var(--line);margin-top:48px;padding:20px 0 8px;color:var(--muted);font-size:13px;text-align:center}
.site-footer p{margin:2px 0}
.foot-sub{letter-spacing:.05em}
#totop{position:fixed;right:24px;bottom:26px;width:42px;height:42px;border-radius:50%;background:var(--ink);color:#f6f3ec;border:none;cursor:pointer;font-size:17px;opacity:0;transition:opacity .25s;z-index:40}
#totop:hover{background:var(--accent)}
@media(max-width:600px){.site-wrap{padding:0 14px 48px}.hero{padding:36px 0 22px}.hero h1{font-size:30px}.post{padding:26px 20px}.post-head h1{font-size:26px}.post-body{font-size:16px}.site-header{flex-wrap:wrap}.site-header nav{gap:12px}}
