.hd[data-astro-cid-nen7h5rs]{z-index:40;background:color-mix(in srgb, var(--bg) 78%, transparent);backdrop-filter:saturate(160%)blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:32px;min-height:68px;display:flex}.brand[data-astro-cid-nen7h5rs]{color:var(--tx);letter-spacing:-.02em;white-space:nowrap;font-size:16px;font-weight:560}nav[data-astro-cid-nen7h5rs]{gap:2px;margin-inline-start:auto;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--tx-2);letter-spacing:-.01em;border-radius:100px;padding:8px 14px;font-size:14.5px;font-weight:450;transition:color .18s,background-color .18s}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--tx);background:var(--bg-2)}.tools[data-astro-cid-nen7h5rs]{align-items:center;gap:6px;display:flex}.pf[data-astro-cid-nen7h5rs]{color:var(--tx-2);border:1px solid var(--line);border-radius:100px;padding:8px 14px;font-size:14.5px;transition:border-color .18s,color .18s}.pf[data-astro-cid-nen7h5rs]:hover{color:var(--tx);border-color:var(--line-2)}.ic[data-astro-cid-nen7h5rs]{border:1px solid var(--line);min-width:34px;height:34px;color:var(--tx-3);cursor:pointer;font-family:var(--mono);letter-spacing:.06em;background:0 0;border-radius:100px;justify-content:center;align-items:center;padding:0 9px;font-size:11px;transition:color .18s,border-color .18s;display:inline-flex}.ic[data-astro-cid-nen7h5rs]:hover{color:var(--tx);border-color:var(--line-2)}@media (width<=820px){.bar[data-astro-cid-nen7h5rs]{gap:14px}nav[data-astro-cid-nen7h5rs]{order:3;width:100%;margin-inline-start:0;padding-bottom:8px;overflow-x:auto}.tools[data-astro-cid-nen7h5rs]{margin-inline-start:auto}.pf[data-astro-cid-nen7h5rs]{display:none}}.site-foot[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:var(--bg-2);margin-top:80px;padding:34px 0 44px}.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:2fr 1fr 1fr;gap:28px;display:grid}@media (width<=700px){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}}.nm[data-astro-cid-jo6i4kqk]{margin:0 0 4px;font-weight:700}.h[data-astro-cid-jo6i4kqk]{font:600 10.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--tx-3);margin:0 0 10px}ul[data-astro-cid-jo6i4kqk]{margin:0;padding:0;font-size:14px;list-style:none}li[data-astro-cid-jo6i4kqk]{margin-bottom:5px}.fine[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--tx-3);margin:28px 0 0;padding-top:18px;font-size:12.5px}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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:#08080a;--bg-1:#0e0e11;--bg-2:#141418;--bg-3:#1c1c21;--line:#232329;--line-2:#2e2e36;--tx:#fafafa;--tx-2:#a8adb8;--tx-3:#6f7480;--ac:#bef264;--ac-soft:#d3f99d;--ac-ink:#14180a;--ac-dim:color-mix(in srgb, var(--ac) 16%, transparent);--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--link:var(--ac);--sans:"Geist Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--measure:70ch;--wide:1200px;--r:16px;--r-sm:10px;--band:clamp(64px, 9vw, 116px);color-scheme:dark}:root[data-accent=emerald]{--ac:#34d399;--ac-soft:#6ee7b7;--ac-ink:#04140d}:root[data-accent=sky]{--ac:#38bdf8;--ac-soft:#7dd3fc;--ac-ink:#03131c}:root[data-accent=amber]{--ac:#fbbf24;--ac-soft:#fcd34d;--ac-ink:#191003}:root[data-accent=violet]{--ac:#a78bfa;--ac-soft:#c4b5fd;--ac-ink:#120b23}:root[data-theme=light]{--bg:#fff;--bg-1:#fbfbfc;--bg-2:#f6f6f8;--bg-3:#eeeef1;--line:#e6e6ea;--line-2:#d8d8de;--tx:#0b0b0d;--tx-2:#565a63;--tx-3:#82868f;--ac:#4d7c0f;--ac-soft:#3f6212;--ac-ink:#fff;--ok:#15803d;--warn:#a16207;--bad:#b91c1c;color-scheme:light}:root[data-theme=light][data-accent=emerald]{--ac:#047857;--ac-soft:#065f46}:root[data-theme=light][data-accent=sky]{--ac:#0369a1;--ac-soft:#075985}:root[data-theme=light][data-accent=amber]{--ac:#b45309;--ac-soft:#92400e}:root[data-theme=light][data-accent=violet]{--ac:#6d28d9;--ac-soft:#5b21b6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--bg);color:var(--tx);font-family:var(--sans);letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:17px;font-weight:400;line-height:1.75}a{color:var(--link);text-decoration:none}.prose a{border-bottom:1px solid color-mix(in srgb, var(--ac) 34%, transparent);transition:border-color .18s}.prose a:hover{border-bottom-color:var(--ac)}a:focus-visible{outline:2px solid var(--ac);outline-offset:3px;border-radius:4px}.wrap{width:100%;max-width:var(--wide);margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}.measure{max-width:var(--measure);margin-inline:auto}.band{padding-block:var(--band)}h1,h2,h3,h4{color:var(--tx);letter-spacing:-.028em;margin:0 0 .5em;font-weight:560;line-height:1.14}h1{font-size:clamp(36px,5.4vw,58px)}h2{letter-spacing:-.026em;margin-top:2.2em;font-size:clamp(26px,3.4vw,36px)}h3{letter-spacing:-.018em;margin-top:2em;font-size:21px;line-height:1.3}h4{letter-spacing:-.012em;margin-top:1.8em;font-size:17px}p{margin:0 0 1.3em}.prose{max-width:var(--measure);margin-inline:auto;font-size:17.5px}.prose>p,.prose>ul,.prose>ol{color:var(--tx-2)}.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.3em}.prose li{margin-bottom:.5em}.prose li::marker{color:var(--tx-3)}.prose strong{color:var(--tx);font-weight:560}.prose h2{position:relative}.prose h2>a.anchor,.prose h3>a.anchor{color:var(--tx-3);opacity:0;font-family:var(--mono);border:0;font-size:.62em;transition:opacity .15s;position:absolute;left:-1em}.prose h2:hover>a.anchor,.prose h3:hover>a.anchor{opacity:1}@media (width<=860px){.prose h2>a.anchor,.prose h3>a.anchor{display:none}}.prose blockquote{border-left:2px solid var(--ac);color:var(--tx);margin:2em 0;padding:0 0 0 22px;font-size:1.06em;line-height:1.62}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}code{font-family:var(--mono);background:var(--bg-2);border:1px solid var(--line);color:var(--tx);letter-spacing:-.01em;border-radius:5px;padding:2px 6px;font-size:.87em}pre{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);margin:0 0 1.6em;padding:20px 22px;font-size:13.5px;line-height:1.7;overflow-x:auto}:root[data-theme=light] pre{background:var(--bg-2)}pre code{font-size:inherit;background:0 0;border:0;padding:0}pre.astro-code{color:var(--shiki-dark)}pre.astro-code span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);background-color:#0000!important}:root[data-theme=light] pre.astro-code{color:var(--shiki-light)}:root[data-theme=light] pre.astro-code span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight)}.prose table,table.data{border-collapse:collapse;width:100%;margin:0 0 1.6em;font-size:14.5px;line-height:1.6}th{text-align:left;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--tx-3);border-bottom:1px solid var(--line);vertical-align:bottom;padding:0 14px 12px;font-size:11px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--tx-2);padding:13px 14px}td strong{color:var(--tx);font-weight:540}.table-scroll{margin-bottom:1.6em;overflow-x:auto}.table-scroll table{min-width:560px;margin:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}img,video,canvas,svg{max-width:100%;height:auto;display:block}.label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--tx-3);font-size:11px;font-weight:500}.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.11em;color:var(--tx-3);align-items:center;gap:10px;margin:0 0 26px;font-size:11px;font-weight:500;display:flex}.eyebrow .dot{background:var(--ac);border-radius:50%;flex:none;width:5px;height:5px}.tag{font-family:var(--mono);letter-spacing:.04em;background:var(--bg-2);color:var(--tx-2);border:1px solid var(--line);white-space:nowrap;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-block}.tag[data-on]{color:var(--ac);border-color:color-mix(in srgb, var(--ac) 30%, transparent);background:var(--ac-dim)}.muted{color:var(--tx-2)}.small{font-size:15.5px}.tiny{color:var(--tx-3);font-size:13.5px;line-height:1.65}.card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r);padding:28px}:root[data-theme=light] .card{background:var(--bg-1)}.grid{gap:20px;display:grid}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}@media (width<=900px){.g2,.g3{grid-template-columns:1fr}}.lift{transition:transform .32s cubic-bezier(.22,.7,.28,1),border-color .24s,background-color .24s}.lift:hover{border-color:var(--line-2);background:var(--bg-2);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.lift,.lift:hover{transition:none;transform:none}}.btn{background:var(--ac);color:var(--ac-ink);font-family:var(--sans);letter-spacing:-.01em;cursor:pointer;border:1px solid #0000;border-radius:100px;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:540;transition:filter .18s,transform .18s;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn.ghost{color:var(--tx);border-color:var(--line-2);background:0 0}.btn.ghost:hover{background:var(--bg-2);filter:none}.btn:focus-visible{outline:2px solid var(--ac);outline-offset:3px}.plate{border-radius:var(--r);background:var(--bg-2);display:block;position:relative;overflow:hidden}.plate img{width:100%;display:block}.plate.zoom img{transition:transform .8s cubic-bezier(.22,.7,.28,1)}.lift:hover .plate.zoom img{transform:scale(1.03)}@media (prefers-reduced-motion:reduce){.plate.zoom img,.lift:hover .plate.zoom img{transition:none;transform:none}}.progress{transform-origin:0;background:var(--ac);z-index:60;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0;transform:scaleX(0)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ac);color:var(--ac-ink);border:0;border-radius:100px;padding:11px 18px;font-size:14px;font-weight:540;transition:top .15s;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.pill{font-family:var(--mono);letter-spacing:.04em;background:var(--ac-dim);color:var(--ac);border:1px solid color-mix(in srgb, var(--ac) 26%, transparent);white-space:nowrap;border-radius:100px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-block}
