@font-face{font-family:Outfit;font-weight:100 900;font-display:swap;src:url(/fonts/outfit-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-weight:200 900;font-style:normal;font-display:swap;src:url(/fonts/source-serif-4-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:"Source Serif 4";font-weight:200 900;font-style:italic;font-display:swap;src:url(/fonts/source-serif-4-latin-wght-italic.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:Outfit Fallback;src:local("Arial"),local("Helvetica");size-adjust:99.82%;ascent-override:100.18%;descent-override:26.05%;line-gap-override:0%}@font-face{font-family:"Source Serif Fallback";src:local("Georgia");size-adjust:107.45%;ascent-override:96.42%;descent-override:31.18%;line-gap-override:0%}@font-face{font-family:"Source Serif Fallback 2";src:local("Times New Roman"),local("Times");size-adjust:117.91%;ascent-override:87.87%;descent-override:28.41%;line-gap-override:0%}:root{--brown: #4a2e1d;--canvas: #1e1510;--cream: #f5f0e6;--leaf: #5dbe6b;--green: #2e8b47;--paper: #f5f0e6;--paper-2: #ede5d3;--ink: #4a2e1d;--ink-2: #6a4c38;--ink-3: #6e5545;--rule: #d9ceb6;--link: #1f6b36;--font-ui: "Outfit", "Outfit Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-prose: "Source Serif 4", "Source Serif Fallback", "Source Serif Fallback 2", Georgia, "Times New Roman", serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--shiki-foreground: #f5f0e6;--shiki-background: #1e1510;--shiki-token-constant: #8fd68a;--shiki-token-string: #e9c27e;--shiki-token-comment: #9c8b76;--shiki-token-keyword: #5dbe6b;--shiki-token-parameter: #f5f0e6;--shiki-token-function: #f2dfb4;--shiki-token-string-expression: #e9c27e;--shiki-token-punctuation: #c9bda8;--shiki-token-link: #8fd68a;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--paper: #1e1510;--paper-2: #2b1e15;--ink: #f5f0e6;--ink-2: #d8cfbf;--ink-3: #a99b85;--rule: #43302a;--link: #6fcf7c;--green: #5dbe6b}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:1.5rem}body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{max-width:100%}a{color:var(--link)}:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}::selection{background:var(--leaf);color:var(--canvas)}.wrap{width:100%;max-width:70rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.wrap.narrow{max-width:52rem}.eyebrow{font:700 .8125rem var(--font-ui);text-transform:uppercase;letter-spacing:.09em;color:var(--link);margin:0}.lede{font:400 clamp(1.125rem,2vw,1.3125rem)/1.55 var(--font-prose);color:var(--ink-2);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.7rem 1.4rem;border-radius:12px;font:700 1rem var(--font-ui);text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .12s,background-color .12s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brown);color:var(--cream);border-color:var(--brown)}.btn-primary:hover{background:var(--canvas)}.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}.btn-ghost:hover{background:var(--paper-2)}.btn-leaf{background:var(--leaf);color:var(--canvas);border-color:var(--leaf)}.btn-leaf:hover{background:#8fd68a;border-color:#8fd68a}@media(prefers-color-scheme:dark){.btn-primary{background:var(--leaf);color:var(--canvas);border-color:var(--leaf)}.btn-primary:hover{background:#8fd68a;border-color:#8fd68a}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.btn:hover{transform:none}}.prose{display:block;font:400 1.1875rem/1.7 var(--font-prose);color:var(--ink)}.prose>div>:first-child{margin-top:0}.prose p,.prose ul,.prose ol{margin:0 0 1.25rem}.prose h2,.prose h3{font-family:var(--font-ui);color:var(--ink);position:relative;text-wrap:balance}.prose h2{font-weight:800;font-size:1.75rem;line-height:1.15;letter-spacing:-.025em;margin:3rem 0 1rem;padding-top:1rem;border-top:3px solid var(--ink)}.prose h3{font-weight:700;font-size:1.3125rem;line-height:1.25;letter-spacing:-.015em;margin:2.25rem 0 .75rem}.prose .anchor{position:absolute;left:-1.4rem;color:var(--ink-3);text-decoration:none;font-weight:500;opacity:0}.prose h2:hover .anchor,.prose h3:hover .anchor,.prose .anchor:focus{opacity:1}.prose a{text-decoration-thickness:2px;text-underline-offset:3px}.prose a:hover{background:color-mix(in srgb,var(--leaf) 22%,transparent)}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin-bottom:.45rem;padding-left:.25rem}.prose li::marker{color:var(--green);font-weight:700}.prose strong{font-weight:700}.prose blockquote{margin:1.75rem 0;padding:.9rem 1.4rem;border-left:5px solid var(--leaf);background:var(--paper-2);border-radius:0 12px 12px 0}.prose blockquote p:last-child{margin-bottom:0}.prose :not(pre)>code{font:500 .86em var(--font-mono);background:var(--paper-2);border:1px solid var(--rule);border-radius:6px;padding:.12em .4em}.prose hr{border:0;border-top:1.5px solid var(--rule);margin:2.5rem 0}.prose .table-wrap{overflow-x:auto;margin:1.75rem 0;border:1.5px solid var(--rule);border-radius:12px}.prose table{border-collapse:collapse;width:100%;font:400 1rem/1.5 var(--font-ui);min-width:34rem}.prose th{text-align:left;font-weight:700;background:var(--paper-2)}.prose th,.prose td{padding:.7rem 1rem;border-bottom:1px solid var(--rule);vertical-align:top}.prose tr:last-child td{border-bottom:0}.prose td:first-child{font-weight:600}.prose figure.code{margin:1.75rem 0;background:var(--canvas);border-radius:14px;overflow:hidden;border:1px solid #43302a}.prose figure.code figcaption{display:flex;justify-content:space-between;align-items:center;padding:.45rem .5rem .45rem 1rem;border-bottom:1px solid #43302a;font:600 .75rem var(--font-ui);text-transform:uppercase;letter-spacing:.08em;color:#a99b85}.prose figure.code button{font:600 .75rem var(--font-ui);letter-spacing:.04em;color:#f5f0e6;background:transparent;border:1.5px solid #5a4538;border-radius:8px;padding:.3rem .7rem;cursor:pointer}.prose figure.code button:hover{border-color:var(--leaf);color:var(--leaf)}.prose pre{margin:0;padding:1.1rem 1.25rem;overflow-x:auto;font:400 .9rem/1.65 var(--font-mono);tab-size:2;color:#f5f0e6;background:transparent!important}.prose pre code{font:inherit;background:none;border:0;padding:0}.prose figure.diagram{margin:2rem 0}.diagram{overflow-x:auto;border:1.5px solid var(--rule);border-radius:14px;background:var(--paper-2);-webkit-overflow-scrolling:touch}.diagram svg{display:block;width:100%;min-width:600px;height:auto}.diagram figcaption{padding:0 1rem .8rem}.diagram .n{fill:var(--paper);stroke:var(--ink);stroke-width:2.4}.diagram .n.hl{fill:color-mix(in srgb,var(--leaf) 26%,var(--paper));stroke:var(--green)}.diagram .bar{fill:var(--ink-3);opacity:.55}.diagram .bar.hl{fill:var(--green);opacity:1}.diagram text{font-family:var(--font-ui);fill:var(--ink)}.diagram .lbl{font-weight:700}.diagram .sub,.diagram .sub2{fill:var(--ink-2);font-weight:500}.diagram .ctr{fill:var(--link);font-weight:600;font-style:italic}.diagram .dot{fill:var(--green)}.diagram .ln{fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.diagram .ln.g{stroke:var(--green)}.diagram .ah{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.diagram svg{color:var(--ink)}.diagram figcaption{margin-top:0;font:500 .9375rem/1.45 var(--font-ui);color:var(--ink-3);text-align:center}
