@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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-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+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-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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+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-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+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-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+0000-00FF,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-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+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-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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+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-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+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-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+0000-00FF,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}:root{--bg: #ffffff;--panel: #f7f7f9;--border: #e4e7ec;--border-strong: #d3d8df;--ink: #1c1d1f;--text-2: #6f7988;--text-3: #8f99a8;--accent: #4f46e5;--accent-hover: #4338ca;--accent-soft: #eef0ff;--accent-border: #d9dcff;--code-rose: #984e4d;--code-violet: #8844ae;--code-sky: #5196b3;--code-indigo: #3b61b0;--code-teal: #096e72;--radius-btn: 10px;--radius-card: 10px;--maxw: 1180px;--font-sans: "Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-feature-settings:"ss03" on,"cv11" on;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}h1,h2,h3{font-weight:600;line-height:1.08;letter-spacing:-.02em}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:24px}.btn{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:500;line-height:1;padding:11px 16px;border-radius:var(--radius-btn);border:1px solid transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn-primary:hover{background:#000}.btn-ghost{background:#fff;color:var(--ink);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--panel)}.prose{font-size:16.5px;line-height:1.7;color:var(--ink)}.prose>*+*{margin-top:1.1em}.prose h2{font-size:clamp(22px,3vw,28px);margin-top:1.9em}.prose h3{font-size:19px;margin-top:1.6em}.prose p,.prose li{color:var(--text-2)}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.prose a:hover{color:var(--accent-hover)}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:1px 5px}.prose pre{font-family:var(--font-mono);font-size:13.5px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px 18px;overflow-x:auto;line-height:1.55}.prose pre code{background:none;border:none;padding:0}.prose blockquote{border-left:3px solid var(--accent-border);padding-left:16px;color:var(--text-2)}.prose table{width:100%;border-collapse:collapse;font-size:14.5px}.prose th,.prose td{border:1px solid var(--border);padding:9px 12px;text-align:left}.prose th{background:var(--panel);font-weight:600;color:var(--ink)}.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.bar[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:24px;height:60px}.logo[data-astro-cid-3ef6ksr2]{display:inline-flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.02em}.mark[data-astro-cid-3ef6ksr2]{width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,var(--accent),#7c74f0);box-shadow:0 0 0 4px var(--accent-soft)}.name[data-astro-cid-3ef6ksr2]{font-size:16px}.nav[data-astro-cid-3ef6ksr2]{display:flex;gap:22px;margin-left:6px}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-size:14px;color:var(--text-2)}.nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--ink)}.actions[data-astro-cid-3ef6ksr2]{margin-left:auto;display:flex;align-items:center;gap:12px}.lang[data-astro-cid-3ef6ksr2]{font-size:13px;font-weight:500;color:var(--text-2);border:1px solid var(--border-strong);border-radius:8px;padding:5px 9px}.lang[data-astro-cid-3ef6ksr2]:hover{color:var(--ink);background:var(--panel)}.btn[data-astro-cid-3ef6ksr2].sm{padding:8px 13px;font-size:14px}@media(max-width:720px){.nav[data-astro-cid-3ef6ksr2]{display:none}}.site-footer[data-astro-cid-sz7xmlte]{background:#000;color:#fff;padding:56px 0 32px;margin-top:8px}.top[data-astro-cid-sz7xmlte]{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;padding-bottom:36px;border-bottom:1px solid #1f1f22}.brand[data-astro-cid-sz7xmlte]{max-width:320px}.logo[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:16px;letter-spacing:-.02em}.mark[data-astro-cid-sz7xmlte]{width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,var(--accent),#8b84f2)}.brand[data-astro-cid-sz7xmlte] p[data-astro-cid-sz7xmlte]{margin-top:12px;font-size:14px;color:#8f99a8;line-height:1.5}.cols[data-astro-cid-sz7xmlte]{display:flex;gap:64px}.col[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-size:13px;font-weight:600;margin-bottom:12px}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:block;font-size:14px;color:#8f99a8;padding:4px 0}.col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:#fff}.bottom[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:24px;font-size:13px;color:#6f7988}@media(max-width:560px){.cols[data-astro-cid-sz7xmlte]{gap:40px}}
