.post-shell{--post-border:#e5e7eb;--post-muted:#64748b;--post-accent:#2563eb;--post-soft:#f5f7fa;overflow-wrap:anywhere;width:100%;max-width:760px;margin:0 auto;padding:4px 0 48px}.dark .post-shell{--post-border:#303744;--post-muted:#a1aab9;--post-accent:#93b4ff;--post-soft:#202632}.post-back{color:var(--post-muted);margin-bottom:28px;font-size:13px;display:inline-block}.post-back:hover{color:var(--post-accent)}.post-header{border-bottom:1px solid var(--post-border);margin-bottom:36px;padding-bottom:28px}.post-title{letter-spacing:-.025em;text-wrap:pretty;font-size:clamp(26px,2.7vw,38px);font-weight:750;line-height:1.4}.post-description{margin-top:20px;font-size:16px;line-height:1.85}.blog-post-content{color:#374151;width:100%;min-width:0;max-width:none;font-size:17px;line-height:1.9}.dark .blog-post-content{color:#cbd1dc}.blog-post-content>:first-child{margin-top:0}.blog-post-content :where(h1,h2,h3,h4){text-wrap:pretty;scroll-margin-top:88px;line-height:1.5}.blog-post-content h2{border-bottom:1px solid var(--post-border);letter-spacing:-.02em;margin:2.4em 0 1em;padding-bottom:.55em;font-size:1.45em}.blog-post-content h3{margin:1.8em 0 .7em;font-size:1.15em}.blog-post-content p{margin:1.15em 0}.blog-post-content :where(ul,ol){margin:1.2em 0;padding-left:1.5em}.blog-post-content li{margin:.55em 0;padding-left:.25em}.blog-post-content li :where(ul,ol,p){margin-block:.6em}.blog-post-content a{color:var(--post-accent);text-underline-offset:3px;text-decoration-thickness:1px}.blog-post-content :not(pre)>code{background:var(--post-soft);color:inherit;overflow-wrap:anywhere;border-radius:4px;padding:.15em .35em;font-size:.85em;font-weight:500}.blog-post-content :not(pre)>code:before,.blog-post-content :not(pre)>code:after{content:none}.blog-post-content pre{border:1px solid var(--post-border);overscroll-behavior-x:contain;tab-size:2;border-radius:10px;max-width:100%;margin:1.6em 0;padding:20px 24px;font-size:13px;line-height:1.8;overflow-x:auto}.blog-post-content pre code{overflow-wrap:normal;font-family:JetBrains Mono,Consolas,monospace;font-weight:400}.blog-post-content blockquote{background:var(--post-soft);border-left:3px solid var(--post-accent);border-radius:0 8px 8px 0;margin:1.6em 0;padding:4px 20px;font-style:normal;font-weight:400}.blog-post-content blockquote p:before,.blog-post-content blockquote p:after{content:none}.blog-post-content table{width:100%;max-width:100%;font-size:14px;line-height:1.7;display:block;overflow-x:auto}.blog-post-content :where(th,td){border-bottom:1px solid var(--post-border);min-width:120px;padding:12px 16px}.blog-post-content th{background:var(--post-soft)}.blog-post-content img{border-radius:10px;max-width:100%;height:auto;margin:2em auto}.post-toc{min-width:0;color:var(--post-muted);margin-bottom:32px;font-size:13px;line-height:1.6}.post-toc ol{margin:0;padding:0;list-style:none}.post-toc a{border-left:1px solid var(--post-border);padding:7px 0 7px 14px;transition:color .15s;display:block}.post-toc a:hover,.post-toc a:focus-visible{color:var(--post-accent);border-color:var(--post-accent)}.post-toc .toc-subheading a{padding-left:26px;font-size:12px}.toc-desktop{display:none}.toc-mobile{border:1px solid var(--post-border);background:var(--post-soft);border-radius:8px}.toc-mobile summary{cursor:pointer;justify-content:space-between;padding:14px 18px;font-weight:600;list-style:none;display:flex}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile[open] summary span{transform:rotate(45deg)}.toc-mobile nav{padding:0 18px 16px}.post-footer{min-width:0}@media (width>=1200px){.post-shell.has-toc{grid-template-columns:minmax(0,760px) 232px;column-gap:64px;max-width:1080px;display:grid}.post-shell.has-toc>:not(.post-toc){grid-column:1}.post-toc{grid-area:2/2/span 3;align-self:start;max-height:calc(100vh - 112px);margin:0;position:sticky;top:88px;overflow-y:auto}.toc-desktop{display:block}.toc-desktop h2{letter-spacing:.06em;margin:0 0 16px 14px;font-size:12px;font-weight:600}.toc-mobile{display:none}}#main-content:has(.post-shell)>.overflow-x-hidden{overflow-x:clip}@media (width<=639px){#main-content-container:has(.post-shell){padding:24px 20px 64px}.post-back{margin-bottom:22px}.post-header{margin-bottom:24px;padding-bottom:24px}.post-description{font-size:15px;line-height:1.8}.blog-post-content{font-size:16px;line-height:1.85}.blog-post-content pre{padding:16px;font-size:12px}}@media (prefers-reduced-motion:reduce){html:has(.post-shell){scroll-behavior:auto}.post-toc a{transition:none}}
