:root{--color-bg:#fffef9;--color-bg-2:#f2ede2;--color-bg-3:#e8e0d0;--color-ink:#1c1a17;--color-ink-2:#2f2c28;--color-ink-3:#6b665d;--color-border:#d8d3c9;--color-border-2:#c8c2b8;--color-accent:#b56330;--color-accent-mute:#f4bf9a;--color-accent-text:#8a3f1c;--color-seafoam:#7fab9f;--color-seafoam-mute:#bce1d8;--color-seafoam-text:#2c5249;--color-yellow:#b59c4c;--color-yellow-mute:#f1dc8a;--color-yellow-text:#5c4a14;--color-periwinkle:#7c87b3;--color-periwinkle-mute:#b6c0e4;--color-periwinkle-text:#353c5e;--color-chicago-flag-blue:#41b6e6;--color-chicago-star-red:#e4002b;--color-text-primary:var(--color-ink);--color-text-secondary:var(--color-ink-2);--color-text-tertiary:var(--color-ink-3);--color-surface:var(--color-bg);--color-surface-raised:var(--color-bg-2);--color-code-bg:#f9f9f9;--color-code-border:#e0dbd4;--font-display:var(--font-instrument-sans), system-ui, sans-serif;--font-body:var(--font-newsreader), Georgia, serif;--font-ui:var(--font-instrument-sans), system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--text-hero:clamp(2.5rem, 6vw, 3.5rem);--text-h1:clamp(2rem, 4vw, 2.5rem);--text-h2:clamp(1.5rem, 3vw, 1.8rem);--text-h3:1.35rem;--text-body:1.25rem;--text-body-sm:1.0625rem;--text-sm:1.05rem;--text-xs:.92rem;--text-mono:.82rem;--leading-tight:1.1;--leading-snug:1.3;--leading-mid:1.5;--leading-normal:1.6;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.04em;--tracking-wider:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--layout-max:1100px;--layout-prose:680px;--layout-narrow:52ch;--layout-gutter:var(--space-6);--layout-home-columns:1fr minmax(10rem, 18rem);--layout-home-gap:var(--space-12);--height-header:4rem;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.35s;--duration-page:.5s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-base:ease;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-full:999px;--stroke-width:2px;--stroke-length:1.75rem;--squiggle-height:4px;--squiggle-period:96px;--squiggle-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='4' viewBox='0 0 96 4' fill='none'%3E%3Cpath d='M0 2.1 C 8 1.2 16 3 24 2.1 S 40 1.2 48 2.1 S 64 3 72 2.1 S 88 1.2 96 2.1' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");--shadow-card:0 1px 2px #0000000a, 0 4px 12px #00000005, inset 0 1px 0 #fff9;--shadow-card-hover:0 4px 6px -1px #6e695a0d, 0 20px 32px -8px #6e695a26, 0 0 0 1px #ba965a26, inset 0 1px 0 #0009;--gradient-fade-to-surface:linear-gradient(to top, color-mix(in srgb, var(--color-surface) 10%, transparent) -20%, var(--color-surface) 100%);--gradient-radial-accent:radial-gradient(circle, transparent 81%, color-mix(in srgb, var(--color-accent) 15%, transparent) 81%, var(--color-surface) 100%)}[data-theme=dark]{--color-bg:#0b0a09;--color-bg-2:#17150f;--color-bg-3:#211e17;--color-ink:#f2eee5;--color-ink-2:#ded9ce;--color-ink-3:#968f83;--color-border:#3e352a;--color-border-2:#4f483e;--color-accent:#d9854f;--color-accent-mute:#694127;--color-accent-text:#e8a26f;--color-seafoam:#6a9f94;--color-seafoam-mute:#37504b;--color-seafoam-text:#a9d3c8;--color-yellow:#c9ab56;--color-yellow-mute:#54481f;--color-yellow-text:#ddc77f;--color-periwinkle:#8c97c4;--color-periwinkle-mute:#3a4060;--color-periwinkle-text:#b3b9dc;--color-code-bg:#1d1d1d;--color-code-border:#3d3d3d;--shadow-card-hover:0 4px 6px -1px #6e695a0d, 0 20px 32px -8px #6e695a26, 0 0 0 1px #ba965a26, inset 0 1px 0 #fffc}
.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.grid-auto{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.container{max-width:var(--layout-max);padding-inline:var(--layout-gutter);margin-inline:auto}.content-layout{margin-bottom:var(--space-24);grid-template-columns:minmax(0,1fr);align-items:stretch;display:grid}.content-layout .content-main{min-width:0;overflow:visible}.content-layout .content-sidebar{min-width:0;display:none}@media (min-width:1024px){.content-layout{grid-template-columns:minmax(0, var(--layout-prose)) minmax(0, 1fr)}.content-layout:has(.content-sidebar){--code-wide-extra:calc(var(--space-12) + 18rem);grid-template-columns:minmax(0, var(--layout-prose)) minmax(10rem, 18rem);column-gap:var(--space-12)}.content-layout .content-sidebar{display:block}}.draft-title:after{content:"*";float:left}.content-header{padding-bottom:var(--space-10);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-12);max-width:var(--layout-prose)}.content-header .content-title{font-family:var(--font-display);font-size:var(--text-h1);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-text-primary);margin-bottom:var(--space-5)}.content-header .content-subtitle{font-family:var(--font-display);font-size:var(--text-sm);font-weight:500;line-height:var(--leading-snug);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-3)}.content-header .content-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.list-stack{gap:var(--space-2);flex-direction:column;list-style:none;display:flex}.list-stack .list-item{padding:var(--space-5) var(--space-4);margin-inline:calc(var(--space-4) * -1);border-radius:var(--radius-md);transition:background var(--duration-base) var(--ease-base);display:block;position:relative}.list-stack .list-item:hover{background:var(--color-surface-raised)}.list-stack .list-item:before{content:"";left:0;top:var(--space-5);bottom:var(--space-5);width:var(--stroke-width);border-radius:var(--radius-full);background:var(--color-accent);opacity:0;transition:opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out);position:absolute;transform:translate(-2px)}.list-stack .list-item:hover:before{opacity:1;transform:translate(0)}.prose{--prose-max:var(--layout-prose);--prose-font-size:var(--text-body);--prose-font-size-sm:var(--text-body-sm);--prose-leading:var(--leading-normal);--prose-p-margin:var(--space-6);max-width:none;font-family:var(--font-body);font-size:var(--prose-font-size);line-height:var(--prose-leading);color:var(--color-text-secondary);padding-bottom:var(--space-6)}@media (max-width:768px){.prose{--prose-font-size:var(--text-body-sm);--prose-leading:1.65}}.prose>*{max-width:var(--prose-max);min-width:0}.prose>.code-wide{width:calc(100% + var(--code-wide-extra,0px));z-index:1;max-width:none;position:relative}.prose h2{font-family:var(--font-display);font-size:var(--text-h2);font-weight:600;line-height:var(--leading-snug);color:var(--color-text-primary);margin-top:var(--space-12);margin-bottom:var(--space-3);scroll-margin-top:calc(var(--height-header) + var(--space-12))}.prose h3{font-family:var(--font-display);font-size:var(--text-h3);font-weight:600;line-height:var(--leading-snug);color:var(--color-text-primary);margin-top:var(--space-8);margin-bottom:var(--space-2);scroll-margin-top:calc(var(--height-header) + var(--space-12))}.prose p{font-family:var(--font-body);font-size:var(--prose-font-size);font-weight:400;line-height:var(--prose-leading);color:var(--color-text-secondary);margin-bottom:var(--prose-p-margin)}.prose a{color:var(--color-accent-text);text-underline-offset:2px;transition:opacity var(--duration-base) var(--ease-base);text-decoration:underline}:is(.prose a):hover{opacity:.75}.external:is(.prose a):after{content:"↗";font-family:var(--font-ui);opacity:.8;vertical-align:baseline;margin-left:.2em;font-size:.85em;font-weight:600;text-decoration:none;display:inline-block;position:relative;top:-.05em}.prose :not(pre)>code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-code-bg);border-radius:var(--radius-sm);color:var(--color-accent-text);padding:.15em .4em}.prose pre:not([class*=language-]){background:0 0;border:none;border-radius:0;margin:0;padding:0}:is(.prose pre:not([class*=language-])) code{background:0 0;border-radius:0;padding:0}.prose ul,.prose ol{padding-left:var(--space-5);margin-bottom:var(--space-5)}.prose li{font-family:var(--font-body);font-size:var(--prose-font-size);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.prose ul li{padding-left:var(--space-1)}:is(.prose ul,.prose ol) ul{margin-top:var(--space-2)}:is(:is(:is(.prose ul,.prose ol) ul) li)::marker{content:"→"}:is(:is(.prose ul,.prose ol) ul) li{margin-left:var(--space-2);line-height:var(--leading-mid);list-style-type:disc}.prose strong{font-weight:600}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-10) 0}.prose img{border-radius:var(--radius-sm);max-width:100%;height:auto;margin:var(--space-8) 0;display:block}.prose figure img{margin:0}.text-nowrap{white-space:nowrap}.icon-button{border-radius:var(--radius-sm);width:2.25rem;height:2.25rem;color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--duration-base) var(--ease-base), color var(--duration-base) var(--ease-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{border-color:var(--color-text-primary);color:var(--color-text-primary)}.backdrop{cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out), visibility var(--duration-base) var(--ease-out);background:#1c1a1733;border:none;padding:0;position:fixed;inset:0}.backdrop-open{opacity:1;visibility:visible;pointer-events:auto}.sticky-rail{padding:var(--space-5);top:calc(var(--height-header) + var(--space-12));position:sticky}.side-label{font-family:var(--font-display);font-size:var(--text-body);letter-spacing:var(--tracking-wider);text-transform:lowercase;color:var(--color-text-tertiary);margin-bottom:var(--space-4);font-weight:500}.text-cta{gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-sm);letter-spacing:var(--tracking-wider);text-transform:lowercase;color:var(--color-text-tertiary);transition:color var(--duration-base) var(--ease-base);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.text-cta:hover{color:var(--color-accent-text)}.text-cta-arrow{transition:transform var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-base);flex-shrink:0;align-items:center;line-height:1;display:inline-flex}.text-cta:hover .text-cta-arrow{transform:translate(.2em)}.accent-stroke{width:var(--stroke-length);height:var(--stroke-width);border-radius:var(--radius-full);background:var(--color-accent-mute);margin-top:.5rem;display:block}.list-title{font-family:var(--font-display);font-size:var(--text-h3);font-weight:600;line-height:var(--leading-snug);color:var(--color-text-primary);margin-bottom:var(--space-2);transition:color var(--duration-base) var(--ease-base)}a.list-title{text-decoration:none;display:block}.list-item:hover .list-title,a.list-title:hover{color:var(--color-accent)}.list-subtitle{font-family:var(--font-display);font-size:var(--text-sm);font-weight:500;line-height:var(--leading-snug);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-1));margin-bottom:var(--space-2)}.list-summary{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-2)}.squiggle{width:100%;height:var(--squiggle-height);background-color:var(--color-border);-webkit-mask:var(--squiggle-mask) repeat-x center / var(--squiggle-period) var(--squiggle-height);-webkit-mask:var(--squiggle-mask) repeat-x center / var(--squiggle-period) var(--squiggle-height);mask:var(--squiggle-mask) repeat-x center / var(--squiggle-period) var(--squiggle-height);pointer-events:none;border:none;margin:0;display:block}.squiggle-top,.squiggle-bottom{position:absolute;left:0;right:0}.squiggle-top{top:0}.squiggle-bottom{bottom:0}.fadeUp{opacity:0;animation:fadeUp var(--duration-page) var(--ease-out) forwards;transform:translateY(12px)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
[data-theme=light] pre[class*=language-]{background:var(--color-code-bg)}[data-theme=light] .hljs{color:#2f3337;background:0 0}[data-theme=light] .hljs-subst{color:#2f3337}[data-theme=light] .hljs-comment{color:#656e77}[data-theme=light] .hljs-doctag,[data-theme=light] .hljs-keyword,[data-theme=light] .hljs-meta .hljs-keyword,[data-theme=light] .hljs-section,[data-theme=light] .hljs-selector-tag,[data-theme=light] .hljs-attr,[data-theme=light] .hljs-meta,[data-theme=light] .hljs-selector-class,[data-theme=light] .hljs-selector-pseudo{color:#015692}[data-theme=light] .hljs-attribute{color:#803378}[data-theme=light] .hljs-name,[data-theme=light] .hljs-type,[data-theme=light] .hljs-number,[data-theme=light] .hljs-selector-id,[data-theme=light] .hljs-quote,[data-theme=light] .hljs-template-tag,[data-theme=light] .hljs-built_in,[data-theme=light] .hljs-title,[data-theme=light] .hljs-title.class_,[data-theme=light] .hljs-title.class_.inherited__,[data-theme=light] .hljs-title.function_,[data-theme=light] .hljs-literal{color:#b75501}[data-theme=light] .hljs-string,[data-theme=light] .hljs-regexp,[data-theme=light] .hljs-symbol,[data-theme=light] .hljs-variable,[data-theme=light] .hljs-template-variable,[data-theme=light] .hljs-link,[data-theme=light] .hljs-selector-attr,[data-theme=light] .hljs-meta .hljs-string{color:#54790d}[data-theme=light] .hljs-bullet,[data-theme=light] .hljs-code{color:#535a60}[data-theme=light] .hljs-deletion{color:#c02d2e}[data-theme=light] .hljs-addition{color:#2f6f44}[data-theme=light] .hljs-emphasis{font-style:italic}[data-theme=light] .hljs-strong{font-weight:700}[data-theme=dark] pre[class*=language-]{background:var(--color-code-bg)}[data-theme=dark] .hljs{color:#fff;background:0 0}[data-theme=dark] .hljs-subst{color:#fff}[data-theme=dark] .hljs-comment{color:#999}[data-theme=dark] .hljs-doctag,[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-meta .hljs-keyword,[data-theme=dark] .hljs-section,[data-theme=dark] .hljs-selector-tag,[data-theme=dark] .hljs-attr,[data-theme=dark] .hljs-meta,[data-theme=dark] .hljs-selector-class,[data-theme=dark] .hljs-selector-pseudo{color:#88aece}[data-theme=dark] .hljs-attribute{color:#c59bc1}[data-theme=dark] .hljs-name,[data-theme=dark] .hljs-type,[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-selector-id,[data-theme=dark] .hljs-quote,[data-theme=dark] .hljs-template-tag,[data-theme=dark] .hljs-built_in,[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-title.class_,[data-theme=dark] .hljs-title.class_.inherited__,[data-theme=dark] .hljs-title.function_,[data-theme=dark] .hljs-literal{color:#f08d49}[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-regexp,[data-theme=dark] .hljs-symbol,[data-theme=dark] .hljs-variable,[data-theme=dark] .hljs-template-variable,[data-theme=dark] .hljs-link,[data-theme=dark] .hljs-selector-attr,[data-theme=dark] .hljs-meta .hljs-string{color:#b5bd68}[data-theme=dark] .hljs-bullet,[data-theme=dark] .hljs-code{color:#ccc}[data-theme=dark] .hljs-deletion{color:#de7176}[data-theme=dark] .hljs-addition{color:#76c490}[data-theme=dark] .hljs-emphasis{font-style:italic}[data-theme=dark] .hljs-strong{font-weight:700}
*{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:100%}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{max-width:100vw;overflow-x:clip}body{min-height:100%;color:var(--color-text-primary);background:var(--color-surface);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;display:flex;position:relative}body:before{content:"";background:var(--gradient-radial-accent);pointer-events:none;z-index:-1;background-repeat:no-repeat;background-size:contain;width:480%;height:100%;display:block;position:absolute}a{color:inherit;text-decoration:none}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}html.theme-transition,html.theme-transition *,html.theme-transition :before,html.theme-transition :after{transition:background-color var(--duration-base) var(--ease-base), background var(--duration-base) var(--ease-base), color var(--duration-base) var(--ease-base), border-color var(--duration-base) var(--ease-base), fill var(--duration-base) var(--ease-base), stroke var(--duration-base) var(--ease-base), box-shadow var(--duration-base) var(--ease-base)!important}}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600}
