@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9f0762{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_9f0762{--font-blog-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}.blog-scope{--blog-ink:var(--color-ink);--blog-ink-muted:var(--color-muted-deep);--blog-ink-faint:var(--color-muted);--blog-border:var(--color-mist);--blog-border-strong:var(--color-muted);--blog-accent:var(--color-accent);--blog-accent-soft:color-mix(in oklab,var(--color-accent) 12%,#fff);--blog-warning:#b4671a;--blog-warning-soft:var(--color-sticky-peach);--blog-note-soft:var(--color-sticky-sky);--blog-tip:#2f8a4f;--blog-tip-soft:var(--color-sticky-mint);--blog-radius:16px;--font-blog-display:var(--font-solway);--font-blog-body:var(--font-gaegu)}.blog-article-body{font-family:var(--font-blog-body),sans-serif;font-size:1.25rem;line-height:1.5;color:var(--blog-ink)}.blog-article-body h2,.blog-article-body h3{font-family:var(--font-blog-display),serif;font-weight:700;line-height:1.2;scroll-margin-top:5.5rem}.blog-article-body h2{margin:3rem 0 1rem;font-size:2rem}.blog-article-body h3{margin:2.25rem 0 .85rem;font-size:1.5rem}.blog-article-body p{margin:1.25rem 0}.blog-article-body h2 a,.blog-article-body h3 a{color:inherit;text-decoration:none}.blog-article-body a{color:var(--blog-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--blog-border-strong)}.blog-article-body a:hover{text-decoration-color:var(--blog-accent)}.blog-article-body ol,.blog-article-body ul{margin:1.25rem 0;padding-left:1.4rem}.blog-article-body li{margin:.4rem 0}.blog-article-body blockquote{margin:1.75rem 0;padding-left:1.25rem;border-left:3px solid var(--blog-accent);font-family:var(--font-blog-display),Georgia,serif;font-style:italic;color:var(--blog-ink-muted)}.blog-article-body hr{margin:3rem 0;border:none;border-top:1px solid var(--blog-border)}.blog-article-body img{width:100%;height:auto;border-radius:var(--blog-radius);margin:2rem 0}.blog-article-body table{width:100%;margin:2rem 0;border-collapse:collapse;font-size:.95rem}.blog-article-body td,.blog-article-body th{padding:.65rem .9rem;border-bottom:1px solid var(--blog-border);text-align:left}.blog-article-body th{font-weight:600;color:var(--blog-ink)}.blog-article-body :not(pre)>code{padding:.15em .4em;background:var(--blog-accent-soft);border-radius:4px;font-family:var(--font-blog-mono),monospace;font-size:.88em}.blog-callout{margin:1.75rem 0;padding:1rem 1.25rem;border:1px solid;border-radius:var(--blog-radius)}.blog-callout-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.blog-callout-icon{width:15px;height:15px}.blog-callout-body p{margin:.35rem 0;font-size:.98rem}.blog-callout-note{background:var(--blog-note-soft);border-color:var(--blog-accent);color:var(--blog-accent)}.blog-callout-warning{background:var(--blog-warning-soft);border-color:var(--blog-warning);color:var(--blog-warning)}.blog-callout-tip{background:var(--blog-tip-soft);border-color:var(--blog-tip);color:var(--blog-tip)}.blog-callout .blog-callout-body{color:var(--blog-ink)}.blog-code-figure{position:relative;margin:1.85rem 0;border:1px solid var(--blog-border);border-radius:var(--blog-radius);overflow:hidden}.blog-code-figure [data-rehype-pretty-code-title]{padding:.55rem 1.1rem;border-bottom:1px solid var(--blog-border);background:color-mix(in oklab,var(--color-mist) 60%,#fff);font-family:var(--font-blog-mono),monospace;font-size:.78rem;color:var(--blog-ink-muted)}.blog-code-figure pre{font-family:var(--font-blog-mono),monospace;margin:0;padding:1.1rem 1.25rem;overflow-x:auto;font-size:.875rem;line-height:1.65}.blog-code-figure code{font-family:var(--font-blog-mono),monospace;display:grid;counter-reset:line}.blog-code-figure [data-line]{padding:0 .5rem;border-left:2px solid transparent}.blog-code-figure [data-highlighted-line]{background:var(--blog-accent-soft);border-left-color:var(--blog-accent)}.blog-code-copy{position:absolute;top:.6rem;right:.6rem;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--blog-border);border-radius:6px;background:hsla(0,0%,100%,.92);color:var(--blog-ink-muted);opacity:0;cursor:pointer;transition:opacity .18s ease,color .18s ease,border-color .18s ease}.blog-code-copy:focus-visible,.blog-code-figure:hover .blog-code-copy{opacity:1}.blog-code-copy:hover{color:var(--blog-accent);border-color:var(--blog-accent)}.blog-code-copy svg{width:14px;height:14px}