:root{--bg:#fdfaf4;--header-bg:rgba(253,250,244,0.74);--header-border:rgba(231,221,205,0.72);--bg-soft:#f6efe3;--bg-card:#fffdf9;--border:#e7ddcd;--border-strong:#d9cdb8;--toc-bar:#c6b69c;--text:#2a2521;--text-body:#3a332d;--text-soft:#574e45;--muted:#8c8279;--accent:#b4552f;--accent-soft:#f0dccf;--on-accent:#fffdf9;--link:#9c4a28;--link-line:#d9b49c;--quote-bar:#c08a3e;--code-bg:#f7f0e4;--code-text:#7a4a2e;--mark:#f3e3c3;--measure:800px;--gutter:10px;--header-h:56px;--fs-body:1.2rem;--lh-body:1.9;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif;--font-serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Noto Serif","Songti SC","Noto Serif SC","Source Han Serif SC","Source Han Serif CN","Source Han Serif",STSong,SimSun,serif;--font-mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,"Liberation Mono",monospace}[data-theme="dark"]{--bg:#1a1613;--header-bg:rgba(26,22,19,0.76);--header-border:rgba(51,43,36,0.72);--bg-soft:#241e19;--bg-card:#221d19;--border:#332b24;--border-strong:#443a2f;--toc-bar:#5f5245;--text:#e8e0d4;--text-body:#d8cfc1;--text-soft:#b9ae9f;--muted:#8a7f71;--accent:#e08a5f;--accent-soft:#3a2a22;--on-accent:#241a14;--link:#e89b72;--link-line:#6b4532;--quote-bar:#c99a57;--code-bg:#221c17;--code-text:#e0b49a;--mark:#4a3a1f}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}html{background:var(--bg);scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 1.5rem);-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text-body);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-feature-settings:"kern" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;transition:background-color 0.25s ease,color 0.25s ease}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}main#content{flex:1;width:100%;max-width:var(--measure);margin:0 auto;padding:2.8rem var(--gutter) 5rem}#site-top{display:contents}#site-bottom{display:block}.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:saturate(170%) blur(14px);-webkit-backdrop-filter:saturate(170%) blur(14px);border-bottom:1px solid var(--header-border)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header{background:var(--bg)}}.header-inner{width:100%;max-width:var(--measure);margin:0 auto;padding:0 var(--gutter);height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.site-name{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-serif);font-size:1.4rem;font-weight:600;letter-spacing:0.03em;color:var(--text);text-decoration:none;flex-shrink:0;transition:color 0.15s}.site-name:hover{color:var(--accent)}.site-logo{display:inline-flex;align-items:center;color:var(--accent);transition:opacity 0.15s}.site-logo svg{display:block;width:1.15em;height:1.15em}.site-name:hover .site-logo{opacity:0.75}.site-nav{display:flex;align-items:center;gap:1.15rem;margin-left:auto}.site-nav a,.mobile-nav a,.nav-panel a{color:var(--text-soft);font-size:var(--fs-body);text-decoration:none;white-space:nowrap;flex:0 0 auto;transition:color 0.15s}.site-nav a:hover,.site-nav a[aria-current="page"],.mobile-nav a:hover,.mobile-nav a[aria-current="page"],.nav-panel a:hover,.nav-panel a[aria-current="page"]{color:var(--accent)}.site-nav a.nav-icon,.mobile-nav a.nav-icon,.nav-panel a.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.site-nav a.nav-icon svg,.mobile-nav a.nav-icon svg,.nav-panel a.nav-icon svg{width:1.12rem;height:1.12rem;display:block;transform:translateY(1px)}.nav-icon-label{display:none}.mobile-nav,.nav-panel{display:none}.nav-toggle{display:none;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-soft);cursor:pointer;flex:0 0 auto;place-items:center;transition:background-color 0.15s,color 0.15s}.nav-toggle:hover{background:var(--bg-soft);color:var(--accent)}.nav-toggle svg{width:18px;height:18px;display:block}.nav-toggle .icon-close{display:none}.nav-toggle[aria-expanded="true"] .icon-menu{display:none}.nav-toggle[aria-expanded="true"] .icon-close{display:block}.theme-toggle{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;flex:0 0 auto;transition:background-color 0.15s,color 0.15s}.theme-toggle:hover{background:var(--bg-soft);color:var(--accent)}.theme-toggle svg{width:15px;height:15px}[data-theme="dark"] .icon-sun,:root:not([data-theme="dark"]) .icon-moon{display:none}.progress{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--accent);transition:width 0.08s linear}.post-header{margin-bottom:1.2rem}.post-title{font-family:var(--font-serif);font-size:clamp(1.55rem,1.28rem + 1.1vw,1.95rem);font-weight:600;line-height:1.42;letter-spacing:0.01em;color:var(--text);margin:0 0 0.5rem}.post-meta{font-family:var(--font-mono);font-size:1rem;color:var(--muted);letter-spacing:0.01em;display:flex;flex-wrap:wrap;align-items:center;gap:0.55rem;margin:0}.post-meta>* + *::before{content:"·";margin-right:0.55rem;color:var(--border-strong)}.post-content{color:var(--text-body);font-family:var(--font-serif);-webkit-font-smoothing:subpixel-antialiased;font-size:1.25rem;text-spacing-trim:space-first;text-autospace:normal;line-break:strict}.post-content>p:first-child{margin-top:0}.post-content p{margin:0 0 1.15em;text-align:justify;text-justify:inter-ideograph;text-align-last:left;overflow-wrap:break-word;hanging-punctuation:allow-end;text-wrap:pretty}.post-content a{color:var(--link);text-decoration:underline;text-decoration-color:var(--link-line);text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-color 0.15s,color 0.15s}.post-content a:hover{color:var(--accent);text-decoration-color:var(--accent)}.post-content h2,.post-content h3,.post-content h4{color:var(--text);font-weight:600;line-height:1.5;scroll-margin-top:calc(var(--header-h) + 1.5rem)}.post-content h2{font-family:var(--font-serif);font-size:1.3em;margin:1.1em 0 0.8em}.post-content h3{font-family:var(--font-serif);font-size:1.12em;margin:0.95em 0 0.65em}.post-content h4{font-size:1em;font-weight:600;color:var(--text);margin:0.85em 0 0.6em}.post-content ul,.post-content ol{margin:0 0 1rem;padding-left:1.5em}.post-content li{margin-bottom:0.12em;text-align:justify;text-align-last:left}.post-content li::marker{color:var(--muted)}.post-content li>ul,.post-content li>ol{margin:0.15em 0 0}.post-content blockquote{margin:1.9em 0;padding:0.9em 1.15em;border-left:2px solid var(--quote-bar);background:var(--bg-soft);border-radius:0 4px 4px 0;color:var(--text-soft);font-size:0.96em}.post-content blockquote p{margin:0}.post-content blockquote p + p{margin-top:0.8em}.post-content code{font-family:var(--font-mono);font-size:0.87em;background:var(--code-bg);color:var(--code-text);padding:0.12em 0.38em;border-radius:4px;word-break:break-word}.post-content pre{margin:1.7em 0;padding:1rem 1.15rem;background:var(--code-bg);border:1px solid var(--border);border-radius:8px;overflow-x:auto;font-size:0.85em;line-height:1.7;tab-size:2}.post-content pre code{background:none;color:inherit;padding:0;font-size:inherit}.post-content hr{border:0;width:64px;height:1px;background:var(--border-strong);margin:3em auto}.post-content img{max-width:100%;height:auto;border-radius:6px;display:block;margin:1.8em auto}.post-content figure{margin:2em 0;text-align:center}.post-content figure img{margin:0 auto}.post-content figcaption p{margin:0}.post-content figcaption{font-size:0.82em;color:var(--muted);margin-top:0.7em;line-height:1.7}.post-content table{width:100%;border-collapse:collapse;margin:1.7em 0;font-size:0.92em;line-height:1.7}.post-content thead th{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);font-weight:600;color:var(--text);text-align:left}.post-content tbody tr:last-child td{border-bottom:1px solid var(--border-strong)}.post-content th,.post-content td{padding:0.55em 0.75em}.post-content tbody td{border-bottom:1px solid var(--border)}.post-content mark{background:var(--mark);color:inherit;padding:0.05em 0.2em;border-radius:2px}.post-content kbd{font-family:var(--font-mono);font-size:0.82em;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0.1em 0.4em;color:var(--text-soft)}.post-content .footnotes{margin-top:3.5em;padding-top:1.3em;border-top:1px solid var(--border);font-size:0.85em;color:var(--text-soft)}.post-content .footnotes hr{display:none}.post-content .footnotes ol{padding-left:1.3em;margin:0}.post-content .footnote-ref a{text-decoration:none;padding:0 0.15em}.post-content .section-number{font-family:var(--font-mono);font-size:0.85em;color:var(--muted);margin-right:0.3em;font-weight:400}.post-content .org-src-container{margin:1.7em 0}.post-content .org-src-container pre{margin:0}.post-content .table{margin:1.7em 0;overflow-x:auto}.post-content .table table{margin:0}.post-content #table-of-contents{border:1px solid var(--border);border-radius:8px;padding:1em 1.2em;margin:0 0 2.2em;font-size:0.9rem;background:var(--bg-card)}.post-content #table-of-contents h2{font-family:var(--font-sans);font-size:0.72rem;letter-spacing:0.14em;color:var(--muted);font-weight:400;margin:0 0 0.6em}.post-content #table-of-contents ul{list-style:none;padding-left:0.9em;margin:0}.post-content #table-of-contents>ul{padding-left:0}.post-content .outline-text-2,.post-content .outline-text-3{margin:0}.post-content .figure-number,.post-content .listing-number{color:var(--muted)}.post-content .todo,.post-content .done{font-family:var(--font-mono);font-size:0.78em;letter-spacing:0.08em;padding:0.1em 0.45em;border-radius:3px;margin-right:0.35em}.post-content .todo{color:var(--accent);background:var(--accent-soft)}.post-content .done{color:var(--muted);background:var(--bg-soft)}.post-content .timestamp,.post-content .timestamp-wrapper{font-family:var(--font-mono);font-size:0.85em;color:var(--muted);white-space:nowrap;margin:0 0.1em}.post-footer{margin-top:3rem}.post-meta-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.25rem 1rem;margin:0 0 1.6rem}.post-meta-row a{font-family:inherit;font-size:1rem;line-height:1.7;color:var(--muted);text-decoration:none;transition:color 0.15s}.post-meta-row a:hover{color:var(--accent)}.post-copyright{margin:0 0 1.6rem;font-size:0.9rem;line-height:1.75;color:var(--muted)}.post-copyright a{color:var(--text-soft);text-decoration:none;border-bottom:1px solid var(--border)}.post-copyright a:hover{color:var(--accent)}.post-tags{display:flex;flex-wrap:wrap;gap:0.25rem 1rem}.post-tags .tag-hash{margin-right:0.12em;color:var(--border-strong);transition:color 0.15s}.post-tags a:hover .tag-hash{color:var(--accent-soft)}.post-section-label{margin:0 0 0.9rem;font-size:1rem;letter-spacing:0.06em;color:var(--muted);font-weight:400}.post-related,.post-sameday{margin-bottom:2.6rem}.rel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.72rem 1.9rem;margin:0;padding:0;list-style:none;font-size:1rem}.rel-item a{display:flex;align-items:baseline;gap:0.5rem;color:var(--text);text-decoration:none}.rel-item a:hover .rel-title{color:var(--accent)}.rel-date{flex:0 0 auto;font-family:var(--font-mono);color:var(--muted);white-space:nowrap}.rel-sep{flex:0 0 auto;color:var(--muted);opacity:0.75}.rel-title{flex:1 1 auto;min-width:0;line-height:1.6;transition:color 0.15s}.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 2.4rem;margin-bottom:2.6rem;padding-top:1.1rem;border-top:1px solid var(--border);font-size:1rem}.post-nav-col{display:flex;flex-direction:column;gap:0.4rem;min-width:0}.post-nav-next{text-align:right;align-items:flex-end}.post-nav-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:0.02em}.post-nav-col a{color:var(--text);text-decoration:none;line-height:1.6;transition:color 0.15s}.post-nav-col a:hover{color:var(--accent)}.post-nav-none{color:var(--muted);opacity:0.72}.comments{margin-top:3.2rem;padding-top:1.6rem}.ctabs{position:relative}.ctab-radio{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.ctabs-bar{display:flex;gap:1.7rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.ctab{position:relative;display:inline-flex;align-items:baseline;gap:0.42rem;padding:0 0 0.65rem;font-size:1.2rem;color:var(--muted);cursor:pointer;transition:color 0.18s ease}.ctab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:transparent;transition:background 0.18s ease}.ctab:hover{color:var(--text-soft)}.ctab-text{letter-spacing:0.02em}.ctab-badge{font-family:var(--font-mono);font-size:0.95rem;color:var(--muted)}#ct-webmention:checked ~ .ctabs-bar label[for="ct-webmention"],#ct-comments:checked ~ .ctabs-bar label[for="ct-comments"]{color:var(--text)}#ct-webmention:checked ~ .ctabs-bar label[for="ct-webmention"]::after,#ct-comments:checked ~ .ctabs-bar label[for="ct-comments"]::after{background:var(--accent)}#ct-webmention:focus-visible ~ .ctabs-bar label[for="ct-webmention"],#ct-comments:focus-visible ~ .ctabs-bar label[for="ct-comments"]{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.ctab-panel{display:none}#ct-webmention:checked ~ .ctabs-body #panel-webmention,#ct-comments:checked ~ .ctabs-body #panel-comments{display:block}.cwd-loading{display:flex;align-items:center;gap:0.55rem;padding:1.4rem 0 2.2rem;font-size:0.95rem;color:var(--muted);transition:opacity 0.24s ease}.cwd-loading.is-done{opacity:0}.cwd-loading-dots{display:inline-flex;align-items:center;gap:0.26rem}.cwd-loading-dots i{width:4px;height:4px;border-radius:50%;background:currentColor;animation:cwd-dot 1.25s ease-in-out infinite}.cwd-loading-dots i:nth-child(2){animation-delay:0.16s}.cwd-loading-dots i:nth-child(3){animation-delay:0.32s}@keyframes cwd-dot{0%,70%,100%{opacity:0.22;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}.cwd-comments{min-height:80px}.comments-disabled{font-size:0.95rem;line-height:1.75;color:var(--muted);background:var(--bg-soft);border:1px dashed var(--border-strong);border-radius:8px;padding:0.9rem 1.05rem;margin:0}.comments-disabled code{font-family:var(--font-mono);font-size:0.88em;color:var(--text-soft)}.cm-mailto{margin:1.5rem 0 0;font-size:0.9rem;color:var(--muted)}.cm-mailto a{color:var(--link)}.wm-tip{font-size:0.95rem;line-height:1.75;color:var(--muted);margin:0 0 1rem}.wm-tip a{color:var(--link)}.wm-send{display:flex;gap:0.65rem;margin:0 0 1.8rem}.wm-source{flex:1 1 auto;min-width:0;padding:0.5rem 0.72rem;font-family:inherit;font-size:0.95rem;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:6px;transition:border-color 0.18s ease,box-shadow 0.18s ease}.wm-source::placeholder{color:var(--muted)}.wm-source:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.wm-send button{flex:0 0 auto;padding:0.5rem 1.1rem;font-family:inherit;font-size:0.95rem;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:opacity 0.18s ease}.wm-send button:hover{opacity:0.88}.wm-reactions{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem;margin:0 0 1.3rem}.wm-reactions-label{font-size:0.9rem;color:var(--muted);margin-right:0.15rem}.wm-reactions a{display:block;line-height:0}.wm-reactions img,.wm-reactions .wm-noavatar{display:block;width:26px;height:26px;border-radius:50%;object-fit:cover}.wm-list{list-style:none;padding:0;margin:0}.wm-item{display:flex;gap:0.85rem;padding:1rem 0;border-top:1px solid var(--border)}.wm-item:first-child{border-top:0;padding-top:0.2rem}.wm-avatar{flex:0 0 auto}.wm-avatar img,.wm-avatar .wm-noavatar{display:block;width:34px;height:34px;border-radius:50%;object-fit:cover}.wm-noavatar{display:flex;align-items:center;justify-content:center;font-size:0.85rem;color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border)}.wm-body{min-width:0}.wm-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.5rem;font-size:0.95rem}.wm-author{color:var(--text);text-decoration:none}.wm-author:hover{color:var(--accent)}.wm-type{font-size:0.82rem;color:var(--muted)}.wm-date{font-family:var(--font-mono);font-size:0.82rem;color:var(--muted)}.wm-text{margin:0.4rem 0 0;font-size:0.95rem;line-height:1.78;color:var(--text-soft)}.wm-empty,.wm-loading{margin:0;padding:0.6rem 0 0.2rem;font-size:0.95rem;color:var(--muted)}.intro{font-family:var(--font-serif);-webkit-font-smoothing:subpixel-antialiased;font-size:1.25rem;line-height:1.95;color:var(--text-soft);padding-bottom:2.4rem;border-bottom:1px solid var(--border);margin-bottom:2.4rem}.intro p{margin:0 0 1em;text-align:justify;text-align-last:left;text-spacing-trim:space-first;text-autospace:normal}.intro p:last-child{margin-bottom:0}.intro a{color:var(--link);text-decoration:underline;text-decoration-color:var(--link-line);text-decoration-thickness:1px;text-underline-offset:3px}.intro a:hover{text-decoration-color:var(--link)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:0 0 1.1rem}.section-label{font-size:1.4rem;font-weight:400;letter-spacing:0.06em;line-height:1.3;color:var(--muted);margin:0}.section-more{flex:0 0 auto;font-size:0.95rem;color:var(--muted);text-decoration:none;white-space:nowrap;transition:color 0.15s}.section-more:hover{color:var(--accent)}.home-section{margin-top:2.6rem}.list-header{margin-bottom:2.4rem;padding-bottom:1.4rem;border-bottom:1px solid var(--border)}.list-header-top{display:flex;align-items:baseline;gap:1.15rem}.list-title{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--text);margin:0 0 0.5rem}.list-count{flex:0 0 auto;font-family:var(--font-mono);font-size:1rem;color:var(--muted);white-space:nowrap}.list-feed{display:inline-flex;align-items:center;gap:0.28rem;flex:0 0 auto;margin-left:auto;font-size:0.9rem;color:var(--muted);text-decoration:none;white-space:nowrap;transition:color 0.15s}.list-feed svg{width:0.98rem;height:0.98rem;display:block;transform:translateY(1px)}.list-feed:hover{color:var(--accent)}.list-body{margin-bottom:1.8rem}.subsections{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0 0 2.2rem}.subsection{display:inline-flex;align-items:baseline;gap:0.45rem;padding:0.22rem 0.7rem;border:1px solid var(--border);border-radius:4px;color:var(--text-soft);text-decoration:none;font-size:1rem;transition:border-color 0.15s,color 0.15s}.subsection:hover{color:var(--accent);border-color:var(--accent-soft)}.subsection-count{font-family:var(--font-mono);font-size:0.85em;color:var(--muted)}.series-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.5rem}.series-item{margin:0}.series-head{display:flex;align-items:baseline;gap:0.55rem;margin-bottom:0.3rem}.series-name{font-family:var(--font-serif);font-size:1.25rem;color:var(--text);text-decoration:none;transition:color 0.15s}.series-name:hover{color:var(--accent)}.series-badge{font-size:0.78rem;line-height:1.6;padding:0 0.45rem;border:1px solid var(--border);border-radius:3px;color:var(--muted);white-space:nowrap}.series-desc{margin:0 0 0.2rem;color:var(--text-soft)}.series-meta{margin:0;font-family:var(--font-mono);font-size:0.88rem;color:var(--muted)}.year-group{scroll-margin-top:calc(var(--header-h) + 1.5rem)}.year-group + .year-group{margin-top:0.75rem}.year-heading{display:flex;align-items:baseline;gap:0.9rem;font-family:var(--font-mono);font-size:1.2rem;font-weight:400;color:var(--muted);letter-spacing:0.04em;margin:0 0 0.3rem}.year-count{flex:0 0 auto;font-size:1rem;letter-spacing:0.02em;white-space:nowrap}.year-group>summary.year-heading{list-style:none;cursor:pointer;padding:0.35rem 0;margin-bottom:0.1rem;transition:color 0.15s}.year-group>summary.year-heading::-webkit-details-marker{display:none}.year-group>summary.year-heading::marker{content:""}.year-group>summary.year-heading:hover,.year-group>summary.year-heading:focus-visible{color:var(--text-soft)}.year-group>summary.year-heading::after{content:"";flex:0 0 auto;width:0.4rem;height:0.4rem;margin-left:0.1rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-0.12rem) rotate(45deg);opacity:0.55;transition:transform 0.18s ease}.year-group:not([open])>summary.year-heading::after{transform:translateY(-0.05rem) rotate(-45deg)}.year-group[open]>.post-list{padding-top:0.1rem}@media (prefers-reduced-motion:reduce){.year-group>summary.year-heading,.year-group>summary.year-heading::after{transition:none}}.post-list{list-style:none;margin:0;padding:0}.post-item{display:flex;align-items:baseline;gap:1rem;padding:0.55rem 0}.post-date{flex:0 0 auto;white-space:nowrap;font-family:var(--font-mono);font-size:1rem;color:var(--muted);letter-spacing:0.02em}.post-link{color:var(--text);font-size:1rem;text-decoration:none;line-height:1.6}.post-link:hover{color:var(--accent)}.post-content .post-link,.post-content .subsection{text-decoration:none;text-decoration-color:transparent}.post-content .post-link{color:var(--text)}.post-content .post-link:hover{color:var(--accent)}.post-content .subsection{color:var(--text-soft)}.post-content .subsection:hover{color:var(--accent)}.toc{display:none}@media (min-width:1240px){.post-layout{display:grid;grid-template-columns:100% min(208px,calc(50vw - var(--measure) / 2 + var(--gutter) - 2rem - 8px));column-gap:2rem;align-items:start}.toc{display:block;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start;max-height:calc(100vh - var(--header-h) - 4rem);overflow-y:auto;font-size:1rem;line-height:1.85;scrollbar-width:thin;scrollbar-color:var(--border) transparent}}.toc-label{font-size:1.2rem;font-weight:400;letter-spacing:0.06em;color:var(--text);margin:0 0 0.7rem}.toc ul{list-style:none;margin:0;padding:0}.toc ul ul,.toc ul ul ul{padding-left:0}.toc a{position:relative;display:block;padding:0.1rem 0 0.1rem 0.95rem;color:var(--muted);text-decoration:none;transition:color 0.15s}.toc a::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:1.15em;border-radius:1.5px;background:var(--toc-bar);transition:background-color 0.15s,height 0.15s}.toc ul ul a{padding-left:calc(0.95rem + 1.1rem)}.toc ul ul ul a{padding-left:calc(0.95rem + 2.2rem)}.toc a:hover{color:var(--text-soft)}.toc a:hover::before{background:var(--muted)}.toc a.is-active{color:var(--accent)}.toc a.is-active::before{height:1.45em;background:var(--accent)}.tag-cloud{display:flex;flex-wrap:wrap;gap:0.55rem;margin:0 0 2rem}.tag-cloud .tag{display:inline-flex;align-items:baseline;gap:0.4rem;padding:0.18rem 0.62rem;border:1px solid var(--border);border-radius:4px;color:var(--text-soft);text-decoration:none;font-size:1rem;transition:border-color 0.15s,color 0.15s}.tag-cloud .tag:hover{color:var(--accent);border-color:var(--accent-soft)}.tag-count{font-family:var(--font-mono);font-size:0.82em;color:var(--muted)}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0 1.7rem;font-size:0.95rem;line-height:1.75;color:var(--muted)}.footer-inner{width:100%;max-width:var(--measure);margin:0 auto;padding:0 var(--gutter);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem}.footer-info{display:flex;flex-direction:column;gap:0.1rem}.footer-line{margin:0}.footer-nav{margin:0 0 0.6rem}.footer-nav ul{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.3rem 1.6rem;list-style:none;margin:0;padding:0}.footer-nav a{font-size:1rem;color:var(--text-soft);text-decoration:none}.footer-nav a:hover{color:var(--accent)}.footer-inner a{color:var(--muted);text-decoration:none}.footer-inner a:hover{color:var(--accent)}.search-page .search-hint{margin:0 0 1.1rem;font-size:0.92rem;color:var(--muted)}.search-page .search-form{position:relative;display:flex;align-items:center;margin-bottom:1.1rem}.search-page .search-input{width:100%;padding:0.75rem 2.8rem 0.75rem 1rem;font-family:inherit;font-size:1.05rem;color:var(--text);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:8px;appearance:none;transition:border-color 0.18s ease,box-shadow 0.18s ease}.search-page .search-input::placeholder{color:var(--muted)}.search-page .search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-page .search-kbd{position:absolute;right:0.85rem;font-family:var(--font-mono);font-size:0.78rem;line-height:1.5;color:var(--muted);background:var(--bg-soft);border:1px solid var(--border);border-radius:4px;padding:0.05rem 0.4rem;pointer-events:none;transition:opacity 0.18s ease}.search-page .search-input:focus ~ .search-kbd{opacity:0}.search-page .search-status{min-height:1.4em;margin:0 0 1.3rem;font-size:0.9rem;color:var(--muted)}.search-page .search-results{list-style:none;padding:0;margin:0}.search-page .search-item{padding:1.15rem 0;border-top:1px solid var(--border)}.search-page .search-item:first-child{border-top:0;padding-top:0.2rem}.search-page .search-item-title{display:inline-block;font-family:var(--font-serif);font-size:1.15rem;color:var(--text);text-decoration:none;background-image:linear-gradient(var(--link-line),var(--link-line));background-repeat:no-repeat;background-size:0 1px;background-position:0 100%;transition:color 0.18s ease,background-size 0.22s ease}.search-page .search-item-title:hover{color:var(--accent);background-size:100% 1px}.search-page .search-item-meta{margin:0.32rem 0 0;font-family:var(--font-mono);font-size:0.84rem;color:var(--muted)}.search-page .search-item-snippet{margin:0.38rem 0 0;font-size:0.95rem;line-height:1.78;color:var(--text-soft)}.search-page mark{background:var(--mark);color:inherit;padding:0.05em 0.2em;border-radius:2px}@media (max-width:640px){:root{--gutter:1.25rem;--fs-body:1rem;--lh-body:1.88;--header-h:52px}.post-content,.intro{font-size:1.0625rem}main#content{padding-top:1.8rem;padding-bottom:3.5rem}.header-inner{flex-wrap:nowrap;height:var(--header-h);padding:0 var(--gutter);column-gap:0.45rem}.site-title-text{display:none}.site-name{font-size:1.25rem;gap:0}html.js .site-nav{display:none}html.js .mobile-nav{display:flex;align-items:center;gap:0.9rem;margin-left:auto}html.js .mobile-nav a{font-size:0.98rem;padding:0.5rem 0}html.js .mobile-nav a.nav-icon{width:1.5rem;height:1.5rem;padding:0}html.js .nav-toggle{display:grid}html.js .mobile-nav + .nav-toggle,html.js .theme-toggle{margin-left:0}html.js .nav-panel{position:absolute;top:100%;left:0;right:0;z-index:60;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;max-height:calc(100vh - var(--header-h));overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.35rem 0 0.6rem;background:var(--bg);border-bottom:1px solid var(--header-border);box-shadow:0 16px 24px -20px rgba(0,0,0,0.5)}html.js .nav-panel.is-open{display:flex}html.js .nav-panel a{display:block;padding:0.6rem var(--gutter);font-size:1.02rem}html.js .nav-panel a.nav-icon{display:flex;align-items:center;justify-content:flex-start;width:auto;height:auto}html.js .nav-panel a.nav-icon svg{width:1.05rem;height:1.05rem;transform:none}html.js .nav-panel a.nav-icon .nav-icon-label{display:inline;margin-left:0.5rem}html:not(.js) .header-inner{flex-wrap:wrap;height:auto;padding:0.6rem var(--gutter) 0.45rem;row-gap:0.15rem;column-gap:0.8rem}html:not(.js) .site-title-text{display:inline}html:not(.js) .theme-toggle{margin-left:auto}html:not(.js) .site-nav{order:3;flex-basis:100%;margin-left:0;flex-wrap:wrap;gap:0.55rem 0.9rem}.rel-list,.post-nav{grid-template-columns:1fr;gap:0.6rem}.post-nav-next{text-align:left;align-items:flex-start}.ctabs-bar{gap:1.2rem}.wm-send{flex-wrap:wrap}.wm-source{flex-basis:100%}.wm-send button{width:100%}.post-item{gap:0.75rem}}@media print{.site-header,.site-footer,.post-nav,.comments,.post-meta-row,.toc{display:none}body{font-size:11pt;background:#fff;color:#000}main#content{max-width:none;padding:0}}