@font-face{font-family:PragmataPro;font-style:normal;font-weight:400;font-display:swap;src:url(/_astro/PragmataPro_Mono_R_liga_0830.k2-v3W6-.woff2) format("woff2")}@font-face{font-family:PragmataPro;font-style:italic;font-weight:400;font-display:swap;src:url(/_astro/PragmataPro_Mono_I_liga_0830.BSNFukBh.woff2) format("woff2")}@font-face{font-family:PragmataPro;font-style:normal;font-weight:700;font-display:swap;src:url(/_astro/PragmataPro_Mono_B_liga_0830.BReVXmfc.woff2) format("woff2")}@font-face{font-family:PragmataPro;font-style:italic;font-weight:700;font-display:swap;src:url(/_astro/PragmataPro_Mono_Z_liga_0830.CtZ_82WT.woff2) format("woff2")}@font-face{font-family:Roobert;font-style:normal;font-weight:300 900;font-display:swap;src:url(/_astro/RoobertUprightsVF.Rw1l4Sqq.woff2) format("woff2-variations")}@font-face{font-family:Roobert;font-style:italic;font-weight:300 900;font-display:swap;src:url(/_astro/RoobertItalicsVF.Bxz3Ryk0.woff2) format("woff2-variations")}:root{--space-0: 0;--space-2: .125rem;--space-4: .25rem;--space-8: .5rem;--space-12: .75rem;--space-16: 1rem;--space-24: 1.5rem;--space-32: 2rem;--space-40: 2.5rem;--space-48: 3rem;--space-64: 4rem;--space-80: 5rem;--space-96: 6rem;--space-128: 8rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 24px;--radius-full: 9999px;--stroke-1: 1px;--stroke-2: 2px;--layout-content-max-width: 960px;--layout-aside-width: 22rem}:root{--color-grello: #abf716;--color-grello-light: #b1e051;--color-grello-dark: #303d16;--color-cyan: #87e0d1;--color-cyan-dark: #5eb8aa;--color-white: #ffffff;--color-black: #010101;--color-slate-dark: #262928;--color-teal: #00a388;--color-teal-light: #99dacf;--color-blue: #0091db;--color-blue-light: #99d3f1;--color-purple: #7549cc;--color-purple-light: #c8b6eb;--color-pink: #f043b5;--color-pink-light: #f9b4e1;--color-orange: #f56014;--color-orange-light: #fbbfa1;--color-status-success: #34d399;--color-status-warning: #fbbf24;--color-status-danger: #f87171;--color-status-success-light: #10b981;--color-status-warning-light: #f59e0b;--color-status-danger-light: #ef4444;--color-bg: var(--color-slate-dark);--color-bg-sidebar: var(--color-black);--color-bg-elevated: #3d4140;--color-bg-inset: #191b1a;--color-bg-subtle: #1f2221;--color-fg: var(--color-white);--color-fg-muted: #9ca5a2;--color-fg-subtle: #6b7573;--color-border: #4b514f;--color-border-strong: #858d8b;--color-border-subtle: #343937;--color-primary: var(--color-grello);--color-primary-light: var(--color-grello-light);--color-primary-dark: var(--color-grello-dark);--color-primary-contrast: var(--color-black);--color-accent: var(--color-cyan);--color-accent-dark: var(--color-cyan-dark);--color-link: var(--color-primary);--color-link-hover: var(--color-primary-light);--color-success: var(--color-status-success);--color-warning: var(--color-status-warning);--color-danger: var(--color-status-danger);--color-selection-bg: color-mix(in srgb, var(--color-primary) 25%, transparent);--color-focus-ring: color-mix(in srgb, var(--color-primary) 55%, transparent)}:root[data-theme=light]{--color-bg: var(--color-white);--color-bg-sidebar: var(--color-black);--color-bg-elevated: #f7f8f8;--color-bg-inset: #e2e4e3;--color-bg-subtle: #f0f1f1;--color-fg: #141716;--color-fg-muted: #5c6462;--color-fg-subtle: #848b89;--color-border: #c5c9c8;--color-border-strong: #9da3a1;--color-border-subtle: #d8dada;--color-success: var(--color-status-success-light);--color-warning: var(--color-status-warning-light);--color-danger: var(--color-status-danger-light)}:root{--_font-family-sans: "Roobert", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--_font-family-mono: "PragmataPro", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--_font-weight-regular: 400;--_font-weight-medium: 500;--_font-weight-semibold: 600;--_font-weight-bold: 700;--_font-weight-black: 900;--_letter-spacing-tight: -.02em;--_letter-spacing-normal: 0;--_letter-spacing-wide: .04em;--_line-height-1: 1;--_line-height-2: 1.2;--_line-height-3: 1.35;--_line-height-4: 1.5;--_line-height-5: 1.65;--_font-size-1: .75rem;--_font-size-2: .875rem;--_font-size-3: 1rem;--_font-size-4: 1.125rem;--_font-size-5: 1.25rem;--_font-size-6: 1.5rem;--_font-size-7: 1.75rem;--_font-size-8: 2.25rem;--_font-size-9: 3rem;--_font-size-10: 5.25rem;--text-display-size: var(--_font-size-10);--text-display-line-height: 5.25rem;--text-display-letter-spacing: -1.68px;--text-display: var(--_font-weight-black) var(--text-display-size) / var(--text-display-line-height) var(--_font-family-sans);--text-title-size: var(--_font-size-9);--text-title-line-height: 3.25rem;--text-title-letter-spacing: -.96px;--text-title: var(--_font-weight-bold) var(--text-title-size) / var(--text-title-line-height) var(--_font-family-sans);--text-heading-size: var(--_font-size-7);--text-heading-line-height: 2rem;--text-heading: var(--_font-weight-bold) var(--text-heading-size) / var(--text-heading-line-height) var(--_font-family-sans);--text-lg-size: var(--_font-size-5);--text-lg-line-height: 1.75rem;--text-lg: var(--_font-weight-regular) var(--text-lg-size) / var(--text-lg-line-height) var(--_font-family-sans);--text-label-size: var(--_font-size-5);--text-label-line-height: 1.5rem;--text-label: var(--_font-weight-semibold) var(--text-label-size) / var(--text-label-line-height) var(--_font-family-sans);--text-base-size: var(--_font-size-4);--text-base-line-height: 1.5rem;--text-base: var(--_font-weight-regular) var(--text-base-size) / var(--text-base-line-height) var(--_font-family-sans);--text-sm-size: var(--_font-size-3);--text-sm-line-height: 1.5rem;--text-sm: var(--_font-weight-medium) var(--text-sm-size) / var(--text-sm-line-height) var(--_font-family-sans);--text-caption-size: var(--_font-size-2);--text-caption-line-height: 1.25rem;--text-caption-letter-spacing: .56px;--text-caption: var(--_font-weight-bold) var(--text-caption-size) / var(--text-caption-line-height) var(--_font-family-sans);--text-fine-size: var(--_font-size-1);--text-fine-line-height: 1rem;--text-fine: var(--_font-weight-regular) var(--text-fine-size) / var(--text-fine-line-height) var(--_font-family-sans);--font-family-mono: var(--_font-family-mono)}@media(max-width:48rem){:root{--text-display-size: var(--_font-size-9);--text-display-line-height: 3rem;--text-display-letter-spacing: -.96px;--text-display: var(--_font-weight-black) var(--text-display-size) / var(--text-display-line-height) var(--_font-family-sans);--text-title-size: 2.5rem;--text-title-line-height: 2.75rem;--text-title: var(--_font-weight-bold) var(--text-title-size) / var(--text-title-line-height) var(--_font-family-sans);--_font-size-9: 2.5rem;--_font-size-10: 3rem}}:root{--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--duration-0: 0ms;--duration-1: .1s;--duration-2: .15s;--duration-3: .2s;--duration-4: .3s;--duration-5: .5s;--shadow-xs: 0 1px 2px rgb(0 0 0 / .55);--shadow-sm: 0 2px 10px rgb(0 0 0 / .6);--shadow-md: 0 10px 24px rgb(0 0 0 / .65);--shadow-lg: 0 18px 52px rgb(0 0 0 / .7);--shadow-focus-ring: 0 0 0 3px var(--color-focus-ring)}:root[data-theme=light]{--shadow-xs: 0 1px 2px rgb(0 0 0 / .06);--shadow-sm: 0 2px 8px rgb(0 0 0 / .08);--shadow-md: 0 8px 20px rgb(0 0 0 / .12);--shadow-lg: 0 16px 40px rgb(0 0 0 / .16)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}:root{--scroll-offset: calc(88px + var(--space-16))}@media(max-width:64rem){:root{--scroll-offset: calc(72px + var(--space-16))}}html{scroll-padding-top:var(--scroll-offset)}:where([id]){scroll-margin-top:var(--scroll-offset)}body{min-height:100%;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--_font-family-sans);line-height:var(--_line-height-4);background:var(--color-bg);color:var(--color-fg)}h1,h2,h3,h4,h5,h6{color:var(--color-fg)}a{color:var(--color-link)}a:hover{color:var(--color-link-hover)}ul,ol{list-style:none;margin:0;padding:0}::selection{background:var(--color-selection-bg)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}.prose{--prose-text-max-width: 38rem;width:100%;color:var(--color-fg);font:var(--text-base)}.prose.prose.prose.prose h1,.prose.prose.prose.prose h2,.prose.prose.prose.prose h3,.prose.prose.prose.prose h4{max-width:var(--prose-text-max-width);color:var(--color-fg)}.prose.prose.prose.prose h1{font:var(--text-heading);font-size:var(--_font-size-8);line-height:var(--_line-height-2);margin:0 0 var(--space-16)}.prose.prose.prose.prose h2{font:var(--text-heading);margin:var(--space-48) 0 var(--space-12)}.prose.prose.prose.prose h3{font:var(--text-label);margin:var(--space-40) 0 var(--space-8)}.prose.prose.prose.prose h4{font:var(--text-base);font-weight:var(--_font-weight-bold);margin:var(--space-16) 0 var(--space-4)}.prose.prose.prose.prose h1:first-child,.prose.prose.prose.prose h2:first-child,.prose.prose.prose.prose h3:first-child,.prose.prose.prose.prose h4:first-child{margin-top:0}.prose :where(h2,h3,h4,h5,h6).hasHeadingAnchor{position:relative}.prose :where(a.headingAnchor){display:inline-flex;align-items:center;justify-content:center;position:absolute;left:0;top:0;transform:translate(-100%,.2em);flex-shrink:0;padding:var(--space-4);border-radius:var(--radius-sm);color:var(--color-fg-subtle);text-decoration:none;opacity:0;transition:opacity var(--duration-3) var(--ease-out),color var(--duration-3) var(--ease-out),background var(--duration-3) var(--ease-out)}.prose :where(h2,h3,h4,h5,h6).hasHeadingAnchor:hover>:where(a.headingAnchor),.prose :where(h2,h3,h4,h5,h6).hasHeadingAnchor:focus-within>:where(a.headingAnchor){opacity:.7}.prose :where(a.headingAnchor:hover){opacity:1;color:var(--color-fg);background:color-mix(in srgb,var(--color-fg) 6%,transparent)}.prose :where(a.headingAnchor:focus-visible){opacity:1;outline:none;box-shadow:var(--shadow-focus-ring)}.prose :where(a.headingAnchor svg){display:block;width:14px;height:14px}.prose :where(p){max-width:var(--prose-text-max-width);margin:var(--space-16) 0;color:var(--color-fg)}.prose :where(p):first-child{margin-top:0}.prose :where(p):last-child{margin-bottom:0}.prose :where(strong){font-weight:var(--_font-weight-semibold)}.prose :where(em){font-style:italic}.prose :where(a){color:var(--color-link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-link) 45%,transparent);text-underline-offset:.15em;transition:color var(--duration-3) var(--ease-out),text-decoration-color var(--duration-3) var(--ease-out)}.prose :where(a:visited){color:color-mix(in srgb,var(--color-link) 80%,var(--color-fg-muted));text-decoration-color:color-mix(in srgb,var(--color-link) 40%,transparent)}.prose :where(a:hover){color:var(--color-link-hover);text-decoration-color:currentColor}.prose :where(a:focus-visible){outline:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-focus-ring)}.prose :where(ul,ol){max-width:var(--prose-text-max-width);margin:var(--space-16) 0;padding-left:var(--space-24);display:grid;gap:var(--space-8);list-style-position:outside}.prose :where(ul){list-style-type:disc}.prose :where(ol){list-style-type:decimal}.prose :where(li){color:var(--color-fg)}.prose :where(ul ul,ul ol,ol ul,ol ol){margin:var(--space-8) 0 0}.prose :where(code){font-family:var(--font-family-mono);font-size:var(--text-sm-size)}.prose :where(:not(pre)>code){padding:calc(var(--space-4) / 2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-bg-inset);color:var(--color-fg)}.prose :where(pre){max-width:90ch;margin:var(--space-16) 0;padding:var(--space-12);border-radius:var(--radius-sm);background:var(--color-bg-inset);overflow-x:auto;font-family:var(--font-family-mono);font-size:var(--text-sm-size);line-height:var(--text-sm-line-height)}.prose :where(pre code){display:block;padding:0;border:none;background:transparent;color:var(--color-fg)}.prose :where(blockquote){max-width:var(--prose-text-max-width);margin:var(--space-24) 0;padding:var(--space-16) 0 var(--space-16) var(--space-16);border-left:var(--space-4) solid var(--color-accent);color:var(--color-fg-muted);font-size:var(--_font-size-5);font-weight:300;line-height:var(--_line-height-3);font-style:italic}.prose :where(blockquote>p){margin:0}.prose :where(blockquote em),.prose :where(blockquote strong){color:var(--color-fg)}.prose :where(blockquote a){color:var(--color-link)}.prose :where(blockquote a:hover){color:var(--color-link-hover)}.prose :where(hr){margin:var(--space-40) 0;border:0;border-top:var(--stroke-1) solid var(--color-border)}.prose :where(table){width:100%;border-collapse:separate;border-spacing:0;margin:var(--space-16) 0;font-size:var(--text-sm-size);line-height:var(--text-sm-line-height);border:var(--stroke-1) solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.prose :where(th,td){border-bottom:var(--stroke-1) solid var(--color-border);border-right:var(--stroke-1) solid var(--color-border);padding:var(--space-12);text-align:left;vertical-align:top}.prose :where(th:last-child,td:last-child){border-right:none}.prose :where(tr:last-child td){border-bottom:none}.prose :where(th){background:var(--color-bg-elevated);font-weight:var(--_font-weight-semibold);color:var(--color-fg)}.prose :where(img,picture,video){margin:var(--space-24) 0;border-radius:var(--radius-lg);border:var(--stroke-1) solid var(--color-border-subtle);background:var(--color-bg-elevated)}
