@font-face{font-family:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./work-sans-vietnamese-wght-normal.BKsN3ITN.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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./work-sans-latin-ext-wght-normal.B5dZ8C4S.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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./work-sans-latin-wght-normal.Bl-S9Xys.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(./ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(./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(./ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(./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(./ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(./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(./ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(./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(./ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(./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:Yeseva One;font-style:normal;font-display:swap;font-weight:400;src:url(./yeseva-one-cyrillic-ext-400-normal.BcI5FCwK.woff2) format("woff2"),url(./yeseva-one-cyrillic-ext-400-normal.tmV010Vw.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:Yeseva One;font-style:normal;font-display:swap;font-weight:400;src:url(./yeseva-one-cyrillic-400-normal.zn71iUjg.woff2) format("woff2"),url(./yeseva-one-cyrillic-400-normal.BqwkFOD0.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Yeseva One;font-style:normal;font-display:swap;font-weight:400;src:url(./yeseva-one-vietnamese-400-normal.b2m8LyeV.woff2) format("woff2"),url(./yeseva-one-vietnamese-400-normal.iZnAeTHK.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:Yeseva One;font-style:normal;font-display:swap;font-weight:400;src:url(./yeseva-one-latin-ext-400-normal.DZPYAEWq.woff2) format("woff2"),url(./yeseva-one-latin-ext-400-normal.Bfu-8ZsV.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:Yeseva One;font-style:normal;font-display:swap;font-weight:400;src:url(./yeseva-one-latin-400-normal.DOOi0Fwv.woff2) format("woff2"),url(./yeseva-one-latin-400-normal.BFTviq16.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}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video{display:block;max-width:100%;height:auto}canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}:root{--color-neutral-50: oklch(.985 .002 265);--color-neutral-100: oklch(.965 .003 265);--color-neutral-200: oklch(.92 .004 265);--color-neutral-300: oklch(.86 .006 265);--color-neutral-400: oklch(.72 .008 265);--color-neutral-500: oklch(.58 .01 265);--color-neutral-600: oklch(.48 .01 265);--color-neutral-700: oklch(.38 .01 265);--color-neutral-800: oklch(.27 .008 265);--color-neutral-900: oklch(.18 .006 265);--color-brand-50: oklch(.97 .015 266);--color-brand-100: oklch(.945 .025 266);--color-brand-200: oklch(.9 .045 266);--color-brand-300: oklch(.84 .08 266);--color-brand-400: oklch(.67 .17 266);--color-brand-500: oklch(.54 .22 266);--color-brand-600: oklch(.48 .225 266);--color-brand-700: oklch(.42 .2 266);--color-brand-800: oklch(.35 .16 266);--color-brand-900: oklch(.28 .12 266);--color-secondary-50: oklch(.98 .012 88);--color-secondary-100: oklch(.955 .025 88);--color-secondary-200: oklch(.91 .045 88);--color-secondary-300: oklch(.87 .065 86);--color-secondary-400: oklch(.82 .085 85);--color-secondary-500: oklch(.76 .095 84);--color-secondary-600: oklch(.67 .095 82);--color-secondary-700: oklch(.56 .085 80);--color-secondary-800: oklch(.45 .07 78);--color-secondary-900: oklch(.35 .055 76);--color-tertiary-50: oklch(.98 .01 185);--color-tertiary-100: oklch(.955 .022 185);--color-tertiary-200: oklch(.91 .04 185);--color-tertiary-300: oklch(.855 .06 185);--color-tertiary-400: oklch(.78 .085 185);--color-tertiary-500: oklch(.7 .1 185);--color-tertiary-600: oklch(.61 .092 187);--color-tertiary-700: oklch(.51 .078 189);--color-tertiary-800: oklch(.41 .062 191);--color-tertiary-900: oklch(.32 .048 193);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.75rem;--text-3xl: 2rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--text-6xl: 3.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-12: 3rem;--space-13: 3.25rem;--space-16: 4rem;--space-18: 4.5rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-full: 9999px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-tight: 1.1;--leading-snug: 1.2;--leading-normal: 1.4;--leading-relaxed: 1.5;--tracking-tight: -.02em;--tracking-normal: 0;--font-mono: "IBM Plex Mono", monospace;--font-sans: "Work Sans Variable", sans-serif;--font-serif: "Yeseva One", serif;--bg-default: var(--color-neutral-50);--bg-subtle: var(--color-neutral-100);--bg-muted: var(--color-neutral-200);--bg-emphasis: var(--color-neutral-900);--fg-default: var(--color-neutral-700);--fg-muted: var(--color-neutral-500);--fg-subtle: var(--color-neutral-400);--fg-on-brand: var(--color-neutral-50);--fg-on-emphasis: var(--color-neutral-50);--brand: var(--color-brand-500);--brand-hover: var(--color-brand-600);--brand-muted: var(--color-brand-400);--brand-subtle: var(--color-brand-200);--secondary: var(--color-secondary-400);--secondary-muted: var(--color-secondary-200);--tertiary: var(--color-tertiary-500);--tertiary-muted: var(--color-tertiary-200);--border-default: var(--color-neutral-300);--border-muted: var(--color-neutral-200);--layout-max-width: 1600px;--layout-y-padding: 32px;--layout-x-padding: 20px}@media (min-width: 768px){:root{--layout-x-padding: 32px}}.dark{--bg-default: var(--color-neutral-900);--bg-subtle: var(--color-neutral-800);--bg-muted: var(--color-neutral-700);--bg-emphasis: var(--color-neutral-50);--fg-default: var(--color-neutral-200);--fg-muted: var(--color-neutral-400);--fg-subtle: var(--color-neutral-500);--fg-on-brand: var(--color-neutral-50);--fg-on-emphasis: var(--color-neutral-900);--brand: var(--color-brand-400);--brand-hover: var(--color-brand-300);--brand-muted: var(--color-brand-300);--brand-subtle: var(--color-brand-800);--secondary: var(--color-secondary-200);--secondary-muted: var(--color-secondary-700);--tertiary: var(--color-tertiary-300);--tertiary-muted: var(--color-tertiary-800);--border-default: var(--color-neutral-700);--border-muted: var(--color-neutral-800)}html,body{margin:0;width:100%;height:100%;scroll-behavior:smooth;scrollbar-gutter:stable}:is(html,body)>div{height:100%}body{font-family:var(--font-sans);color:var(--fg-default);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;background-color:var(--bg-default);transition:background-color .2s ease}a{color:inherit}a:focus-visible{outline-offset:4px}p{margin-bottom:var(--space-4)}button{border:none;background:none;padding:0;cursor:pointer}.grid-layout{width:90%;margin:0 auto;max-width:1600px;display:grid;grid-template-columns:repeat(6,1fr)}.prose{line-height:var(--leading-relaxed);text-wrap:pretty}.prose:target,.prose [id]{scroll-margin-top:120px}.prose p,.prose li{font-size:var(--text-md)}.prose h1,.prose h2{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--font-weight-normal);line-height:var(--leading-snug);margin:1.5em 0 1em;color:var(--brand)}.prose h3{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--font-weight-normal);line-height:var(--leading-snug);margin:1.5em 0 1em;color:var(--brand)}.prose p>code{background-color:var(--bg-subtle);padding:2px 4px;border-radius:var(--radius-sm);font-size:var(--text-base)}.prose pre{padding:var(--space-4) var(--space-4) var(--space-1);border-radius:var(--radius-md);margin:1.5em -1rem}.prose pre code{display:block;max-width:100%;overflow-x:auto;padding-bottom:var(--space-3)}.prose pre code::-webkit-scrollbar-thumb{background:#f5f5f499;border-radius:2px}.prose pre code::-webkit-scrollbar{height:4px;background-color:inherit}.prose li{margin-bottom:var(--space-2)}.prose li:last-of-type{margin-bottom:var(--space-4)}.prose img{margin:var(--space-6) auto}.prose blockquote{border-left:2px solid var(--fg-muted);margin:1rem 0;padding:var(--space-2) var(--space-5);border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.prose [id]{position:relative}.prose [id] .heading-link{position:absolute;top:0;bottom:0;left:0;margin:auto;display:flex;align-items:center;justify-content:center;width:var(--space-5);height:var(--space-5);translate:-130% 0;border-radius:var(--radius-full);opacity:0;transition:opacity .2s ease}.prose [id] .heading-link:hover,.prose [id] .heading-link:focus-visible{opacity:1}.prose [id]:hover .heading-link{opacity:1}@media (max-width: 768px){.mobile-hide{display:none}}.lil-gui{height:fit-content}/**
 * Coldark Theme for Prism.js
 * Theme variation: Dark
 * Tested with HTML, CSS, JS, JSON, PHP, YAML, Bash script
 * @author Armand Philippot <contact@armandphilippot.com>
 * @homepage https://github.com/ArmandPhilippot/coldark-prism
 * @license MIT
 */code[class*=language-],pre[class*=language-]{color:#e3eaf2;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection{background:#3c526d}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{background:#3c526d}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#111b27}:not(pre)>code[class*=language-]{padding:.1em .3em;border-radius:.3em;white-space:normal}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8da1b9}.token.punctuation{color:#e3eaf2}.token.delimiter.important,.token.selector .parent,.token.tag,.token.tag .token.punctuation{color:#6cc}.token.attr-name,.token.boolean,.token.boolean.important,.token.number,.token.constant,.token.selector .token.attribute{color:#e6d37a}.token.class-name,.token.key,.token.parameter,.token.property,.token.property-access,.token.variable{color:#6cb8e6}.token.attr-value,.token.inserted,.token.color,.token.selector .token.value,.token.string,.token.string .token.url-link{color:#91d076}.token.builtin,.token.keyword-array,.token.package,.token.regex{color:#f4adf4}.token.function,.token.selector .token.class,.token.selector .token.id{color:#c699e3}.token.atrule .token.rule,.token.combinator,.token.keyword,.token.operator,.token.pseudo-class,.token.pseudo-element,.token.selector,.token.unit{color:#e9ae7e}.token.deleted,.token.important{color:#cd6660}.token.keyword-this,.token.this{color:#6cb8e6}.token.important,.token.keyword-this,.token.this,.token.bold{font-weight:700}.token.delimiter.important{font-weight:inherit}.token.italic{font-style:italic}.token.entity{cursor:help}.language-markdown .token.title,.language-markdown .token.title .token.punctuation{color:#6cb8e6;font-weight:700}.language-markdown .token.blockquote.punctuation{color:#f4adf4}.language-markdown .token.code{color:#6cc}.language-markdown .token.hr.punctuation{color:#6cb8e6}.language-markdown .token.url .token.content{color:#91d076}.language-markdown .token.url-link{color:#e6d37a}.language-markdown .token.list.punctuation{color:#f4adf4}.language-markdown .token.table-header,.language-json .token.operator{color:#e3eaf2}.language-scss .token.variable{color:#6cc}.token.token.tab:not(:empty):before,.token.token.cr:before,.token.token.lf:before,.token.token.space:before{color:#8da1b9}div.code-toolbar>.toolbar.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button{color:#111b27;background:#6cb8e6}div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>button:focus{color:#111b27;background:#6cb8e6da;text-decoration:none}div.code-toolbar>.toolbar.toolbar>.toolbar-item>span,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:hover,div.code-toolbar>.toolbar.toolbar>.toolbar-item>span:focus{color:#111b27;background:#8da1b9}.line-highlight.line-highlight{background:#3c526d5f;background:linear-gradient(to right,#3c526d5f 70%,#3c526d55)}.line-highlight.line-highlight:before,.line-highlight.line-highlight[data-end]:after{background-color:#8da1b9;color:#111b27;box-shadow:0 1px #3c526d}pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows>span:hover:before{background-color:#8da1b918}.line-numbers.line-numbers .line-numbers-rows{border-right:1px solid #0b121b;background:#0b121b7a}.line-numbers .line-numbers-rows>span:before{color:#8da1b9da}.rainbow-braces .token.token.punctuation.brace-level-1,.rainbow-braces .token.token.punctuation.brace-level-5,.rainbow-braces .token.token.punctuation.brace-level-9{color:#e6d37a}.rainbow-braces .token.token.punctuation.brace-level-2,.rainbow-braces .token.token.punctuation.brace-level-6,.rainbow-braces .token.token.punctuation.brace-level-10{color:#f4adf4}.rainbow-braces .token.token.punctuation.brace-level-3,.rainbow-braces .token.token.punctuation.brace-level-7,.rainbow-braces .token.token.punctuation.brace-level-11{color:#6cb8e6}.rainbow-braces .token.token.punctuation.brace-level-4,.rainbow-braces .token.token.punctuation.brace-level-8,.rainbow-braces .token.token.punctuation.brace-level-12{color:#c699e3}pre.diff-highlight>code .token.token.deleted:not(.prefix),pre>code.diff-highlight .token.token.deleted:not(.prefix){background-color:#cd66601f}pre.diff-highlight>code .token.token.inserted:not(.prefix),pre>code.diff-highlight .token.token.inserted:not(.prefix){background-color:#91d0761f}.command-line .command-line-prompt{border-right:1px solid #0b121b}.command-line .command-line-prompt>span:before{color:#8da1b9da}.main.svelte-12qhfyh{max-width:var(--layout-max-width);margin:0 auto;padding:0 var(--layout-x-padding);min-height:100vh}@media (min-width: 768px){.main.svelte-12qhfyh{padding:var(--layout-y-padding) var(--layout-x-padding)}}
