@font-face{font-family:Geist Pixel Square;src:url(/fonts/geist-pixel-square.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}.blog-intro h1,.article-header h1,.post-summary h2{font-synthesis:none;overflow-wrap:anywhere;font-family:Geist Pixel Square,Inter Variable,Inter,sans-serif;font-weight:400}.blog-shell{width:min(644px,100% - 48px);margin:0 auto;padding:64px 0 36px}.blog-header{gap:20px;margin:0 0 88px}.blog-identity{align-items:center;gap:11px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.blog-identity .portrait-link{width:32px;height:32px}.blog-identity:hover .portrait,.blog-identity:focus-visible .portrait{filter:grayscale(0)}.blog-nav{gap:22px;margin-left:auto;font-size:12px;display:flex}.blog-nav a{color:var(--muted-foreground);text-decoration:none}.blog-nav .blog-nav-current{color:var(--foreground)}.blog-header .theme-toggle{width:30px;height:30px;margin-left:0}.blog-intro{margin-bottom:48px}.blog-intro h1,.article-header h1{letter-spacing:-.02em;text-wrap:balance;font-size:52px;line-height:1.12}.blog-intro>p{max-width:440px;color:var(--muted-foreground);margin-top:20px;font-size:15px;line-height:1.7}.post-list{border-bottom:1px solid var(--border)}.post-row{border-top:1px solid var(--border)}.post-link{grid-template-columns:112px minmax(0,1fr);gap:24px;padding:30px 0;text-decoration:none;display:grid}.post-link>time{color:var(--muted-foreground);padding-top:5px;font-size:12px}.post-summary h2{letter-spacing:-.02em;justify-content:space-between;align-items:baseline;gap:16px;font-size:19px;line-height:1.4;transition:color .16s;display:flex}.post-summary h2 svg{width:15px;height:15px;color:var(--muted-foreground)}.post-link:hover h2{color:var(--primary)}.dark .post-link:hover h2{color:var(--chart-2)}.post-summary>p{color:var(--muted-foreground);margin-top:10px;font-size:14px;line-height:1.7}.post-reading-time{color:var(--muted-foreground);margin-top:16px;font-size:12px;display:block}.previous-blog{color:var(--muted-foreground);margin-top:34px;font-size:12px;line-height:1.8}.previous-blog a{color:inherit}.previous-blog svg{width:12px;height:12px}.blog-empty{border-block:1px solid var(--border);color:var(--muted-foreground);padding:30px 0;font-size:14px}.blog-footer{border-top:1px solid var(--border);color:var(--muted-foreground);margin-top:100px;padding-top:24px;font-size:11px}.blog-footer>div{justify-content:space-between;gap:18px;display:flex}.blog-footer a{color:inherit;text-decoration:none}.blog-footer svg{width:12px;height:12px}.blog-footer .analytics-settings{margin-top:10px}.back-to-blog{color:var(--muted-foreground);align-items:center;gap:8px;margin-bottom:32px;font-size:12px;text-decoration:none;display:inline-flex}.back-to-blog svg{width:13px;height:13px}.article-header{margin-bottom:40px}.article-meta{color:var(--muted-foreground);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;font-size:12px;display:flex}.article-header h1{font-size:clamp(36px,5vw,48px)}.article-description{color:var(--muted-foreground);margin-top:22px;font-size:17px;line-height:1.7}.article-author{margin-top:22px;font-size:12px}.sample-note{color:var(--muted-foreground);margin-top:18px;font-size:11px}.article-toc{border-block:1px solid var(--border);margin-bottom:34px;padding:15px 0;font-size:13px}.article-toc summary{cursor:pointer;color:var(--foreground);justify-content:space-between;align-items:center;list-style:none;display:flex}.article-toc summary::-webkit-details-marker{display:none}.article-toc summary svg{width:14px;height:14px;transition:transform .16s}.article-toc[open] summary svg{transform:rotate(180deg)}.article-toc ol{margin:16px 0 2px;padding:0;list-style:none}.article-toc li+li{margin-top:8px}.article-toc a{color:var(--muted-foreground);text-decoration:none}.article-toc a:hover{color:var(--foreground)}.article-prose{overflow-wrap:anywhere;line-height:1.9}.article-prose>:first-child{margin-top:0}.article-prose p,.article-prose ul,.article-prose ol,.article-prose blockquote,.article-prose pre,.article-prose table,.article-prose figure{margin:24px 0 0}.article-prose h2{letter-spacing:-.025em;margin-top:48px;font-size:24px;font-weight:500}.article-prose h3{margin-top:32px;font-size:19px;font-weight:500}.article-prose h4,.article-prose h5,.article-prose h6{color:var(--foreground);margin:28px 0 0;font-weight:600}.article-prose ul{padding-left:24px;list-style:outside}.article-prose ol{padding-left:24px;list-style:decimal}.article-prose li+li,.article-prose li>ul,.article-prose li>ol{margin-top:8px}.article-prose strong{color:var(--foreground);font-weight:600}.article-prose blockquote{border-left:2px solid var(--border);color:var(--foreground);padding:0 0 0 22px;font-style:italic}.article-prose blockquote>:first-child{margin-top:0}.article-prose code{font-size:.85em}.article-prose :not(pre)>code{background:var(--muted);border:1px solid var(--border);border-radius:4px;padding:2px 5px}.article-prose pre{border:1px solid var(--border);border-radius:8px;padding:20px;line-height:1.65;overflow-x:auto}.article-prose pre code{background:0 0;padding:0}.dark .article-prose .astro-code,.dark .article-prose .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}.article-prose img,.article-prose video{border-radius:8px;max-width:100%;height:auto}.article-prose figcaption{color:var(--muted-foreground);text-align:center;margin-top:8px;font-size:12px}.article-prose table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow-x:auto}.article-prose th,.article-prose td{border-bottom:1px solid var(--border);text-align:left;padding:12px 16px}.article-prose th{color:var(--foreground);font-weight:500}.article-prose hr{border:0;border-top:1px solid var(--border);margin:40px 0}.article-end{border-top:1px solid var(--border);justify-content:space-between;gap:24px;margin-top:56px;padding-top:24px;display:flex}.article-end a{align-items:center;gap:8px;font-size:12px;text-decoration:none;display:inline-flex}.article-end svg{width:13px;height:13px}@media (width<=600px){.blog-shell{padding-top:32px}.blog-header{gap:14px;margin-bottom:60px}.blog-identity{gap:8px;font-size:12px}.blog-identity .portrait-link{width:28px;height:28px}.blog-nav{gap:16px}.blog-nav>a:first-child{display:none}.blog-intro h1{font-size:44px}.blog-intro{margin-bottom:36px}.post-link{grid-template-columns:1fr;gap:10px;padding:24px 0}.post-link>time{padding-top:0}.post-summary h2{font-size:19px}.blog-footer{margin-top:72px}.article-description{font-size:16px}.article-prose{font-size:16px;line-height:1.85}.article-prose h2{font-size:22px}.article-prose pre{padding:16px}}.post-callout{border:1px solid var(--border);background:var(--card);border-radius:8px;margin-block:24px;padding:20px 24px}.post-callout>strong{margin-bottom:8px;display:block}.blog-title-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.owner-actions,.post-owner-buttons{align-items:center;gap:8px;display:flex}.owner-actions,.post-owner-tools{font-size:13px;line-height:1.4}.post-owner-tools{justify-content:space-between;align-items:center;gap:12px;margin:-8px 0 30px;display:flex}.post-owner-state{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.post-owner-state>span[role=status]{color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.post-owner-state svg{width:13px;height:13px}.inline-post-editor [contenteditable]{outline:none}.inline-post-editor h1:empty:before{content:"Untitled";color:var(--muted-foreground)}.editable-description{min-height:1.7em}.editable-description:empty:before{content:attr(data-placeholder);color:var(--muted-foreground);opacity:.7}.inline-post-editor [data-slot=tabs-list]{margin-bottom:28px}.inline-source-editor{flex-direction:column;gap:16px;display:flex}.inline-source-editor textarea{min-height:55dvh;font-family:ui-monospace,SFMono-Regular,monospace;font-size:14px;line-height:1.8}.inline-post-editor .writing-editor{margin-inline:-54px}.inline-post-editor .bn-container{--bn-colors-editor-background:var(--background);--bn-colors-editor-text:var(--body-text);font-family:Inter Variable,Inter,sans-serif;font-size:16px;line-height:1.9}.inline-post-editor .bn-editor{background:var(--background);color:var(--body-text)}.inline-post-editor .bn-block-content{padding-top:7px;padding-bottom:7px}.inline-post-editor .bn-block-content[data-content-type=heading]{margin-top:26px}.inline-post-editor .bn-block-content[data-content-type=heading][data-level="2"]{letter-spacing:-.025em;font-size:24px;font-weight:500}.inline-post-editor .bn-block-content[data-content-type=heading][data-level="3"]{font-size:19px;font-weight:500}@media (width<=600px){.owner-actions{gap:4px}.post-owner-tools{flex-wrap:wrap;align-items:flex-start}.post-owner-buttons{margin-left:auto}.inline-post-editor .writing-editor{margin-inline:-20px}.inline-post-editor .bn-editor{padding-inline:20px}}
