:root{--blog-bg:#06090b;--blog-surface:#0c1014;--blog-surface-2:#111920;--blog-border:#1a2530;--blog-border-bright:#253f4d;--blog-text:#f0f4f8;--blog-muted:#9aabba;--blog-dim:#617382;--blog-accent:#00f5ff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--blog-bg);color:var(--blog-text);font-family:Satoshi,Arial,sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 25% 5%,rgba(0,245,255,.06),transparent 42%),radial-gradient(ellipse at 80% 72%,rgba(0,245,255,.025),transparent 42%);pointer-events:none}.blog-shell,.blog-article{width:min(calc(100% - 64px),1200px);margin-inline:auto;position:relative}.blog-hero{padding:112px 0 104px;border-bottom:1px solid var(--blog-border)}.blog-kicker{margin:0 0 24px;color:var(--blog-accent);font:500 12px/1.4 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.blog-hero h1,.article-header h1{max-width:970px;margin:0;font:400 clamp(50px,7.5vw,92px)/.98 'Instrument Serif',serif;letter-spacing:-.025em}.blog-hero h1 em{color:var(--blog-accent);font-weight:400}.blog-lead,.article-dek{max-width:760px;margin:32px 0 0;color:var(--blog-muted);font-size:clamp(18px,2vw,22px);line-height:1.65}.blog-list-section{padding:88px 0 112px}.blog-section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px}.blog-section-heading .blog-kicker{margin:0}.blog-section-heading h2{margin:0;font:400 clamp(36px,5vw,56px)/1 'Instrument Serif',serif}.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--blog-border);border:1px solid var(--blog-border)}.post-card{display:flex;min-height:340px;flex-direction:column;padding:36px;background:var(--blog-surface)}.post-card:hover{background:var(--blog-surface-2)}.post-date,.article-meta{color:var(--blog-dim);font:12px/1.6 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.05em}.post-card h3{margin:34px 0 16px;font:400 34px/1.1 'Instrument Serif',serif}.post-card h3 a{color:var(--blog-text);text-decoration:none}.post-card h3 a:hover{color:var(--blog-accent)}.post-card>p:not(.post-date){margin:0;color:var(--blog-muted);font-size:16px;line-height:1.65}.post-card-meta{display:flex;justify-content:space-between;gap:20px;margin-top:auto;padding-top:36px;color:var(--blog-dim);font:12px/1.5 'DM Mono',monospace}.post-card-meta a,.blog-empty a,.back-to-blog a,.blog-text-link{color:var(--blog-accent);text-decoration:none}.blog-empty{border:1px solid var(--blog-border);padding:clamp(36px,7vw,80px);background:linear-gradient(135deg,var(--blog-surface),rgba(12,16,20,.65));max-width:850px}.blog-empty-mark{margin:0 0 52px;color:var(--blog-accent);font:12px 'DM Mono',monospace}.blog-empty h3{margin:0 0 18px;font:400 clamp(34px,5vw,52px)/1.1 'Instrument Serif',serif}.blog-empty>p:not(.blog-empty-mark){max-width:620px;margin:0 0 28px;color:var(--blog-muted);font-size:17px;line-height:1.7}.blog-empty a{font:13px 'DM Mono',monospace}.blog-article{max-width:900px;padding:72px 0 112px}.article-header{padding-bottom:56px;border-bottom:1px solid var(--blog-border)}.article-header h1{font-size:clamp(46px,7vw,78px)}.article-meta{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:32px}.article-hero{margin:48px 0 0}.article-hero img{display:block;width:100%;height:auto;border:1px solid var(--blog-border)}.article-body{max-width:760px;margin:56px auto 0;color:#c5d0d9;font-size:18px;line-height:1.8}.article-body h2,.article-body h3{color:var(--blog-text);font-family:'Instrument Serif',serif;font-weight:400;line-height:1.15}.article-body h2{margin:2em 0 .65em;font-size:42px}.article-body h3{margin:1.7em 0 .55em;font-size:30px}.article-body a{color:var(--blog-accent)}.article-body code{font-family:'DM Mono',monospace;font-size:.86em}.article-body pre{overflow:auto;padding:24px;background:#020608;border:1px solid var(--blog-border)}.article-body blockquote{margin:2em 0;padding-left:24px;border-left:2px solid var(--blog-accent);color:var(--blog-text);font:400 28px/1.4 'Instrument Serif',serif}.article-cta{margin-top:72px;padding:42px;border:1px solid var(--blog-border-bright);background:var(--blog-surface)}.article-cta h2{max-width:650px;margin:0;font:400 clamp(34px,5vw,50px)/1.05 'Instrument Serif',serif}.article-cta>p:not(.blog-kicker){max-width:650px;color:var(--blog-muted);font-size:17px;line-height:1.7}.article-cta>div{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:28px}.blog-button{display:inline-block;padding:13px 18px;background:var(--blog-accent);color:#031013;text-decoration:none;font:600 12px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.05em}.blog-text-link{font:12px 'DM Mono',monospace}.back-to-blog{margin-top:38px;font:12px 'DM Mono',monospace}.article-body ul,.article-body ol{padding-left:1.35em}.article-body li+li{margin-top:.6em}.article-body table{display:block;width:100%;margin:2em 0;overflow-x:auto;border-collapse:collapse;font-size:15px;line-height:1.55}.article-body th,.article-body td{min-width:180px;padding:16px;text-align:left;vertical-align:top;border:1px solid var(--blog-border)}.article-body th{background:var(--blog-surface-2);color:var(--blog-text);font-family:'DM Mono',monospace;font-size:12px;letter-spacing:.03em}.article-body td{background:var(--blog-surface)}@media(max-width:800px){.blog-shell,.blog-article{width:calc(100% - 32px)}.blog-hero{padding:72px 0}.blog-list-section{padding:64px 0 80px}.blog-section-heading{display:block}.blog-section-heading .blog-kicker{margin-bottom:16px}.post-grid{grid-template-columns:1fr}.blog-article{padding-top:52px}.article-cta{padding:30px}}@media(max-width:520px){.blog-hero h1{font-size:48px}.post-card{padding:26px}.article-body{font-size:17px}.article-body h2{font-size:34px}.article-cta{padding:24px}}
.article-header h1{max-width:860px;font-size:clamp(42px,5.8vw,66px);line-height:1.02}
.article-hero{width:min(100%,760px);margin:42px auto 0}
.blog-hero h1{max-width:900px;font-size:clamp(44px,6.2vw,74px);line-height:1.01}
.post-card:only-child{grid-column:1/-1}
.post-card:only-child h3,.post-card:only-child>p:not(.post-date){max-width:820px}
@media(max-width:520px){.article-header h1{font-size:clamp(38px,12vw,50px)}.article-hero{margin-top:36px}.blog-hero h1{font-size:42px}}
.article-body figure{margin:2em 0}
.article-body figure img{display:block;max-width:100%;height:auto}
.article-body figcaption{margin-top:12px;color:var(--blog-muted);font-size:14px;line-height:1.5}
.article-share{max-width:760px;margin:64px auto 0;padding:28px 0;border-top:1px solid var(--blog-border);border-bottom:1px solid var(--blog-border)}
.article-share h2{margin:0;color:var(--blog-text);font:400 30px/1.2 'Instrument Serif',serif}
.article-share-note{margin:10px 0 0;color:var(--blog-muted);font-size:14px;line-height:1.5}
.article-share-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.article-share-link{display:inline-block;padding:10px 14px;border:1px solid var(--blog-border-bright);color:var(--blog-accent);text-decoration:none;font:500 12px/1.4 'DM Mono',monospace}
.article-share-link:hover{border-color:var(--blog-accent)}
.article-share-tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;color:var(--blog-muted);font:12px/1.5 'DM Mono',monospace}
.article-share-tags a{color:var(--blog-muted);text-decoration:none}
.article-share-tags a:hover{color:var(--blog-accent)}
.blog-tag-filters{display:flex;flex-wrap:wrap;gap:8px;margin:-12px 0 28px}
.blog-tag-filters[hidden],.post-card[hidden]{display:none}
.blog-tag-filters button{padding:8px 12px;border:1px solid var(--blog-border-bright);background:transparent;color:var(--blog-muted);cursor:pointer;font:12px/1.4 'DM Mono',monospace}
.blog-tag-filters button:hover,.blog-tag-filters button[aria-pressed="true"]{border-color:var(--blog-accent);color:var(--blog-accent)}

/* Keep the blog introduction and first articles visible on laptop screens. */
.blog-hero { padding: 64px 0 72px; }
.blog-hero .blog-kicker { margin-bottom: 18px; }
.blog-hero h1 { max-width: 1050px; font-size: clamp(48px, 5vw, 68px); }
.blog-hero .blog-lead { margin-top: 22px; line-height: 1.5; }
.blog-list-section { padding-top: 56px; }
@media (min-width: 801px) and (max-height: 850px) {
  .blog-hero { padding: 40px 0 48px; }
  .blog-hero h1 { font-size: clamp(46px, 4.5vw, 62px); }
  .blog-hero .blog-lead { margin-top: 18px; line-height: 1.45; }
  .blog-list-section { padding-top: 42px; }
}
@media (max-width: 800px) {
  .blog-hero { padding: 56px 0; }
  .blog-list-section { padding-top: 56px; }
}
