@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-wght-normal.DLoelf7F.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.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}:root{--bg:#0c0d0b;--bg-alt:#121410;--line:#2a2d26;--border:#3a3d35;--text:#e8e6df;--text-soft:#c9c7bf;--muted:#9a9c92;--accent:#c8f04a;--on-accent:#0c0d0b;--font-sans:"Bricolage Grotesque Variable", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, monospace;--container:1180px;--gutter:24px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-wrap:break-word;margin:0}h1,h2,h3,p,ul{margin:0}img{max-width:100%;display:block}a{color:var(--text);transition:color .15s,background-color .15s,border-color .15s}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:var(--on-accent)}section[id]{scroll-margin-top:64px}.container{max-width:var(--container);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.mono{font-family:var(--font-mono)}.accent{color:var(--accent)}.section{border-top:1px solid var(--line)}.sectionAlt{background:var(--bg-alt)}.sectionInner{flex-direction:column;gap:32px;padding-top:80px;padding-bottom:80px;display:flex}.sectionHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.sectionTitle{letter-spacing:-.02em;font-size:44px;font-weight:800;line-height:1.1}.command{font-family:var(--font-mono);color:var(--muted);font-size:14px}.lead{max-width:720px;color:var(--text-soft);font-size:20px;line-height:1.5}.buttons{flex-wrap:wrap;gap:12px;display:flex}.btn{border:1px solid var(--border);border-radius:6px;align-items:center;gap:10px;min-height:48px;padding:0 24px;font-size:17px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent)}.btnPrimary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btnPrimary:hover{background:var(--text);border-color:var(--text);color:var(--on-accent)}.card{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;padding:28px;display:flex}.cardLabel{font-family:var(--font-mono);color:var(--accent);font-size:13px}.grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px;display:grid}.grid200{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}.grid320{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.tags{font-family:var(--font-mono);flex-wrap:wrap;gap:8px;padding:0;font-size:13px;list-style:none;display:flex}.tags li{border:1px solid var(--border);border-radius:4px;padding:6px 10px}.prose{color:var(--text-soft);flex-direction:column;gap:20px;font-size:18px;line-height:1.7;display:flex}.prose h2{letter-spacing:-.02em;color:var(--text);margin-top:28px;font-size:30px;font-weight:800;line-height:1.2}.prose h3{color:var(--text);margin-top:12px;font-size:22px;font-weight:600;line-height:1.3}.prose strong{color:var(--text)}.prose a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:3px}.prose ul,.prose ol{flex-direction:column;gap:8px;margin:0;padding-left:24px;display:flex}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent);color:var(--text);margin:0;padding:4px 0 4px 20px}.prose hr{border:0;border-top:1px solid var(--line);width:100%;margin:12px 0}.prose :not(pre)>code{border:1px solid var(--border);font-family:var(--font-mono);color:var(--text);overflow-wrap:anywhere;border-radius:4px;padding:2px 6px;font-size:.85em}.prose pre{border:1px solid var(--border);background:var(--bg-alt);font-family:var(--font-mono);tab-size:2;border-radius:8px;margin:0;padding:20px;font-size:14px;line-height:1.6;overflow-x:auto}.prose pre code{color:var(--text-soft);font-family:inherit}.prose .table-wrap,.prose table{width:100%;display:block;overflow-x:auto}.prose table{border-collapse:collapse;font-size:15px}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 14px}.prose th{font-family:var(--font-mono);color:var(--text);font-size:13px;font-weight:500}.token.comment,.token.prolog{color:var(--muted);font-style:italic}.token.keyword,.token.selector,.token.important,.token.atrule{color:var(--accent)}.token.string,.token.attr-value,.token.url{color:var(--text)}.token.property,.token.attr-name,.token.function,.token.builtin{color:var(--text);font-weight:500}.token.punctuation,.token.operator{color:var(--muted)}@media (width<=600px){.prose{font-size:17px}.prose h2{font-size:26px}.prose pre{padding:16px;font-size:13px}:root{--gutter:16px}.buttons{grid-template-columns:1fr 1fr;display:grid}.btn{text-align:center;justify-content:center;padding:0 16px}.buttons .btn:first-child,.buttons .btn:last-child:nth-child(2n){grid-column:1/-1}.sectionInner{padding-top:64px;padding-bottom:64px}.sectionTitle{font-size:36px}.card{padding:22px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.footer[data-astro-cid-yvkg62gd]{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;padding-bottom:24px;font-size:13px;display:flex}
