@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal.BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/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(/assets/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal.XN7g48iV.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}:root{--canvas: #0e1013;--panel: #15181d;--raise: #1e2229;--line: #262b33;--line-soft: #1c2027;--text: #d9dee6;--dim: #8a93a1;--faint: #5b6370;--sel: #fabb39;--sel-ink: #16120a;--sel-soft: rgba(250, 187, 57, .13);--ok: #3ddc84;--axis-x: #ff5a5a;--axis-y: #7ee081;--axis-z: #5aa9ff;--viewport-glow: #171b22;--font-sans: "Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--t-2xs: 11px;--t-xs: 12px;--t-sm: 13px;--t-md: 15px;--t-lg: 18px;--t-xl: 28px;--t-2xl: clamp(36px, 5vw, 56px);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--s8: 72px;--radius: 6px;--bar-h: 44px;--outliner-w: 232px;--props-w: 268px;--wrap: 1240px;color-scheme:dark}:root[data-scheme=light]{--canvas: #eceef1;--panel: #f9fafb;--raise: #e4e7ec;--line: #d5d9e0;--line-soft: #e3e6eb;--text: #15181d;--dim: #59616e;--faint: #8b93a0;--sel: #c97a00;--sel-ink: #ffffff;--sel-soft: rgba(201, 122, 0, .12);--ok: #17924f;--axis-x: #d33b3b;--axis-y: #2f9a3a;--axis-z: #2c74cf;--viewport-glow: #f7f8fa;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--canvas);color:var(--text);font-family:var(--font-sans);font-size:var(--t-md);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration-color:var(--faint);text-underline-offset:3px}a:hover{color:var(--sel);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--sel);outline-offset:2px;border-radius:3px}::selection{background:var(--sel);color:var(--sel-ink)}img,svg,canvas{display:block;max-width:100%}h1,h2,h3{line-height:1.15;letter-spacing:-.02em;font-weight:600;margin:0}p{margin:0 0 var(--s4)}code,.mono{font-family:var(--font-mono)}.wrap{width:min(var(--wrap),100% - 32px);margin-inline:auto}.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);margin:0 0 var(--s3);font-weight:500}.label .count{color:var(--faint);margin-left:6px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;margin:0 0 var(--s4)}.sec-head h2{font-size:var(--t-lg)}.sec-head .meta{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--dim)}.page-head{padding:var(--s7) 0 var(--s6);border-bottom:1px solid var(--line);margin-bottom:var(--s6)}.page-head .path{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--dim);margin:0 0 var(--s3)}.page-head .path b{color:var(--sel);font-weight:500}.page-head h1{font-size:var(--t-2xl);letter-spacing:-.03em}.page-head .lede{color:var(--dim);font-size:var(--t-lg);max-width:62ch;margin:var(--s4) 0 0}.props{margin:0;display:grid;grid-template-columns:92px 1fr;gap:7px var(--s2);font-size:var(--t-sm)}.props dt{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--dim);padding-top:2px}.props dd{margin:0;min-width:0;overflow-wrap:anywhere}.props .hl{color:var(--sel)}.table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.table th{text-align:left;font-family:var(--font-mono);font-weight:400;font-size:var(--t-2xs);color:var(--dim);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:10px;border-bottom:1px solid var(--line-soft);vertical-align:top}.table tbody tr{cursor:pointer}.table tbody tr:hover td,.table tbody tr:focus-within td{background:var(--sel-soft)}.table tbody tr:hover .id,.table tbody tr:focus-within .id{color:var(--sel)}.table .id{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--dim);white-space:nowrap}.table .dim{color:var(--dim)}.table a{text-decoration:none}.table a:after{content:"";position:absolute;inset:0}.table tr{position:relative}.pill{display:inline-block;font-family:var(--font-mono);font-size:var(--t-2xs);border:1px solid var(--line);padding:1px 8px;border-radius:999px;white-space:nowrap;color:var(--text)}.pill.hl{border-color:var(--sel);color:var(--sel)}.tag{font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--dim);white-space:nowrap}.tag+.tag:before{content:"·";margin:0 5px;color:var(--faint)}.chip{font:inherit;font-family:var(--font-mono);font-size:var(--t-xs);color:var(--dim);background:transparent;border:1px solid var(--line);border-radius:var(--radius);padding:4px 10px;cursor:pointer}.chip:hover{color:var(--text);background:var(--raise)}.chip[aria-pressed=true]{color:var(--sel-ink);background:var(--sel);border-color:var(--sel)}.btn{display:inline-flex;align-items:center;gap:var(--s2);font-family:var(--font-mono);font-size:var(--t-xs);text-decoration:none;color:var(--text);background:var(--raise);border:1px solid var(--line);border-radius:var(--radius);padding:6px 12px}.btn:hover{border-color:var(--sel);color:var(--sel)}.btn.primary{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}.btn.primary:hover{filter:brightness(1.08);color:var(--sel-ink)}.prose{max-width:70ch;font-size:var(--t-md)}.prose h2{font-family:var(--font-mono);font-size:var(--t-xs);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--sel);margin:var(--s6) 0 var(--s3)}.prose h2:first-child{margin-top:0}.prose h3{font-size:var(--t-md);margin:var(--s5) 0 var(--s2)}.prose ul{padding-left:18px;margin:0 0 var(--s4)}.prose li{margin:4px 0}.prose li::marker{color:var(--faint)}.prose strong{font-weight:600}.prose code{font-size:.9em;background:var(--raise);padding:1px 5px;border-radius:4px}.note{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--faint)}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}html,body{overflow-x:clip}.skip[data-astro-cid-5hce7sga]{position:absolute;left:-999px;top:8px;z-index:50;background:var(--sel);color:var(--sel-ink);padding:6px 10px;border-radius:var(--radius)}.skip[data-astro-cid-5hce7sga]:focus{left:8px}.appbar[data-astro-cid-5hce7sga]{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--s5);height:var(--bar-h);padding:0 var(--s4);background:var(--panel);border-bottom:1px solid var(--line)}.brand[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-mono);font-weight:500;font-size:var(--t-sm);text-decoration:none;white-space:nowrap}.brand[data-astro-cid-5hce7sga]:hover{color:var(--text)}.brand[data-astro-cid-5hce7sga] .path[data-astro-cid-5hce7sga]{color:var(--dim)}.mark[data-astro-cid-5hce7sga]{width:10px;height:10px;border:1.5px solid var(--sel);transform:rotate(45deg);border-radius:1px}nav[data-astro-cid-5hce7sga]{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{padding:5px 10px;border-radius:var(--radius);color:var(--dim);text-decoration:none;font-size:var(--t-sm);white-space:nowrap}nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--text);background:var(--raise)}nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga][aria-current=page]{color:var(--text);background:var(--raise);box-shadow:inset 0 -2px 0 var(--sel)}.theme[data-astro-cid-5hce7sga]{flex:none;width:30px;height:30px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);border-radius:var(--radius);color:var(--dim);cursor:pointer;padding:0}.theme[data-astro-cid-5hce7sga]:hover{color:var(--sel);border-color:var(--sel)}.theme[data-astro-cid-5hce7sga] svg[data-astro-cid-5hce7sga]{width:15px;height:15px}@media(max-width:640px){.brand[data-astro-cid-5hce7sga] .path[data-astro-cid-5hce7sga]{display:none}.appbar[data-astro-cid-5hce7sga]{gap:var(--s3);padding:0 var(--s3)}}.foot[data-astro-cid-5hce7sga]{margin-top:var(--s8);border-top:1px solid var(--line);background:var(--panel);padding:var(--s6) 0 var(--s4)}.foot-in[data-astro-cid-5hce7sga]{display:flex;justify-content:space-between;align-items:end;gap:var(--s5);flex-wrap:wrap}.mail[data-astro-cid-5hce7sga]{font-family:var(--font-mono);font-size:var(--t-md)}.links[data-astro-cid-5hce7sga]{list-style:none;margin:0;padding:0;display:flex;gap:var(--s5);flex-wrap:wrap;font-size:var(--t-sm)}.links[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{color:var(--dim);text-decoration:none}.links[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--sel)}.foot-meta[data-astro-cid-5hce7sga]{display:flex;justify-content:space-between;gap:var(--s3);margin-top:var(--s6);font-family:var(--font-mono);font-size:var(--t-2xs);color:var(--faint)}.app[data-astro-cid-5hce7sga] .foot[data-astro-cid-5hce7sga]{margin-top:0}
