.blog-shell{max-width:820px;margin:0 auto;padding:64px 32px 120px}.blog-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:14px}.blog-title{font-size:clamp(38px,5vw,56px);font-weight:500;line-height:1.04;letter-spacing:-.02em;color:var(--fg);margin:0 0 18px}.blog-lede{font-size:17px;line-height:1.6;color:var(--fg-dim);max-width:620px;margin:0 0 48px}.blog-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:999px;font-size:12.5px;color:var(--fg-dim);background:color-mix(in oklch,var(--fg) 4%,transparent);cursor:pointer;transition:all .15s;text-decoration:none;font-family:inherit}.blog-chip:hover{color:var(--fg);border-color:var(--fg-mute)}.blog-chip.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.blog-chip-count{font-family:JetBrains Mono,monospace;font-size:10.5px;color:var(--fg-mute)}.blog-subscribe{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:10px;font-size:13px;color:var(--fg-dim);background:color-mix(in oklch,var(--fg) 4%,transparent);text-decoration:none;transition:all .15s;font-family:inherit}.blog-subscribe:hover{color:var(--fg);border-color:var(--fg-mute)}.blog-subscribe svg{color:#fc8a61}.timeline{position:relative;padding-left:48px}.timeline:before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:0;border-left:2px dotted var(--line-strong)}.tl-month{position:relative;margin:56px 0 28px;padding-left:0}.tl-month:first-child{margin-top:0}.tl-month-inner{display:inline-flex;align-items:center;gap:10px;padding:5px 12px 5px 10px;border:1px solid var(--line-strong);border-radius:999px;background:color-mix(in oklch,var(--bg-0) 80%,transparent);backdrop-filter:blur(8px);font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.tl-month-inner:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tl-month:before{content:"";position:absolute;left:-44px;top:11px;width:14px;height:14px;border-radius:50%;background:var(--bg-0);border:2px solid var(--accent)}.tl-item{position:relative;margin:0 0 28px}.tl-item:before{content:"";position:absolute;left:-42px;top:22px;width:10px;height:10px;border-radius:50%;background:var(--bg-0);border:2px solid var(--fg-mute);z-index:1}.tl-item:last-child{margin-bottom:0}.tl-item.is-post{margin:44px 0}.tl-item.is-post+.tl-item{margin-top:44px}.tl-post{position:relative;display:block;padding:30px 32px 28px;border:1px solid var(--line-strong);border-radius:16px;background:color-mix(in oklch,var(--card) 115%,var(--accent-soft) 6%);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s,box-shadow .2s,background .2s;box-shadow:0 1px color-mix(in oklch,var(--fg) 8%,transparent) inset,0 20px 50px -30px color-mix(in oklch,var(--accent) 50%,transparent),0 1px 2px #0003;overflow:hidden}.tl-post:after{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(to right,var(--accent) 0%,var(--accent-line) 40%,transparent 100%);opacity:.9}.tl-post:hover{border-color:var(--accent-line);transform:translateY(-1px);background:color-mix(in oklch,var(--card) 105%,var(--accent-soft) 14%);box-shadow:0 1px color-mix(in oklch,var(--fg) 12%,transparent) inset,0 28px 60px -28px color-mix(in oklch,var(--accent) 70%,transparent),0 2px 4px #00000040}.tl-item.is-post:before{width:14px;height:14px;left:-44px;top:30px;border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklch,var(--bg-0) 60%,transparent),0 0 0 6px color-mix(in oklch,var(--accent) 45%,transparent),0 0 14px 2px color-mix(in oklch,var(--accent) 40%,transparent)}.post-kind{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 8px;border:1px solid var(--accent-line);border-radius:999px;background:var(--accent-soft)}.post-kind:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.post-title{font-size:26px;font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--fg);margin:0 0 12px;text-wrap:balance}.tl-post:hover .post-title{color:var(--accent)}.post-excerpt{font-size:15px;line-height:1.6;color:var(--fg-dim);margin:0 0 22px}.post-meta{display:flex;align-items:center;gap:14px;font-size:12.5px;color:var(--fg-mute)}.post-author{display:inline-flex;align-items:center;gap:8px;color:var(--fg-dim)}.post-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,oklch(.7 .15 var(--avatar-h, 280)),oklch(.5 .18 calc(var(--avatar-h, 280) + 60)));display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-family:JetBrains Mono,monospace;font-weight:600;color:#fff;letter-spacing:0;flex-shrink:0}.post-avatar.real-img{background:none}.post-avatar.real-img img{width:100%;height:100%;border-radius:50%;object-fit:cover}.post-dot{width:3px;height:3px;border-radius:50%;background:var(--fg-mute);opacity:.6}.tl-skeet{position:relative;padding:16px 18px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in oklch,var(--card) 60%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .15s}.tl-skeet:hover{border-color:var(--line-strong)}.tl-item.is-skeet:before{border-color:oklch(.7 .15 230);background:var(--bg-0)}.skeet-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.skeet-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;overflow:hidden}.skeet-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.skeet-author{display:flex;align-items:baseline;gap:7px;flex:1;min-width:0;flex-wrap:wrap}.skeet-name{font-size:13.5px;font-weight:500;color:var(--fg)}.skeet-handle{font-size:12px;color:var(--fg-mute);font-family:JetBrains Mono,monospace}.skeet-date{font-size:11.5px;color:var(--fg-mute);margin-left:auto;font-family:JetBrains Mono,monospace;flex-shrink:0}.skeet-icon{width:14px;height:14px;color:oklch(.7 .15 230);flex-shrink:0;margin-left:-2px}.skeet-text{font-size:14.5px;line-height:1.55;color:var(--fg);margin:0 0 12px;white-space:pre-wrap;word-wrap:break-word}.skeet-text a{color:var(--accent);text-decoration:none}.skeet-text a:hover{text-decoration:underline}.skeet-text code{font-family:JetBrains Mono,monospace;font-size:.9em;padding:1px 5px;border-radius:4px;background:color-mix(in oklch,var(--fg) 7%,transparent);border:1px solid var(--line)}.skeet-like{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;color:var(--fg-dim);text-decoration:none;background:transparent;transition:all .15s;font-family:inherit}.skeet-like:hover{color:oklch(.75 .18 20);border-color:#d6465166;background:#c5344314}.skeet-like svg{width:12px;height:12px}.bsky-embed{margin:28px auto;padding:20px 22px 16px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:#000}.bsky-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.bsky-avatar{width:42px;height:42px;border-radius:50%;flex-shrink:0;object-fit:cover}.bsky-author-info{display:flex;flex-direction:column;flex:1;min-width:0}.bsky-name{font-size:15px;font-weight:600;color:#000;line-height:1.3;text-decoration:none}.bsky-name:hover{text-decoration:underline}.bsky-handle{font-size:12.5px;color:#888;font-family:JetBrains Mono,monospace}.bsky-logo{flex-shrink:0;color:#1185fe!important;transition:opacity .15s}.bsky-logo:hover{opacity:.7}.bsky-logo-icon{width:22px;height:22px;display:block}.bsky-text{font-size:16px;line-height:1.6;color:#000;margin:0 0 14px;white-space:pre-wrap;word-wrap:break-word;max-width:500px}.bsky-text a{color:#0085ff;text-decoration:none}.bsky-text a:hover{text-decoration:underline}.bsky-footer{display:flex;align-items:center;gap:14px;font-size:12.5px;color:#888;font-family:JetBrains Mono,monospace}.bsky-date{color:#888;text-decoration:none;transition:color .15s}.bsky-date:hover{color:#555}.bsky-likes{display:inline-flex;align-items:center;gap:5px;color:#e0245e}.bsky-heart-icon{width:13px;height:13px}.tl-end{position:relative;margin-top:48px;padding-left:0;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute)}.tl-end:before{content:"";position:absolute;left:-45px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--bg-0);border:2px solid var(--fg-mute)}.article-shell{max-width:720px;margin:0 auto;padding:64px 32px 120px;position:relative}.article-header{margin-bottom:56px;padding-bottom:32px;border-bottom:1px solid var(--line)}.article-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;display:flex;align-items:center;gap:10px}.article-eyebrow:before{content:"";width:18px;height:1px;background:var(--accent);display:inline-block}.article-title{font-size:clamp(32px,4.5vw,48px);font-weight:500;line-height:1.1;letter-spacing:-.02em;margin:0 0 24px;color:var(--fg)}.article-header .post-avatar{width:28px;height:28px;font-size:10.5px}.article-prose{counter-reset:h2-counter}.article-prose h2,.article-prose h3{scroll-margin-top:88px}.article-prose h2{display:flex;align-items:baseline;gap:14px}.article-prose h2:before{content:counter(h2-counter,decimal-leading-zero);counter-increment:h2-counter;font-family:JetBrains Mono,monospace;font-size:12px;color:var(--fg-mute);letter-spacing:.1em;flex-shrink:0}.article-prose p{font-size:17px;line-height:1.7}.article-prose a:not(.heading-anchor):not(.no-prose-link){text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px;border-bottom:none}.article-prose a:not(.heading-anchor):not(.no-prose-link):hover{text-decoration-color:var(--accent)}.article-prose .footnotes ol{list-style:decimal;padding-left:1.4em;counter-reset:none}.article-prose .footnotes ol>li{display:list-item;min-height:auto;scroll-margin-top:160px}.article-prose .footnotes ol>li+li{margin-top:12px}.article-prose .footnotes ol>li:before,.article-prose .footnotes ol>li:after{content:none}.article-prose .footnotes ol>li::marker{color:var(--fg-mute)}.fn-ref,.fn-ref>a{scroll-margin-top:160px}.fn-ref{cursor:help;position:relative}.fn-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:max-content;max-width:380px;padding:12px 16px;border-radius:10px;background:var(--card);border:1px solid var(--line-strong);box-shadow:0 8px 30px #00000040;font-size:13.5px;line-height:1.55;color:var(--fg-dim);z-index:100;text-align:left;font-weight:400;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:none}.fn-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--line-strong)}.fn-tooltip a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:2px}.fn-tooltip code{font-family:JetBrains Mono,monospace;font-size:.9em;padding:1px 5px;border-radius:4px;background:color-mix(in oklch,var(--fg) 7%,transparent);border:1px solid var(--line)}.fn-ref:hover .fn-tooltip{display:block}.article-prose hr{border:0;border-top:1px solid var(--line);margin:48px 0}.share-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:8px;font-size:12.5px;color:var(--fg-dim);background:transparent;text-decoration:none;transition:all .15s;font-family:inherit;cursor:pointer}.share-btn:hover{color:var(--fg);border-color:var(--fg-mute);background:color-mix(in oklch,var(--fg) 4%,transparent)}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-dim);text-decoration:none;margin-bottom:28px;font-family:JetBrains Mono,monospace;transition:color .15s}.back-link:hover{color:var(--fg)}.toc{position:fixed;top:120px;right:max(24px,calc((100vw - 720px)/2 - 240px));width:220px;font-size:12.5px;line-height:1.45;max-height:calc(100vh - 160px);overflow-y:auto;padding:4px 0 4px 16px;border-left:1px solid var(--line);z-index:5}.toc-label{font-family:JetBrains Mono,monospace;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-mute);margin-bottom:12px}.toc ol{list-style:none;margin:0;padding:0;counter-reset:toc-c}.toc li{margin:0}.toc a{display:flex;align-items:baseline;gap:8px;padding:5px 0 5px 18px;text-decoration:none;color:var(--fg-mute);transition:color .15s;border-left:2px solid transparent;margin-left:-18px}.toc a:before{counter-increment:toc-c;content:counter(toc-c,decimal-leading-zero);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.05em;color:var(--fg-mute);opacity:.5}.toc a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc a:hover{color:var(--fg-dim)}.toc a.active{color:var(--accent);border-left-color:var(--accent)}.toc a.active:before{color:var(--accent);opacity:1}@media (max-width: 1280px){.toc{display:none}}@media (max-width: 720px){.blog-shell,.article-shell{padding:40px 20px 80px}.timeline{padding-left:36px}.timeline:before{left:9px}.tl-item:before{left:-32px}.tl-month:before{left:-34px}.tl-end:before{left:-35px}.blog-meta-row{flex-direction:column;align-items:flex-start}}
