.donate-page{max-width:72ch}.donate-shell{width:100%}.donate-head{margin-top:12px}.donate-eyebrow{margin:0;color:var(--primary);font-size:11px;font-weight:650;letter-spacing:.18em;text-transform:uppercase}.donate-title{margin-top:8px;font-size:clamp(24px,3vw,30px);font-weight:700;line-height:1.35;letter-spacing:-.015em}.donate-lead{margin-top:12px;color:var(--ink-2);font-size:15px;line-height:1.75}.donate-card{--glass-radius: 22px;display:flex;flex-direction:column;align-items:center;gap:16px;width:min(388px,100%);margin:32px auto 0;padding:20px 18px 18px;text-align:center}.donate-qr{display:flex;justify-content:center;width:100%}.donate-qr img{display:block;width:176px;max-width:100%;height:auto}.donate-copy{max-width:100%;min-width:0}.donate-copy>span{color:var(--ink-2);font-size:14px;line-height:1.5}@media(max-width:640px){.donate-card{gap:14px;padding:18px 14px 14px}}.post-comments{margin-top:56px;padding-top:32px;border-top:1px solid var(--line);--waline-font-size: 14px;--waline-white: var(--on-ink);--waline-light-grey: var(--ink-3);--waline-dark-grey: var(--ink-2);--waline-theme-color: var(--primary);--waline-active-color: #b7d0fb;--waline-color: var(--ink);--waline-bg-color: rgba(255, 255, 255, .03);--waline-bg-color-light: rgba(255, 255, 255, .05);--waline-bg-color-hover: rgba(255, 255, 255, .07);--waline-border-color: var(--line);--waline-border: 1px solid var(--line);--waline-disable-bg-color: rgba(255, 255, 255, .04);--waline-disable-color: var(--ink-3);--waline-code-bg-color: #0b0d12;--waline-warning-color: var(--warm);--waline-warning-bg-color: rgba(217, 168, 92, .12);--waline-bq-color: rgba(255, 255, 255, .06);--waline-avatar-size: 2.25rem;--waline-m-avatar-size: 1.8rem;--waline-avatar-radius: var(--r-lg);--waline-badge-color: var(--primary);--waline-badge-font-size: .7em;--waline-info-bg-color: rgba(255, 255, 255, .04);--waline-info-color: var(--ink-3);--waline-info-font-size: .72em;--waline-box-shadow: none;color-scheme:dark}.post-comments__head{margin-bottom:20px}.post-comments__eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.post-comments__title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-top:6px}.post-comments__title{font-size:20px;font-weight:700;letter-spacing:-.01em}.post-comments__desc{font-size:13px;color:var(--ink-3)}.post-comments__pending{margin:0;padding:1.1rem 0;color:var(--ink-3);font-size:13px}.post-comments__error{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:12px 0;border-block:1px solid var(--line)}.post-comments__error p{margin:0;color:var(--ink-2);font-size:13px}.post-comments__error button{flex:none;min-height:2.2rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:var(--r-md);background:#ffffff0a;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.post-comments__error button:hover,.post-comments__error button:focus-visible{border-color:var(--line-strong);color:var(--ink)}.post-comments .wl-panel{margin:0 0 1.25em;border-radius:8px;background:#ffffff06;box-shadow:none}.post-comments .wl-header{border-bottom:1px solid var(--line)}.post-comments .wl-editor{min-height:5.5em}.post-comments .wl-footer{margin:.5em .75em .75em}.post-comments .wl-cards .wl-user{margin-inline-end:.65em}.post-comments .wl-comment{margin-bottom:.6em}.post-comments .wl-card{padding-bottom:.35em;border-bottom:1px solid var(--line)}.post-comments .wl-quote{border-inline-start:1px dashed var(--line-strong)}.post-comments .wl-btn{border-radius:var(--r-md)}.post-comments .wl-editor:focus,.post-comments .wl-input:focus{background:var(--waline-bg-color-light)}.post-comments .wl-power{display:none}.post-comments .wl-actions>button.wl-action:last-child{display:none}.post-comments .wl-content p{margin:.5em 0}.post-comments .wl-content>p:first-child,.post-comments .wl-content>div>p:first-child{margin-top:0}.post-comments .wl-content ul{list-style:disc}.post-comments .wl-content ol{list-style:decimal}.post-comments .wl-content li+li{margin-top:.25em}.post-comments .wl-content h1,.post-comments .wl-content h2,.post-comments .wl-content h3,.post-comments .wl-content h4{margin:.8em 0 .35em;font-weight:700;line-height:1.45}.post-comments .wl-content h1{font-size:1.25em}.post-comments .wl-content h2{font-size:1.15em}.post-comments .wl-content h3{font-size:1.05em}.post-comments .wl-content blockquote{margin:.6em 0;padding:4px 0 4px 16px;border-inline-start:3px solid var(--primary);color:var(--ink-2)}.post-comments .wl-content pre{margin:.6em 0}@media(max-width:640px){.post-comments{margin-top:44px;padding-top:26px}.post-comments__title{font-size:18px}.post-comments__error{align-items:flex-start;flex-direction:column}}:root{color-scheme:dark;--bg: #0b0d12;--surface: rgba(22, 26, 34, .62);--surface-strong: rgba(18, 21, 28, .78);--glass-hover: rgba(255, 255, 255, .06);--line: rgba(255, 255, 255, .09);--line-strong: rgba(255, 255, 255, .16);--ink: #e9ebef;--ink-2: #9aa3b0;--ink-3: #8b93a1;--primary: #8fb4f2;--warm: #d9a85c;--on-ink: #0b0d12;--shadow-1: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px rgba(0, 0, 0, .3);--shadow-2: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 32px rgba(0, 0, 0, .45);--r-lg: 8px;--r-md: 6px;--shell: 1128px;--header-h: 64px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{height:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}@supports selector(::-webkit-scrollbar){.post-code::-webkit-scrollbar,.post-table-wrap::-webkit-scrollbar{width:12px;height:12px}.post-code::-webkit-scrollbar-track,.post-table-wrap::-webkit-scrollbar-track{background:transparent}.post-code::-webkit-scrollbar-thumb,.post-table-wrap::-webkit-scrollbar-thumb{background-color:#ffffff29;background-clip:content-box;border:4px solid transparent;border-radius:999px}.post-code::-webkit-scrollbar-thumb:hover,.post-table-wrap::-webkit-scrollbar-thumb:hover{background-color:#ffffff4d}.post-toc::-webkit-scrollbar{width:6px}.post-toc::-webkit-scrollbar-track{background:transparent}.post-toc::-webkit-scrollbar-thumb{background-color:#ffffff29;border-radius:999px}}.scroll-rail{position:fixed;top:0;right:0;bottom:0;z-index:95;width:14px;touch-action:none}.scroll-thumb{position:absolute;right:5px;width:4px;border-radius:999px;background:#ffffff2e;cursor:grab;transition:background-color .15s var(--ease)}.scroll-rail:hover .scroll-thumb{background:#ffffff52}.scroll-thumb:active{cursor:grabbing;background:#ffffff73}body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-wrap:break-word;font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}.shader-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:0;display:block;pointer-events:none}.shader-backdrop--fallback{background:radial-gradient(120% 80% at 20% 10%,rgba(143,180,242,.28),transparent 60%),radial-gradient(100% 70% at 80% 30%,rgba(202,204,235,.2),transparent 55%),radial-gradient(140% 90% at 50% 110%,rgba(38,96,200,.22),transparent 65%),#070910}.app-scrim{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:0;pointer-events:none;background:linear-gradient(180deg,#07090ee0,#07090e80 26%,#07090e8f 62%,#07090ee6),radial-gradient(120% 70% at 50% 0%,#07090e26,#07090e73)}.reading-vignette{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:0;pointer-events:none;background:radial-gradient(115% 85% at 50% 42%,transparent 38%,rgba(3,5,9,.44) 74%,rgba(3,5,9,.78) 100%),linear-gradient(180deg,rgba(7,9,14,.22),transparent 15%,transparent 85%,rgba(7,9,14,.3))}.reading-grain{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:0;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='160'%3E%3Cfilter%20id='n'%20color-interpolation-filters='sRGB'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='160'%20height='160'%20filter='url(%23n)'%20opacity='0.55'/%3E%3C/svg%3E");background-size:160px 160px;background-repeat:repeat}.app{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:32px}.skip-link{position:absolute;left:-9999px;top:0;z-index:200;padding:8px 14px;border-radius:var(--r-md);background:var(--surface-strong);border:1px solid var(--line-strong)}.skip-link:focus-visible{left:16px;top:12px}.site-header{position:sticky;top:0;z-index:100;background:#090b108c;-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);border-bottom:1px solid var(--line)}.header-bar{display:flex;align-items:center;gap:32px;height:var(--header-h)}.brand{display:flex;align-items:baseline;gap:10px;min-width:0}.site-title{font-size:19px;font-weight:700;line-height:1;letter-spacing:-.01em}.brand-desc{font-size:13px;color:var(--ink-3);white-space:nowrap}.header-nav{margin-left:auto}.header-nav>ul{display:flex;align-items:center;gap:4px}.nav-link{display:flex;align-items:center;padding:8px 12px;border-radius:var(--r-md);font-size:15px;color:var(--ink-2);transition:color .15s var(--ease),background-color .15s var(--ease)}.nav-link:hover{color:var(--ink);background:var(--glass-hover)}.header-actions{display:flex;align-items:center;gap:8px}.lang-switch{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#ffffff0a}.lang-button{border:0;background:none;color:var(--ink-3);font:inherit;font-size:12px;line-height:1;padding:6px 10px;border-radius:999px;cursor:pointer;transition:color .15s var(--ease),background-color .15s var(--ease)}.lang-button:hover{color:var(--ink)}.lang-button.is-active{color:var(--on-ink);background:var(--ink);font-weight:600}.lang-divider{width:1px;height:12px;background:var(--line)}.home-grid{position:relative;z-index:1;display:grid;grid-template-columns:248px minmax(0,1fr);gap:64px;align-items:start;flex:1;padding-top:56px;padding-bottom:24px}.home-grid>.feed{grid-column:2}.profile{display:flex;flex-direction:column;gap:16px}.profile-card,.sites-card{padding:18px}.glass-card{--glass-radius: 22px;--glass-tint: rgba(12, 16, 24, .2);--glass-sheen-a: rgba(255, 255, 255, .06);--glass-sheen-b: rgba(255, 255, 255, .01);--glass-gloss: rgba(255, 255, 255, .12);--glass-glow: rgba(190, 210, 255, .025);--glass-rim-a: rgba(255, 255, 255, .4);--glass-rim-b: rgba(255, 255, 255, .05);--glass-rim-c: rgba(150, 180, 225, .2);--glass-brightness: 1.45;--glass-blur: .8;--glass-strength: 2.2;--glass-dispersion: .12;--glass-rim-light: 1;position:relative;isolation:isolate;border-radius:var(--glass-radius);background:linear-gradient(135deg,var(--glass-sheen-a),var(--glass-sheen-b)),var(--glass-tint);box-shadow:inset 0 1px #fff3,inset 0 -1px #ffffff0d,0 18px 36px -14px #000000a6;-webkit-backdrop-filter:blur(20px) saturate(190%) brightness(var(--glass-brightness));backdrop-filter:blur(20px) saturate(190%) brightness(var(--glass-brightness))}.glass-card:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 60% at 12% -8%,var(--glass-gloss),transparent 55%),linear-gradient(115deg,transparent 38%,rgba(255,255,255,.05) 47%,transparent 56%);box-shadow:inset 0 0 26px var(--glass-glow),inset 2px 2px 6px #ffffff1f,inset -2px -2px 5px -1px #ffffff17}.glass-card:after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(150deg,var(--glass-rim-a),var(--glass-rim-b) 42%,var(--glass-rim-c));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}@media(prefers-reduced-transparency:reduce){.glass-card{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#12161eeb}.glass-card:before{display:none}}.profile-head{display:flex;align-items:center;gap:14px}.profile-avatar{display:block;flex-shrink:0;width:64px;height:64px;border-radius:50%;border:1px solid var(--line-strong);background:#171b23;box-shadow:var(--shadow-1)}.profile-ident{min-width:0}.profile-name{margin:0;font-size:19px;font-weight:700;line-height:1.25;letter-spacing:-.01em}.profile-handle{font-size:13px;color:var(--ink-3)}.profile-role{margin-top:14px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}.profile-bio{margin-top:8px;font-size:14px;line-height:1.7;color:var(--ink-2)}.social-row{display:flex;align-items:center;gap:8px;margin-top:18px}.social-row a{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);transition:color .15s var(--ease),border-color .15s var(--ease),background-color .15s var(--ease)}.social-row a:hover{color:var(--ink);border-color:var(--line-strong);background:var(--glass-hover)}.social-row a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.social-row svg{width:16px;height:16px}.sites-group+.sites-group{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.sites-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.sites-list{margin-top:6px}.sites-list li+li{border-top:1px solid var(--line)}.sites-list a,.site-name{display:block;padding:11px 0;font-size:16px;line-height:1.5;color:var(--ink);transition:color .15s var(--ease)}.sites-list a:hover{color:var(--primary)}.sites-list a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.site-name.is-soon{color:var(--ink-3);cursor:default}.list-label{font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:16px}.feed-stream{display:flex;flex-direction:column}.feed-item{padding-bottom:36px}.feed-item+.feed-item{border-top:1px solid var(--line);padding-top:32px}.feed-date{display:block;font-size:13px;color:var(--ink-3)}.feed-title{margin-top:6px;font-size:24px;font-weight:700;line-height:1.4;letter-spacing:-.01em;transition:color .15s var(--ease)}.feed-item:hover .feed-title,.feed-item:focus-within .feed-title{color:var(--primary)}.feed-body{margin-top:10px;font-size:15px;line-height:1.75;color:var(--ink-2)}.read-more{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;color:var(--primary)}.read-more:after{content:"→";transition:transform .15s var(--ease)}.read-more:hover:after{transform:translate(3px)}.pinned-card{display:grid;grid-template-columns:168px minmax(0,1fr);width:100%;margin-bottom:24px;padding:0;border:0;overflow:hidden;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:box-shadow .18s var(--ease)}.pinned-card:hover{box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #ffffff0f,0 22px 44px -16px #000000b3}.pinned-card:hover .pinned-title,.pinned-card:focus-visible .pinned-title{color:var(--primary)}.pinned-card:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.pinned-media{display:block;min-height:148px;background-size:cover}.pinned-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px 22px}.pinned-badge{padding:2px 8px;border:1px solid rgba(143,180,242,.45);border-radius:999px;color:var(--primary);font-size:11px;letter-spacing:.08em;line-height:1.6}.pinned-title{font-size:21px;font-weight:700;line-height:1.4;letter-spacing:-.01em;transition:color .15s var(--ease)}.pinned-excerpt{font-size:14px;line-height:1.7;color:var(--ink-2)}.pinned-card .read-more{margin-top:2px}.post{max-width:72ch}.back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:20px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer;transition:color .15s var(--ease),border-color .15s var(--ease),background-color .15s var(--ease)}.back-link:hover{color:var(--ink);border-color:var(--line-strong);background:var(--glass-hover)}.back-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.post-date{display:block;margin-top:10px;font-size:13px;color:var(--ink-3)}.post-title{margin:0;font-size:30px;font-weight:700;line-height:1.35;letter-spacing:-.015em}.post-lead{margin-top:14px;font-size:15px;line-height:1.75;color:var(--ink-2)}.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tag{padding:2px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;color:var(--ink-2);line-height:1.7}.post-body{margin-top:40px;font-size:15px;line-height:1.8;color:var(--ink)}.post-body>*+*{margin-top:18px}.post-body>:first-child{margin-top:0}.post-body .post-h2{margin-top:34px;font-size:20px;font-weight:700;line-height:1.5;letter-spacing:-.01em}.post-body ul,.post-body ol{padding-left:22px;list-style:disc}.post-body ol{list-style:decimal}.post-body li+li{margin-top:6px}.post-body blockquote{margin:24px 0;padding:4px 0 4px 16px;border-left:3px solid var(--primary);color:var(--ink-2)}.post-code{margin:20px 0;padding:16px 18px;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:#00000059;font-size:13px;line-height:1.65}.post-code code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.post-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md)}.post-body table{width:100%;border-collapse:collapse;font-size:14px}.post-body th,.post-body td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line)}.post-body thead th{font-weight:600;color:var(--ink-2);background:#ffffff08}.post-body tbody tr:last-child td{border-bottom:0}.post-figure{margin:24px 0}.post-figure img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--r-md)}.post-figure figcaption{margin-top:8px;font-size:12px;color:var(--ink-3)}.post-hr{margin:28px 0;border:0;border-top:1px solid var(--line)}.post-toc{position:fixed;top:calc(var(--header-h) + 32px);left:max(32px,calc((100vw - var(--shell)) / 2 + 32px));z-index:60;width:248px;max-height:calc(100dvh - var(--header-h) - 64px);overflow-y:auto;padding:18px;overscroll-behavior:contain}.toc-title{margin-bottom:10px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.toc-list{display:flex;flex-direction:column;gap:2px}.toc-list a{display:block;padding:7px 10px;border-left:2px solid transparent;border-radius:0 6px 6px 0;font-size:13px;line-height:1.5;color:var(--ink-2);transition:color .15s var(--ease),background-color .15s var(--ease),border-color .15s var(--ease)}.toc-list a:hover{color:var(--ink);background:var(--glass-hover)}.toc-list a.is-active{color:var(--primary);border-left-color:var(--primary);background:#8fb4f214}.back-to-top{position:fixed;right:20px;bottom:20px;z-index:90;display:grid;place-items:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;color:var(--ink-2);cursor:pointer;opacity:0;transform:translateY(10px) scale(.94);pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease),color .15s var(--ease)}.back-to-top.is-visible{opacity:1;transform:none;pointer-events:auto}.back-to-top:hover{color:var(--ink)}.back-to-top:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.back-to-top svg{width:20px;height:20px}.site-footer{position:relative;z-index:1;margin-top:64px;border-top:1px solid var(--line);background:#090b1080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px 40px;font-size:13px;color:var(--ink-3)}@media(max-width:960px){.home-grid{grid-template-columns:minmax(0,1fr);gap:40px;padding-top:40px}.profile{position:static}.profile-head{align-items:center}.home-grid>.feed{grid-column:1}.post-toc{display:none}}@media(max-width:640px){.shell{padding-inline:20px}.header-bar{gap:12px}.brand-desc{display:none}.nav-link{padding:8px;font-size:14px}.feed-title{font-size:21px}.pinned-card{grid-template-columns:minmax(0,1fr)}.pinned-media{min-height:120px}.post-title{font-size:24px}.footer-inner{padding-block:20px 32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
