html.blog-paper,html.blog-paper body{background:#faf8f3!important}html.blog-paper body{color:#1b1a16!important;font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif!important}.ld-blog{--bg:#faf8f3;--bg-2:#f3f0e8;--surface:#fff;--surface-2:#fbf8f1;--line:#e6e2d7;--line-2:#ddd8cb;--line-3:#cfc9ba;--ink:#1b1a16;--ink-2:#54524a;--ink-3:#8c897e;--ink-4:#a8a499;--ink-5:#e6e2d7;--accent:#38632c;--accent-dim:#5f9a4a;--accent-soft:#38632c14;--sans:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;min-height:100vh;position:relative}.ld-blog:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#38632c08 1px,#0000 1px),linear-gradient(90deg,#38632c08 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0}.ld-blog>*{z-index:1;position:relative}.read-bar{background:var(--line);z-index:25;height:2px;position:fixed;top:56px;left:0;right:0}.read-bar span{background:var(--accent);width:0%;height:100%;transition:width 80ms linear;display:block}.bl-index-head{padding:80px 0 48px}.bl-eyebrow{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);align-items:center;gap:10px;margin-bottom:20px;font-size:11px;font-weight:600;display:flex}.bl-eyebrow:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;animation:2s ease-in-out infinite bl-dot-pulse;display:inline-block}@keyframes bl-dot-pulse{0%,to{opacity:1;box-shadow:0 0 8px var(--accent)}50%{opacity:.5;box-shadow:0 0 4px var(--accent)}}.bl-index-head h1{font-family:var(--sans);color:var(--ink);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(28px,4vw,44px);font-weight:600;line-height:1.1}.bl-index-dek{font-family:var(--sans);color:var(--ink-2);max-width:54ch;margin:0;font-size:16px;line-height:1.6}.bl-filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:32px;display:flex}.bl-filter-chip{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;gap:6px;padding:5px 12px;font-size:11px;font-weight:600;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.bl-filter-chip:hover{border-color:var(--line-3);color:var(--ink-2)}.bl-filter-chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.bl-filter-chip .bl-chip-count{color:var(--ink-4);font-size:10px}.bl-filter-chip.active .bl-chip-count{color:var(--accent-dim)}.bl-featured{border:1px solid var(--line);background:var(--surface);color:inherit;grid-template-columns:1fr 1fr;gap:0;margin-bottom:48px;text-decoration:none;transition:border-color .2s;display:grid}.bl-featured:hover{border-color:var(--accent-dim)}.bl-featured:hover .bl-post-arr{transform:translate(4px)}.bl-ascii-card{border-right:1px solid var(--line);background:var(--bg-2);justify-content:center;align-items:center;padding:32px 28px;display:flex}.bl-ascii-card pre{font-family:var(--mono);color:var(--ink-3);white-space:pre;margin:0;font-size:11px;line-height:1.5}.bl-ascii-card pre .a-accent{color:var(--accent)}.bl-ascii-card pre .a-dim{color:var(--ink-4)}.bl-ascii-card pre .a-amber{color:var(--amber)}.bl-ascii-card pre .a-violet{color:var(--violet)}.bl-featured-content{flex-direction:column;padding:36px 36px 32px;display:flex}.bl-featured-eyebrow{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;font-size:10px;font-weight:600}.bl-featured-content h2{font-family:var(--sans);color:var(--ink);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(19px,2.5vw,25px);font-weight:600;line-height:1.2}.bl-featured-dek{font-family:var(--sans);color:var(--ink-2);flex:1;margin:0 0 24px;font-size:15px;line-height:1.6}.bl-post-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.bl-cat{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid;padding:2px 8px;font-size:10px;font-weight:600}.bl-cat[data-cat=engineering]{color:var(--accent);background:var(--accent-soft);border-color:#38632c4d}.bl-cat[data-cat=product]{color:var(--violet);background:var(--violet-soft);border-color:#b9a3e84d}.bl-cat[data-cat=changelog]{color:var(--amber);background:var(--amber-soft);border-color:#e8b9744d}.bl-cat[data-cat=essay]{color:var(--cyan);background:var(--cyan-soft);border-color:#8ad6e84d}.bl-post-meta-dot{color:var(--ink-5);font-size:10px}.bl-post-meta-date,.bl-post-meta-read{font-family:var(--mono);color:var(--ink-4);font-size:11px}.bl-grid-section{margin-bottom:80px}.bl-grid-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);margin-bottom:20px;font-size:11px;font-weight:600}.bl-grid{background:var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.bl-grid-empty{font-family:var(--mono);color:var(--ink-4);padding:48px 0;font-size:13px}.bl-post-card{color:inherit;background:var(--surface);padding:28px 28px 24px;text-decoration:none;transition:background .15s;display:block;position:relative}.bl-post-card:hover{background:var(--surface-2)}.bl-post-card:hover .bl-post-arr{transform:translate(4px)}.bl-post-card h3{font-family:var(--sans);color:var(--ink);letter-spacing:-.015em;margin:0 0 10px;font-size:17px;font-weight:600;line-height:1.3}.bl-post-card p{font-family:var(--sans);color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 20px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.bl-post-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;display:flex}.bl-author-row{align-items:center;gap:8px;display:flex}.bl-av{width:22px;height:22px;font-family:var(--mono);background:var(--accent);color:var(--bg);flex-shrink:0;justify-content:center;align-items:center;font-size:9px;font-weight:700;display:flex}.bl-av.b2{background:var(--violet);color:var(--bg)}.bl-av.b3{background:var(--amber);color:var(--bg)}.bl-av.b4{background:var(--cyan);color:var(--bg)}.bl-av-name{font-family:var(--mono);color:var(--ink-3);font-size:11px}.bl-post-arr{font-family:var(--mono);color:var(--ink-4);flex-shrink:0;font-size:14px;transition:transform .15s,color .15s}.bl-post-card:hover .bl-post-arr,.bl-featured:hover .bl-post-arr{color:var(--accent)}.bl-article-head{padding:72px 0 48px}.bl-crumb{font-family:var(--mono);color:var(--ink-4);align-items:center;gap:8px;margin-bottom:28px;font-size:11px;display:flex}.bl-crumb a{color:var(--ink-4);text-decoration:none;transition:color .15s}.bl-crumb a:hover{color:var(--ink-2)}.bl-crumb-sep{color:var(--ink-5)}.bl-article-meta{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px;display:flex}.bl-article-title{font-family:var(--sans);color:var(--ink);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(28px,4.5vw,46px);font-weight:600;line-height:1.08}.bl-article-title em{color:var(--accent);font-style:normal}.bl-article-dek{font-family:var(--sans);color:var(--ink-2);border-left:2px solid var(--accent);max-width:60ch;margin:0 0 32px;padding-left:18px;font-size:18px;line-height:1.55}.bl-byline{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:48px;padding:20px 0;display:flex}.bl-byline-author{align-items:center;gap:12px;display:flex}.bl-byline-av{width:32px;height:32px;font-family:var(--mono);background:var(--accent);color:var(--bg);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.bl-byline-name{font-family:var(--sans);color:var(--ink);font-size:14px;font-weight:600}.bl-byline-role{font-family:var(--mono);color:var(--ink-4);margin-top:2px;font-size:11px}.bl-share-row{align-items:center;gap:8px;display:flex}.bl-share-btn{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-3);border:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.bl-share-btn:hover{border-color:var(--line-3);color:var(--ink)}.bl-article-body{grid-template-columns:minmax(0,1fr) 240px;align-items:start;gap:56px;display:grid}.bl-prose{font-family:var(--sans);color:var(--ink-2);min-width:0;font-size:16px;line-height:1.7}.bl-prose h2{font-family:var(--sans);color:var(--ink);letter-spacing:-.02em;margin:52px 0 18px;padding-top:4px;font-size:23px;font-weight:600;line-height:1.25}.bl-prose h3{font-family:var(--sans);color:var(--ink);letter-spacing:-.01em;margin:32px 0 12px;font-size:18px;font-weight:600}.bl-prose p{margin:0 0 20px}.bl-prose ul,.bl-prose ol{margin:0 0 20px;padding-left:0;list-style:none}.bl-prose ul li{margin-bottom:8px;padding-left:20px;position:relative}.bl-prose ul li:before{content:"▸";color:var(--accent);position:absolute;left:0}.bl-prose ol{counter-reset:prose-ol}.bl-prose ol li{counter-increment:prose-ol;margin-bottom:8px;padding-left:28px;position:relative}.bl-prose ol li:before{content:counter(prose-ol, decimal-leading-zero) ".";color:var(--ink-4);font-size:11px;position:absolute;left:0}.bl-prose a{color:var(--accent);border-bottom:1px solid #38632c4d;text-decoration:none;transition:border-color .15s,color .15s}.bl-prose a:hover{color:#4f8a3a;border-color:var(--accent)}.bl-prose code{font-family:var(--mono);color:var(--accent);background:var(--accent-soft);padding:1px 6px;font-size:12px}.bl-prose pre{background:var(--bg-2);border:1px solid var(--line);border-left:2px solid var(--accent);font-family:var(--mono);color:var(--ink-2);margin:24px 0;padding:20px 24px;font-size:12px;line-height:1.6;overflow-x:auto}.bl-prose pre code{color:inherit;background:0 0;padding:0}.bl-prose blockquote{border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-3);margin:24px 0;padding:16px 20px;font-style:normal}.bl-prose blockquote p{margin:0}.bl-prose hr{border:none;border-top:1px solid var(--line);margin:40px 0}.bl-prose .callout{border:1px solid var(--line-2);background:var(--surface-2);grid-template-columns:20px 1fr;align-items:start;gap:12px;margin:24px 0;padding:16px 20px;display:grid}.bl-prose .callout-glyph{font-family:var(--mono);color:var(--accent);font-size:12px;line-height:1.75}.bl-prose .callout-content{color:var(--ink-3);font-size:13px;line-height:1.65}.bl-prose .callout-content p{margin:0}.bl-prose .ascii-fig{font-family:var(--mono);color:var(--ink-3);background:var(--bg-2);border:1px solid var(--line);white-space:pre;margin:24px 0;padding:20px 24px;font-size:11px;line-height:1.5;overflow-x:auto}.bl-toc{font-family:var(--mono);font-size:12px;position:sticky;top:72px}.bl-toc-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:10px;font-size:10px;font-weight:600}.bl-toc ul{margin:0 0 24px;padding:0;list-style:none}.bl-toc ul li{border-left:2px solid var(--line);padding:5px 0 5px 12px;transition:border-color .15s}.bl-toc ul li a{color:var(--ink-4);line-height:1.4;text-decoration:none;transition:color .15s;display:block}.bl-toc ul li a:hover{color:var(--ink-2)}.bl-toc ul li.active{border-left-color:var(--accent)}.bl-toc ul li.active a{color:var(--ink)}.bl-toc-prog{color:var(--ink-4);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:10px;display:flex}.bl-toc-bar{background:var(--line);width:100%;height:2px}.bl-toc-bar>div{background:var(--accent);width:0%;height:100%;transition:width 80ms linear}.bl-author-card{border:1px solid var(--line);background:var(--surface);align-items:flex-start;gap:20px;margin:56px 0 48px;padding:28px;display:flex}.bl-author-card-av{width:44px;height:44px;font-family:var(--mono);background:var(--accent);color:var(--bg);flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.bl-author-card-name{font-family:var(--sans);color:var(--ink);margin-bottom:2px;font-size:15px;font-weight:600}.bl-author-card-role{font-family:var(--mono);color:var(--ink-4);margin-bottom:10px;font-size:11px}.bl-author-card-bio{font-family:var(--sans);color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.bl-pn-grid{border-top:1px solid var(--line);align-items:center;gap:16px;padding:24px 0 80px;display:flex}.bl-pn-back{font-family:var(--mono);color:var(--ink-4);align-items:center;gap:6px;font-size:12px;text-decoration:none;transition:color .15s;display:inline-flex}.bl-pn-back:hover{color:var(--accent)}.toast{font-family:var(--mono);color:var(--bg);background:var(--accent);opacity:0;pointer-events:none;z-index:999;white-space:nowrap;padding:8px 18px;font-size:12px;transition:opacity .2s,transform .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(12px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (max-width:900px){.bl-featured{grid-template-columns:1fr}.bl-ascii-card{border-right:none;border-bottom:1px solid var(--line);padding:24px 20px}.bl-featured-content{padding:28px 28px 24px}}@media (max-width:980px){.bl-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.bl-grid{grid-template-columns:1fr}.bl-index-head{padding:56px 0 36px}}@media (max-width:1000px){.bl-article-body{grid-template-columns:1fr;gap:0}.bl-toc{background:var(--surface);border:1px solid var(--line);order:-1;margin-bottom:36px;padding:16px;position:static}}@media (max-width:640px){.bl-toc ul{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.bl-toc ul li{border-left:none;padding:4px 0}.bl-toc ul li.active a{color:var(--accent)}.bl-byline{flex-direction:column;align-items:flex-start}}
