*,::before,::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::before,::after{--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol,noto color emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--bg:#faf8f3;--header-bg:#f5f3ed;--text:#1a1a1a;--border:#b0b0b0;--code-bg:#f0ede6;--code-bg-light:#f5f2ec;--accent:#cccccc;--link-hover:#c45a2c}.dark{--bg:#1a1a1a;--header-bg:#141414;--text:#f5f2eb;--border:#333333;--code-bg:#2a2a2a;--code-bg-light:#222222;--accent:#555555;--link-hover:#e07040}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.7}body{font-family:jetbrains mono,sf mono,consolas,monospace;background-color:var(--bg);color:var(--text);min-height:100vh;transition:background-color .2s,color .2s}::-moz-selection{background:var(--text);color:var(--bg)}::selection{background:var(--text);color:var(--bg)}a:hover{color:var(--link-hover)}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=As]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=as]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=Is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=is]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:initial;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *))::after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:var(--text);--tw-prose-headings:var(--text);--tw-prose-lead:#4b5563;--tw-prose-links:var(--text);--tw-prose-bold:var(--text);--tw-prose-counters:var(--text);--tw-prose-bullets:var(--text);--tw-prose-hr:var(--border);--tw-prose-quotes:var(--text);--tw-prose-quote-borders:var(--border);--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgb(17 24 39 / 10%);--tw-prose-code:var(--text);--tw-prose-pre-code:var(--text);--tw-prose-pre-bg:var(--code-bg);--tw-prose-th-borders:var(--border);--tw-prose-td-borders:var(--border);--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:rgb(255 255 255 / 10%);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgb(0 0 0 / 50%);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.logo-text{font-family:jetbrains mono,monospace;font-size:77px;font-weight:700;fill:var(--text);letter-spacing:-2px}.logo-dot{font-family:jetbrains mono,monospace;font-size:77px;font-weight:400;fill:var(--accent)}.logo-bracket{font-family:jetbrains mono,monospace;font-size:77px;font-weight:300;fill:var(--accent)}.toc ul{list-style-type:none;padding-left:0;font-size:.875rem}.toc ul ul{padding-left:1rem}.toc li{margin-bottom:.25rem}.toc a{color:var(--text);text-decoration-line:none}.toc a:hover{text-decoration-line:underline}.post-content hr{margin-top:1rem;margin-bottom:1rem}.post-content :not(pre)>code{border-radius:.125rem;background-color:var(--code-bg);padding-left:.375rem;padding-right:.375rem;padding-top:.125rem;padding-bottom:.125rem;font-size:.875rem}.post-content :not(pre)>code::before,.post-content :not(pre)>code::after{content:none}.post-content ol{padding-left:2rem}.post-content ul.task-list,.post-content ul:has(input[type=checkbox]){list-style-type:none;padding-left:.75rem}.post-content li:has(>input[type=checkbox]){list-style-type:none}.post-content ol ol{list-style-type:lower-alpha}.post-content ol ol ol{list-style-type:lower-roman}.post-content ol ol ol ol{list-style-type:upper-alpha}.post-content th,.post-content td{border-width:1px;border-color:var(--border);padding-left:.75rem;padding-right:.75rem;padding-top:.5rem;padding-bottom:.5rem}.post-content th{background-color:var(--code-bg)}.post-content tr:hover{background-color:var(--code-bg)}.post-content .side-by-side{margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:1rem}.post-content .side-by-side>table{margin-bottom:0;min-width:0;flex:1;width:auto!important}.code-compare{margin-bottom:1.25rem;display:flex;flex-wrap:wrap;gap:1rem}.code-compare .highlight{margin-bottom:0;min-width:0;flex:1}.highlight{position:relative;margin-bottom:1.25rem;overflow:hidden;border-radius:.125rem}.copy-btn{position:absolute;top:.5rem;right:.5rem;border-radius:.125rem;padding-left:.5rem;padding-right:.5rem;padding-top:.25rem;padding-bottom:.25rem;font-size:.75rem;opacity:0;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms;background-color:var(--border);color:var(--text)}.highlight:hover .copy-btn{opacity:1}.copy-btn:hover{background-color:var(--accent)}.highlight pre{background-color:var(--code-bg);margin:0;overflow-x:auto;border-radius:.125rem;padding:1rem;font-size:.875rem}.highlight .lntable{width:100%;background-color:var(--code-bg);border-radius:.125rem}.highlight .lntable pre{margin:0;border-radius:0;padding:0}.highlight .lntd:first-child{-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-right:.25rem;width:1%;min-width:-moz-fit-content;min-width:fit-content;background-color:var(--code-bg-light)}.highlight .lntd:first-child pre{padding-top:1rem;padding-bottom:1rem;padding-left:.5rem;background-color:var(--code-bg-light)}.highlight .lntd:last-child{width:100%}.highlight .lntd:last-child pre{overflow-x:auto;padding-top:1rem;padding-bottom:1rem;padding-left:.75rem;padding-right:1rem}.highlight code{font-family:jetbrains mono,sf mono,consolas,monospace}mjx-container{overflow-x:auto}mjx-container[display=true]{display:block!important;text-align:center!important;margin:1.5rem 0!important}.static{position:static}.fixed{position:fixed}.relative{position:relative}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-1\/2{left:50%}.left-6{left:1.5rem}.right-0{right:0}.right-6{right:1.5rem}.top-0{top:0}.top-8{top:2rem}.z-\[100\]{z-index:100}.z-\[99\]{z-index:99}.mx-auto{margin-left:auto;margin-right:auto}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-16{height:4rem}.h-auto{height:auto}.min-h-\[60vh\]{min-height:60vh}.w-\[260px\]{width:260px}.w-\[700px\]{width:700px}.w-full{width:100%}.max-w-\[680px\]{max-width:680px}.max-w-\[90vw\]{max-width:90vw}.max-w-none{max-width:none}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.break-all{word-break:break-all}.rounded-sm{border-radius:.125rem}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-border{border-color:var(--border)}.border-text{border-color:var(--text)}.bg-bg{background-color:var(--bg)}.bg-code-bg{background-color:var(--code-bg)}.bg-header-bg{background-color:var(--header-bg)}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-loose{line-height:1.8}.tracking-wide{letter-spacing:.025em}.text-text{color:var(--text)}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:150ms}.typewriter{display:inline-block;overflow:hidden;white-space:nowrap;width:0;animation:typing 2s steps(34).5s forwards}.cursor-blink{display:inline-block;animation:blink 1s step-end infinite}@keyframes typing{from{width:0}to{width:34ch}}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}@media(max-width:600px){.logo-svg{max-width:400px}}.bg{color:#3c3836;background-color:#fbf1c7}.chroma{color:#3c3836;background-color:#fbf1c7}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#e1d8b3}.chroma .lnt{white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.chroma .ln{white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#9d9b9a}.chroma .line{display:flex}.chroma .k{color:#af3a03}.chroma .kc{color:#af3a03}.chroma .kd{color:#af3a03}.chroma .kn{color:#af3a03}.chroma .kp{color:#af3a03}.chroma .kr{color:#af3a03}.chroma .kt{color:#b57614}.chroma .na{color:#79740e;font-weight:700}.chroma .no{color:#d3869b}.chroma .ni{color:#b57614}.chroma .ne{color:#fb4934}.chroma .nl{color:#9d0006}.chroma .nt{color:#9d0006}.chroma .nb{color:#b57614}.chroma .bp{color:#b57614}.chroma .nf{color:#b57614}.chroma .fm{color:#b57614}.chroma .s{color:#79740e}.chroma .sa{color:#79740e}.chroma .sb{color:#79740e}.chroma .sc{color:#79740e}.chroma .dl{color:#79740e}.chroma .sd{color:#79740e}.chroma .s2{color:#79740e}.chroma .se{color:#79740e}.chroma .sh{color:#79740e}.chroma .si{color:#79740e}.chroma .sx{color:#79740e}.chroma .sr{color:#79740e}.chroma .s1{color:#79740e}.chroma .ss{color:#076678}.chroma .m{color:#8f3f71}.chroma .mb{color:#8f3f71}.chroma .mf{color:#8f3f71}.chroma .mh{color:#8f3f71}.chroma .mi{color:#8f3f71}.chroma .il{color:#8f3f71}.chroma .mo{color:#8f3f71}.chroma .o{color:#af3a03}.chroma .ow{color:#af3a03}.chroma .c{color:#928374;font-style:italic}.chroma .ch{color:#928374;font-style:italic}.chroma .cm{color:#928374;font-style:italic}.chroma .c1{color:#928374;font-style:italic}.chroma .cs{color:#928374;font-style:italic}.chroma .cp{color:#427b58}.chroma .cpf{color:#427b58;font-style:italic}.chroma .gd{color:#282828;background-color:#9d0006}.chroma .ge{color:#076678;text-decoration:underline}.chroma .gr{background-color:#9d0006;font-weight:700}.chroma .gh{color:#79740e;font-weight:700}.chroma .gi{color:#282828;background-color:#79740e}.chroma .go{color:#504945}.chroma .gu{color:#79740e;font-weight:700}.chroma .gt{background-color:#3c3836;font-weight:700}.dark .bg{color:#ebdbb2;background-color:#282828}.dark .chroma{color:#ebdbb2;background-color:#282828}.dark .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.dark .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.dark .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.dark .chroma .hl{background-color:#3d3d3d}.dark .chroma .lnt{white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.dark .chroma .ln{white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#756d59}.dark .chroma .line{display:flex}.dark .chroma .k{color:#fe8019}.dark .chroma .kc{color:#fe8019}.dark .chroma .kd{color:#fe8019}.dark .chroma .kn{color:#fe8019}.dark .chroma .kp{color:#fe8019}.dark .chroma .kr{color:#fe8019}.dark .chroma .kt{color:#fabd2f}.dark .chroma .na{color:#b8bb26;font-weight:700}.dark .chroma .no{color:#d3869b}.dark .chroma .ni{color:#fabd2f}.dark .chroma .ne{color:#fb4934}.dark .chroma .nl{color:#fb4934}.dark .chroma .nt{color:#fb4934}.dark .chroma .nb{color:#fabd2f}.dark .chroma .bp{color:#fabd2f}.dark .chroma .nf{color:#fabd2f}.dark .chroma .fm{color:#fabd2f}.dark .chroma .s{color:#b8bb26}.dark .chroma .sa{color:#b8bb26}.dark .chroma .sb{color:#b8bb26}.dark .chroma .sc{color:#b8bb26}.dark .chroma .dl{color:#b8bb26}.dark .chroma .sd{color:#b8bb26}.dark .chroma .s2{color:#b8bb26}.dark .chroma .se{color:#b8bb26}.dark .chroma .sh{color:#b8bb26}.dark .chroma .si{color:#b8bb26}.dark .chroma .sx{color:#b8bb26}.dark .chroma .sr{color:#b8bb26}.dark .chroma .s1{color:#b8bb26}.dark .chroma .ss{color:#83a598}.dark .chroma .m{color:#d3869b}.dark .chroma .mb{color:#d3869b}.dark .chroma .mf{color:#d3869b}.dark .chroma .mh{color:#d3869b}.dark .chroma .mi{color:#d3869b}.dark .chroma .il{color:#d3869b}.dark .chroma .mo{color:#d3869b}.dark .chroma .o{color:#fe8019}.dark .chroma .ow{color:#fe8019}.dark .chroma .c{color:#928374;font-style:italic}.dark .chroma .ch{color:#928374;font-style:italic}.dark .chroma .cm{color:#928374;font-style:italic}.dark .chroma .c1{color:#928374;font-style:italic}.dark .chroma .cs{color:#928374;font-style:italic}.dark .chroma .cp{color:#8ec07c}.dark .chroma .cpf{color:#8ec07c;font-style:italic}.dark .chroma .gd{color:#282828;background-color:#fb4934}.dark .chroma .ge{color:#83a598;text-decoration:underline}.dark .chroma .gr{background-color:#fb4934;font-weight:700}.dark .chroma .gh{color:#b8bb26;font-weight:700}.dark .chroma .gi{color:#282828;background-color:#b8bb26}.dark .chroma .go{color:#504945}.dark .chroma .gu{color:#b8bb26;font-weight:700}.dark .chroma .gt{background-color:#fb4934;font-weight:700}.first\:mt-0:first-child{margin-top:0}.first\:border-0:first-child{border-width:0}.first\:pt-0:first-child{padding-top:0}@media(min-width:768px){.md\:max-w-\[80\%\]{max-width:80%}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}}