:root{color-scheme:light;--paper:#f7f2e8;--paper-soft:#efe6d6;--paper-deep:#e7dccb;--ink:#2b2a27;--ink-strong:#171717;--muted:#6b6258;--line:#d8cbb8;--line-strong:#bda98f;--red:#8a2f2b;--green:#2f4a3d;--blue:#40566b;--gold:#9a7240;--code-bg:#eee8dc;--code-line:#d1c4b2;--shadow:0 18px 50px rgba(54, 40, 22, .08);--serif-cn:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;--serif-en:Georgia, "Cormorant Garamond", "Libre Baskerville", serif;--ui:Inter, "Noto Sans SC", system-ui, sans-serif;--mono:"JetBrains Mono", "Fira Code", "IBM Plex Mono", monospace}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink)}body{margin:0;min-height:100vh;font-family:var(--serif-cn);line-height:1.75;background:linear-gradient(90deg,rgba(216,203,184,.28) 1px,transparent 1px)50%/76px 76px,radial-gradient(circle at 92% 28%,rgba(47,74,61,6%),transparent 28rem),var(--paper)}a{color:var(--ink-strong);text-decoration-color:rgba(138,47,43,.35);text-underline-offset:.18em}a:hover{color:var(--red)}img{max-width:100%;height:auto}.page-shell{width:min(1120px,calc(100% - 40px));margin-inline:auto}.list-width{width:min(920px,calc(100% - 40px))}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px)}.site-header__inner{width:min(1120px,calc(100% - 32px));min-height:64px;margin-inline:auto;display:grid;grid-template-columns:auto 1fr minmax(180px,280px)auto;align-items:center;gap:24px}.site-logo{width:36px;height:36px;display:inline-grid;place-items:center}.site-logo img{width:36px;height:36px;display:block}.site-nav{display:flex;justify-content:center;gap:28px;font-family:var(--ui);font-size:.9rem;letter-spacing:0}.site-nav a{padding:20px 0 17px;border-bottom:2px solid transparent;color:var(--ink);text-decoration:none}.site-nav a.is-active,.site-nav a:hover{border-color:var(--red);color:var(--ink-strong)}.site-search input,.search-input{width:100%;height:34px;border:1px solid var(--line);border-radius:999px;background:rgba(255,252,244,.48);color:var(--ink);padding:0 14px;font-family:var(--ui)}.site-actions{display:flex;align-items:center;gap:10px;font-family:var(--ui);font-size:.78rem}.icon-link,.theme-toggle{min-width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--line);background:0 0;color:var(--ink);text-decoration:none;font-family:var(--ui);cursor:pointer}.site-main{padding:42px 0 60px}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-family:var(--ui);font-size:.85rem}.site-footer__inner{width:min(1120px,calc(100% - 40px));margin-inline:auto;padding:24px 0;display:flex;justify-content:center;gap:18px;flex-wrap:wrap}@media(max-width:820px){.site-header__inner{grid-template-columns:auto 1fr auto;gap:14px;padding:10px 0}.site-nav{order:4;grid-column:1/-1;justify-content:flex-start;overflow-x:auto;gap:20px}.site-nav a{padding:4px 0 8px;white-space:nowrap}.site-search{display:none}.page-shell,.list-width{width:min(100% - 28px,1120px)}}h1,h2,h3,h4{color:var(--ink-strong);font-family:var(--serif-cn);line-height:1.28;letter-spacing:0}.post-title{margin:0;font-size:clamp(1.8rem,4vw,2.1rem);font-weight:600}.section-title,.list-header h1{margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:1.45rem}.post-content{font-size:1rem;line-height:1.85}.post-content>*+*{margin-top:1.1em}.post-content h2{margin-top:2.2em;padding-top:.3em;border-top:1px solid var(--line);font-size:1.55rem}.post-content h3{margin-top:1.8em;font-size:1.22rem}.post-content p{margin:1em 0}.post-content a{color:var(--red)}.post-content blockquote{margin:1.3em 0;padding:.3em 0 .3em 1.1em;border-left:3px solid var(--line-strong);color:#4e463c;background:rgba(239,230,214,.36)}.post-content table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;font-family:var(--ui);font-size:.92rem}.post-content th,.post-content td{border:1px solid var(--line);padding:10px 12px;text-align:left}.post-content th{background:var(--paper-soft)}.post-content img{display:block;margin:1.4em auto;border:1px solid var(--line)}.post-content code{font-family:var(--mono);font-size:.92em}.post-content :not(pre)>code{padding:.15em .35em;border:1px solid var(--code-line);background:var(--code-bg);color:var(--red)}.highlight,.post-content pre{position:relative;overflow-x:auto;border:1px solid var(--code-line);background:var(--code-bg);box-shadow:inset 0 1px rgba(255,255,255,.42)}.highlight pre,.post-content pre{margin:0;padding:16px 18px}.highlight code,.post-content pre code{color:#2f2f2f;font-family:var(--mono);font-size:.9rem;line-height:1.68}.copy-code{position:absolute;top:8px;right:8px;z-index:2;border:1px solid var(--line-strong);background:rgba(247,242,232,.92);color:var(--ink);font-family:var(--ui);font-size:.75rem;padding:3px 8px;cursor:pointer}.mermaid{padding:18px;border:1px solid var(--line);background:rgba(239,230,214,.44);text-align:center;overflow-x:auto}.katex-display{overflow-x:auto;overflow-y:hidden}.home-hero{display:grid;grid-template-columns:1fr 360px;gap:54px;align-items:center;padding:36px 0 50px;border-bottom:1px solid var(--line)}.profile{display:grid;grid-template-columns:156px 1fr;gap:42px;align-items:center}.profile__avatar{width:156px;height:156px;border-radius:50%;object-fit:cover;border:1px solid var(--line);filter:sepia(.16)contrast(.92)}.profile h1{margin:0 0 10px;font-size:2.15rem}.profile__lead{max-width:620px;margin:0 0 16px;color:var(--ink);line-height:1.9}.profile__links{display:flex;gap:12px;font-family:var(--ui);font-size:.9rem}.profile__links a,.more-link a,.post-neighbor a,.pagination a{border-bottom:1px solid var(--line-strong);text-decoration:none}.home-recent{padding-left:40px;border-left:1px solid var(--line)}.home-recent h2,.home-side h2{margin:0 0 14px;font-size:1.05rem}.home-recent a{display:grid;gap:2px;padding:7px 0;text-decoration:none}.home-recent time{color:var(--muted);font-family:var(--ui);font-size:.78rem}.home-grid{display:grid;grid-template-columns:minmax(0,1fr)300px;gap:50px;padding-top:40px}.home-side{display:grid;align-content:start;gap:34px;padding-left:34px;border-left:1px solid var(--line)}.article-item{display:grid;grid-template-columns:148px minmax(0,1fr);gap:22px;padding:18px 0;border-bottom:1px solid var(--line)}.article-item--no-cover{grid-template-columns:minmax(0,1fr)}.article-item__cover{width:148px;aspect-ratio:16/9;border:1px solid var(--line);overflow:hidden;background:var(--paper-soft)}.article-item__cover img{width:100%;height:100%;object-fit:cover}.article-item h2{margin:0 0 4px;font-size:1.22rem}.article-item h2 a{text-decoration:none}.article-item p{margin:6px 0 0;color:#4f483f}.post-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-family:var(--ui);font-size:.82rem}.count-row,.archive-item{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);text-decoration:none}.count-row em,.archive-item em,.term-index em{color:var(--muted);font-style:normal;font-family:var(--ui)}.tag-cloud{display:flex;flex-wrap:wrap;gap:9px}.tag-cloud a,.term-index a,.term-filter{border:1px solid var(--line);background:rgba(239,230,214,.5);padding:4px 10px;color:var(--ink);text-decoration:none;font-family:var(--ui);font-size:.84rem}.term-filter{cursor:pointer}.term-filter.is-active{background:var(--ink);color:var(--paper)}.list-header{margin-bottom:24px}.list-header p{margin:0;color:var(--muted)}.term-index{display:flex;flex-wrap:wrap;gap:12px}.term-index a,.term-filter{display:inline-flex;gap:18px;align-items:center}.term-results{margin-top:24px}.post-layout{display:grid;grid-template-columns:minmax(0,760px)240px;gap:56px;align-items:start}.post-main{min-width:0}.post-header{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.breadcrumb{margin:0 0 12px;color:var(--muted);font-family:var(--ui);font-size:.82rem}.post-description{margin:12px 0 14px;color:#4c443b;font-size:1.05rem}.post-toc{position:sticky;top:88px;max-height:calc(100vh - 110px);overflow:auto;padding-left:20px;border-left:1px solid var(--line);color:var(--muted);font-family:var(--ui);font-size:.86rem}.post-toc__title{margin-bottom:10px;color:var(--ink-strong);font-weight:600}.post-toc ul{list-style:none;padding-left:12px;margin:0}.post-toc a{display:block;padding:4px 0;color:var(--muted);text-decoration:none}.post-neighbor{display:grid;gap:10px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}.archive-year{margin:32px 0}.archive-year h2{margin:0 0 12px;color:var(--red);font-family:var(--serif-en);font-size:2rem}.archive-month{margin:0 0 20px 28px}.archive-month h3{margin:0;color:var(--green)}.callout{margin:1.2em 0;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--blue);background:rgba(239,230,214,.45)}.callout p:first-child{margin-top:0}.callout p:last-child{margin-bottom:0}.callout-note{border-left-color:var(--blue)}.callout-tip{border-left-color:var(--green)}.callout-warning{border-left-color:var(--gold)}.callout-important{border-left-color:var(--red)}.pagination{display:flex;justify-content:center;gap:18px;margin-top:28px;font-family:var(--ui)}.search-input{max-width:520px;border-radius:0;margin-bottom:24px}.search-results{display:grid;gap:16px}.search-result{padding-bottom:14px;border-bottom:1px solid var(--line)}.search-result h2{margin:0 0 4px;font-size:1.15rem}.not-found{min-height:50vh;display:grid;place-items:center;align-content:center;text-align:center;gap:10px}@media(max-width:960px){.home-hero,.home-grid,.post-layout{grid-template-columns:1fr}.home-recent,.home-side{padding-left:0;border-left:0}.post-toc{position:static;max-height:none;border-left:0;border-top:1px solid var(--line);padding:16px 0 0}}@media(max-width:640px){.profile{grid-template-columns:1fr;text-align:left;gap:20px}.profile__avatar{width:120px;height:120px}.article-item{grid-template-columns:1fr}.article-item__cover{width:100%}}html[data-theme=dark]{color-scheme:dark;--paper:#171717;--paper-soft:#202124;--paper-deep:#2a2824;--ink:#d8d2c5;--ink-strong:#f2eadb;--muted:#aaa08f;--line:#3a332b;--line-strong:#5a4a3c;--red:#b96a5a;--green:#82a58d;--blue:#8ea1b5;--gold:#c8a56b;--code-bg:#1e1f22;--code-line:#33363b;--shadow:none}html[data-theme=dark] body{background:linear-gradient(90deg,rgba(80,68,54,.16) 1px,transparent 1px)50%/76px 76px,radial-gradient(circle at 88% 18%,rgba(138,47,43,.11),transparent 28rem),var(--paper)}html[data-theme=dark] .site-header{background:rgba(23,23,23,.9)}html[data-theme=dark] .post-content blockquote,html[data-theme=dark] .article-item p,html[data-theme=dark] .post-description{color:#c9c0b0}html[data-theme=dark] .highlight code,html[data-theme=dark] .post-content pre code{color:#d8d8d8}html[data-theme=dark] .copy-code{background:#202124}html[data-theme=dark] .site-logo img,html[data-theme=dark] .not-found img{filter:invert(1)sepia(.2)}