.article-frame{background:var(--bg);min-height:100vh;color:var(--text);position:relative}.article-hero{border-bottom:1px solid var(--border);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;padding:132px 0 0;display:grid}.article-hero-copy{grid-column:2/9;padding:0 32px 48px 0}.article-back{color:var(--text-muted);transition:color var(--ease-fast);align-items:center;gap:8px;font-size:12px;text-decoration:none;display:inline-flex}.article-back:hover{color:var(--accent-content)}.article-kicker{font:500 10px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-content);align-items:center;gap:10px;margin-top:44px;display:flex}.article-kicker:before{content:"";background:var(--accent);width:6px;height:6px}.article-hero h1{max-width:18ch;font:500 clamp(38px,4.6vw,66px)/1.04 var(--font-brand-title),sans-serif;letter-spacing:-.035em;text-wrap:balance;margin-top:18px}.article-hero-copy>p{max-width:58ch;color:var(--text-muted);margin-top:24px;font-size:17px;line-height:1.7}.article-titleblock{border:1px solid var(--border);background:var(--bg-subtle);grid-column:9/12;margin:0 0 48px}.article-titleblock>div{grid-template-columns:96px 1fr;align-items:baseline;gap:12px;padding:12px 14px;display:grid}.article-titleblock>div+div{border-top:1px solid var(--border)}.article-titleblock dt{font:9px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;color:var(--text-faint)}.article-titleblock dd{font:500 12px var(--font-ibm-plex-mono),monospace;color:var(--text);margin:0}.article-body{grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.article-toc{border-right:1px solid var(--border);grid-column:2/5}.article-toc-sticky{scrollbar-width:none;gap:18px;max-height:calc(100dvh - 60px);padding:40px 28px 40px 0;display:grid;position:sticky;top:60px;overflow:auto}.article-toc-label{font:9px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:10px;display:inline-flex}.article-toc-label i{background:var(--accent);width:5px;height:5px}.article-meter{width:126px}.article-meter-read{fill:color-mix(in srgb, var(--accent) 8%, transparent);stroke:none}.article-meter-scan{stroke:var(--accent);stroke-width:1.2px}.article-meter-tick{stroke:var(--text-faint);stroke-width:1px;transition:stroke var(--ease-base)}.article-meter .is-past .article-meter-tick{stroke:var(--text-muted)}.article-meter .is-active .article-meter-tick{stroke:var(--accent)}.article-meter .is-active .dw-text{fill:var(--accent-content)}.article-toc ol{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.article-toc li{border-bottom:1px solid var(--border)}.article-toc a{color:var(--text-muted);transition:color var(--ease-fast), background var(--ease-fast);grid-template-columns:28px 1fr;gap:8px;padding:11px 0 11px 10px;font-size:13px;line-height:1.45;text-decoration:none;display:grid;position:relative}.article-toc a:before{content:"";background:var(--accent);transform-origin:top;width:2px;transition:transform var(--ease-base) var(--motion-curve);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.article-toc a b{font:500 10px var(--font-ibm-plex-mono),monospace;color:var(--text-faint);padding-top:2px}.article-toc a:hover{color:var(--text);background:var(--bg-subtle)}.article-toc .is-past a{color:var(--text)}.article-toc .is-active a{color:var(--accent-content)}.article-toc .is-active a:before{transform:scaleY(1)}.article-toc .is-active a b{color:var(--accent-content)}.article-toc-progress{font:9px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-variant-numeric:tabular-nums}.article-prose{grid-column:5/12;min-width:0;padding:40px 0 96px 56px}.article-language{border:1px dashed var(--border);color:var(--text-muted);margin-bottom:28px;padding:12px 14px;font-size:13px}.article-related{border-top:1px solid var(--border);background:var(--bg-subtle);grid-template-columns:repeat(12,minmax(0,1fr));padding:72px 0 88px;display:grid}.article-related>header{grid-column:2/12;margin-bottom:24px}.article-related>header span{font:9px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-content)}.article-related h2{font:500 clamp(28px,2.8vw,40px)/1.1 var(--font-brand-title),sans-serif;letter-spacing:-.03em;margin-top:10px}.article-related ol{border-top:1px solid var(--border);grid-column:2/12;margin:0;padding:0;list-style:none}.article-related li{border-bottom:1px solid var(--border)}.article-related a{color:var(--text);transition:background var(--ease-fast);grid-template-columns:44px 132px minmax(0,1fr) 56px 20px;align-items:center;gap:18px;padding:22px 8px;text-decoration:none;display:grid}.article-related a:hover{background:var(--bg)}.article-related-n{font:500 10px var(--font-ibm-plex-mono),monospace;color:var(--text-faint)}.article-related-cat{font:9px var(--font-ibm-plex-mono),monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-content)}.article-related-title{gap:6px;min-width:0;display:grid}.article-related-title b{transition:color var(--ease-fast);font-size:16px;font-weight:500;line-height:1.35}.article-related-title em{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-style:normal;line-height:1.6;display:-webkit-box;overflow:hidden}.article-related a:hover b{color:var(--accent-content)}.article-related-min{font:10px var(--font-ibm-plex-mono),monospace;color:var(--text-muted)}.article-related a>svg{color:var(--accent);transition:translate var(--ease-fast)}.article-related a:hover>svg{translate:2px -2px}@media (max-width:1100px){.article-hero-copy{grid-column:2/12;padding-bottom:28px;padding-right:0}.article-titleblock{grid-column:2/12;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.article-titleblock>div{grid-template-columns:1fr;gap:6px}.article-titleblock>div+div{border-top:0;border-left:1px solid var(--border)}.article-toc{display:none}.article-prose{grid-column:2/12;padding-left:0}}@media (max-width:767px){.article-hero{padding:100px 20px 0;display:block}.article-hero-copy{padding:0 0 24px}.article-kicker{margin-top:32px}.article-hero h1{font-size:clamp(32px,9vw,44px)}.article-hero-copy>p{font-size:15px}.article-titleblock{grid-template-columns:1fr 1fr;margin-bottom:28px}.article-titleblock>div:nth-child(3){border-left:0}.article-titleblock>div:nth-child(n+3){border-top:1px solid var(--border)}.article-body{display:block}.article-prose{padding:28px 20px 72px}.article-related{padding:56px 20px 64px;display:block}.article-related a{grid-template-columns:28px minmax(0,1fr) 16px;grid-template-areas:"n cat arrow""n title arrow";gap:6px 12px;padding:18px 0}.article-related-n{grid-area:n;align-self:start}.article-related-cat{grid-area:cat}.article-related-title{grid-area:title}.article-related-min{display:none}.article-related a>svg{grid-area:arrow}}
.blog-prose{counter-reset:section;max-width:68ch;font-family:var(--font-brand-body),sans-serif;color:var(--text);font-size:17px;line-height:1.8}.blog-prose>:first-child{margin-top:0}.blog-prose p{color:color-mix(in srgb, var(--text) 86%, var(--bg));margin:0 0 22px}.blog-prose h2{counter-increment:section;border-top:1px solid var(--border);font:500 clamp(24px,2.2vw,30px)/1.2 var(--font-brand-title),sans-serif;letter-spacing:-.025em;color:var(--text);text-wrap:balance;margin:64px 0 18px;padding-top:22px;scroll-margin-top:96px;position:relative}.blog-prose h2:before{content:"§ " counter(section, decimal-leading-zero);font:500 10px var(--font-ibm-plex-mono),monospace;letter-spacing:.14em;color:var(--accent-content);margin-bottom:10px;display:block}.blog-prose h2:after{content:"";background:var(--accent);width:48px;height:1px;position:absolute;top:-1px;left:0}.blog-prose h3{font:500 19px/1.35 var(--font-brand-title),sans-serif;letter-spacing:-.015em;color:var(--text);margin:36px 0 12px}.blog-figure{margin:8px 0 30px;display:block}.blog-figure img,.blog-figure video{border:1px solid var(--border);background:var(--bg-inverse);width:100%;height:auto;display:block}.blog-figure video[src*="9x16"]{max-width:340px;margin:0 auto}.blog-figure-caption{font:400 11px/1.6 var(--font-ibm-plex-mono),monospace;letter-spacing:.04em;color:var(--text-muted);margin-top:10px;display:block}.blog-prose strong{color:var(--text);font-weight:600}.blog-prose a{color:var(--accent-content);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:4px;transition:color var(--ease-fast), text-decoration-color var(--ease-fast)}.blog-prose a:hover{color:var(--accent-content-hover);text-decoration-color:currentColor}.blog-prose ul,.blog-prose ol{border-top:1px solid var(--border);margin:0 0 26px;padding:0;list-style:none}.blog-prose li{border-bottom:1px solid var(--border);color:color-mix(in srgb, var(--text) 86%, var(--bg));padding:12px 0 12px 34px;position:relative}.blog-prose ul>li:before{content:"";border:1px solid var(--accent);width:6px;height:6px;position:absolute;top:23px;left:6px}.blog-prose ol{counter-reset:item}.blog-prose ol>li{counter-increment:item}.blog-prose ol>li:before{content:counter(item, decimal-leading-zero);font:500 10px var(--font-ibm-plex-mono),monospace;color:var(--accent-content);position:absolute;top:15px;left:0}.blog-prose li p{margin:0}.blog-prose blockquote{border-left:2px solid var(--accent);background:var(--bg-subtle);color:var(--text);margin:32px 0;padding:18px 22px}.blog-prose blockquote p:last-child{margin-bottom:0}.blog-prose code{background:var(--bg-subtle);border:1px solid var(--border);font:13px var(--font-ibm-plex-mono),monospace;padding:2px 6px}.blog-prose pre{background:var(--bg-subtle);border:1px solid var(--border);margin:0 0 26px;padding:18px 20px;overflow-x:auto}.blog-prose pre code{background:0 0;border:0;padding:0}.blog-prose table{border-collapse:collapse;width:100%;margin:0 0 26px;font-size:14px;display:block;overflow-x:auto}.blog-prose th,.blog-prose td{border:1px solid var(--border);text-align:left;padding:10px 12px}.blog-prose th{font:500 10px var(--font-ibm-plex-mono),monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-subtle)}.blog-prose hr{border:0;border-top:1px dashed var(--border);margin:48px 0}@media (max-width:767px){.blog-prose{font-size:16px}.blog-prose h2{margin-top:48px}}
