.blog-surface{--blog-accent:#4f46e5;background:#fcfbf8;color:#252525;min-height:100vh}.dark .blog-surface{background:#101317;color:#e6e7eb}.blog-surface[data-accent=emerald]{--blog-accent:#047857}.blog-surface[data-accent=amber]{--blog-accent:#a16207}.blog-surface[data-accent=rose]{--blog-accent:#be123c}.blog-surface[data-accent=sky]{--blog-accent:#0369a1}.blog-kicker{font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:650;color:var(--blog-accent)}.blog-index-hero{max-width:1280px;margin:auto;padding:135px 28px 48px}.blog-index-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(44px,7vw,78px);line-height:1.06;letter-spacing:-.055em;max-width:790px;margin:20px 0}.blog-index-hero p{max-width:560px;line-height:1.8;font-size:17px;color:#6b6b6b}.dark .blog-index-hero p{color:#a3a7ad}.blog-index-tools{max-width:1280px;margin:auto;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-block:1px solid #25252512}.blog-categories{display:flex;gap:8px;overflow:auto;scrollbar-width:thin}.blog-categories a{white-space:nowrap;font-size:12px;border:1px solid #85858535;padding:9px 13px;border-radius:30px}.blog-categories a[aria-current=page]{background:#242424;color:#fff;border-color:#242424}.dark .blog-categories a[aria-current=page]{background:#e8e8e8;color:#171717}.blog-search{display:flex;border-bottom:1px solid #7778;gap:8px;min-width:160px;align-items:center}.blog-search input{background:transparent;outline:none;padding:9px 0;min-width:0;width:170px;font-size:13px}.blog-grid{max-width:1280px;margin:40px auto 0;padding:0 28px 64px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 28px}.blog-card{min-width:0}.blog-card-image{display:block;overflow:hidden;border-radius:4px;background:#e9e7e1;aspect-ratio:1.6}.blog-card-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s}.blog-card:hover .blog-card-image img{transform:scale(1.035)}.blog-card-meta{display:flex;gap:10px;align-items:center;margin:19px 0 11px;font-size:11px;color:#777}.blog-card-meta a{color:var(--blog-accent);font-weight:600}.blog-card h2{font-family:Georgia,serif;font-size:26px;line-height:1.25;letter-spacing:-.025em;font-weight:400}.blog-card p{margin-top:12px;font-size:14px;line-height:1.8;color:#6e6e6e}.dark .blog-card p{color:#9ca3af}.blog-card-foot{margin-top:17px;display:flex;gap:8px;align-items:center;font-size:11px;color:#777}.blog-card-featured{grid-column:1/-1;display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:center;margin-bottom:14px}.blog-card-featured .blog-card-image{aspect-ratio:1.65}.blog-card-featured h2{font-size:clamp(28px,3vw,42px)}.blog-pagination{display:flex;justify-content:center;gap:20px;padding:0 20px 70px;font-size:13px}.blog-pagination a{border-bottom:1px solid}.blog-empty{grid-column:1/-1;padding:80px 0;text-align:center;color:#777}.blog-article-header{max-width:1040px;margin:auto;padding:125px 28px 0;text-align:center}.blog-back{display:inline-flex;gap:8px;margin-bottom:34px}.blog-article-meta,.blog-back{align-items:center;font-size:12px;color:#777}.blog-article-meta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.blog-article-meta a{font-weight:600;color:var(--blog-accent)}.blog-article-header h1{font-size:clamp(36px,5.4vw,66px);line-height:1.1;font-weight:450;letter-spacing:-.045em;margin:24px auto;max-width:950px;text-wrap:balance}.blog-article-deck{font-size:clamp(17px,2.2vw,21px);line-height:1.7;color:#737373;max-width:750px;margin:0 auto 26px}.dark .blog-article-deck{color:#a3a7ad}.blog-author{font-size:12px;display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:26px}.blog-author-avatar{width:36px;height:36px;border-radius:50%;background:#e7e5df;display:grid;place-items:center;color:#444}.blog-author strong{display:block;font-weight:600}.blog-author span{color:#888}.blog-cover{max-width:1180px;margin:36px auto 56px;padding:0 28px}.blog-cover img{width:100%;height:auto;max-height:560px;-o-object-fit:cover;object-fit:cover;border-radius:5px;aspect-ratio:2}.blog-cover figcaption{font-size:11px;color:#777;margin:10px 0}.blog-article-layout{display:grid;grid-template-columns:minmax(0,760px) 210px;gap:70px;max-width:1096px;padding:0 28px;margin:55px auto 0}.blog-article-layout.no-toc{display:block;max-width:816px}.blog-prose{font-size:17px;line-height:1.95;min-width:0;overflow-wrap:anywhere}.blog-prose p{margin:0 0 1.5em}.blog-prose h2,.blog-prose h3,.blog-prose h4{font-family:var(--blog-headline-font,Georgia,serif);font-weight:550;line-height:1.3;letter-spacing:-.025em;scroll-margin-top:110px;color:inherit}.blog-prose h2{font-size:32px;margin:2em 0 .8em}.blog-prose h3{font-size:25px;margin:1.6em 0 .7em}.blog-prose h4{font-size:20px;margin:1.4em 0 .6em}.blog-prose :first-child{margin-top:0}.blog-prose a{color:var(--blog-accent);text-decoration:underline;text-underline-offset:4px}.blog-prose strong{font-weight:650}.blog-prose ol,.blog-prose ul{padding-left:1.5em;margin:1.4em 0}.blog-prose ul{list-style:disc}.blog-prose ol{list-style:decimal}.blog-prose li{padding-left:.3em;margin:.5em 0}.blog-prose li p{margin:.35em 0}.blog-prose blockquote{border-left:2px solid var(--blog-accent);padding:7px 0 7px 26px;font-family:Georgia,serif;font-size:24px;font-style:italic;margin:2em 0;line-height:1.6}.blog-prose blockquote p:last-child{margin:0}.blog-prose hr{border:0;border-top:1px solid #8884;margin:2.6em 0}.blog-image{margin:2em 0}.blog-image img{width:100%;height:auto;border-radius:5px}.blog-image figcaption{font-family:var(--font-geist-sans);font-size:12px;text-align:center;color:#777;margin-top:12px;line-height:1.6}.blog-prose li code,.blog-prose p code{background:#7c7c7c12;border:1px solid #7c7c7c22;padding:2px 5px;border-radius:4px;font-size:.85em;font-family:var(--font-geist-mono),monospace}.blog-code-block{position:relative;margin:1.8em 0;background:#161c27;color:#e5eaf2;border-radius:9px;overflow:hidden;font-family:var(--font-geist-mono),monospace;font-size:13px;line-height:1.8}.blog-code-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid #ffffff14;font-size:11px;color:#a5b3c7}.blog-code-copy{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-geist-sans);font-size:11px;padding:3px 7px;color:#c7d1df;background:#ffffff08;border:1px solid #ffffff20;border-radius:5px}.blog-code-block>.blog-code-copy{position:absolute;top:10px;right:12px}.blog-code-block pre{overflow:auto;padding:20px 22px;margin:0;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.hljs-keyword,.hljs-literal,.hljs-selector-tag{color:#c4a4fb}.hljs-attr,.hljs-string,.hljs-template-variable{color:#9bddbb}.hljs-comment,.hljs-quote{color:#8290a4}.hljs-built_in,.hljs-number{color:#f4c183}.hljs-function,.hljs-title{color:#86c8f7}.blog-callout{margin:2em 0;padding:22px 26px;border-radius:6px;background:#4f46e508;border:1px solid #4f46e522;font-size:15px}.blog-callout p:last-child{margin:0}.blog-callout-tip{background:#05966908;border-color:#05966933}.blog-callout-warning{background:#d977060a;border-color:#d9770633}.blog-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:2em 0}.blog-table-wrap{overflow:auto;margin:2em 0;border:1px solid #8884;border-radius:7px}.blog-table-wrap table{border-collapse:collapse;width:100%;min-width:400px;font-size:14px}.blog-table-wrap td,.blog-table-wrap th{border:1px solid #8883;padding:12px;text-align:left;vertical-align:top;min-width:100px}.blog-table-wrap th{background:#8881;font-weight:650}.blog-table-wrap p{margin:0}.blog-inline-cta{margin:2em 0}.blog-inline-cta a{display:inline-flex;gap:30px;align-items:center;border:1px solid #8884;border-radius:6px;padding:13px 20px;color:inherit;text-decoration:none;font-family:var(--font-geist-sans);font-size:14px;font-weight:600}.blog-toc{position:sticky;top:110px;align-self:start;font-size:12px;line-height:1.7}.blog-toc p{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#888;margin-bottom:16px}.blog-toc a{display:block;padding:7px 0;color:#777;border-bottom:1px solid #8882}.blog-toc a:hover{color:var(--blog-accent)}.blog-toc a[data-level="3"]{padding-left:12px}.blog-share{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:22px auto;font-size:11px}.blog-share a,.blog-share button{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #8883;border-radius:5px}.blog-share a:hover,.blog-share button:hover{border-color:var(--blog-accent);color:var(--blog-accent)}.blog-reading-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;pointer-events:none}.blog-reading-progress span{display:block;width:100%;height:100%;transform-origin:left;background:var(--blog-accent);transition:transform .15s}.blog-diagram{margin:2em 0;border:1px solid #8884;border-radius:8px;overflow:hidden;background:#fff;color:#252525;font-family:var(--font-geist-sans)}.blog-diagram>figcaption{padding:12px 16px;border-bottom:1px solid #8883;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:550}.blog-diagram figcaption button,.blog-diagram figcaption span{display:flex;align-items:center;gap:7px}.blog-diagram figcaption button{font-size:11px;color:#666}.blog-diagram-svg{padding:28px 16px;overflow:auto;display:flex;justify-content:center}.blog-diagram-svg svg{max-width:100%;height:auto;min-width:300px}.blog-diagram .blog-code-block{border-radius:0;margin:0}.blog-diagram-error{font-size:12px;padding:12px 16px;color:#9a3412}.blog-bottom-cta{max-width:1096px;margin:70px auto;padding:50px 38px;border-block:1px solid #8883;display:flex;justify-content:space-between;align-items:center;gap:30px}.blog-bottom-cta h2{font-size:32px;font-family:Georgia,serif;font-weight:400;margin-bottom:10px;letter-spacing:-.035em}.blog-bottom-cta p{font-size:14px;color:#777;line-height:1.8}.blog-bottom-cta a{white-space:nowrap;display:inline-flex;gap:20px;align-items:center;background:#272727;color:white;padding:15px 22px;border-radius:5px;font-size:13px}.blog-related{max-width:1280px;margin:70px auto 0;padding:0 28px}.blog-related>h2{font-family:Georgia,serif;font-size:34px;letter-spacing:-.03em}.blog-related .blog-grid{padding-inline:0;margin-top:30px}.blog-tags{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0;font-family:var(--font-geist-sans);font-size:11px}.blog-tags a{border:1px solid #8883;border-radius:4px;padding:4px 9px;text-decoration:none;color:#777}.blog-hero-split{display:grid;grid-template-columns:1fr 1fr;gap:45px;text-align:left;max-width:1230px;align-items:center}.blog-hero-split .blog-article-meta,.blog-hero-split .blog-author,.blog-hero-split .blog-share{justify-content:flex-start}.blog-hero-split .blog-cover{margin:0;padding:0}.blog-hero-split .blog-cover img{aspect-ratio:.9;max-height:600px}.blog-hero-minimal{max-width:880px;text-align:left}.blog-hero-minimal .blog-article-meta,.blog-hero-minimal .blog-author,.blog-hero-minimal .blog-share{justify-content:flex-start}.blog-mobile-toc{display:none}.blog-preview-banner{position:sticky;top:0;z-index:50;padding:12px;background:#eef2ff;color:#3730a3;font-size:12px;text-align:center}.blog-editor-prose.ProseMirror{outline:none;min-height:480px;padding:12px 0}.blog-editor-prose .is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#aaa;pointer-events:none;height:0}.blog-editor-prose .ProseMirror-selectednode{outline:2px solid #6366f1;outline-offset:5px}.blog-editor-prose .selectedCell{background:#6366f118}.blog-editor-prose .blog-columns>div{border:1px dashed #8885;min-height:70px;padding:12px}.blog-editor-prose .blog-callout{border-style:dashed}.blog-editor-prose .blog-flow-editor{border:1px solid #8884;border-radius:8px;padding:16px;margin:24px 0;font-family:var(--font-geist-sans)}.blog-flow-editor textarea{background:transparent;width:100%;min-height:140px;font-family:monospace;font-size:12px;padding:10px;border:1px solid #8884;border-radius:5px;line-height:1.7}.blog-flow-editor input{background:transparent;font-size:13px;font-weight:600;width:100%;margin-bottom:10px}.blog-editor-prose .node-image img{max-height:500px;-o-object-fit:contain;object-fit:contain}.blog-editor-prose .tableWrapper{overflow:auto}.blog-editor-prose table{width:100%;border-collapse:collapse;margin:1.5em 0}.blog-editor-prose td,.blog-editor-prose th{border:1px solid #8885;padding:10px;min-width:90px;vertical-align:top}.blog-editor-prose th{background:#8881}.blog-editor-prose .column-resize-handle{position:absolute;right:-2px;top:0;bottom:-2px;width:4px;background:#6366f1}.blog-editor-prose.resize-cursor{cursor:col-resize}@media(min-width:1100px){.blog-image-wide{margin-inline:-35px}}@media(max-width:900px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-card-featured{gap:25px}.blog-index-tools{align-items:stretch;flex-direction:column;gap:14px}.blog-search input{width:100%}.blog-article-layout{display:block;max-width:816px}.blog-toc{display:none}.blog-mobile-toc{display:block;text-align:left;max-width:760px;margin:30px auto 0;border:1px solid #8883;padding:15px;font-size:13px;border-radius:5px}.blog-mobile-toc summary{cursor:pointer;font-weight:600}.blog-mobile-toc a{display:block;padding:7px 0;color:#777}.blog-hero-split{display:block}.blog-hero-split .blog-cover{margin-top:30px}.blog-hero-split .blog-cover img{aspect-ratio:1.6;max-height:420px}}@media(max-width:600px){.blog-index-hero{padding-top:110px}.blog-grid{grid-template-columns:1fr;gap:36px;padding-inline:20px}.blog-card-featured{display:block}.blog-card-featured h2{font-size:29px}.blog-index-tools{padding-inline:20px}.blog-article-header{padding:110px 20px 0}.blog-cover{padding:0 16px;margin:28px auto}.blog-article-layout{padding:0 22px;margin-top:35px}.blog-prose{font-size:16px;line-height:1.9}.blog-prose h2{font-size:28px}.blog-prose h3{font-size:23px}.blog-prose blockquote{font-size:21px;padding-left:18px}.blog-columns{grid-template-columns:1fr}.blog-share{gap:5px}.blog-share a,.blog-share button{padding:7px 8px;font-size:10px}.blog-bottom-cta{margin:45px 20px;padding:35px 0;display:block}.blog-bottom-cta h2{font-size:28px}.blog-bottom-cta a{margin-top:20px}.blog-related{padding-inline:20px}.blog-related .blog-grid{padding-inline:0}.blog-code-block pre{padding:18px 15px}.blog-image-wide{margin-inline:0}}@media(prefers-reduced-motion:reduce){.blog-card-image img,.blog-reading-progress span{transition:none}}.blog-ink-word{display:inline-block;transform-origin:50% 100%}.blog-image-flight{position:fixed;top:0;left:0;z-index:90;overflow:hidden;pointer-events:none;box-shadow:0 16px 55px #00000016;will-change:transform,width,height}.blog-image-flight img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@media(prefers-reduced-motion:reduce){.blog-image-flight{display:none}.blog-ink-word{transform:none!important;opacity:1!important}}