@font-face { font-family:"JetBrains Mono"; src:url("/static/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2?v=a9cb1cd8") format("woff2"); font-style:normal; font-weight:400; font-display:optional; }
/* One typeface contract for the public theme, member pages and CMS. */
:root {
 --site-font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
 --site-code-font:"JetBrains Mono","Cascadia Mono",Consolas,Menlo,"Microsoft YaHei",monospace;
 --studio-font:var(--site-font); --studio-code-font:var(--site-code-font); --w2k-font:var(--site-font); --w2k-mono:var(--site-code-font); --font-ui:var(--site-font); --font-mono:var(--site-code-font);
}
/* Family alone is authoritative: component spacing, colors and icon SVGs remain local. */
body,body * { font-family:var(--site-font)!important; }
body :is(pre,code,kbd,samp,.cm-scroller,.cm-content,.cm-gutters),body :is(pre,code,kbd,samp,.cm-scroller,.cm-content,.cm-gutters) * { font-family:var(--site-code-font)!important; }
body { font-size:15px; font-weight:400; line-height:1.65; font-optical-sizing:auto; font-synthesis:none; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body :is(h1,h2,h3,h4,h5,h6) { font-weight:600; line-height:1.45; }
body :is(pre,code,kbd,samp) { font-variant-ligatures:common-ligatures contextual; font-feature-settings:"liga" 1,"calt" 1,"zero" 1; }
.w2k,.member-app,.journal-layout { --studio-font:var(--site-font); --studio-code-font:var(--site-code-font); --w2k-font:var(--site-font); --w2k-mono:var(--site-code-font); --font-ui:var(--site-font); --font-mono:var(--site-code-font); --journal-mono:var(--site-font); }
.w2k :is(button,input,textarea,select),.member-app :is(button,input,textarea,select) { font-weight:400; }
.w2k .w2k-titlebar-text,.w2k .site-top-nav a { font-size:14px; line-height:1.4; }
.w2k .journal-profile h1 { font-size:16px; font-weight:600; line-height:1.4; }
.w2k .media-profile .journal-tagline { font-size:12px; }
.w2k .media-profile .journal-stats a { font-size:11px; }
.w2k .media-profile .journal-stats strong { font-size:12px; font-weight:600; }
.w2k .media-sidebar .journal-panel h2 { font-size:14px; line-height:1.45; }
.w2k .media-sidebar .journal-categories a { font-size:13px; }
.w2k .media-sidebar :is(.sidebar-tag,.sidebar-notice p,.sidebar-notice-links) { font-size:11px; }
.w2k .media-sidebar .journal-categories small { font-size:11px; font-variant-numeric:tabular-nums; }
.w2k .journal-feed>.journal-toolbar h2 { font-size:15px; font-weight:600; }
.w2k .journal-text-row[data-tech-card] .tech-card-title { font-size:18px; font-weight:600; line-height:1.45; }
.w2k .tech-card-meta { font-size:12px; line-height:1.5; font-variant-numeric:tabular-nums; }
.w2k .journal-text-row[data-tech-card] .tech-card-excerpt { font-size:14px; line-height:1.7; }
.w2k .headline-main-copy h2 { font-size:clamp(18px,1.5vw,22px); font-weight:600; line-height:1.4; }
.w2k .headline-side-copy h3 { font-size:14px; font-weight:500; }
.w2k .reading-content { font-size:15px; font-weight:400; line-height:1.8; }
.w2k .reading-content :is(p,li) { font-size:15px; line-height:1.8; }
.w2k .reading-content h1 { font-size:25px; font-weight:600; line-height:1.4; }
.w2k .reading-content h2 { font-size:21px; font-weight:600; line-height:1.45; }
.w2k .reading-content h3 { font-size:18px; font-weight:600; line-height:1.5; }
.w2k .reading-content h4 { font-size:16px; font-weight:600; line-height:1.5; }
.w2k .reading-content :is(th,td) { font-size:14px; line-height:1.7; }
/* Preserve whitespace, tabs and numeric rhythm in code and terminal output. */
.w2k .reading-content pre,.w2k .reading-content pre code { font-size:13px; font-weight:400; line-height:1.7; letter-spacing:0; font-kerning:none; font-variant-ligatures:none; font-variant-numeric:tabular-nums; tab-size:4; white-space:pre; }
.w2k .reading-content pre code * { font-size:inherit; font-weight:400; line-height:inherit; letter-spacing:0; }
.w2k .reading-content :not(pre)>code:not(.hljs) { font-size:.92em; font-weight:400; letter-spacing:0; font-variant-numeric:tabular-nums; }
.w2k .reading-content .code-block-wrapper :is(.code-language,.copy-code) { font-size:11px; font-weight:400; }
.w2k.cms-admin-workspace #codemirror-editor .cm-editor { font-size:14px; font-weight:400; }
.w2k.cms-admin-workspace #codemirror-editor .cm-scroller { line-height:1.75; font-variant-ligatures:none; font-variant-numeric:tabular-nums; tab-size:4; }
.w2k.cms-admin-workspace #codemirror-editor .cm-gutters { font-size:12px; }
@media(max-width:767px) {
 .w2k .w2k-titlebar-text,.w2k .site-top-nav a { font-size:12px; }
 .w2k .journal-text-row[data-tech-card] .tech-card-title { font-size:16px; }
 .w2k .tech-card-meta { font-size:11px; }
 .w2k .journal-text-row[data-tech-card] .tech-card-excerpt { font-size:13px; }
 .w2k .reading-content,.w2k .reading-content :is(p,li) { font-size:14px; line-height:1.8; }
 .w2k .reading-content h1 { font-size:22px; }
 .w2k .reading-content h2 { font-size:19px; }
 .w2k .reading-content h3 { font-size:17px; }
 .w2k .reading-content pre,.w2k .reading-content pre code { font-size:12px; }
 .w2k.cms-admin-workspace #codemirror-editor .cm-editor { font-size:13px; }
}
@font-face { font-family:"Inter"; src:url("/static/fonts/inter/InterVariable.woff2?v=693b77d4") format("woff2"); font-style:normal; font-weight:100 900; font-display:optional; }
