:root{--blog-canvas:#fffdf9;--blog-surface:#fffaf5;--blog-ink:#24221f;--blog-muted:#716c65;--blog-faint:#a7a19a;--blog-line:#e9e2d9;--blog-accent:#d94d7a;--blog-accent-wash:#fce8ef;--blog-shadow:0 16px 45px #4d3a2c14;--blog-content-width:740px;--blog-reader-width:1050px;--theme-color:var(--blog-accent)}*{box-sizing:border-box}html,body{background:var(--blog-canvas);min-height:100%;color:var(--blog-ink);margin:0}body,button,input,textarea{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}::selection{color:#fff;background:var(--blog-accent)}.markdown-section{max-width:var(--blog-content-width);color:var(--blog-ink);margin:0 auto;padding:64px 32px 72px;font-size:17px;line-height:1.9}.markdown-section>:first-child{margin-top:0}.markdown-section p,.markdown-section ul,.markdown-section ol{margin:1em 0}.markdown-section ul,.markdown-section ol{padding-left:1.7em}.markdown-section a{color:var(--blog-accent);text-underline-offset:.18em;text-decoration:underline #d94d7a4d;transition:color .16s,text-decoration-color .16s}.markdown-section a:hover{color:#ad315a;text-decoration-color:currentColor}.markdown-section p,.markdown-section li{letter-spacing:.012em}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4{color:var(--blog-ink);letter-spacing:-.025em;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-weight:650}.markdown-section h1{max-width:22em;margin:0 0 .9em;font-size:clamp(2rem,4vw,2.85rem);line-height:1.28}.markdown-section h2{border:0;margin:2.6em 0 .8em;padding:0;font-size:1.5rem;line-height:1.45}.markdown-section h3{margin:2em 0 .65em;font-size:1.16rem;line-height:1.55}.markdown-section h4{margin:1.7em 0 .55em;font-size:1rem}.markdown-section h1 .anchor,.markdown-section h2 .anchor,.markdown-section h3 .anchor,.markdown-section h4 .anchor{color:inherit;text-decoration:none}.markdown-section hr{background:var(--blog-line);border:0;height:1px;margin:3rem 0}.markdown-section blockquote{color:var(--blog-muted);border-left:2px solid var(--blog-accent);margin:1.8em 0;padding:.2em 0 .2em 1.1em;font-size:.98em}.markdown-section blockquote p{margin:.5em 0}.markdown-section code{color:#a5345c;background:#f8eee9;border-radius:.3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.markdown-section pre{border:1px solid var(--blog-line);box-shadow:none;border-radius:.7rem;margin:1.8em 0;padding:1.15rem 1.25rem;overflow-x:auto}.markdown-section pre>code{color:inherit;background:0 0}.markdown-section table{border-collapse:collapse;border:1px solid var(--blog-line);border-radius:.6rem;width:100%;margin:1.8em 0;display:block;overflow-x:auto}.markdown-section th,.markdown-section td{border-color:var(--blog-line);padding:.7em .8em}.markdown-section th{background:var(--blog-surface)}.markdown-section img{border:1px solid var(--blog-line);max-width:100%;height:auto;box-shadow:var(--blog-shadow);border-radius:.65rem;display:block}.markdown-section .mermaid{text-align:center;margin:1.8em 0;overflow-x:auto}.article-page .blog-reading-layout{grid-template-columns:minmax(0, var(--blog-content-width)) 210px;max-width:var(--blog-reader-width);align-items:start;gap:72px;margin:0 auto;padding:64px 32px 72px;display:grid}.article-page .markdown-section{min-width:0;margin:0;padding:0}.article-breadcrumb{color:var(--blog-faint);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:.5rem;margin:0 0 2rem;font-size:.8rem;line-height:1.4;display:flex;overflow:hidden}.article-breadcrumb a{color:var(--blog-muted);flex:none;text-decoration:none}.article-breadcrumb a:hover{color:var(--blog-accent)}.article-breadcrumb__separator{color:var(--blog-line)}.article-breadcrumb__current{text-overflow:ellipsis;overflow:hidden}.article-toc{border-left:1px solid var(--blog-line);scrollbar-width:thin;max-height:calc(100vh - 5rem);padding:.25rem 0 .25rem 1.05rem;position:sticky;top:2.5rem;overflow:auto}.article-toc__list{margin:0;padding:0;list-style:none}.article-toc__item+.article-toc__item{margin-top:.2rem}.article-toc__item--h3{padding-left:.72rem}.article-toc__link{color:var(--blog-muted);padding:.3rem 0;font-size:.79rem;line-height:1.45;text-decoration:none;transition:color .16s,transform .16s;display:block}.article-toc__link:hover,.article-toc__link.is-active{color:var(--blog-accent)}.article-toc__link.is-active{transform:translate(2px)}.home-page .markdown-section{max-width:820px;min-height:calc(100vh - 152px);padding-top:clamp(64px,12vh,132px)}.home-page .markdown-section h1,.home-page .markdown-section h2,.home-page .markdown-section h3,.home-page .markdown-section h4{font-weight:500}.home-page .markdown-section h1 a,.home-page .markdown-section h2 a,.home-page .markdown-section h3 a,.home-page .markdown-section h4 a{color:inherit;font-size:inherit;font-weight:inherit}.home-page .markdown-section h1{letter-spacing:-.065em;margin-bottom:.22em;font-size:clamp(3.35rem,10vw,5.5rem);font-weight:300}.home-page .markdown-section blockquote{color:var(--blog-muted);border:0;margin:0 0 2.4rem;padding:0;font-size:.94rem}.home-page .markdown-section h2{margin:2.7rem 0 .75rem;font-size:1.18rem}.home-page .markdown-section h3{color:var(--blog-muted);margin:1.65rem 0 .55rem;font-size:.92rem}.home-page .markdown-section ul{margin:0;padding:0;list-style:none}.home-page .markdown-section ul li{padding:.16rem 0;font-size:.94rem;line-height:1.75}.home-page .markdown-section ul li .tl-date{min-width:2.65rem;color:var(--blog-faint);margin-right:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;display:inline-block}.home-page .markdown-section a{color:var(--blog-ink);font-size:.88rem;font-weight:500;text-decoration:none}.home-page .markdown-section a:hover{color:var(--blog-accent)}.blog-footer{max-width:var(--blog-reader-width);color:var(--blog-faint);text-align:center;margin:0 auto;padding:0 32px 48px;font-size:.76rem}.blog-footer__contacts{justify-content:center;gap:.7rem;margin-bottom:1.1rem;display:flex}.blog-footer__icon{width:2.35rem;height:2.35rem;color:var(--blog-muted);border:1px solid var(--blog-line);background:#ffffff73;border-radius:999px;place-items:center;text-decoration:none;transition:color .16s,border-color .16s,background .16s,transform .16s;display:inline-grid}.blog-footer__icon:hover{color:var(--blog-accent);background:var(--blog-accent-wash);border-color:#d94d7a73;transform:translateY(-2px)}.blog-footer__icon svg{fill:currentColor;width:1rem;height:1rem}.blog-footer__icp{color:var(--blog-faint);text-decoration:none}.blog-footer__icp:hover{color:var(--blog-accent)}@media (width<=1120px){.article-page .blog-reading-layout{max-width:var(--blog-content-width);padding:56px 32px 64px;display:block}.article-toc{display:none}}@media (width<=700px){.markdown-section,.article-page .blog-reading-layout{padding-left:20px;padding-right:20px}.article-page .blog-reading-layout{padding-top:40px}.markdown-section{font-size:16px;line-height:1.85}.markdown-section h1{font-size:2rem}.markdown-section h2{font-size:1.36rem}.home-page .markdown-section{min-height:calc(100vh - 144px);padding-top:clamp(56px,14vh,90px)}.home-page .markdown-section h1{font-size:clamp(3.1rem,18vw,4.5rem)}.home-page .markdown-section ul li{font-size:.9rem}.blog-footer{padding:0 20px 36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
