@font-face{font-family:Inter Fallback;font-weight:100 400;src:local(Arial),local(ArialMT),local(Liberation Sans),local(LiberationSans);size-adjust:107.13%;ascent-override:90.43%;descent-override:22.52%;line-gap-override:0%}@font-face{font-family:Inter Fallback;font-weight:500;src:local(Arial),local(ArialMT),local(Liberation Sans),local(LiberationSans);size-adjust:108.29%;ascent-override:89.45%;descent-override:22.27%;line-gap-override:0%}@font-face{font-family:Inter Fallback;font-weight:600;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold),local(LiberationSans-Bold);size-adjust:101.32%;ascent-override:95.61%;descent-override:23.81%;line-gap-override:0%}@font-face{font-family:Inter Fallback;font-weight:700 900;src:local(Arial Bold),local(Arial-BoldMT),local(Liberation Sans Bold),local(LiberationSans-Bold);size-adjust:102.38%;ascent-override:94.62%;descent-override:23.56%;line-gap-override:0%}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700.woff2)format("woff2")}:root{--kn-page:var(--lightningcss-light,#f8f9f4)var(--lightningcss-dark,#191d17);--kn-text-primary:var(--lightningcss-light,#10131d)var(--lightningcss-dark,#f4f6ef);--kn-text-secondary:var(--lightningcss-light,#78818a)var(--lightningcss-dark,#b3bcae);--kn-text-tertiary:var(--lightningcss-light,#606971)var(--lightningcss-dark,#c1c9ba);--kn-text-muted:var(--lightningcss-light,#858d94)var(--lightningcss-dark,#abb5a5);--kn-accent:#d4ec37;--kn-accent-strong:var(--lightningcss-light,#adc724)var(--lightningcss-dark,#d4ec37);--kn-card:var(--lightningcss-light,#fff)var(--lightningcss-dark,#252b22);--kn-card-border:var(--lightningcss-light,#eceee7)var(--lightningcss-dark,#3a4433);--kn-border:var(--lightningcss-light,#e6e9df)var(--lightningcss-dark,#414b38);--kn-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#2c3328);--kn-segment-track:var(--lightningcss-light,#eeefea)var(--lightningcss-dark,#2e3529);--kn-tab-selected:var(--lightningcss-light,#eef6c8)var(--lightningcss-dark,#47541a);--kn-comment-strip:var(--lightningcss-light,#f4f5ef)var(--lightningcss-dark,#30372a);--kn-font:"Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--kn-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--vocs-font-family:var(--kn-font);--vocs-font-family-mono:var(--kn-font-mono);--vocs-background-color-primary:var(--kn-page);--vocs-background-color-surface:var(--kn-card);--vocs-background-color-surfaceMuted:var(--kn-segment-track);--vocs-background-color-surfaceTint:var(--kn-comment-strip);--vocs-background-color-code-block:var(--kn-comment-strip);--vocs-background-color-code-highlighted:var(--kn-segment-track);--vocs-background-color-inline-code:var(--kn-segment-track);--vocs-border-color-code-highlighted:var(--kn-border);--vocs-text-color-primary:var(--kn-text-primary);--vocs-text-color-secondary:var(--kn-text-tertiary);--vocs-text-color-muted:var(--kn-text-muted);--vocs-text-color-heading:var(--kn-text-primary);--vocs-text-color-link:var(--kn-text-primary);--vocs-text-color-link-hover:var(--kn-text-secondary);--vocs-text-color-quote:var(--kn-text-secondary);--vocs-border-color-primary:var(--kn-border);--vocs-border-color-secondary:var(--kn-card-border);--vocs-color-note:var(--kn-text-secondary)}h1[data-v],h2[data-v]{letter-spacing:-.02em;font-weight:700}h3[data-v],h4[data-v]{letter-spacing:-.01em;font-weight:600}a[data-v],[data-v-link]{font-weight:inherit}:root,[data-v-surface-bg],[data-v-outline-mobile]{background-color:var(--kn-page)}[data-v-logo-image]{width:auto;height:18px}[data-v-sidebar]{--vocs-color-accent8:var(--kn-text-primary);--vocs-color-accenta3:var(--kn-tab-selected)}[data-v-outline-item] a[data-active=true]{color:var(--kn-text-primary)}[data-v-outline-item] a{overflow-wrap:anywhere}:root{--kf-ink:var(--kn-text-primary);--kf-soft:var(--kn-text-secondary);--kf-line:var(--kn-text-tertiary);--kf-panel:var(--kn-card);--kf-panel-line:var(--lightningcss-light,#d5d9cc)var(--lightningcss-dark,#4a5641);--kf-a:var(--lightningcss-light,#2563eb)var(--lightningcss-dark,#82adff);--kf-a-fill:var(--lightningcss-light,#dde8fd)var(--lightningcss-dark,#1f355c);--kf-b:var(--lightningcss-light,#c2185b)var(--lightningcss-dark,#f48fb8);--kf-b-fill:var(--lightningcss-light,#fadbe8)var(--lightningcss-dark,#552139);--kf-ok:var(--lightningcss-light,#2f8f46)var(--lightningcss-dark,#8fdc9c);--kf-ok-fill:var(--lightningcss-light,#ddf1d6)var(--lightningcss-dark,#234428);--kf-bad:var(--lightningcss-light,#d92d2d)var(--lightningcss-dark,#ff8a8a)}.kiwi-figure{text-align:center;margin:1.5rem 0;overflow-x:auto}.kiwi-figure figcaption{color:var(--kn-text-secondary);margin-top:.5rem;font-size:.875rem}.kf{width:100%;height:auto;font-family:var(--kn-font);display:inline-block;overflow:visible}.kf text{fill:var(--kf-ink)}.kf .kf-soft{fill:var(--kf-soft)}.kf .kf-strong{font-weight:600}.kf .kf-mono{font-family:var(--kn-font-mono)}.kf .kf-bad-text{fill:var(--kf-bad)}.kf-plain{--kf-tone:var(--kf-line);--kf-tone-fill:var(--kf-panel)}.kf-a{--kf-tone:var(--kf-a);--kf-tone-fill:var(--kf-a-fill)}.kf-b{--kf-tone:var(--kf-b);--kf-tone-fill:var(--kf-b-fill)}.kf-ok{--kf-tone:var(--kf-ok);--kf-tone-fill:var(--kf-ok-fill)}.kf-ghost{--kf-tone:var(--kf-b);--kf-tone-fill:none}.kf-node>circle,.kf-node>rect,.kf-envelope>rect,.kf-cell{fill:var(--kf-tone-fill);stroke:var(--kf-tone);stroke-width:1.4px}.kf-ghost>rect{stroke-dasharray:4 3}.kf-envelope>path{fill:none;stroke:var(--kf-tone);stroke-width:1.4px;stroke-linejoin:round}.kf-panel{fill:var(--kf-panel);stroke:var(--kf-panel-line);stroke-width:1px}.kf-arrow>path,.kf-edge,.kf-link{fill:none;stroke:var(--kf-line);stroke-width:1.3px}.kf-arrow>polygon{fill:var(--kf-line)}.kf-check,.kf-cross{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.kf-check{stroke:var(--kf-ok)}.kf-cross{stroke:var(--kf-bad)}
