@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap");
:root{color-scheme:light;--bg:#f8f7f3;--surface:#fffefa;--ink:#24372f;--muted:#77817a;--faint:#a9aea6;--line:#e5e7df;--accent:#c58b57;--green:#38584b;--wash:#f0f2ea;--shadow:0 12px 40px rgba(23,42,32,.04)}
:root[data-theme="dark"]{color-scheme:dark;--bg:#171d19;--surface:#202923;--ink:#e5ede3;--muted:#a6b4a9;--faint:#87948a;--line:#344038;--accent:#d5a171;--green:#c0dcc9;--wash:#253228;--shadow:0 12px 40px rgba(0,0,0,.08)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans","Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#dbc09c;color:#23382c}[hidden]{display:none!important}.wrap{width:min(1060px,calc(100% - 72px));margin-inline:auto}.topline{height:4px;background:linear-gradient(90deg,#325748 0%,#809a82 48%,#dba46d 100%)}.site-header{height:86px;border-bottom:1px solid var(--line)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--green);color:var(--bg);font-family:serif;font-weight:700;font-size:22px}.brand-text{font-weight:700;font-size:22px;letter-spacing:.05em}.brand-dot{color:var(--accent)}.main-nav{display:flex;gap:35px;align-items:center;margin-left:auto}.main-nav a{font-size:13px;font-weight:600;color:var(--muted);transition:color .2s}.main-nav a:hover,.main-nav a[aria-current]{color:var(--ink)}.theme-toggle{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:20px}.theme-toggle:hover{background:var(--wash)}.theme-moon{display:none}:root[data-theme="dark"] .theme-moon{display:inline}:root[data-theme="dark"] .theme-sun{display:none}
.hero{padding:105px 0 91px;border-bottom:1px solid var(--line)}.eyebrow,.section-kicker,.article-kicker{font-size:11px;letter-spacing:.22em;color:var(--green);font-weight:700}.eyebrow{display:flex;align-items:center;gap:14px}.eyebrow-rule{display:block;width:25px;height:1px;background:var(--accent)}.hero h1{font-size:clamp(44px,6.8vw,75px);font-weight:600;letter-spacing:-.05em;line-height:1.36;margin:23px 0 24px}.hero h1 em{font-style:normal;color:var(--green);position:relative}.hero h1 em:after{content:"";position:absolute;height:7px;left:0;right:0;bottom:-9px;background:linear-gradient(90deg,var(--accent),transparent);opacity:.6;border-radius:100%;transform:rotate(-1deg)}.hero-intro{max-width:590px;font-size:16px;line-height:2;color:var(--muted)}.hero-bottom{display:flex;align-items:center;gap:18px;margin-top:42px;color:var(--muted);font-size:12px}.hero-spark{font-size:25px;color:var(--accent)}.hero-divider{height:13px;width:1px;background:var(--line)}
.posts-section{padding:82px 0 70px}.section-header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.section-kicker{margin:0 0 8px}.section-header h2{font-size:26px;letter-spacing:-.035em;font-weight:650;margin:0}.section-dash,.muted-heading{color:var(--faint)}.muted-heading{font-weight:400;font-size:16px;letter-spacing:0}.total-articles{font-size:12px;color:var(--muted)}.total-articles b{color:var(--ink)}.tools{display:flex;margin-bottom:20px}.search-wrap{height:48px;border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 17px;background:var(--surface);border:1px solid var(--line);width:min(470px,100%);transition:border-color .2s}.search-wrap:focus-within{border-color:var(--green)}.search-icon{font-size:26px;line-height:1;color:var(--muted)}.search-wrap input{border:none;outline:none;min-width:0;width:100%;background:none;color:var(--ink);font-size:13px}.search-wrap input::placeholder{color:var(--faint)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.filter-chip{border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--muted);font-size:12px;padding:5px 14px;transition:all .2s}.filter-chip.active,.filter-chip:hover{background:var(--green);border-color:var(--green);color:var(--bg)}
.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.post-card{background:var(--surface);border:1px solid var(--line);padding:29px 30px 24px;min-height:256px;display:flex;flex-direction:column;border-radius:12px;transition:transform .25s,border-color .25s,box-shadow .25s}.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--green)}.post-topline{display:flex;justify-content:space-between;align-items:center;color:var(--faint);font-size:11px;letter-spacing:.01em}.post-number{font-size:12px;color:var(--accent);font-weight:700;letter-spacing:.1em}.post-card h3{font-size:21px;line-height:1.5;letter-spacing:-.03em;margin:18px 0 9px;font-weight:650}.post-card h3 a:hover{color:var(--green)}.post-summary{font-size:13px;line-height:1.85;margin:0 0 24px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.post-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:17px}.post-tags{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:11px}.read-arrow{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--green);font-size:16px}.empty{padding:65px 0;text-align:center;color:var(--muted)}.closing-note{border-top:1px solid var(--line);padding:43px 0 82px;display:flex;align-items:start;gap:22px}.closing-star{font-size:26px;color:var(--accent)}.closing-note p{font-size:16px;margin:0 0 2px}.closing-note span:last-child{font-size:10px;letter-spacing:.17em;color:var(--muted)}
.site-footer{border-top:1px solid var(--line);background:var(--wash)}.footer-inner{display:grid;grid-template-columns:1fr auto;gap:18px;padding:52px 0 26px}.footer-brand{font-size:22px;font-weight:700}.footer-inner p{font-size:12px;color:var(--muted);margin:5px 0}.footer-links{display:flex;gap:25px;align-self:center}.footer-links a{font-size:12px;color:var(--muted)}.footer-links a:hover{color:var(--ink)}.footer-inner small{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;color:var(--faint);font-size:11px;margin-top:20px}.back-top{position:fixed;right:24px;bottom:24px;width:42px;height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:50%;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:all .2s}.back-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.subpage{min-height:65vh;padding:82px 0 110px}.subpage-head{margin-bottom:54px;border-bottom:1px solid var(--line);padding-bottom:35px}.subpage-head h1{font-size:clamp(35px,5vw,54px);letter-spacing:-.05em;line-height:1.4;margin:12px 0}.subpage-head>p:last-child{color:var(--muted);font-size:14px}.archive-year{margin-bottom:46px}.archive-year h2{font-size:28px;margin:0 0 17px}.archive-year h2 span{font-size:12px;color:var(--muted);font-weight:400}.archive-row{display:grid;grid-template-columns:70px 1fr 30px;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:22px 12px 22px 0;transition:padding .2s}.archive-row:hover{padding-left:12px;color:var(--green)}.archive-row time{color:var(--faint);font-size:12px}.archive-row span:nth-child(2){font-size:16px;font-weight:500}.archive-arrow{text-align:right;color:var(--accent)}.about-content{max-width:750px}.not-found{padding-top:40px}.not-found h1{font-size:42px;margin:18px 0}.not-found p{color:var(--muted)}.primary-link{display:inline-block;background:var(--green);color:var(--bg);padding:10px 21px;border-radius:8px;margin-top:26px}
.article-page{min-height:75vh;padding-top:35px;padding-bottom:105px}.article-breadcrumb{display:flex;gap:12px;color:var(--muted);font-size:12px}.article-breadcrumb a:hover{color:var(--green)}.article-shell{margin-top:68px}.article-heading{padding-bottom:46px;border-bottom:1px solid var(--line)}.article-kicker{margin-bottom:20px}.article-heading h1{font-size:clamp(36px,5.4vw,60px);line-height:1.35;letter-spacing:-.045em;max-width:900px;margin:0}.article-deck{color:var(--muted);font-size:17px;line-height:1.95;max-width:760px;margin:18px 0 24px}.article-meta{color:var(--faint);font-size:12px;display:flex;align-items:center;flex-wrap:wrap;gap:13px}.article-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(0,210px);gap:80px;align-items:start;padding-top:48px}.prose{min-width:0;font-size:16px;line-height:2.08;color:var(--ink);overflow-wrap:anywhere}.prose h1,.prose h2,.prose h3,.prose h4{letter-spacing:-.025em;scroll-margin-top:24px;line-height:1.5}.prose h2{font-size:26px;margin:43px 0 16px}.prose h3{font-size:20px;margin:35px 0 14px}.prose p{margin:0 0 24px}.prose a{color:var(--green);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}.prose strong{font-weight:700}.prose ul,.prose ol{padding-left:24px;margin:14px 0 27px}.prose li{margin:6px 0;padding-left:4px}.prose blockquote{margin:30px 0;border-left:3px solid var(--accent);padding:8px 20px;background:var(--wash);color:var(--muted)}.prose blockquote p:last-child{margin-bottom:0}.prose pre{background:#202c27;color:#d9e6dd;white-space:pre;overflow:auto;padding:20px 24px;border-radius:10px;font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;margin:25px 0}.prose code{background:var(--wash);padding:2px 5px;border-radius:4px;font: .86em ui-monospace,Consolas,monospace}.prose pre code{background:none;padding:0;color:inherit}.prose img{max-width:100%;height:auto;border-radius:9px;display:block;margin:30px auto}.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.table-scroll{max-width:100%;overflow:auto;margin:24px 0}.prose table{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}.prose td,.prose th{padding:11px 16px;border:1px solid var(--line);text-align:left}.prose th{background:var(--wash)}.toc{position:sticky;top:38px;border-left:1px solid var(--line);padding-left:22px;display:flex;flex-direction:column;gap:14px}.toc h2{font-size:12px;color:var(--ink);margin:0 0 4px}.toc a{font-size:12px;color:var(--muted);line-height:1.6}.toc a:hover{color:var(--green)}.toc-level-3{padding-left:12px}.article-footer{margin-top:55px;padding-top:26px;border-top:1px solid var(--line)}.article-taglist{display:flex;gap:9px;flex-wrap:wrap}.tag{border-radius:50px;padding:5px 13px;background:var(--wash);font-size:12px;color:var(--muted)}.tag:hover{color:var(--green)}.article-actions{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-top:34px;font-size:13px;color:var(--muted)}.article-actions button{background:transparent;border:1px solid var(--line);border-radius:7px;padding:9px 14px;color:var(--muted)}.article-actions button:hover{border-color:var(--green)}.post-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);margin-top:40px;padding-top:30px}.post-neighbors a{display:flex;flex-direction:column;gap:6px}.post-neighbors a:last-child{text-align:right}.post-neighbors small{color:var(--muted);font-size:11px}.post-neighbors strong{font-size:14px;font-weight:600}#reading-progress{position:fixed;top:0;left:0;height:4px;background:var(--accent);width:0;z-index:20}
@media(max-width:880px){.article-layout{grid-template-columns:1fr;gap:30px}.toc{position:static;order:-1;border:1px solid var(--line);border-radius:10px;padding:18px;gap:9px}.post-grid{grid-template-columns:1fr 1fr;gap:14px}.post-card{padding:23px;min-height:245px}}@media(max-width:650px){.wrap{width:min(100% - 36px,560px)}.site-header{height:68px}.header-inner{gap:14px}.brand{gap:8px}.brand-mark{width:34px;height:34px;border-radius:10px;font-size:19px}.brand-text{font-size:18px}.main-nav{gap:16px}.main-nav a{font-size:12px}.theme-toggle{width:33px;height:33px;flex:none}.hero{padding:70px 0 60px}.hero h1{font-size:clamp(37px,9vw,53px);line-height:1.46;margin:20px 0 22px}.hero-intro{font-size:14px}.hero-bottom{margin-top:31px;gap:11px}.posts-section{padding:57px 0}.section-header h2{font-size:22px}.muted-heading{font-size:13px}.post-grid{grid-template-columns:1fr}.post-card{min-height:224px;padding:25px}.post-card h3{font-size:19px}.closing-note{padding-bottom:55px}.footer-inner{grid-template-columns:1fr;gap:18px;padding-top:37px}.footer-links{gap:19px;flex-wrap:wrap}.footer-inner small{margin-top:6px}.subpage{padding:57px 0 75px}.subpage-head{margin-bottom:35px}.subpage-head h1{font-size:36px}.article-page{padding-top:24px;padding-bottom:70px}.article-shell{margin-top:42px}.article-heading h1{font-size:35px}.article-heading{padding-bottom:30px}.article-deck{font-size:15px}.article-layout{padding-top:27px}.prose{font-size:15px;line-height:2}.prose h2{font-size:23px}.archive-row{grid-template-columns:52px 1fr 20px;gap:9px}.archive-row span:nth-child(2){font-size:14px}.not-found h1{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
