.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}.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{color:var(--fg);font-size:17px;line-height:1.7}.article-prose>*{margin:0}.article-prose>*+*{margin-top:20px}.article-prose>*+h2{margin-top:56px}.article-prose>*+h3{margin-top:36px}.article-prose>h2+*,.article-prose>h3+*{margin-top:18px}.article-prose h2{font-size:26px;font-weight:500;letter-spacing:-.01em;color:var(--fg);scroll-margin-top:88px;line-height:1.2;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{counter-reset:h2-counter}.article-prose h3{font-size:19px;font-weight:500;color:var(--fg);scroll-margin-top:88px}.article-prose p{color:var(--fg-dim)}.article-prose a{color:var(--accent);text-decoration-color:var(--accent-line);text-underline-offset:3px}.article-prose a:hover{text-decoration-color:var(--accent)}.article-prose strong{color:var(--fg);font-weight:600}.article-prose em{font-style:italic;color:var(--fg)}.article-prose code{font-family:JetBrains Mono,monospace;font-size:.87em;padding:1px 6px;border-radius:5px;background:color-mix(in oklch,var(--fg) 7%,transparent);border:1px solid var(--line);color:var(--fg)}.article-prose pre{padding:20px 22px;border:1px solid var(--syn-border);border-radius:12px;background:var(--syn-bg);backdrop-filter:blur(8px);overflow-x:auto;font-size:13.5px;line-height:1.65;color:var(--syn-fg)}.article-prose pre code{background:none;border:0;padding:0;font-size:1em;color:inherit}.article-prose blockquote{border-left:2px solid var(--accent-line);padding:4px 0 4px 22px;color:var(--fg-dim);font-style:italic;margin-left:0}.article-prose blockquote p{color:var(--fg-dim)}.article-prose ul,.article-prose ol{padding-left:1.4em;color:var(--fg-dim)}.article-prose li{margin:8px 0}.article-prose li::marker{color:var(--fg-mute)}.article-prose hr{border:0;border-top:1px solid var(--line);margin:48px 0}.article-prose table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.6}.article-prose thead th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-mute);padding:8px 14px;border-bottom:1px solid var(--line-strong)}.article-prose tbody td{padding:10px 14px;color:var(--fg-dim);border-bottom:1px solid var(--line);vertical-align:top}.article-prose tbody tr:last-child td{border-bottom:none}.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);opacity:0;transition:opacity .25s;pointer-events:none;z-index:5}.toc.ready{opacity:1;pointer-events:auto}.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:block;position:relative;text-decoration:none;color:var(--fg-mute);transition:color .15s;border-left:2px solid transparent;margin-left:-18px;padding:5px 0 5px 18px}.toc a:before{counter-increment:toc-c;content:counter(toc-c,decimal-leading-zero);position:absolute;left:0;top:5px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.05em;color:var(--fg-mute);opacity:.5}.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}}.anchor-link{opacity:0;margin-left:8px;color:var(--fg-mute);text-decoration:none;transition:opacity .15s,color .15s;font-size:.7em;font-weight:400;font-family:JetBrains Mono,monospace}.article-prose h2:hover .anchor-link,.article-prose h3:hover .anchor-link{opacity:1}.anchor-link:hover{color:var(--accent)}@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}}
