.blog-nav{display:flex;align-items:center;justify-content:space-between;min-height:78px;border-bottom:1px solid var(--border)}
.blog-brand{display:flex;align-items:center;gap:12px;color:var(--text);font-weight:700;letter-spacing:-.03em}.blog-brand span{font-weight:600;letter-spacing:0}
.blog-nav nav{display:flex;align-items:center;gap:24px}.blog-nav nav a{color:var(--text-2);font-size:14px}.blog-nav nav a:hover,.blog-nav nav a[aria-current=page]{color:var(--text)}
.blog-main,.article-main{max-width:900px;padding-top:90px;padding-bottom:110px;min-height:70vh}.blog-eyebrow{font-size:12px;letter-spacing:.14em;color:var(--accent);font-weight:600}
.blog-main h1,.article-header h1{font-size:clamp(3rem,7vw,5.5rem);line-height:1.06;letter-spacing:-.065em;color:var(--text);margin:16px 0}.blog-dot{color:var(--accent)}.blog-intro,.article-summary{font-size:clamp(1.1rem,2vw,1.35rem);color:var(--text-2);max-width:710px;line-height:1.65}.blog-list{margin-top:64px;border-top:1px solid var(--border)}
.blog-list-card{padding:36px 0;border-bottom:1px solid var(--border)}.blog-card-meta{display:flex;gap:12px;color:var(--text-3);font-size:12px}.blog-list-card h2{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.25;letter-spacing:-.035em;margin:14px 0}.blog-list-card h2 a{color:var(--text)}.blog-list-card h2 a:hover{color:var(--accent-hover)}.blog-list-card h2 span{font-size:.7em}.blog-list-card p{color:var(--text-2);line-height:1.65;max-width:740px}.blog-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.blog-tags span{font:12px var(--mono);color:var(--text-3);border:1px solid var(--border);border-radius:5px;padding:5px 9px}.blog-more,.blog-back{display:inline-block;margin-top:28px;font-size:14px}.blog-empty{padding:42px 0;color:var(--text-3)}.blog-footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding-top:28px;padding-bottom:42px;color:var(--text-3);font-size:13px}
.article-main{max-width:790px}.article-main>.blog-back:first-child{margin:0 0 48px}.article-header{padding-bottom:38px;border-bottom:1px solid var(--border);margin-bottom:48px}.article-header h1{font-size:clamp(1.875rem,1.4rem + 1.6vw,2.75rem);line-height:1.15;letter-spacing:-.025em;font-weight:650;text-wrap:balance}.article-summary{font-size:clamp(1.0625rem,1rem + .3vw,1.25rem)}.article-header .blog-card-meta{margin-top:24px}.article-body{color:var(--text-2);font-size:17px;line-height:1.78;overflow-wrap:anywhere}.article-body>*+*{margin-top:1.3em}.article-body h2,.article-body h3{color:var(--text);letter-spacing:-.035em;line-height:1.25;margin-top:2em}.article-body h2{font-size:1.75em}.article-body h3{font-size:1.35em}.article-body ul,.article-body ol{padding-left:1.4em}.article-body li+li{margin-top:.45em}.article-body blockquote{border-left:3px solid var(--accent);padding-left:20px;color:var(--text-3)}.article-body a{text-decoration:underline;text-underline-offset:3px}.article-body code{font-family:var(--mono);font-size:.88em;background:var(--bg-elev);padding:.14em .35em;border-radius:4px}.article-body pre{overflow-x:auto;background:#111319;border:1px solid var(--border);border-radius:10px;padding:20px}.article-body pre code{background:none;padding:0;font-size:13px;line-height:1.6}.article-body img{display:block;max-width:100%;height:auto;border:1px solid var(--border);border-radius:10px;margin:1.8em auto}.preview-banner{padding:10px 24px;text-align:center;background:#27203b;color:var(--text);font-size:13px}.preview-banner a{text-decoration:underline}
.blog-footer-links{display:flex;flex-wrap:wrap;gap:20px}
/* Article sections. On wide screens an "On this page" list sits in the left margin, sticky, with article.js marking the section being read. */
.article-main article{position:relative}.article-body h2[id],.article-body h3[id]{scroll-margin-top:24px}.article-toc{display:none}
@media(min-width:1360px){.article-toc{display:block;position:absolute;top:0;bottom:0;right:calc(100% + 96px);width:min(220px,calc((100vw - 742px)/2 - 120px))}.article-toc-inner{position:sticky;top:32px;max-height:calc(100vh - 64px);overflow-y:auto}.article-toc-title{margin-bottom:14px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.article-toc ol{margin:0;padding:0;list-style:none;border-left:1px solid var(--border)}.article-toc li+li{margin-top:2px}.article-toc a{display:block;margin-left:-1px;padding:5px 0 5px 14px;border-left:1px solid transparent;color:var(--text-3);font-size:13px;line-height:1.45;transition:color .15s,border-color .15s}.article-toc a:hover{color:var(--text-2)}.article-toc a[aria-current=location]{color:var(--text);border-left-color:var(--accent)}}
@media(max-width:760px){.blog-nav{min-height:66px}.blog-nav nav{gap:14px}.blog-brand span{display:none}.blog-main,.article-main{padding-top:58px;padding-bottom:70px}.article-body{font-size:16px}}
/* Newsletter: the end-of-post box, the slide-in and the pages emailed links open. No inline styles (CSP); the script only toggles classes and hidden. */
.nl-box,.nl-panel{margin-top:56px;padding:32px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:var(--radius-panel)}.nl-panel{margin-top:0}.nl-box h2{color:var(--text);font-size:1.5rem;letter-spacing:-.03em;line-height:1.25}.nl-lede{color:var(--text-2);line-height:1.6;margin:10px 0 22px}
.nl-row{display:flex;align-items:flex-end;gap:12px}.nl-row .btn{min-height:46px}.nl-panel>.nl-lede:first-child{margin-top:0}.nl-page.is-done .nl-fine,.nl-page.is-used .nl-fine{display:none}.nl-field{flex:1;min-width:0}.nl-field label,.nl-prefs legend{display:block;font:510 13px/1 var(--font);color:var(--text-2);margin-bottom:8px}.nl-field input{width:100%;background:rgba(0,0,0,.25);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:400 15px/1.5 var(--font);padding:10px 14px}.nl-field input:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--brand)}.nl-field input[aria-invalid="true"]{border-color:#f87171}.article-main:focus{outline:none}
.nl-check{display:flex;align-items:flex-start;gap:10px;margin-top:16px;color:var(--text-3);font-size:14px;line-height:1.5;cursor:pointer}.nl-check input{flex:none;width:16px;height:16px;margin-top:3px;accent-color:var(--brand)}.nl-check strong{color:var(--text-2);font-weight:600}
.nl-status{min-height:1.4em;margin-top:16px;font-size:14px;color:var(--text-3)}.nl-status:empty{min-height:0;margin-top:0}.nl-status:focus{outline:none}.nl-status.ok{color:var(--green-soft)}.nl-status.err{color:#f87171}.nl-status.note{color:var(--text-2)}.nl-fine{margin-top:16px;font-size:13px;color:var(--text-4)}.nl-fine a{color:var(--text-3);text-decoration:underline;text-underline-offset:3px}
.nl-form.is-done .nl-row,.nl-form.is-done .nl-field,.nl-form.is-done .nl-check,.nl-form.is-done button{display:none}
.nl-slide[hidden]{display:none}.nl-slide{position:fixed;right:16px;bottom:24px;z-index:40;width:min(320px,calc(50vw - 427px));padding:22px 20px 18px;background:#0f1011;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-panel);box-shadow:0 18px 50px rgba(0,0,0,.55);opacity:0;transform:translateY(16px);transition:opacity .3s ease,transform .3s ease}.nl-slide.is-open{opacity:1;transform:none}
.nl-slide-title{color:var(--text);font-weight:600;font-size:15px;padding-right:24px}.nl-slide .nl-lede{font-size:13.5px;margin:8px 0 14px}.nl-slide .nl-check{font-size:12.5px;margin-top:12px}.nl-slide .btn{margin-top:14px;width:100%;justify-content:center}.nl-slide .nl-fine{margin-top:10px;font-size:12px}.nl-slide .nl-status{font-size:13px;margin-top:12px}.nl-slide .nl-status:empty{margin-top:0}
.nl-close{position:absolute;top:10px;right:10px;width:28px;height:28px;border:0;border-radius:var(--radius);background:none;color:var(--text-3);font-size:20px;line-height:1;cursor:pointer}.nl-close:hover{color:var(--text);background:var(--surface-3)}
.nl-page .article-header{margin-bottom:32px}.nl-panel .btn{margin-top:4px}.nl-prefs fieldset{border:0}.nl-prefs .nl-check{margin-top:14px;font-size:15px}.nl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.nl-page.is-done [data-newsletter-confirm-button],.nl-page.is-used [data-newsletter-confirm-button],.nl-page.is-done .nl-before,.nl-page.is-used .nl-before,.nl-page.is-gone .nl-prefs{display:none}
@media(max-width:1375px){.nl-slide{display:none}}
@media(max-width:760px){.nl-box,.nl-panel{padding:22px}.nl-box .nl-form{display:flex;flex-direction:column}.nl-box .nl-form>*{order:4}.nl-box .nl-row{display:contents}.nl-box .nl-field{order:1}.nl-box .nl-check{order:2}.nl-box .nl-row .btn{order:3;margin-top:18px;justify-content:center}}
@media(prefers-reduced-motion:reduce){.nl-slide{transition:none;transform:none}}
