:root{--bg: #ffffff;--paper: #fafaf9;--soft: #f5f5f3;--ink: #17181a;--muted: #6f747a;--line: #e6e6e3;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", system-ui, sans-serif;--t-small: .875rem;--t-body: 1.0625rem;--t-lead: 1.25rem;--t-h2: 1.375rem;--t-h1: clamp(1.75rem, 3.4vw, 2.5rem);--t-article: clamp(1.5rem, 2.8vw, 2rem);--pad: 24px;--maxw: 720px;--measure: 720px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t-body);line-height:1.8;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{background:var(--ink);color:var(--bg)}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}.section{padding-block:clamp(40px,5vw,64px)}.section+.section{border-top:1px solid var(--line)}.section-title{font-size:var(--t-h2);font-weight:600;letter-spacing:-.01em;margin:0 0 24px;line-height:1.4}.lede{color:var(--muted);margin:0 0 32px;max-width:34em}.site-header{border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px}.brand{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em}.site-header nav{display:flex;gap:24px;font-size:var(--t-small);color:var(--muted)}.site-header nav a:hover{color:var(--ink);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--ink)}.hero-sub{margin:14px 0 0;max-width:32em;font-size:1rem;line-height:1.7;color:var(--muted)}.hero{padding-block:clamp(44px,6vw,72px) 0}.hero h1{font-size:clamp(1.5rem,2.4vw,1.75rem);font-weight:600;line-height:1.55;letter-spacing:-.01em;margin:0;max-width:22em}.button{display:inline-block;font-family:inherit;font-size:var(--t-small);font-weight:500;line-height:1;padding:14px 22px;background:var(--ink);color:var(--bg);border:0;border-radius:4px;cursor:pointer}.button:hover{background:#000;text-decoration:none}.text-link{font-size:var(--t-small);color:var(--muted)}.text-link:hover{color:var(--ink)}.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.filter{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:28px;font-size:var(--t-small)}.filter-item{color:var(--muted);white-space:nowrap}.filter-item span{margin-left:5px;font-size:.8125rem;opacity:.75}.filter-item:hover{color:var(--ink);text-decoration:none}.filter-item.is-active{color:var(--ink);font-weight:500}.filter-item.is-active span{opacity:1}.post-item{padding:20px 0;border-bottom:1px solid var(--line)}.post-item h3{margin:0;font-size:var(--t-body);font-weight:500;line-height:1.55;letter-spacing:-.005em}.post-item h3 a:hover{color:var(--muted);text-decoration:none}.post-item .desc{margin:6px 0 0;font-size:1rem;line-height:1.7;color:var(--muted);max-width:46em}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}.post-tags{display:flex;flex-wrap:wrap;gap:12px}.post-tags a{color:var(--muted)}.post-tags a:hover{color:var(--ink)}.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;max-width:44em}.plain-list li{position:relative;padding-left:18px;color:var(--muted);line-height:1.75}.plain-list li:before{content:"";position:absolute;left:0;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--ink)}.plain-list b{color:var(--ink);font-weight:500}.subscribe{background:var(--paper);padding-block:clamp(40px,5vw,64px);margin-top:clamp(40px,5vw,64px)}.subscribe-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center}.subscribe h2{font-size:var(--t-h2);font-weight:600;margin:0 0 12px;line-height:1.4}.subscribe p{margin:0;color:var(--muted);max-width:34em}.subscribe-actions{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.copy-hint{font-size:var(--t-small);color:var(--muted)}.subscribe-qr{margin:0;width:176px;text-align:center}.subscribe-qr img{width:100%;border-radius:4px;background:var(--bg)}.subscribe-qr figcaption{margin-top:8px;font-size:.8125rem;color:var(--muted)}.site-footer{border-top:1px solid var(--line);padding-block:40px 56px;font-size:var(--t-small);color:var(--muted)}.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px 40px}.footer-inner nav{display:flex;flex-wrap:wrap;gap:20px}.footer-inner nav a:hover{color:var(--ink)}.footer-legal{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.75;color:var(--muted);max-width:56em}.article{max-width:var(--measure);margin:0 auto;padding-inline:var(--pad);padding-block:clamp(40px,6vw,72px) clamp(40px,5vw,64px)}.article-head h1{font-size:var(--t-article);font-weight:700;line-height:1.38;letter-spacing:-.02em;margin:0}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}.article-cover{margin:32px 0 0}.article-cover img{width:100%;border-radius:4px}.toc{margin:32px 0 0;padding:18px 20px;background:var(--paper);border-radius:4px;font-size:var(--t-small)}.toc p{margin:0 0 10px;color:var(--muted);font-size:.8125rem}.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:7px}.toc a{color:var(--ink)}.toc a:hover{color:var(--muted);text-decoration:none}.prose{margin-top:40px;font-size:var(--t-body);line-height:1.9}.prose>*+*{margin-top:1.1em}.prose h2{font-size:1.1875rem;font-weight:600;line-height:1.5;margin-top:2em;margin-bottom:.7em;scroll-margin-top:80px}.prose h3{font-size:1.0625rem;font-weight:600;margin-top:1.6em}.prose p{margin:0}.prose a{text-decoration:underline;text-underline-offset:3px}.prose strong{font-weight:600}.prose blockquote{margin:1.5em 0;padding:16px 20px;background:var(--paper);border-radius:4px;color:var(--muted);font-size:.95em}.prose blockquote p+p{margin-top:.6em}.prose ul,.prose ol{padding-left:1.3em;margin:0}.prose li+li{margin-top:.4em}.prose img{margin:1.6em 0;border-radius:4px}.prose table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.9375rem;line-height:1.55;font-variant-numeric:tabular-nums;table-layout:fixed}.prose th,.prose td{border-bottom:1px solid var(--line);padding:9px 10px 9px 0;text-align:left;vertical-align:top;overflow-wrap:anywhere}.prose th{font-weight:600;border-bottom-color:var(--ink)}.article-foot{margin-top:48px;padding-top:20px;border-top:1px solid var(--line);font-size:var(--t-small);line-height:1.75;color:var(--muted)}.article-foot p{margin:0}.related{max-width:var(--measure);margin:0 auto;padding-inline:var(--pad);padding-block:clamp(32px,4vw,48px) 0}.page-head{padding-block:clamp(40px,6vw,72px) clamp(24px,3vw,32px)}.page-head h1{font-size:var(--t-h1);font-weight:700;letter-spacing:-.02em;line-height:1.3;margin:0}.page-head p{margin:16px 0 0;color:var(--muted);max-width:34em}.topic-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 24px}.topic-list a{color:var(--ink)}.topic-list a:hover{color:var(--muted)}.topic-list .count{font-size:.8125rem;color:var(--muted);margin-left:6px}.philosophy{max-width:34em}.philosophy p{margin:0 0 18px;line-height:1.85}.philosophy p:last-child{margin-bottom:0}.about-body{max-width:var(--measure);margin:0 auto;padding-inline:var(--pad)}.about-body .lead{font-size:var(--t-lead);line-height:1.7;margin:0 0 24px}.about-body p{margin:0 0 20px;color:var(--muted)}.about-body p strong{color:var(--ink);font-weight:500}@media(prefers-reduced-motion:no-preference){.js [data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease;transition-delay:var(--delay, 0ms)}.js [data-reveal].is-in{opacity:1;transform:none}}@media(max-width:720px){:root{--pad: 20px;--t-body: 1rem;--t-article: 1.375rem}.header-inner{padding-block:16px}.site-header nav{gap:18px}.hero-sub{margin:14px 0 0;max-width:32em;font-size:1rem;line-height:1.7;color:var(--muted)}.hero{padding-block:40px 32px}.hero h1{max-width:none;font-size:1.25rem;line-height:1.6}.subscribe-inner{grid-template-columns:minmax(0,1fr)}.subscribe-qr{display:none}.footer-inner{flex-direction:column}}
