@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600;700&family=DM+Serif+Text:ital@0;1&family=Outfit:wght@400;500;600;700;800;900&display=swap");:root{--bg:#f5f5f5;--bg-code:#191919;--bg-callout:#ebebeb;--bg-card:#fff;--text:#1f1f1f;--text-muted:#6b6b6b;--text-ghost:#9a9a9a;--accent:#be1b1b;--accent-light:#f87171;--accent-hover:#dc2626;--border:#d9d9d9;--border-light:#e8e8e8;--tip-bg:#f0fdf4;--tip-border:#22c55e;--tip-text:#16a34a;--warn-bg:#fffbeb;--warn-border:#eab308;--warn-text:#ca8a04;--danger-bg:#fef2f2;--danger-border:#ef4444;--danger-text:#dc2626;--info-bg:#f5f5f5;--info-border:#737373;--info-text:#525252;--syn-keyword:#f472b6;--syn-string:#a5f3fc;--syn-number:#fdba74;--syn-comment:#525252;--syn-tag:#fca5a5;--syn-attr:#fcd34d;--syn-value:#a5f3fc;--syn-property:#d4d4d8;--syn-selector:#f472b6;--syn-function:#d4d4d8;--syn-punctuation:#a1a1aa;--syn-text:#d4d4d4;--font-body:"Outfit","Segoe UI",sans-serif;--font-display:"DM Serif Text",Georgia,serif;--font-mono:"Fira Code","Cascadia Code",monospace;--max-width-article:780px;--max-width-site:1200px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.prose{font-family:var(--font-body);font-size:17px;line-height:1.75;color:var(--text)}.prose p{margin-bottom:16px}.prose a{color:var(--accent)}.prose a:hover{text-decoration:underline}.prose strong{font-weight:600}.prose em{font-style:italic}.prose h2{font-size:28px;margin:56px 0 16px;line-height:1.2;letter-spacing:-.3px}.prose h2,.prose h3{font-family:var(--font-display);font-weight:400}.prose h3{font-size:20px;margin:40px 0 14px;line-height:1.3}.prose h4{font-family:var(--font-mono);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:32px 0 10px;color:var(--text-muted)}.prose .section{border:1px solid var(--border);border-radius:10px;padding:32px 36px 28px;margin-bottom:32px;background:var(--bg-card);position:relative}.prose .section-num{display:block;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:3px;color:var(--accent);margin-bottom:6px}.prose .section h2{margin-top:0}.prose .section h3{margin-top:28px}.prose ol,.prose ul{padding-left:24px;margin-bottom:16px}.prose li{margin-bottom:6px}.prose blockquote{border-left:3px solid var(--accent);padding:12px 20px;margin:24px 0;font-style:italic;color:var(--text-muted);background:var(--bg-callout);border-radius:0 6px 6px 0}.prose code{font-size:14px;background:var(--bg-callout);padding:2px 7px;border-radius:4px;color:var(--accent)}.prose code,.prose pre{font-family:var(--font-mono)}.prose pre{background:var(--bg-code);border:1px solid #2e2e2e;border-radius:8px;padding:20px 24px;overflow-x:auto;margin:20px 0 24px;font-size:13.5px;line-height:1.7;color:var(--syn-text);position:relative}.prose pre[data-lang]:before{content:attr(data-lang);position:absolute;top:8px;right:12px;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#444;font-weight:600}.prose pre code{background:none;padding:0;color:inherit;font-size:inherit}.prose pre .kw{color:var(--syn-keyword)}.prose pre .str{color:var(--syn-string)}.prose pre .num{color:var(--syn-number)}.prose pre .cmt{color:var(--syn-comment);font-style:italic}.prose pre .tag{color:var(--syn-tag)}.prose pre .attr{color:var(--syn-attr)}.prose pre .val{color:var(--syn-value)}.prose pre .prop{color:var(--syn-property)}.prose pre .sel{color:var(--syn-selector)}.prose pre .fn{color:var(--syn-function)}.prose pre .punc{color:var(--syn-punctuation)}.prose pre .accent-var{color:var(--accent-light);font-style:italic}.prose .sep,.prose hr{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);border:none;margin:48px 0}.prose .prop-table,.prose table{width:100%;border-collapse:collapse;margin:20px 0 24px;font-size:14px}.prose .prop-table th,.prose th{font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);text-align:left;padding:8px 12px;border-bottom:2px solid var(--border);font-weight:600;background:none}.prose .prop-table td,.prose td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;font-size:14px;line-height:1.55}.prose .prop-table td:first-child{font-family:var(--font-mono);font-size:13px;color:var(--accent);white-space:nowrap}.prose .prop-table tr:last-child td,.prose tr:last-child td{border-bottom:none}.prose .prop-table tr:hover td,.prose tr:hover td{background:rgba(0,0,0,.015)}.prose img{max-width:100%;border-radius:8px}.prose figure,.prose img{margin:24px 0}.prose figcaption{font-family:var(--font-mono);font-size:12px;color:var(--text-ghost);text-align:center;margin-top:8px}.prose .math-block{background:#fff;border:1px solid var(--border);border-radius:8px;padding:28px 32px;margin:24px 0;text-align:center;overflow-x:auto}.prose .formula{font-family:var(--font-display);font-size:clamp(18px,3vw,26px);font-style:italic;color:var(--text);line-height:1.6;letter-spacing:.5px;background:none;border:none;border-radius:0;padding:0;white-space:normal;display:block;text-align:center}.prose .formula sub,.prose .formula sup{font-size:.65em}.prose .formula .accent-var{color:var(--accent);font-style:italic}.prose .math-block figcaption{font-family:var(--font-mono);font-size:11px;color:var(--text-ghost);margin-top:12px;letter-spacing:.5px;text-align:center;font-style:normal}.prose .callout,.prose [data-callout]{border-left:3px solid;padding:16px 20px;margin:24px 0;border-radius:0 6px 6px 0;font-size:15px;line-height:1.65}.prose .callout strong{display:block;margin-bottom:6px;font-size:11px;font-family:var(--font-mono);letter-spacing:1.5px;text-transform:uppercase;font-weight:700}.prose .callout-tip{background:var(--tip-bg);border-color:var(--tip-border)}.prose .callout-warn{background:var(--warn-bg);border-color:var(--warn-border)}.prose .callout-danger{background:var(--danger-bg);border-color:var(--danger-border)}.prose .callout-info{background:var(--info-bg);border-color:var(--info-border)}.prose .callout-tip strong{color:var(--tip-text)}.prose .callout-warn strong{color:var(--warn-text)}.prose .callout-danger strong{color:var(--danger-text)}.prose .callout-info strong{color:var(--info-text)}.prose .toc{background:var(--bg-callout);border:1px solid #a8a8a8;border-radius:8px;padding:28px 32px;margin-bottom:56px}.prose .toc-title{font-family:var(--font-mono);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);font-weight:600;margin-bottom:14px}.prose .toc ol{list-style:none;counter-reset:toc-counter;padding:0;margin:0}.prose .toc li{counter-increment:toc-counter;margin-bottom:6px}.prose .toc li:before{content:counter(toc-counter,decimal-leading-zero);font-family:var(--font-mono);font-size:12px;color:var(--accent);margin-right:10px;font-weight:600}.prose .toc a{font-family:var(--font-body);font-size:15px;color:var(--text);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}.prose .toc a:hover{border-color:var(--accent)}.ProseMirror{padding:28px 32px;outline:none;min-height:400px;font-family:var(--font-body);font-size:17px;line-height:1.75;color:var(--text)}.ProseMirror p{margin-bottom:16px}.ProseMirror h2{font-size:26px;margin:40px 0 16px}.ProseMirror h2,.ProseMirror h3{font-family:var(--font-display);font-weight:400}.ProseMirror h3{font-size:20px;margin:32px 0 12px}.ProseMirror h4{font-family:var(--font-mono);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:24px 0 10px;color:var(--text-muted)}.ProseMirror ol,.ProseMirror ul{padding-left:24px;margin-bottom:16px}.ProseMirror li{margin-bottom:6px}.ProseMirror blockquote{border-left:3px solid var(--accent);padding:10px 18px;margin:20px 0;color:var(--text-muted);font-style:italic;background:var(--bg-callout);border-radius:0 6px 6px 0}.ProseMirror code{font-family:var(--font-mono);font-size:14px;background:var(--bg-callout);padding:2px 6px;border-radius:4px;color:var(--accent)}.ProseMirror pre{background:var(--bg-code);padding:16px 20px;border-radius:8px;margin:20px 0;border:1px solid #2e2e2e}.ProseMirror pre code{background:none;color:var(--syn-text);padding:0;font-size:13.5px;line-height:1.7}.ProseMirror hr{height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);border:none;margin:40px 0}.ProseMirror a{color:var(--accent);text-decoration:underline}.ProseMirror img{max-width:100%;border-radius:8px}.ProseMirror .is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-ghost);pointer-events:none;height:0;font-style:italic}.ProseMirror [data-callout]{border-left:3px solid;padding:14px 18px;margin:20px 0;border-radius:0 6px 6px 0;font-size:15px}.ProseMirror [data-callout].callout-tip{background:var(--tip-bg);border-color:var(--tip-border)}.ProseMirror [data-callout].callout-warn{background:var(--warn-bg);border-color:var(--warn-border)}.ProseMirror [data-callout].callout-danger{background:var(--danger-bg);border-color:var(--danger-border)}.ProseMirror [data-callout].callout-info{background:var(--info-bg);border-color:var(--info-border)}.tippy-box{background:transparent}.tippy-content{padding:0}