:root{color-scheme:light;--paper:light-dark(#f7f4fb,#151119);--paper-soft:light-dark(#eee9f6,#211b29);--ink:light-dark(#1d1922,#eee9f6);--muted:light-dark(#716b78,#a69daf);--line:light-dark(#ded6ea,#342b3d);--accent:light-dark(#6f3cc3,#c4a7f7);--accent-strong:light-dark(#55319d,#dbc9ff);--accent-soft:light-dark(rgb(111 60 195 / 10%),rgb(196 167 247 / 13%));--warm:light-dark(#a33d8b,#e08cc9);--code:light-dark(#201927,#0f0c12);--code-ink:#eee9f6;--focus:light-dark(rgb(111 60 195 / 28%),rgb(196 167 247 / 30%));--shell:62rem;--reading:42rem;--toc:9.5rem;--control-height:2.7rem;--motion:0.2s ease;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--radius:8px}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark}}:root[data-theme="dark"]{color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{overflow-y:scroll;scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:5.5rem;text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.8 "PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;font-synthesis:none;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input{color:inherit;font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:0.65}body,a,button,input,.site-header,.toc,.article-neighbor,.friend-list li a,.table-wrap,.archive-filter input,.filter-bar button,.password-row input,.password-row button,.button-link,.prose code,.prose pre,.prose img,.friend-avatar,.home-intro p,.home-section-header,.article-meta,.post-list time,.post-list h3,.archive-header p:last-child,.archive-year h2,.archive-year li span,.form-note,.empty-state,.back-top,.not-found p,.prose blockquote,.prose th,.prose td,.skip-link,.reading-progress{transition:color var(--motion),background-color var(--motion),border-color var(--motion),text-decoration-color var(--motion)}::selection{background:var(--focus)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none !important}.skip-link{position:fixed;top:0.5rem;left:0.5rem;z-index:100;padding:0.55rem 0.8rem;background:var(--ink);color:var(--paper);border-radius:var(--radius);transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.reading-progress{position:fixed;inset:0 0 auto;z-index:90;display:none;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}@supports (animation-timeline:scroll()){.reading-progress{display:block;animation:reading-progress linear both;animation-timeline:scroll(root block)}}@keyframes reading-progress{to{transform:scaleX(1)}}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:var(--paper)}.nav-shell,.site-footer,.page-shell{width:min(100% - 2rem,var(--shell));margin-inline:auto}.nav-shell{min-height:3.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font-weight:700;letter-spacing:0.02em}.site-nav{display:flex;align-items:center;gap:1rem;color:var(--muted);font-size:0.92rem}.site-nav a{padding-block:1rem;border-bottom:1px solid transparent}.site-nav a:hover,.site-nav a.is-active{color:var(--accent);border-bottom-color:var(--accent)}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:0.45rem;padding-block:4rem 2rem;color:var(--muted);font-size:0.86rem}.theme-toggle{padding:0;border:0;background:transparent;color:inherit;font-size:inherit}.theme-toggle:hover{color:var(--accent)}.no-js .theme-toggle{display:none}.no-js .archive-filter,.no-js .filter-bar{display:none}.archive-header h1,.article-header h1,.not-found h1{margin:0;font-size:3rem;line-height:1.15;letter-spacing:0;text-wrap:balance}.home-intro,.home-feed,.archive,.links-page,.not-found{max-width:var(--reading);margin-inline:auto}.home-intro{padding-block:4.25rem 1rem}.home-intro p{margin:0;padding:1.45rem 1.35rem;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:1.32rem;line-height:1.85;text-wrap:pretty}.home-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-block:0.8rem 0;color:var(--muted);font:500 0.8rem/1.5 var(--mono)}.home-section-header h2{margin:0;font:inherit}.home-section-header a{color:inherit}.home-section-header a:hover{color:var(--accent)}.article-meta,.archive-header p:last-child{margin:1.25rem 0 0;color:var(--muted);font-size:0.92rem}.article-categories a{color:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:0.2em}.article-categories a:hover{color:var(--accent);text-decoration-color:currentColor}.post-list{margin:0;padding:0;list-style:none}.featured-post{padding-block:1.25rem 2.5rem}.featured-post h3{margin:0;font-size:1.72rem;font-weight:500;line-height:1.4;text-wrap:balance}.featured-excerpt{margin:0.9rem 0 0;color:var(--muted);font-size:1rem;line-height:1.9;text-wrap:pretty}.post-list li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);align-items:baseline;gap:0 0.85rem;padding-block:0.7rem}.post-list time{color:var(--muted);font:0.78rem/1.5 var(--mono)}.post-list h3{margin:0;font-size:1.04rem;line-height:1.45;font-weight:500;text-wrap:balance}.post-meta{margin:0.35rem 0 0;color:var(--muted);font:0.8rem/1.5 var(--mono)}.post-meta time{color:inherit}.article,.archive,.links-page,.not-found{padding-block:4rem 2rem}.article-header{grid-column:var(--article-column);grid-row:1;max-width:var(--reading);margin-inline:0;padding-bottom:1.2rem}.article-header h1{font-size:2.65rem}.article-layout{--article-column:1;display:grid;grid-template-columns:minmax(0,var(--reading));align-items:start;max-width:var(--reading);margin:0 auto}.article-layout--with-toc{--article-column:2;grid-template-columns:minmax(0,1fr) minmax(0,var(--reading)) minmax(0,1fr);max-width:var(--shell)}.prose{grid-column:var(--article-column);grid-row:2;min-width:0;padding-top:2.4rem;font-size:1.03rem;line-height:1.92;overflow-wrap:anywhere}.article-end{grid-column:var(--article-column);grid-row:3;width:100%}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{position:relative;margin:2.1em 0 0.65em;line-height:1.35;letter-spacing:0;text-wrap:balance}.prose h1::before,.prose h2::before,.prose h3::before,.prose h4::before,.prose h5::before,.prose h6::before{margin-right:0.42em;color:var(--accent);font:500 0.72em/1 var(--mono);opacity:0.78;vertical-align:0.08em}.prose h1::before{content:"#";content:"#" / ""}.prose h2::before{content:"##";content:"##" / ""}.prose h3::before{content:"###";content:"###" / ""}.prose h4::before{content:"####";content:"####" / ""}.prose h5::before{content:"#####";content:"#####" / ""}.prose h6::before{content:"######";content:"######" / ""}.prose h2{font-size:1.55rem}.prose h3{font-size:1.28rem}.prose h4{font-size:1.1rem}.prose .heading-link{color:inherit;text-decoration:none}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table,.prose figure{margin-block:0 1.25em}.prose p{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.5em}.prose li + li{margin-top:0.25em}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:0.2em}.prose a:hover{text-decoration-color:currentColor}.prose strong{font-weight:700}.prose blockquote{padding:0.2rem 0 0.2rem 1rem;border-left:3px solid var(--warm);color:var(--muted)}.prose code{padding:0.12em 0.34em;border-radius:var(--radius);background:var(--paper-soft);color:var(--warm);font:0.88em/1.5 var(--mono)}.prose pre{max-width:100%;padding:1rem 1.1rem;overflow:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-radius:var(--radius);background:var(--code);color:var(--code-ink);font-size:0.88rem;line-height:1.7;tab-size:2}.prose pre code{padding:0;background:transparent;color:inherit}.prose hr{width:5rem;margin:2.8rem auto;border:0;border-top:1px solid var(--line)}.prose img{display:block;max-width:100%;height:auto;margin-inline:auto;border-radius:var(--radius);background:var(--paper-soft)}.prose picture{display:block}.article-neighbor,.friend-list li a,.table-wrap,.toc{border:1px solid var(--line);border-radius:var(--radius)}.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.prose table{width:100%;min-width:min(34rem,100%);margin:0;border-collapse:collapse;font-size:0.92rem}.prose th,.prose td{padding:0.55rem 0.7rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{background:var(--paper-soft)}.prose tr:last-child td{border-bottom:0}.prose th:last-child,.prose td:last-child{border-right:0}.toc{background:var(--paper-soft)}.toc{grid-column:3;grid-row:2;justify-self:end;width:var(--toc);position:sticky;top:5.25rem;max-height:calc(100vh - 7rem);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;margin-top:2.4rem;padding:0.85rem;color:var(--muted);font-size:0.82rem}.toc summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.65rem;color:var(--ink);font-weight:700;list-style:none;cursor:pointer}.toc summary::-webkit-details-marker{display:none}.toc summary::after{content:"+";color:var(--muted);font-weight:400}.toc details[open] summary::after{content:"-"}.toc ol{margin:0;padding:0;list-style:none}.toc li{line-height:1.55}.toc a{display:block;padding:0.28rem 0.42rem;border-radius:var(--radius)}.toc a:hover{background:var(--accent-soft)}.toc-level-3{padding-left:0.62rem}@supports selector(::details-content) and (interpolate-size:allow-keywords){:root{interpolate-size:allow-keywords}.toc details::details-content{block-size:0;overflow:clip;opacity:0;content-visibility:hidden;transition:block-size var(--motion),opacity var(--motion),content-visibility 0.2s allow-discrete}.toc details[open]::details-content{block-size:auto;opacity:1;content-visibility:visible}}.end-mark{margin:4rem auto 0;color:var(--muted);text-align:center;font-size:0.82rem}.end-mark::before,.end-mark::after{content:"·";padding-inline:0.45rem;color:var(--line)}.back-top{margin:1.4rem 0 0;text-align:center;font-size:0.86rem}.back-top a{color:var(--muted)}.article-neighbors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;margin-top:2.5rem}.article-neighbor{min-height:5rem;padding:0.8rem 0.9rem}.article-neighbor:hover,.friend-list li a:hover{border-color:var(--accent)}.article-neighbor span,.article-neighbor strong{display:block}.article-neighbor span{color:var(--muted);font-size:0.78rem}.article-neighbor strong{margin-top:0.25rem;line-height:1.5}.article-neighbor-next{text-align:right}@media (min-width:641px){.article-neighbor-next:only-child{grid-column:2}}.archive-header{padding-bottom:1.6rem}.archive-filter{display:flex;max-width:var(--reading);margin-top:1.3rem}.archive-filter input,.filter-bar button,.password-row input,.password-row button,.button-link{border:1px solid var(--line);border-radius:var(--radius);background:transparent}.archive-filter input,.password-row input{min-height:var(--control-height);padding:0.5rem 0.75rem;-webkit-appearance:none;appearance:none}.archive-filter input{width:100%}.archive-filter input::-webkit-search-cancel-button{display:none}.archive-filter input:focus,.password-row input:focus{border-color:var(--accent)}.filter-bar{display:flex;flex-wrap:wrap;gap:0.5rem;padding-block:0.8rem 1.5rem}.filter-bar button{min-height:2.25rem;padding:0.35rem 0.7rem;color:var(--muted);font-size:0.84rem}.filter-bar button:hover,.filter-bar button.is-active,.password-row button:hover,.button-link:hover{border-color:var(--accent);color:var(--accent)}.archive-year{content-visibility:auto;contain-intrinsic-size:18rem;padding-block:1.6rem}.archive-year h2{margin:0 0 0.75rem;color:var(--muted);font:500 0.82rem/1.5 var(--mono)}.archive-year ul{margin:0;padding:0;list-style:none}.archive-year li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-block:0.42rem}.archive-year li span{flex:none;color:var(--muted);font-size:0.8rem}.empty-state{padding-block:3rem;color:var(--muted);text-align:center}.friend-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;margin:2rem 0 0;padding:0;list-style:none}.friend-list li a{display:flex;align-items:center;gap:0.85rem;min-height:5.5rem;padding:0.8rem}.friend-avatar{position:relative;flex:none;display:grid;place-items:center;width:3.5rem;height:3.5rem;overflow:hidden;border-radius:50%;background:var(--paper-soft);color:var(--accent);font-weight:700}.friend-avatar img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;background:var(--paper-soft)}.friend-list span{min-width:0}.friend-list strong,.friend-list small{display:block}.friend-list small{margin-top:0.2rem;color:var(--muted);font-size:0.8rem;line-height:1.5}.protected{max-width:28rem;margin:1.5rem auto 0;text-align:center}.protected h2{margin:0 0 0.5rem;font-size:1.25rem}.form-note{margin:0 0 1.2rem;color:var(--muted);font-size:0.88rem}.protected label{display:block;margin-bottom:0.4rem;color:var(--muted);font-size:0.84rem;text-align:left}.protected form{text-align:left}.no-js .protected form{display:none}.password-row{display:flex;gap:0.55rem}.password-row input{min-width:0;flex:1}.password-row button,.button-link{min-height:var(--control-height);display:inline-flex;align-items:center;padding:0.5rem 0.9rem}.not-found{min-height:55vh}.not-found p{color:var(--muted)}.button-link{margin-top:1rem}@media (max-width:1000px){.article-layout,.article-layout--with-toc{--article-column:1;grid-template-columns:minmax(0,1fr);max-width:var(--reading)}.article-header,.prose,.toc,.article-end{grid-column:1;grid-row:auto}.toc{position:static;width:auto;justify-self:stretch;max-height:min(60vh,24rem);margin-top:1.2rem}.toc ol{margin-top:0.55rem}}@media (max-width:640px){.nav-shell,.site-footer,.page-shell{width:min(100% - 1.25rem,var(--shell))}.site-nav{gap:0.75rem;font-size:0.86rem}.home-intro{padding-top:3.25rem}.home-intro p{padding:1.15rem 1rem;font-size:1.16rem}.archive-header h1,.not-found h1{font-size:2.25rem}.article-header h1{font-size:2rem}.featured-post h3{font-size:1.65rem}.featured-excerpt{font-size:0.98rem}.post-list li{grid-template-columns:4.8rem minmax(0,1fr);gap:0 0.75rem}.archive-year li{display:block}.archive-year li span{display:block;margin-top:0.12rem}.friend-list{grid-template-columns:1fr}.article-neighbors{grid-template-columns:1fr}.article-neighbor-next{text-align:left}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important}.reading-progress{display:none}.toc details::details-content{transition-duration:0s !important}}@media print{:root{color-scheme:light}.site-header,.site-footer,.toc,.article-neighbors,.reading-progress,.back-top{display:none}body{background:#fff;color:#000}.article-layout{display:block;max-width:none}.prose{font-size:11pt}}