@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-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 Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-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 Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_1bc20f{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_1bc20f{--font-blog-sans:"IBM Plex Sans","IBM Plex Sans Fallback"}@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-20c0,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-20c0,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_46fe82{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_46fe82{--font-blog-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-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:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-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:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-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:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-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:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-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:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-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:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-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:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-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:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-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:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_f74dd4{font-family:"Source Serif 4","Source Serif 4 Fallback";font-style:normal}.__variable_f74dd4{--font-blog-serif:"Source Serif 4","Source Serif 4 Fallback"}.blog{--blog-paper:transparent;--blog-card:#fbf7f1;--blog-ink:#2c2722;--blog-ink-soft:#4a4540;--blog-ink-mute:#6b6560;--blog-ink-faint:#9b938a;--blog-rule:#e3ddd3;--blog-rule-strong:#2c2722;--blog-accent:#4d5882;--blog-code-bg:#f8f5ec;--blog-code-head:#f0ece0;--blog-code-inset:#eee9db;--blog-code-line:#dcd5c2;--blog-code-fg:#2c2722;--blog-code-mute:#74695c;--blog-code-key:#8a5a20;--blog-code-str:#4f6a33;--blog-code-type:#1f6a5f;--blog-code-clay:#9c4a30;--blog-code-hl:rgba(138,90,32,0.09);--blog-code-shadow:0 18px 34px -28px rgba(44,39,34,0.45);--blog-code-pad:1.1rem;--blog-code-gutter:2.5rem;font-family:var(--font-blog-serif),Georgia,"Times New Roman",serif;font-size:clamp(1.0625rem,.982rem + .342vw,1.1875rem);line-height:1.7;color:var(--blog-ink);overflow-wrap:break-word}@media (min-width:960px){.blog{line-height:1.8}}.dark .blog{--blog-card:#222018;--blog-ink:#e8e2d9;--blog-ink-soft:#c0b8ac;--blog-ink-mute:#9a9088;--blog-ink-faint:#7a7168;--blog-rule:#2a2724;--blog-rule-strong:#e8e2d9;--blog-code-bg:#121110;--blog-code-head:#0e0d0c;--blog-code-inset:#0a0908;--blog-code-line:#232120;--blog-code-fg:#e8e2d9;--blog-code-mute:#8a8178;--blog-code-key:#c9a87c;--blog-code-str:#a3b88c;--blog-code-type:#8fb8a8;--blog-code-clay:#c08a72;--blog-code-hl:rgba(201,168,124,0.1);--blog-code-shadow:0 20px 40px -28px rgba(0,0,0,0.55)}.blog-shell{max-width:80rem;margin-inline:auto}.blog{padding-bottom:clamp(4rem,8vw,6rem)}.blog-index-head{max-width:44rem}.blog-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;min-width:0}@media (min-width:960px){.blog-cols{grid-template-columns:262px minmax(0,1fr);gap:4.5rem;align-items:start}}.blog-rail{font-family:var(--font-blog-sans),system-ui,sans-serif}@media (min-width:960px){.blog-rail{position:sticky;top:7rem;max-height:calc(100vh - 9rem);display:flex;flex-direction:column;min-height:0}.blog-back,.blog-facts,.blog-who{flex:none}.blog-toc{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}.blog-toc>p{flex:none}.blog-toc ol{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}@media (max-width:959px){.blog-cols{display:flex;flex-direction:column;gap:0}.blog-rail{display:contents}.blog-who{order:-4}.blog-facts{order:-2}.blog-toc{order:-1}.blog-article{order:0;margin-top:2.5rem}.blog-back{order:-3;align-self:flex-start;margin-top:0;margin-bottom:1.1rem}.blog-facts{margin:.9rem 0 0;padding:0;border:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .55rem}.blog-facts>div{display:contents}.blog-facts dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.blog-facts dd{text-align:left;color:var(--blog-ink-faint);font-size:.8125rem}.blog-facts>div+div dd:before{content:"·";margin-right:.55rem}.blog-toc{position:sticky;top:4.25rem;z-index:10;margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);padding-top:1.25rem;background:var(--blog-card);overflow:hidden;isolation:isolate}.blog-toc ol{display:flex;padding-inline-start:.65rem;border-left:0;border-bottom:1px solid var(--blog-rule);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),transparent)}.blog-toc ol::-webkit-scrollbar{display:none}.blog-toc ol:after{content:"";flex:none;width:2.5rem}.blog-toc li{flex:none}.blog-toc a{white-space:nowrap;font-size:.875rem;margin-left:0;margin-bottom:-1px;padding:.5rem .8rem .7rem;border-left:0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.blog-toc a[aria-current=true]{border-left:0;border-bottom-color:var(--blog-rule-strong)}}.blog-who{display:flex;align-items:center;gap:.7rem}.blog-who img{width:42px;height:42px;border-radius:50%;-o-object-fit:cover;object-fit:cover;flex:none}.blog-who .nm{font-size:.9375rem;font-weight:500;color:var(--blog-ink);line-height:1.3}.blog-who .role{font-size:.875rem;color:var(--blog-ink-faint);line-height:1.35;margin-top:.1rem}.blog-facts{margin:1.25rem 0 0;padding:1.1rem 0 1.25rem;border-top:1px solid var(--blog-rule);border-bottom:1px solid var(--blog-rule);display:grid;gap:.5rem}.blog-facts>div{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.blog-facts dt{font-family:var(--font-blog-mono),ui-monospace,monospace;font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-ink-faint)}.blog-facts dd{margin:0;font-family:var(--font-blog-sans),sans-serif;font-size:.875rem;color:var(--blog-ink-soft);text-align:right;font-variant-numeric:tabular-nums}.blog-toc{padding-top:1.25rem}.blog-toc>p{font-family:var(--font-blog-mono),monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blog-ink-faint);margin:0 0 .7rem}.blog-toc ol{margin:0;padding:0;list-style:none;border-left:1px solid var(--blog-rule)}.blog-toc a{display:block;text-decoration:none;font-family:var(--font-blog-sans),sans-serif;font-size:.85rem;line-height:1.45;color:var(--blog-ink-mute);padding:.5rem 0 .5rem .9rem;margin-left:-1px;border-left:2px solid transparent;transition:color .15s ease,border-color .15s ease}.blog-toc a:hover{color:var(--blog-ink)}.blog-toc a[aria-current=true]{color:var(--blog-ink);font-weight:500;border-left-color:var(--blog-rule-strong)}.blog-back{display:inline-block;margin-top:1.5rem;text-decoration:none;font-family:var(--font-blog-mono),monospace;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blog-ink-faint)}.blog-back:hover{color:var(--blog-ink)}.blog-kicker{font-family:var(--font-blog-mono),monospace;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-ink-faint);margin:0}.blog h1{font-family:var(--font-blog-sans),system-ui,sans-serif;font-weight:600;letter-spacing:-.018em;line-height:1.16;font-size:clamp(1.9rem,3.6vw,2.6rem);color:var(--blog-ink);margin:.9rem 0 0;text-wrap:pretty;hyphens:auto;hyphenate-limit-chars:8 4 4}.blog-article>h1:first-child{margin-top:0}.blog-deck{font-size:clamp(1.1rem,1.8vw,1.3rem);line-height:1.6;font-weight:300;color:var(--blog-ink-mute);margin:1.1rem 0 0;max-width:60ch}.blog-body h2{font-family:var(--font-blog-sans),system-ui,sans-serif;font-weight:600;letter-spacing:-.012em;line-height:1.25;font-size:1.45rem;color:var(--blog-ink);margin:3rem 0 .9rem;scroll-margin-top:5.5rem;text-wrap:balance}@media (min-width:960px){.blog-body h2{scroll-margin-top:7rem}}.blog-body h2 .n{font-family:var(--font-blog-mono),monospace;font-weight:400;font-size:.75rem;color:var(--blog-ink-faint);letter-spacing:.06em;display:block;margin-bottom:.45rem}@media (min-width:960px){.blog-article>*{max-width:90%}}.blog-body{max-width:none}.blog-article,.blog-figure,.blog-figure>div,.blog-rail{min-width:0;max-width:100%}.blog-figure>div{width:100%}.blog-body p{margin:0 0 1.15rem}.blog-body>:last-child{margin-bottom:0}.blog-body strong{font-weight:600;color:var(--blog-ink)}.blog-body em{font-style:italic}.blog-body ul{margin:0 0 1.15rem;padding-left:1.1rem}.blog-body li{margin-bottom:.5rem}.blog-body a[href]{color:var(--blog-ink);text-decoration:underline;text-underline-offset:.18em;text-decoration-color:var(--blog-ink-faint)}.blog code{font-family:var(--font-blog-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84em;line-height:1.35;background:var(--blog-card);border:1px solid var(--blog-rule);border-radius:3px;padding:.1em .36em;color:var(--blog-ink);overflow-wrap:break-word}.blog-deck code{color:var(--blog-ink-soft);font-size:.82em}.blog h1 code,.blog-body h2 code{font-size:.8em;font-weight:500;vertical-align:.04em}.blog a code{border-color:var(--blog-ink-faint)}.blog-note{border-left:2px solid var(--blog-rule-strong);padding:.25rem 0 .25rem 1.15rem;margin:2rem 0;font-size:1rem;color:var(--blog-ink-mute)}.blog-note b{display:block;font-family:var(--font-blog-sans),sans-serif;font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-ink-faint);margin-bottom:.45rem;font-weight:500}.blog-figure{margin:2.5rem 0}.blog-figure img{width:100%;height:auto;display:block}.blog-figure figcaption{font-family:var(--font-blog-sans),sans-serif;font-size:.8125rem;color:var(--blog-ink-faint);margin-top:.6rem;line-height:1.5}.blog-code{margin:2.25rem 0;font-family:var(--font-blog-mono),ui-monospace,monospace}.blog-code-surface{position:relative;background:var(--blog-code-bg);border:1px solid var(--blog-code-line);border-radius:18px;overflow:hidden}.blog-code-bar{display:flex;align-items:center;gap:.85rem;background:var(--blog-code-head);border-bottom:1px solid var(--blog-code-line);padding:.55rem .7rem .55rem var(--blog-code-pad)}.blog-code-bar .file{font-size:.8125rem;color:var(--blog-code-fg);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.blog-code-bar .blog-copy{margin-left:auto}.blog-code-lang{font-size:.8rem;text-transform:uppercase;color:var(--blog-code-mute);flex:none}.blog-code-lang[data-lang=ts]{color:var(--blog-code-key)}.blog-code-lang[data-lang=json]{color:var(--blog-code-type)}.blog-code-lang[data-lang=yaml]{color:var(--blog-code-str)}.blog-code-lang[data-lang=bash]{color:var(--blog-code-clay)}.blog-code figcaption{font-family:var(--font-blog-sans),system-ui,sans-serif;font-size:.8125rem;line-height:1.5;color:var(--blog-ink-faint);margin-top:.7rem}.blog-code pre{margin:0;padding:1rem var(--blog-code-pad) 1.15rem;overflow-x:auto;font-size:.8125rem;line-height:1.75;color:var(--blog-code-fg);-moz-tab-size:2;-o-tab-size:2;tab-size:2}.blog-code pre code{display:inline-block;min-width:100%;background:none;border:0;padding:0;border-radius:0;font-size:inherit;line-height:inherit;color:inherit;white-space:pre}.blog-code .ln{display:inline-block;width:var(--blog-code-gutter);text-align:left;color:var(--blog-code-mute);opacity:.55;-moz-user-select:none;user-select:none;-webkit-user-select:none}.blog-code .row{display:block}.blog-code .row.hl{background:var(--blog-code-hl);margin:0 calc(-1 * var(--blog-code-pad));padding:0 var(--blog-code-pad)}.blog-code .tok-k{color:var(--blog-code-key)}.blog-code .tok-s{color:var(--blog-code-str)}.blog-code .tok-t{color:var(--blog-code-type)}.blog-code .tok-c{font-style:italic}.blog-code .tok-c,.blog-code .tok-p{color:var(--blog-code-mute)}.blog-term{margin:2.25rem 0;background:var(--blog-code-bg);border:1px solid var(--blog-code-line);border-radius:16px;overflow:hidden;min-width:0;max-width:100%;font-family:var(--font-blog-mono),ui-monospace,monospace;box-shadow:var(--blog-code-shadow)}.blog-term-bar{display:flex;align-items:center;gap:1rem;padding:.95rem 1.15rem}.blog-lights{display:flex;gap:.5rem;flex:none}.blog-lights i{width:12px;height:12px;border-radius:50%;display:block}.blog-lights i:first-child{background:#ff5f57}.blog-lights i:nth-child(2){background:#febc2e}.blog-lights i:nth-child(3){background:#28c840}.blog-term-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:600;color:var(--blog-code-fg);letter-spacing:-.005em;margin-left:.45rem}.blog-term-link{display:inline-flex;align-items:center;gap:.4rem;flex:none;font-size:.8125rem;color:var(--blog-code-mute);text-decoration:none}.blog-term-link:hover{color:var(--blog-code-fg)}.blog-term-link svg{width:15px;height:15px}.blog-term-body{padding:0 1.15rem 1.15rem;display:grid;gap:.7rem;min-width:0}.blog-term-cmd{background:var(--blog-code-inset);border-radius:11px;padding:.9rem 1rem;display:flex;align-items:center;gap:1rem;min-width:0;overflow:hidden}.blog-term-cmd .line{flex:1;min-width:0;max-width:100%;overflow-x:auto;font-size:.875rem;line-height:1.6;color:var(--blog-code-fg);white-space:nowrap}.blog-term-cmd .dollar{color:var(--blog-code-key);margin-right:.55rem}.blog-term-cmd .cmd{color:var(--blog-code-type)}.blog-term-cmd .arg{color:var(--blog-code-fg);font-weight:600}.blog-term-panel{background:var(--blog-code-inset);border-radius:11px;padding:.9rem 1rem 1rem;min-width:0;overflow-x:auto}.blog-term-panel .label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--blog-code-mute);margin-bottom:.7rem}.blog-term-panel .label svg{width:13px;height:13px;color:var(--blog-code-key)}.blog-term-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem;width:-moz-max-content;width:max-content;min-width:100%}.blog-term-panel li{display:grid;grid-template-columns:1rem 1fr;gap:.15rem;font-size:.8125rem;line-height:1.55;color:var(--blog-code-fg);white-space:nowrap}.blog-term-panel li:before{content:">";color:var(--blog-code-key)}.blog-copy{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;flex:none;display:inline-flex;align-items:center;gap:.6rem;font-family:inherit;font-size:.9rem;letter-spacing:.02em;color:var(--blog-code-mute);background:transparent;border:1px solid var(--blog-code-line);border-radius:10px;padding:.3rem .55rem;transition:color .15s ease,border-color .15s ease}.blog-copy:hover{color:var(--blog-code-fg);border-color:var(--blog-code-mute)}.blog-copy svg{width:12px;height:12px;flex:none}@media (max-width:639px){.blog{--blog-code-pad:0.75rem;--blog-code-gutter:1.9rem}.blog-who{display:none}.blog-back{margin-bottom:.75rem}.blog-facts{margin-top:0}.blog-toc{padding-top:.75rem}.blog-toc>p{display:none}.blog-code,.blog-term{margin:1.85rem 0}.blog-term-bar{gap:.7rem;padding:.8rem .85rem}.blog-term-body{padding:0 .85rem .85rem}.blog-term-cmd{gap:.6rem;padding:.75rem .8rem}.blog-term-panel{padding:.8rem .85rem .85rem}.blog-copy{padding:.45rem .65rem}.blog-note{margin:1.6rem 0}.blog-figure{margin:2rem 0}}.blog-feature{display:grid;gap:2rem;margin-top:var(--block-gap);padding-bottom:2.5rem;border-bottom:1px solid var(--blog-rule)}@media (min-width:820px){.blog-feature{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:3rem;align-items:center}}.blog-feature .blog-figure{margin:0}.blog-feature a{text-decoration:none}.blog-feature h2 a{color:inherit;transition:color .15s ease}.blog-feature h2 a:focus-visible,.blog-feature h2 a:hover{color:var(--blog-accent)}.blog-feature h2{font-family:var(--font-blog-sans),system-ui,sans-serif;font-weight:600;letter-spacing:-.015em;font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.25;margin:.9rem 0 0;color:var(--blog-ink);text-wrap:pretty;hyphens:auto;hyphenate-limit-chars:8 4 4}.blog-row{display:grid;gap:.5rem;padding:1.75rem 0;border-bottom:1px solid var(--blog-rule)}@media (min-width:760px){.blog-row{grid-template-columns:150px minmax(0,1fr);gap:2.5rem;align-items:baseline}}.blog-row .when{font-family:var(--font-blog-mono),monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blog-ink-faint);padding-top:.35rem}.blog-row h3{font-family:var(--font-blog-sans),system-ui,sans-serif;font-weight:600;letter-spacing:-.012em;font-size:1.15rem;line-height:1.35;margin:0;color:var(--blog-ink);transition:color .15s ease}.blog-row a:focus-visible h3,.blog-row a:hover h3{color:var(--blog-accent);text-decoration:underline;text-underline-offset:.18em}.blog-row p{margin:.5rem 0 0;font-size:1rem;line-height:1.6;color:var(--blog-ink-mute);max-width:62ch}.blog-row .topic{display:block;margin-top:.6rem;font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blog-ink-faint)}.blog-foot,.blog-row .topic{font-family:var(--font-blog-sans),sans-serif}.blog-foot{border-top:1px solid var(--blog-rule);margin-top:clamp(3.5rem,7vw,5.5rem);padding:2.25rem 0 0}.blog-foot>p{font-family:var(--font-blog-mono),monospace;font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blog-ink-faint);margin:0 0 1.25rem}.blog-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:1.1rem}@media (min-width:720px){.blog-foot ul{grid-template-columns:1fr 1fr;gap:2rem}}.blog-foot a{text-decoration:none;display:block}.blog-foot h3{font-family:var(--font-blog-sans),sans-serif;font-weight:600;font-size:.9375rem;letter-spacing:-.01em;color:var(--blog-ink);margin:0;line-height:1.35}.blog-foot time{font-family:var(--font-blog-mono),monospace;font-size:.6875rem;color:var(--blog-ink-faint);display:block;margin-top:.3rem}.blog-foot a:hover h3{text-decoration:underline;text-underline-offset:.18em}.blog-table{margin:2.5rem 0}.blog-table-scroll{overflow-x:auto;border-top:2px solid var(--blog-rule);border-bottom:2px solid var(--blog-rule)}.blog-table table{width:100%;border-collapse:collapse;font-family:var(--font-blog-sans),system-ui,sans-serif;font-size:.8125rem;line-height:1.5}.blog-table td,.blog-table th{text-align:left;vertical-align:top;padding:.8rem 1.25rem .8rem 0;border-bottom:1px solid var(--blog-rule)}.blog-table tbody tr:last-child td,.blog-table tbody tr:last-child th{border-bottom:0}.blog-table thead th{font-family:var(--font-blog-mono),monospace;font-weight:500;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--blog-ink-faint);padding-top:.7rem;padding-bottom:.7rem;white-space:nowrap}.blog-table tbody th{font-weight:400;color:var(--blog-ink);white-space:nowrap;padding-right:2rem}.blog-table td{color:var(--blog-ink-mute);min-width:11rem}.blog-table figcaption{font-family:var(--font-blog-sans),sans-serif;font-size:.8125rem;color:var(--blog-ink-faint);margin-top:.75rem;line-height:1.5}@media (max-width:719px){.blog-table-scroll{overflow-x:visible}.blog-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.blog-table tr{display:block;padding:1rem 0;border-bottom:1px solid var(--blog-rule)}.blog-table tbody tr:last-child{border-bottom:0}.blog-table td,.blog-table th{display:block;border-bottom:0;padding:0;white-space:normal;min-width:0}.blog-table tbody th{font-size:.9375rem;margin-bottom:.5rem}.blog-table td{margin-top:.5rem}.blog-table td:before{content:attr(data-label);display:block;font-family:var(--font-blog-mono),monospace;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-ink-faint);margin-bottom:.2rem}}