body{font-size:16px;line-height:1.7}.article-wrap{max-width:720px;margin:0 auto;padding:56px 40px 120px}body.blog-wide .article-wrap{max-width:min(1500px,100vw - 80px)}@media (width<=768px){.article-wrap,body.blog-wide .article-wrap{max-width:100%!important;padding:28px 22px 80px!important}.crumb-row .width-toggle{display:none}}.crumb-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:40px;display:flex}.crumb{font-family:var(--mono);color:var(--text-3);align-items:center;gap:8px;font-size:12px;text-decoration:none;transition:color .15s;display:inline-flex}.crumb:hover{color:var(--teal-bright)}.width-toggle{appearance:none;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-2xs,3px);color:var(--text-3);font:inherit;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;background:0 0;padding:4px 10px;font-size:11px;transition:border-color .15s,color .15s,background .15s}.width-toggle:hover{color:var(--text-2);border-color:var(--teal-border)}.width-toggle[aria-pressed=true]{color:var(--teal-bright);border-color:var(--teal-border);background:var(--teal-ghost)}.article-hero{border-radius:var(--radius);border:1px solid var(--border-light);background:var(--surface-2);margin:0 0 44px;overflow:hidden}.article-hero img{width:100%;height:auto;display:block}.article-hero.crop-top,.article-hero.crop-center,.article-hero.crop-bottom{aspect-ratio:5/2}.article-hero.crop-top img,.article-hero.crop-center img,.article-hero.crop-bottom img{object-fit:cover;width:100%;height:100%}.article-hero.crop-top img{object-position:center top}.article-hero.crop-center img{object-position:center center}.article-hero.crop-bottom img{object-position:center bottom}.article-head{margin-bottom:48px}.article-kicker{font-family:var(--mono);letter-spacing:.4px;text-transform:uppercase;color:var(--teal-bright);margin-bottom:18px;font-size:11px}.article-head h1{letter-spacing:-1.2px;margin-bottom:20px;font-size:clamp(30px,4vw,42px);font-weight:800;line-height:1.1}.article-head .subhead{color:var(--text-2);letter-spacing:-.2px;font-size:19px;font-weight:400;line-height:1.55}.byline{border-top:1px solid var(--border);color:var(--text-3);align-items:center;gap:14px;margin-top:28px;padding-top:24px;font-size:13px;display:flex}.byline-avatar{border-radius:var(--radius-circle);background:linear-gradient(135deg,var(--teal),var(--teal-deep));flex-shrink:0;width:36px;height:36px;overflow:hidden}.byline-avatar img{object-fit:cover;width:100%;height:100%;display:block}.byline-avatar--logo{background:var(--surface);border:1px solid var(--border)}.byline-avatar--logo img{object-fit:contain;padding:22%}.byline-name{color:var(--text);font-size:14px;font-weight:600}.byline-role{color:var(--text-3);margin-top:1px;font-size:12px}.byline-meta{font-family:var(--mono);align-items:center;gap:10px;margin-left:auto;font-size:12px;display:inline-flex}.byline-meta-text .sep{color:var(--border-light);margin:0 8px}.narrate-btn{border-radius:var(--radius-2xs,6px);border:1px solid var(--teal-border,var(--border));background:var(--teal-dim,var(--surface));color:var(--teal-bright,var(--text));cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.narrate-btn:hover{background:var(--teal-77-25,var(--surface-2))}.narrate-btn:disabled{cursor:default;opacity:.55}.narrate-btn .narrate-ic{flex-shrink:0}.narrate-label{display:none}.narrate-btn.playing .narrate-ic{animation:1.1s ease-in-out infinite narrate-pulse}@keyframes narrate-pulse{0%,to{opacity:1}50%{opacity:.4}}.prose{color:var(--text);font-size:16.5px;line-height:1.75}.prose>*+*{margin-top:1.2em}.prose h2{letter-spacing:-.6px;margin-top:2.4em;margin-bottom:.1em;scroll-margin-top:80px;font-size:26px;font-weight:700;line-height:1.25}.prose h3{letter-spacing:-.3px;color:var(--text);margin-top:2em;margin-bottom:.1em;scroll-margin-top:80px;font-size:19px;font-weight:700}.prose h2 .hu,.prose h3 .hu{text-underline-offset:5px;text-decoration:underline 1.5px;text-decoration-color:var(--teal-bright)}.prose h2:nth-of-type(2n) .hu{text-decoration-color:var(--amber)}.prose p{color:var(--text)}.prose a{color:var(--teal-bright);background-image:linear-gradient(var(--teal-bright),var(--teal-bright));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;padding-bottom:1px;text-decoration:none;transition:background-size .2s}.prose a:hover{background-size:100% 1px}.prose strong{color:var(--text);font-weight:700}.prose em{color:var(--text);font-style:italic}.prose code{background:var(--surface-2);border:1px solid var(--border);font-family:var(--mono);border-radius:var(--radius-xs);color:var(--teal-bright);padding:1px 6px;font-size:.88em}.prose ul,.prose ol{padding-left:1.4em}.prose li{color:var(--text);margin-top:.5em}.prose li::marker{color:var(--text-3)}.prose blockquote{border-left:3px solid var(--teal);color:var(--text-2);margin:1.6em 0;padding:4px 0 4px 20px;font-size:17px;font-style:italic;line-height:1.6}.callout{background:var(--teal-ghost);border:1px solid var(--teal-border);border-radius:var(--radius);grid-template-columns:auto 1fr;align-items:flex-start;gap:14px;margin:1.6em 0;padding:16px 20px;display:grid}.callout-icon{color:var(--teal-bright);flex-shrink:0;margin-top:2px}.callout-body{color:var(--text-2);font-size:14.5px;line-height:1.65}.callout-body strong{color:var(--text)}.prose pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);margin:1.5em 0;padding:16px 18px;font-size:13px;line-height:1.6;overflow-x:auto}.prose pre code{color:var(--text);font-size:inherit;background:0 0;border:none;padding:0}.prose .hljs-keyword,.prose .hljs-built_in,.prose .hljs-literal,.prose .hljs-type,.prose .hljs-selector-tag,.prose .hljs-doctag{color:var(--purple)}.prose .hljs-string,.prose .hljs-attr,.prose .hljs-regexp,.prose .hljs-addition,.prose .hljs-meta .hljs-string{color:var(--green)}.prose .hljs-number,.prose .hljs-symbol,.prose .hljs-bullet,.prose .hljs-variable,.prose .hljs-template-variable,.prose .hljs-literal.hljs-number{color:var(--blue)}.prose .hljs-comment,.prose .hljs-quote,.prose .hljs-meta{color:var(--text-3);font-style:italic}.prose .hljs-title,.prose .hljs-section,.prose .hljs-name,.prose .hljs-selector-id,.prose .hljs-selector-class,.prose .hljs-attribute{color:var(--teal-bright)}.prose .hljs-tag,.prose .hljs-deletion{color:var(--text-2)}.prose .hljs-emphasis{font-style:italic}.prose .hljs-strong{font-weight:700}figure{margin:2em 0}.figure-visual{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:24px;overflow:hidden}figcaption{font-family:var(--mono);color:var(--text-3);text-align:center;letter-spacing:.2px;margin-top:10px;font-size:12px}.prose table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:14px}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}.prose th{font-family:var(--mono);text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);background:var(--surface);border-bottom:1px solid var(--border-light);font-size:11px;font-weight:600}.prose td{color:var(--text-2)}.prose tr:last-child td{border-bottom:none}.prose td.num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text)}.hr-sym{color:var(--text-3);font-family:var(--mono);letter-spacing:10px;opacity:.5;justify-content:center;align-items:center;margin:3em 0;display:flex}.article-footer{border-top:1px solid var(--border);margin-top:64px;padding-top:28px}.tag-row{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.tag{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);color:var(--text-3);border-radius:var(--radius-xs);letter-spacing:.3px;text-transform:uppercase;padding:4px 10px;font-size:11px;text-decoration:none}.tag:hover{color:var(--teal-bright);border-color:var(--teal-border)}.author-bio{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:24px;display:grid}.author-bio-avatar{border-radius:var(--radius-circle);background:linear-gradient(135deg,var(--teal),var(--teal-deep));flex-shrink:0;width:52px;height:52px;overflow:hidden}.author-bio-avatar img{object-fit:cover;width:100%;height:100%;display:block}.author-bio-avatar--logo{background:var(--surface);border:1px solid var(--border)}.author-bio-avatar--logo img{object-fit:contain;padding:22%}.author-bio h4{margin-bottom:4px;font-size:15px;font-weight:700}.author-bio p{color:var(--text-3);font-size:13.5px;line-height:1.55}.author-bio a{color:var(--teal-bright);margin-right:14px;font-size:13px;text-decoration:none}.pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:40px;display:grid}.pager a{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:18px 20px;text-decoration:none;transition:all .15s;display:block}.pager a:hover{border-color:var(--teal-border);background:var(--teal-ghost)}.pager .dir{font-family:var(--mono);color:var(--text-3);letter-spacing:.4px;margin-bottom:6px;font-size:11px}.pager .label{color:var(--text);font-size:14px;font-weight:600;line-height:1.4}.pager .next{text-align:right}.pager .disabled{opacity:.4;pointer-events:none}@media (width<=640px){.pager{grid-template-columns:1fr}.byline-meta-text{display:none}}.prose img,.prose .figure-visual svg{cursor:zoom-in}.bw-lightbox{z-index:120;-webkit-backdrop-filter:blur(6px);cursor:zoom-out;background:#04080cc7;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.bw-lightbox-panel{background:var(--code-bg);border:1px solid var(--border-light);border-radius:var(--radius);width:min(1400px,94vw);max-height:92vh;padding:26px;overflow:auto}.bw-lightbox-panel img,.bw-lightbox-panel svg{cursor:zoom-out;width:100%;height:auto;display:block}#reading-progress{background:linear-gradient(90deg,var(--teal),var(--teal-bright));z-index:30;width:0%;height:2px;transition:width .1s linear;position:fixed;top:0;left:0}.toc{width:200px;font-size:12.5px;line-height:1.55;position:fixed;top:120px;right:calc(50% - 570px)}.toc-title{font-family:var(--mono);letter-spacing:.4px;color:var(--text-3);text-transform:uppercase;margin-bottom:10px;font-size:11px}.toc a{color:var(--text-3);border-left:1px solid var(--border);padding:3px 0 3px 12px;text-decoration:none;transition:all .15s;display:block}.toc a:hover{color:var(--text-2);border-color:var(--border-light)}.toc a.active{color:var(--teal-bright);border-color:var(--teal)}@media (width<=1200px){.toc{display:none}}body.blog-wide .toc{display:none}.skeleton{background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite sk}@keyframes sk{0%{background-position:100% 0}to{background-position:-100% 0}}.error-state{text-align:center;color:var(--text-3);padding:80px 20px}.error-state h2{color:var(--text-2);margin-bottom:8px;font-size:20px}.blog-wrap{max-width:860px;margin:0 auto;padding:80px 40px 120px}.blog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px;padding-bottom:28px;display:flex}.blog-head h1{letter-spacing:-1.2px;font-size:clamp(32px,4vw,44px);font-weight:800;line-height:1}.blog-head p{color:var(--text-3);max-width:460px;margin-top:10px;font-size:14px;line-height:1.6}.blog-head .rss{color:var(--text-3);font-family:var(--mono);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:6px 10px;font-size:12px;text-decoration:none;transition:all .15s;display:inline-flex}.blog-head .rss:hover{color:var(--teal-bright);border-color:var(--teal-border);background:var(--teal-ghost)}.blog-filters{flex-wrap:wrap;gap:8px;margin-bottom:48px;display:flex}.blog-filters button{border:1px solid var(--border);color:var(--text-3);font-family:var(--mono);letter-spacing:.4px;text-transform:uppercase;border-radius:var(--radius-xs);cursor:pointer;background:0 0;padding:5px 10px;font-size:11px;font-weight:500;transition:all .15s}.blog-filters button:hover{color:var(--text-2);border-color:var(--border-light)}.blog-filters button.active{background:var(--teal-ghost);color:var(--teal-bright);border-color:var(--teal-border)}.featured{grid-template-columns:1fr 1.2fr;align-items:center;gap:40px;margin-bottom:72px;display:grid}.featured-visual{aspect-ratio:5/4;border:1px solid var(--border);border-radius:var(--radius);background:radial-gradient(ellipse 80% 60% at 30% 30%,rgba(var(--teal-77-rgb),.14),transparent 70%),radial-gradient(ellipse 60% 50% at 80% 80%,#5ba8e814,transparent 70%),var(--surface);position:relative;overflow:hidden}.featured-visual:before{content:"";background-image:linear-gradient(var(--teal-77-04)1px,transparent 1px),linear-gradient(90deg,var(--teal-77-04)1px,transparent 1px);background-size:28px 28px;position:absolute;inset:0;mask-image:radial-gradient(#000,#0000 80%)}.featured-visual svg{width:70%;height:70%;margin:auto;position:absolute;inset:0}.featured-visual .featured-visual-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.featured-meta{font-family:var(--mono);letter-spacing:.4px;color:var(--teal-bright);text-transform:uppercase;margin-bottom:14px;font-size:11px}.featured h2{letter-spacing:-.7px;margin-bottom:14px;font-size:clamp(24px,2.4vw,32px);font-weight:800;line-height:1.15}.featured h2 a{color:var(--text);background-image:linear-gradient(var(--teal-bright),var(--teal-bright));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;text-decoration:none;transition:background-size .3s}.featured h2 a:hover{background-size:100% 1px}.featured-lede{color:var(--text-2);margin-bottom:20px;font-size:15px;line-height:1.7}.featured-byline{color:var(--text-3);align-items:center;gap:10px;font-size:13px;display:flex}.featured-byline strong{color:var(--text-2);font-weight:600}.featured-byline .sep{color:var(--border-light)}.section-rail{align-items:center;gap:14px;margin:56px 0 24px;display:flex}.section-rail span{font-family:var(--mono);letter-spacing:2px;color:var(--text-3);text-transform:uppercase;font-size:11px}.section-rail .line{background:var(--border);flex:1;height:1px}.post-list{flex-direction:column;display:flex}.post-row{border-bottom:1px solid var(--border);color:inherit;grid-template-columns:132px 1fr auto;align-items:start;gap:28px;padding:22px 0;text-decoration:none;transition:padding .15s;display:grid}.post-aside{flex-direction:column;gap:10px;display:flex}.post-thumb{aspect-ratio:1.9;border-radius:var(--radius);border:1px solid var(--border-light);background:var(--surface-2);width:132px;overflow:hidden}.post-thumb img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .2s;display:block}.post-row:hover .post-thumb img{transform:scale(1.05)}.post-row:first-child{border-top:1px solid var(--border)}.post-row:hover{padding-left:6px}.post-row:hover .post-title{color:var(--teal-bright)}.post-date{font-family:var(--mono);color:var(--text-3);letter-spacing:.3px;font-size:12px}.post-title{color:var(--text);letter-spacing:-.3px;margin-bottom:6px;font-size:17px;font-weight:600;line-height:1.35;transition:color .15s}.post-sched{vertical-align:middle;font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--amber);border:1px solid var(--amber);background:0 0;border-radius:999px;align-items:center;gap:4px;margin-left:9px;padding:2px 7px;font-size:9.5px;font-weight:700;display:inline-flex}.post-sched svg{width:11px;height:11px}.post-row:hover .post-sched{color:var(--amber)}.post-excerpt{color:var(--text-3);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:560px;font-size:13.5px;line-height:1.6;display:-webkit-box;overflow:hidden}.post-meta{align-items:center;gap:10px;margin-top:10px;display:flex}.post-tag{font-family:var(--mono);color:var(--text-3);letter-spacing:.4px;text-transform:uppercase;font-size:10px}.post-tag:before{content:"#";color:var(--text-3);opacity:.6}.post-read{color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.newsletter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);grid-template-columns:1fr auto;align-items:center;gap:24px;margin-top:88px;padding:32px 36px;display:grid}.newsletter-copy h3{letter-spacing:-.3px;margin-bottom:6px;font-size:17px;font-weight:700}.newsletter-copy p{color:var(--text-3);max-width:440px;font-size:13px;line-height:1.6}.newsletter-form{gap:8px;display:flex}.newsletter-form input{-webkit-appearance:none;appearance:none;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font);border-radius:var(--radius-sm);outline:none;width:240px;padding:9px 12px;font-size:13px;transition:border-color .15s}.newsletter-form input:focus{border-color:var(--teal)}.newsletter-form button{-webkit-appearance:none;appearance:none;background:var(--teal-ghost);color:var(--teal-bright);border:1px solid var(--teal-border);font-family:var(--mono);letter-spacing:.5px;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;padding:9px 18px;font-size:12px;font-weight:600;transition:all .15s}.newsletter-form button:hover{border-color:var(--teal-bright);color:var(--teal-bright)}.newsletter-form button:disabled{opacity:.6;cursor:default}@media (width<=720px){.blog-wrap{padding:28px 16px 64px}.blog-head{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;padding-bottom:16px}.blog-head h1{letter-spacing:-1px;font-size:clamp(26px,7.2vw,34px);line-height:1.05}.blog-head p{max-width:none;margin-top:6px;font-size:13px;line-height:1.5}.blog-head .rss{flex-shrink:0;align-self:flex-start;padding:5px 9px;font-size:11px}.blog-filters{gap:6px;margin-bottom:22px}.blog-filters button{padding:4px 9px;font-size:10.5px}.featured{grid-template-columns:1fr;gap:14px;margin-bottom:36px}.featured-visual{aspect-ratio:16/9;border-radius:var(--radius-sm)}.featured-meta{margin-bottom:8px;font-size:10.5px}.featured h2{letter-spacing:-.5px;margin-bottom:8px;font-size:clamp(20px,5.4vw,24px);line-height:1.2}.featured-lede{margin-bottom:12px;font-size:13.5px;line-height:1.55}.featured-byline{flex-wrap:wrap;gap:8px;font-size:12px}.section-rail{gap:10px;margin:28px 0 12px}.section-rail span{letter-spacing:1.6px;font-size:10px}.post-row{grid-template-columns:1fr;gap:4px;padding:14px 0}.post-row:hover{padding-left:0}.post-read{grid-column:1}.post-thumb{display:none}.post-aside{flex-direction:row;align-items:center;gap:8px}.post-date{font-size:11px}.post-title{letter-spacing:-.25px;margin-bottom:4px;font-size:15.5px}.post-excerpt{font-size:13px;line-height:1.5}.post-meta{flex-wrap:wrap;gap:8px;margin-top:6px}.post-tag{font-size:9.5px}.post-read{font-size:11.5px}.newsletter{border-radius:var(--radius);grid-template-columns:1fr;gap:14px;margin-top:40px;padding:18px 16px}.newsletter-copy h3{margin-bottom:4px;font-size:15.5px}.newsletter-copy p{max-width:none;font-size:12.5px;line-height:1.5}.newsletter-form{flex-direction:column;align-items:stretch;gap:8px;width:100%}.newsletter-form input,.newsletter-form button{box-sizing:border-box;width:100%;min-width:0}.newsletter-form button{padding:11px 16px}.empty-state{padding:28px 0;font-size:13px}}@media (width<=360px){.blog-wrap{padding:22px 12px 56px}.blog-head h1{font-size:24px}.featured h2{font-size:19px}}.nl-modal-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.15s nl-fade;display:flex;position:fixed;inset:0}.nl-modal-backdrop[hidden]{display:none}.nl-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:380px;padding:34px 34px 30px;animation:.18s cubic-bezier(.2,.9,.3,1.2) nl-pop;box-shadow:0 24px 60px #00000059}.nl-modal-check{color:#fff;background:var(--teal);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 18px;display:flex}.nl-modal-check .nl-icon-err,.nl-modal--error .nl-modal-check .nl-icon-ok{display:none}.nl-modal--error .nl-modal-check .nl-icon-err{display:block}.nl-modal--error .nl-modal-check{background:#e5484d}.nl-modal h3{letter-spacing:-.3px;margin-bottom:8px;font-size:19px;font-weight:700}.nl-modal p{color:var(--text-3);margin-bottom:22px;font-size:13px;line-height:1.6}.nl-modal-close{background:var(--teal);color:#fff;font-family:var(--font);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 24px;font-size:13px;font-weight:600;transition:background .15s}.nl-modal-close:hover{background:var(--teal-bright)}@keyframes nl-fade{0%{opacity:0}to{opacity:1}}@keyframes nl-pop{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}.empty-state{text-align:center;color:var(--text-3);padding:60px 20px;font-size:14px}