@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");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(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");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(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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:600;src:url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff)format("woff");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:600;src:url(/_astro/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff)format("woff");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:600;src:url(/_astro/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff)format("woff");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:600;src:url(/_astro/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff)format("woff");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}.t-display-xl,.t-display,.t-h1,.t-h2,.t-h3{text-wrap:balance}.t-display-xl,.t-display{font-family:var(--font-display)}.t-h1,.t-h2,.t-h3{font-family:var(--font-heading)}.t-display-xl{font-size:var(--fs-display-xl);font-weight:var(--fw-display-xl);line-height:var(--lh-display-xl);letter-spacing:var(--tr-display-xl)}.t-display{font-size:var(--fs-display);font-weight:var(--fw-display);line-height:var(--lh-display);letter-spacing:var(--tr-display)}.t-h1{font-size:var(--fs-h1);font-weight:var(--fw-h1);line-height:var(--lh-h1);letter-spacing:var(--tr-h1)}.t-h2{font-size:var(--fs-h2);font-weight:var(--fw-h2);line-height:var(--lh-h2);letter-spacing:var(--tr-h2)}.t-h3{font-size:var(--fs-h3);font-weight:var(--fw-h3);line-height:var(--lh-h3);letter-spacing:var(--tr-h3)}.t-body-lg{font-family:var(--font-body);font-size:var(--fs-body-lg);font-weight:var(--fw-body-lg);line-height:var(--lh-body-lg);letter-spacing:var(--tr-body-lg)}.t-body{font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-body);line-height:var(--lh-body);letter-spacing:var(--tr-body)}.t-label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-label);line-height:var(--lh-label);letter-spacing:var(--tr-label);text-transform:uppercase}.t-micro{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:var(--fw-micro);line-height:var(--lh-micro);letter-spacing:var(--tr-micro);text-transform:uppercase}.t-mono{font-family:var(--font-mono);letter-spacing:0;font-weight:400}html{color-scheme:light dark;background:var(--night)}body{background:var(--color-surface);color:var(--color-fg);font-family:var(--font-body);font-size:var(--fs-body);font-weight:var(--fw-body);line-height:var(--lh-body);letter-spacing:var(--tr-body)}.mode-light{--color-surface:var(--canvas);--color-fg:var(--ink);--color-muted:var(--muted-on-light);--color-line:var(--line-on-light);--color-accent:var(--accent);--color-warning:var(--warning);background:var(--color-surface);color:var(--color-fg)}.mode-dark{--color-surface:var(--night);--color-fg:var(--white);--color-muted:var(--muted-on-dark);--color-line:var(--line-on-dark);--color-accent:var(--accent-on-dark);--color-warning:var(--warning-on-dark);background:var(--color-surface);color:var(--color-fg)}.mode-panel{--color-surface:var(--panel);--color-fg:var(--white);--color-muted:var(--muted-on-dark);--color-line:var(--line-on-dark);--color-accent:var(--accent-on-dark);--color-warning:var(--warning-on-dark);background:var(--color-surface);color:var(--color-fg)}.mode-image{--color-fg:var(--white);--color-muted:var(--muted-on-dark);--color-line:var(--line-on-dark);--color-accent:var(--accent-on-dark);--color-warning:var(--warning-on-dark);color:var(--color-fg);position:relative}.mode-image--dark-text{--color-fg:var(--ink);--color-muted:var(--muted-on-light);--color-line:var(--line-on-light);--color-accent:var(--accent);--color-warning:var(--warning)}a{color:inherit;text-decoration:none}a:not([class]){border-block-end:var(--hairline) solid var(--color-line);transition:border-color var(--motion-fast) var(--ease-reveal)}a:not([class]):hover{border-color:currentColor}:focus-visible{outline:2px solid var(--color-warning);outline-offset:3px}::selection{background:var(--color-fg);color:var(--color-surface)}.skip-link{z-index:var(--z-skiplink);background:var(--ink);color:var(--white);font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tr-label);transition:transform var(--motion-fast) var(--ease-reveal);padding:.65rem 1rem;position:absolute;inset-block-start:0;inset-inline-start:var(--gutter);transform:translateY(-120%)}.skip-link:focus-visible{transform:translateY(0)}.btn{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-label);text-transform:uppercase;letter-spacing:var(--tr-label);border:var(--hairline) solid var(--color-fg);border-radius:var(--radius-control);color:var(--color-fg);transition:background-color var(--motion-fast) var(--ease-reveal), color var(--motion-fast) var(--ease-reveal);background:0 0;align-items:center;gap:.6rem;padding:.85rem 1.4rem;display:inline-flex}.btn:hover,.btn--solid{background:var(--color-fg);color:var(--color-surface)}.btn--solid:hover{color:var(--color-fg);background:0 0}.btn:disabled,.btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}.link-arrow{font-family:var(--font-mono);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:var(--tr-label);color:var(--color-fg);background-image:linear-gradient(currentColor,currentColor);background-size:0% var(--hairline);transition:background-size var(--motion-base) var(--ease-reveal);background-position:0 100%;background-repeat:no-repeat;align-items:baseline;gap:.45rem;display:inline-flex}.link-arrow:hover,.link-arrow:focus-visible{background-size:100% var(--hairline)}.link-arrow>.link-arrow__mark{transition:transform var(--motion-base) var(--ease-reveal)}.link-arrow:hover>.link-arrow__mark{transform:translate(.2em)}hr{border:0;border-block-start:var(--hairline) solid var(--color-line)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.link-arrow{background-size:100% var(--hairline)}}.field{flex-direction:column;gap:.5rem;display:flex}.field__label{color:var(--color-muted)}.input,.textarea,.select{width:100%;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-fg);border:var(--hairline) solid var(--color-line);border-radius:var(--radius-control);transition:border-color var(--motion-fast) var(--ease-reveal);background:0 0;padding:.7rem .85rem}.textarea{resize:vertical;min-height:7rem}.input::placeholder,.textarea::placeholder{color:var(--color-muted)}.input:hover,.textarea:hover,.select:hover{border-color:var(--color-fg)}.input:focus-visible,.textarea:focus-visible,.select:focus-visible{outline:2px solid var(--color-warning);outline-offset:2px;border-color:var(--color-fg)}.input:disabled,.textarea:disabled,.select:disabled{opacity:.4;cursor:not-allowed}.choice{color:var(--color-fg);align-items:center;gap:.6rem;display:flex}.choice input{block-size:1.05rem;inline-size:1.05rem;accent-color:var(--color-accent)}.field--error .input,.field--error .textarea,.field--error .select{border-color:var(--color-warning)}.field__hint{color:var(--color-muted)}.field__error{color:var(--color-warning)}.wrap{width:100%;max-width:var(--grid-max);padding-inline:var(--gutter);margin-inline:auto}.measure{max-width:var(--measure)}.grid{gap:var(--col-gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width>=48rem){.grid{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (width>=64rem){.grid{grid-template-columns:repeat(12,minmax(0,1fr))}}.flow>*+*{margin-block-start:var(--flow-space,1em)}.section{padding-block:var(--section-pad)}.stack{gap:var(--stack-gap,1rem);flex-direction:column;display:flex}.cluster{align-items:center;gap:var(--cluster-gap,1rem);flex-wrap:wrap;display:flex}.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}.accent{color:var(--color-accent)}.warning{color:var(--color-warning)}.mobile-menu[data-astro-cid-6pdw6r3d]{display:contents}.mobile-menu__trigger[data-astro-cid-6pdw6r3d]{color:inherit;align-items:center;gap:.55rem;display:none}.mobile-menu__bars[data-astro-cid-6pdw6r3d]{border-block-start:var(--hairline) solid currentColor;block-size:0;inline-size:1.35rem;position:relative}.mobile-menu__bars[data-astro-cid-6pdw6r3d]:before,.mobile-menu__bars[data-astro-cid-6pdw6r3d]:after{content:"";border-block-start:var(--hairline) solid currentColor;position:absolute;inset-inline:0}.mobile-menu__bars[data-astro-cid-6pdw6r3d]:before{inset-block-start:5px}.mobile-menu__bars[data-astro-cid-6pdw6r3d]:after{inset-block-start:10px}.mobile-menu__panel[data-astro-cid-6pdw6r3d]{z-index:var(--z-menu);background:var(--night);flex-direction:column;display:flex;position:fixed;inset:0}.mobile-menu__bar[data-astro-cid-6pdw6r3d]{justify-content:space-between;align-items:center;padding-block:1.6rem;display:flex}.mobile-menu__close[data-astro-cid-6pdw6r3d]{color:inherit}.mobile-menu__nav[data-astro-cid-6pdw6r3d]{flex:1;align-items:center;display:flex}.mobile-menu__nav[data-astro-cid-6pdw6r3d] ul[data-astro-cid-6pdw6r3d]{flex-direction:column;gap:clamp(1rem,4vw,2rem);margin:0;padding:0;display:flex}.mobile-menu__link[data-astro-cid-6pdw6r3d]{color:var(--color-fg)}@media (width<=47.99rem){html.js .mobile-menu__trigger[data-astro-cid-6pdw6r3d]{display:inline-flex}}.site-header[data-astro-cid-vtybea45]{background:var(--color-surface);color:var(--color-fg)}.site-header__inner[data-astro-cid-vtybea45]{justify-content:space-between;align-items:center;gap:1.5rem;padding-block:1.6rem;display:flex}.site-header__wordmark[data-astro-cid-vtybea45]{color:inherit}.site-header__nav[data-astro-cid-vtybea45] ul[data-astro-cid-vtybea45]{flex-wrap:wrap;gap:clamp(1rem,2.5vw,2.5rem);margin:0;padding:0;display:flex}.site-header__link[data-astro-cid-vtybea45]{color:var(--color-muted);transition:color var(--motion-fast) var(--ease-reveal)}.site-header__link[data-astro-cid-vtybea45]:hover,.site-header__link[data-astro-cid-vtybea45]:focus-visible{color:var(--color-fg)}@media (width<=47.99rem){html.js .site-header__nav[data-astro-cid-vtybea45]{display:none}}.site-footer__inner[data-astro-cid-yfu5idmn]{border-block-start:var(--hairline) solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem 2.5rem;padding-block:clamp(3rem,6vw,5rem);display:flex}.site-footer__identity[data-astro-cid-yfu5idmn]{flex-direction:column;gap:.4rem;display:flex}.site-footer__location[data-astro-cid-yfu5idmn]{color:var(--color-muted)}.site-footer__links[data-astro-cid-yfu5idmn] ul[data-astro-cid-yfu5idmn]{flex-wrap:wrap;gap:clamp(1rem,2.5vw,2rem);margin:0;padding:0;display:flex}.site-footer__link[data-astro-cid-yfu5idmn]{color:var(--color-muted);transition:color var(--motion-fast) var(--ease-reveal)}.site-footer__link[data-astro-cid-yfu5idmn]:hover,.site-footer__link[data-astro-cid-yfu5idmn]:focus-visible{color:var(--color-fg)}.site-footer__meta[data-astro-cid-yfu5idmn]{color:var(--color-muted)}.reveal-lines,.reveal-line,.reveal-line__inner{display:block}.reveal-line{margin-block-end:-.35em;padding-block:.1em .25em;position:relative;inset-block-start:-.1em}[data-split] .reveal-line:not(.reveal-line--wrap)>.reveal-line__inner{white-space:nowrap}@media screen and (prefers-reduced-motion:no-preference){html.motion [data-reveal]{--reveal-at:calc(var(--reveal-delay,0s) + var(--reveal-order,0) * var(--stagger-group))}html.motion [data-reveal-blocks]:not([data-blocks-ready]),html.motion [data-reveal=type]:not(.is-revealed){opacity:0}html.motion [data-reveal=fade]:not(.is-settled){transition:opacity var(--motion-snap) linear var(--reveal-at), transform var(--motion-reveal) var(--ease-lock) var(--reveal-at)}html.motion [data-reveal=fade]:not(.is-revealed){opacity:0;transform:translateY(var(--reveal-distance))}html.motion [data-reveal=settle]:not(.is-settled){transition:opacity calc(var(--motion-snap) * 1.5) linear var(--reveal-at)}html.motion [data-reveal=settle]:not(.is-revealed),html.motion [data-reveal=split]:not([data-split]):not(.is-revealed){opacity:0}html.motion :is([data-reveal=lines],[data-reveal=split][data-split]):not(.is-settled) .reveal-line{overflow-y:clip}html.motion :is([data-reveal=lines],[data-reveal=split][data-split]):not(.is-settled) .reveal-line__inner{--line-at:calc(var(--reveal-at) + var(--line-delay,calc(var(--line,0) * var(--line-stagger,var(--stagger-line)))));transition:transform var(--motion-reveal) var(--ease-lock) var(--line-at), opacity var(--motion-snap) linear var(--line-at)}html.motion :is([data-reveal=lines],[data-reveal=split][data-split]):not(.is-revealed) .reveal-line:not(.is-revealed)>.reveal-line__inner{opacity:0;transform:translateY(calc(100% + .25em))}html.motion :is([data-reveal=row],[data-reveal=rule]):not(.is-settled){background-image:linear-gradient(var(--color-line), var(--color-line));background-position:0 0;background-repeat:no-repeat;background-origin:border-box;background-size:100% var(--hairline);transition:background-size var(--motion-reveal) var(--ease-lock) var(--reveal-at);border-block-start-color:#0000}html.motion :is([data-reveal=row],[data-reveal=rule]):not(.is-revealed){background-size:0% var(--hairline)}html.motion [data-reveal=media]:not(.is-settled){clip-path:inset(0);transition:clip-path calc(var(--motion-reveal) * 1.25) var(--ease-lock) var(--reveal-at), transform calc(var(--motion-reveal) * 1.5) var(--ease-lock) var(--reveal-at)}html.motion [data-reveal=media]:not(.is-revealed){clip-path:inset(100% 0 0);transform:scale(1.02)}html.motion .is-replaying :is([data-reveal],[data-reveal]>*,.reveal-line__inner){transition:none!important}html.motion [data-reveal]:not(.is-settled):focus-within,html.motion [data-reveal]:not(.is-settled):focus-within .reveal-line__inner{opacity:1;transition:none;transform:none}}
