@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:200 900;src:url(/devdigest-marketplace/_astro/source-serif-4-cyrillic-ext-opsz-normal.DIwfbPUE.woff2)format("woff2-variations");unicode-range:U+460-52F,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-display:swap;font-weight:200 900;src:url(/devdigest-marketplace/_astro/source-serif-4-cyrillic-opsz-normal.C0olyEE-.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:200 900;src:url(/devdigest-marketplace/_astro/source-serif-4-latin-ext-opsz-normal.HoL-AExg.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:"Source Serif 4";font-style:normal;font-display:swap;font-weight:200 900;src:url(/devdigest-marketplace/_astro/source-serif-4-latin-opsz-normal.BpEBLj1O.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-ext-400-normal.g30qAdWV.woff2)format("woff2");unicode-range:U+460-52F,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-400-normal.DZqxrq2p.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-ext-400-normal.C5H60-Va.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-ext-500-normal.Cs5J6C77.woff2)format("woff2");unicode-range:U+460-52F,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-500-normal.CocWQlwt.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-ext-500-normal.DakdToA3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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-display:swap;font-weight:600;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-ext-600-normal.DUMzJB7m.woff2)format("woff2");unicode-range:U+460-52F,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-display:swap;font-weight:600;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-cyrillic-600-normal.71GNu3SW.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-ext-600-normal.DOrvGEcy.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-display:swap;font-weight:600;src:url(/devdigest-marketplace/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2");unicode-range:U+460-52F,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-display:swap;font-weight:400;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2");unicode-range:U+460-52F,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-display:swap;font-weight:500;src:url(/devdigest-marketplace/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Source Serif 4", "Source Serif Pro", Georgia, serif;--font-sans:"IBM Plex Sans", "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--type-display-xl:clamp(2rem, 4vw, 3.25rem);--type-display:clamp(1.75rem, 3.5vw, 2.5rem);--type-numeral:clamp(1.75rem, 3vw, 2.5rem);--type-heading-1:2rem;--type-heading-2:1.375rem;--type-body-lg:1.125rem;--type-body:1rem;--type-label:.75rem;--type-caption:.8125rem;--type-mono:.875rem;--measure:68ch;--surface-page:#f5f3ee;--surface-raised:#fff;--surface-sunken:#ece9e2;--ink-primary:#17171b;--ink-secondary:#54545c;--ink-whisper:#8a8892;--rule-hairline:#d9d5cb;--accent-indigo:#3340b5;--accent-indigo-soft:#e4e6f6;--signal-caution:#a84e17;--signal-positive:#2d7a4d;--signal-rollback:#7a3fa0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:144px;--radius-none:0;--radius-s:2px;--radius-pill:999px;--rule-thin:1px;--rule-strong:2px;--focus-ring:2px solid var(--accent-indigo);--focus-offset:3px;--ease-settle:cubic-bezier(.16, 1, .3, 1);--ease-snap:cubic-bezier(.87, 0, .13, 1);--duration-quick:.12s;--duration-base:.24s;--duration-reveal:.56s;--stagger-step:70ms;--leading-display-xl:1.05;--leading-display:1.08;--leading-numeral:1;--leading-heading-1:1.1;--leading-heading-2:1.2;--leading-body:1.55;--leading-label:1.3;--leading-caption:1.4;--leading-mono:1.5;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--tracking-display-xl:-.015em;--tracking-label:.08em;--grid-columns:8;--grid-gutter:24px;--grid-margin:64px}@media (width<=1199px){:root{--grid-columns:6;--grid-gutter:20px;--grid-margin:40px}}@media (width<=767px){:root{--grid-columns:4;--grid-gutter:16px;--grid-margin:16px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface-page:#111115;--surface-raised:#1a1a20;--surface-sunken:#0b0b0e;--ink-primary:#edebe6;--ink-secondary:#a9a7b1;--ink-whisper:#6e6c77;--rule-hairline:#2b2a32;--accent-indigo:#8f9aff;--accent-indigo-soft:#22254a;--signal-caution:#e38b57;--signal-positive:#6cc594;--signal-rollback:#c79beb}}:root[data-theme=dark]{--surface-page:#111115;--surface-raised:#1a1a20;--surface-sunken:#0b0b0e;--ink-primary:#edebe6;--ink-secondary:#a9a7b1;--ink-whisper:#6e6c77;--rule-hairline:#2b2a32;--accent-indigo:#8f9aff;--accent-indigo-soft:#22254a;--signal-caution:#e38b57;--signal-positive:#6cc594;--signal-rollback:#c79beb}@media (prefers-reduced-motion:reduce){:root{--duration-quick:0s;--duration-base:0s;--duration-reveal:0s;--stagger-step:0s}}*,:before,:after{box-sizing:border-box}html{color-scheme:light dark;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--space-9)}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background:var(--surface-page);min-height:100vh;color:var(--ink-primary);font-family:var(--font-sans);font-size:var(--type-body);font-weight:var(--weight-regular);line-height:var(--leading-body);font-kerning:normal;margin:0;overflow-x:clip}img,svg{max-width:100%;height:auto}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6,p,ul,ol,dl,figure,blockquote{margin:0}a{color:var(--accent-indigo);text-decoration-thickness:var(--rule-thin);text-underline-offset:.2em;transition:color var(--duration-quick) var(--ease-settle)}a:hover{color:var(--ink-primary)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}::selection{background:var(--accent-indigo-soft);color:var(--ink-primary)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--space-4);top:calc(-1 * var(--space-9));padding:var(--space-2) var(--space-4);background:var(--surface-raised);border:var(--rule-thin) solid var(--rule-hairline);z-index:50;position:absolute}.skip-link:focus{top:var(--space-4)}.t-display-xl{font-family:var(--font-display);font-size:var(--type-display-xl);line-height:var(--leading-display-xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-display-xl)}.t-display{font-family:var(--font-display);font-size:var(--type-display);line-height:var(--leading-display);font-weight:var(--weight-regular);letter-spacing:var(--tracking-display-xl);overflow-wrap:anywhere}.t-numeral{font-family:var(--font-display);font-size:var(--type-numeral);line-height:var(--leading-numeral);font-weight:var(--weight-light);font-variant-numeric:tabular-nums}.t-heading-1{font-family:var(--font-display);font-size:var(--type-heading-1);line-height:var(--leading-heading-1);font-weight:var(--weight-medium)}.t-heading-2{font-family:var(--font-sans);font-size:var(--type-heading-2);line-height:var(--leading-heading-2);font-weight:var(--weight-semibold)}.t-body-lg{font-size:var(--type-body-lg);line-height:var(--leading-body)}.t-body{font-size:var(--type-body);line-height:var(--leading-body)}.t-label{font-family:var(--font-sans);font-size:var(--type-label);line-height:var(--leading-label);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-secondary)}.t-caption{font-size:var(--type-caption);line-height:var(--leading-caption);color:var(--ink-secondary)}.t-mono,code,kbd,pre{font-family:var(--font-mono);font-size:var(--type-mono);line-height:var(--leading-mono)}.t-secondary{color:var(--ink-secondary)}.measure{max-width:var(--measure)}.shell{padding-inline:var(--grid-margin);margin-inline:auto}.grid{grid-template-columns:repeat(var(--grid-columns), minmax(0, 1fr));column-gap:var(--grid-gutter);display:grid}.layout-rail{row-gap:var(--space-7);column-gap:var(--grid-gutter);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=1200px){.layout-rail{grid-template-columns:minmax(0,2fr) minmax(0,6fr)}.layout-rail>.rail-sticky{top:var(--space-9);position:sticky}}.rule-top{border-top:var(--rule-thin) solid var(--rule-hairline)}.rule-bottom{border-bottom:var(--rule-thin) solid var(--rule-hairline)}.button{min-height:var(--space-7);padding:0 var(--space-5);border:var(--rule-thin) solid var(--ink-primary);border-radius:var(--radius-s);color:var(--ink-primary);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-settle), color var(--duration-quick) var(--ease-settle);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button:hover{color:var(--accent-indigo);border-color:var(--accent-indigo)}.button--primary{background:var(--ink-primary);color:var(--surface-page)}.button--primary:hover{background:var(--accent-indigo);color:var(--surface-page)}.link-button{color:var(--accent-indigo);cursor:pointer;text-decoration:underline;text-decoration-thickness:var(--rule-thin);text-underline-offset:.2em;background:0 0;border:0;padding:0}.link-button:hover{color:var(--ink-primary)}.prose{max-width:var(--measure);overflow-wrap:break-word}.prose>*+*{margin-top:var(--space-4)}.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:var(--space-6)}.prose h2{font-family:var(--font-display);font-size:var(--type-heading-1);line-height:var(--leading-heading-1);font-weight:var(--weight-medium)}.prose h3{font-size:var(--type-heading-2);line-height:var(--leading-heading-2);font-weight:var(--weight-semibold)}.prose h4,.prose h5,.prose h6{font-size:var(--type-body);font-weight:var(--weight-semibold)}.prose ul,.prose ol{padding-left:var(--space-5)}.prose li+li{margin-top:var(--space-1)}.prose blockquote{padding-left:var(--space-4);border-left:var(--rule-strong) solid var(--rule-hairline);color:var(--ink-secondary)}.prose code{padding:0 var(--space-1);background:var(--surface-sunken);border-radius:var(--radius-s);overflow-wrap:anywhere}.prose pre{padding:var(--space-4) var(--space-5);background:var(--surface-sunken);border-radius:var(--radius-none);overflow-x:auto}.prose pre code{overflow-wrap:normal;background:0 0;padding:0}.prose table{border-collapse:collapse;font-size:var(--type-caption);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-2) var(--space-4) var(--space-2) 0;border-bottom:var(--rule-thin) solid var(--rule-hairline);text-align:left;vertical-align:top}.prose th{font-weight:var(--weight-semibold)}.prose hr{border:0;border-top:var(--rule-thin) solid var(--rule-hairline)}.prose img{max-width:100%}@keyframes wipe-in{0%{clip-path:inset(-.2em 100% -.2em 0)}to{clip-path:inset(-.2em 0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:var(--duration-quick)!important;animation-iteration-count:1!important;animation-delay:var(--duration-quick)!important;transition-duration:var(--duration-quick)!important;scroll-behavior:auto!important}}.site-footer[data-astro-cid-nns7i3if]{justify-content:space-between;gap:var(--space-3) var(--space-5);margin-top:var(--space-10);padding-block:var(--space-5) var(--space-7);flex-wrap:wrap;display:flex}.site-footer__links[data-astro-cid-nns7i3if]{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.site-header[data-astro-cid-fzpbxy5g]{z-index:30;background:var(--surface-page);justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);padding-block:var(--space-5);flex-wrap:wrap;display:flex;position:sticky;top:0}.site-header__brand[data-astro-cid-fzpbxy5g]{font-family:var(--font-display);font-size:var(--type-heading-2);font-weight:var(--weight-semibold);color:var(--ink-primary);text-decoration:none}.site-header__brand[data-astro-cid-fzpbxy5g]:hover{color:var(--accent-indigo)}.site-header__nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.site-header__hint[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-2);display:inline-flex}kbd[data-astro-cid-fzpbxy5g]{padding:0 var(--space-2);border:var(--rule-thin) solid var(--rule-hairline);border-radius:var(--radius-s);font-size:var(--type-label);color:var(--ink-primary)}.theme-switch[data-astro-cid-fzpbxy5g]{--knob-travel:calc(var(--space-7) - var(--space-5) - 2 * var(--rule-strong) - 2 * var(--rule-thin));width:var(--space-7);height:calc(var(--space-5) + 2 * var(--rule-strong) + 2 * var(--rule-thin));padding:var(--rule-strong);border:var(--rule-thin) solid var(--rule-hairline);border-radius:var(--radius-pill);background:var(--surface-sunken);cursor:pointer;transition:border-color var(--duration-quick) var(--ease-settle);align-items:center;display:inline-flex}.theme-switch[data-astro-cid-fzpbxy5g]:hover{border-color:var(--accent-indigo)}.theme-switch__knob[data-astro-cid-fzpbxy5g]{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-pill);background:var(--accent-indigo);color:var(--surface-page);transition:transform var(--duration-base) var(--ease-settle);justify-content:center;align-items:center;display:inline-flex}.theme-switch__icon[data-astro-cid-fzpbxy5g]{width:var(--space-4);height:var(--space-4)}.theme-switch__icon--moon[data-astro-cid-fzpbxy5g]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-switch__knob[data-astro-cid-fzpbxy5g]{transform:translateX(var(--knob-travel))}:root:not([data-theme=light]) .theme-switch__icon--sun[data-astro-cid-fzpbxy5g]{display:none}:root:not([data-theme=light]) .theme-switch__icon--moon[data-astro-cid-fzpbxy5g]{display:block}}:root[data-theme=dark] .theme-switch__knob[data-astro-cid-fzpbxy5g]{transform:translateX(var(--knob-travel))}:root[data-theme=dark] .theme-switch__icon--sun[data-astro-cid-fzpbxy5g]{display:none}:root[data-theme=dark] .theme-switch__icon--moon[data-astro-cid-fzpbxy5g]{display:block}html:not(.js) [data-astro-cid-fzpbxy5g][data-js-only]{display:none}
