@font-face{font-family:Marauder;src:url(/fonts/Marauder.woff2)format("woff2-variations"),url(/fonts/Marauder.woff2)format("woff2");font-weight:100 900;font-stretch:25% 200%;font-style:normal;font-display:swap}@font-face{font-family:Marauder;src:url(/fonts/Marauder-Italic.woff2)format("woff2-variations"),url(/fonts/Marauder-Italic.woff2)format("woff2");font-weight:100 900;font-stretch:25% 200%;font-style:italic;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/Newsreader.woff2)format("woff2-variations"),url(/fonts/Newsreader.woff2)format("woff2");font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Newsreader;src:url(/fonts/Newsreader-Italic.woff2)format("woff2-variations"),url(/fonts/Newsreader-Italic.woff2)format("woff2");font-weight:200 800;font-style:italic;font-display:swap}@font-face{font-family:DraftingMono;src:url(/fonts/DraftingMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DraftingMono;src:url(/fonts/DraftingMono-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:DraftingMono;src:url(/fonts/DraftingMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:DraftingMono;src:url(/fonts/DraftingMono-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--bg:#1c1a17;--fg:#e8dec8;--muted:#c1b3a8;--accent:#e89b4b;--hover:#1c1a17;--hover-bg:#e57806;--rule:#34302a;--code-bg:#e8dec80f;--code-border:#e8dec81f;--font-size-base:18px;--font-size-h1:3rem;--font-size-h2:2.5rem;--font-size-h3:1.75rem;--font-size-code:.8em;--max-width:800px;--content-pad-x:1.25rem;--line-height-body:1.75;--opsz-body:14;--opsz-h1:72;--opsz-h2:20;--opsz-h3:14;--weight-body:400;--weight-h1:800;--weight-h2:600;--weight-h3:500;--weight-link:600;--bullet-glyph:"›";--bullet-projects-glyph:"›";--bullet-size:1em;--bullet-offset-x:0em;--bullet-offset-y:0em;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}:root[data-theme=light]{--bg:#f7f2e8;--fg:#2b2722;--muted:#6f665a;--accent:#bd5f08;--hover:#fbf7ee;--hover-bg:#e57806;--rule:#e3dac8;--code-bg:#2b27220d;--code-border:#2b27221f}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:Newsreader,Georgia,Iowan Old Style,Charter,serif;font-weight:var(--weight-body);font-variation-settings:"opsz" var(--opsz-body);font-synthesis:none;font-optical-sizing:auto;font-variant-ligatures:common-ligatures discretionary-ligatures contextual;font-feature-settings:"liga" 1, "clig" 1, "dlig" 1, "calt" 1, "kern" 1;font-kerning:normal;background:var(--bg);color:var(--fg);line-height:var(--line-height-body);font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-wrap:break-word;margin:0;padding:0}main{width:var(--max-width);max-width:100%;padding:2.5em var(--content-pad-x) 5em;margin:0 auto}h1,h2,h3,h4,h5,h6{color:var(--fg);letter-spacing:-.01em;margin:1.5em 0 .5em;font-family:Marauder,Georgia,serif;line-height:1.15}h1{font-size:var(--font-size-h1);font-weight:var(--weight-h1);font-variation-settings:"opsz" var(--opsz-h1);letter-spacing:-.02em;margin-top:0}h2{font-size:var(--font-size-h2);font-weight:var(--weight-h2);font-variation-settings:"opsz" var(--opsz-h2)}h3{font-size:var(--font-size-h3);font-weight:var(--weight-h3);font-variation-settings:"opsz" var(--opsz-h3)}h4,h5,h6{font-variation-settings:"opsz" 10;font-size:1.1rem;font-weight:700}.prose :is(h1,h2,h3,h4){scroll-margin-top:1.5rem}.heading-anchor{color:var(--muted);vertical-align:middle;cursor:pointer;opacity:0;align-items:center;margin-left:.35em;padding:0;transition:opacity .16s ease-out,color .16s ease-out;display:inline-flex;position:relative;border-bottom:none!important}.heading-anchor svg{width:.62em;height:.62em}.prose :is(h1,h2,h3,h4):hover .heading-anchor{opacity:.6}.heading-anchor:hover,.heading-anchor:focus-visible{opacity:1;color:var(--accent);box-shadow:none!important;background:0 0!important}.heading-anchor:after{content:"Copied";background:var(--fg);color:var(--bg);letter-spacing:.03em;white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;padding:2px 7px;font-family:DraftingMono,ui-monospace,monospace;font-size:.6rem;transition:opacity .14s ease-out;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(-4px)}.heading-anchor.copied{opacity:1;color:var(--accent)}.heading-anchor.copied:after{opacity:1}@media (hover:none){.heading-anchor{opacity:.4}}p{margin:0 0 1em}strong,b{font-weight:700}em,i{color:var(--muted);font-style:italic}a,a:visited{color:var(--accent);font-weight:var(--weight-link);border-bottom:1px dotted var(--accent);background-color:#0000;padding-bottom:1px;text-decoration:none;transition:color .22s ease-out,border-bottom-color .22s ease-out,border-bottom-style .22s ease-out,background-color .22s ease-out,box-shadow .22s ease-out;box-shadow:0 0 #0000}a:hover,a:focus-visible{color:var(--hover);border-bottom:1px solid var(--hover);background-color:var(--hover-bg);box-shadow:.15em 0 0 var(--hover-bg), -.15em 0 0 var(--hover-bg);outline:none}ul,ol{margin:0 0 1em;padding:0;list-style:none}li{margin:0;padding:.05rem 0 .05rem 1.5em;position:relative}ul>li:before{content:var(--bullet-glyph);left:calc(.25rem + var(--bullet-offset-x));top:var(--bullet-offset-y);font-size:var(--bullet-size);line-height:var(--line-height-body);color:var(--accent);position:absolute}ul ul>li:before{content:var(--bullet-projects-glyph);opacity:.7}ol{counter-reset:ol-counter}ol>li{counter-increment:ol-counter}ol>li:before{content:counter(ol-counter) ".";font-variant-numeric:tabular-nums;color:var(--accent);position:absolute;left:0}code,kbd,samp{font-family:DraftingMono,ui-monospace,SF Mono,Menlo,monospace;font-size:var(--font-size-code)}:not(pre)>code{background:var(--code-bg);border:1px solid var(--code-border);color:var(--fg);border-radius:4px;padding:.1em .4em}pre{border:1px solid var(--code-border);font-family:DraftingMono,ui-monospace,SF Mono,Menlo,monospace;font-size:var(--font-size-code);tab-size:4;border-radius:6px;margin:1em 0;padding:1rem 1.25rem;line-height:1.5;overflow-x:auto;background:var(--code-bg)!important}pre code,pre.astro-code code{background:0 0;border:none;padding:0;font-size:1em}.astro-code,.astro-code span{color:var(--shiki-dark)}:root[data-theme=light] .astro-code,:root[data-theme=light] .astro-code span{color:var(--shiki-light)}table{border-collapse:collapse;width:100%;margin:1.25em 0;font-size:.95em}th,td{text-align:left;border-bottom:1px solid var(--rule);padding:.5em .75em}th{color:var(--accent);border-bottom:2px solid var(--rule);font-weight:700}blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:1.25em 0;padding:.25em 0 .25em 1.25em;font-style:italic}blockquote p:last-child{margin-bottom:0}hr{border:none;border-top:1px solid var(--rule);margin:2em 0}img{border-radius:6px;max-width:100%;height:auto}::selection{background:var(--accent);color:var(--bg)}.chip{border:1px solid var(--rule);color:var(--muted);text-transform:lowercase;letter-spacing:.02em;background:0 0;border-radius:999px;padding:.15em .6em;font-size:.75em;display:inline-block}a.chip,a.chip:visited{color:var(--muted);border:1px solid var(--rule);border-bottom:1px solid var(--rule);box-shadow:none;padding-bottom:.15em}a.chip:hover,a.chip:focus-visible{color:var(--fg);border-color:var(--accent);box-shadow:none;background:0 0}.eyebrow{font-family:var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:0 0 1.1em;font-size:.72rem;font-weight:600}.card{background:var(--code-bg);border:1px solid var(--rule);border-radius:12px}.theme-toggle svg{width:1.15rem;height:1.15rem}.theme-toggle .sun{display:block}.theme-toggle .moon,:root[data-theme=light] .theme-toggle .sun{display:none}:root[data-theme=light] .theme-toggle .moon{display:block}:root{--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--fg);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--rule);--pagefind-ui-tag:var(--code-bg);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:6px;--pagefind-ui-font:"Marauder", serif}@media (width<=700px){:root{--font-size-base:19px;--font-size-h1:2.6rem;--font-size-h2:1.5rem;--font-size-h3:1.2rem}main{padding:1.75em var(--content-pad-x) 3em}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}header[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--rule)}nav[data-astro-cid-nen7h5rs]{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25em;margin:0 auto;padding:.85em 1em;display:flex}.nav-right[data-astro-cid-nen7h5rs]{align-items:center;gap:1.25em;display:flex}.nav-links[data-astro-cid-nen7h5rs]{align-items:baseline;gap:1em;font-size:.92rem;display:flex}.nav-link[data-astro-cid-nen7h5rs],.nav-link[data-astro-cid-nen7h5rs]:visited{color:var(--muted);border-bottom:none;padding-bottom:1px;font-weight:600}.nav-link[data-astro-cid-nen7h5rs]:hover,.nav-link[data-astro-cid-nen7h5rs]:focus-visible,.nav-link[data-astro-cid-nen7h5rs].current{color:var(--accent);box-shadow:none;border-bottom:1px dotted var(--accent);background:0 0}.theme-toggle[data-astro-cid-nen7h5rs]{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;margin:0;padding:.2em;line-height:0;transition:color .18s;display:inline-flex}.theme-toggle[data-astro-cid-nen7h5rs]:hover,.theme-toggle[data-astro-cid-nen7h5rs]:focus-visible{color:var(--accent);outline:none}.brand[data-astro-cid-nen7h5rs]{font-variation-settings:"opsz" 14;color:var(--accent);background-color:#0000;border-bottom:none;padding-bottom:0;font-family:Marauder,serif;font-size:1.4rem;font-weight:800;text-decoration:none;transition:color .22s ease-out,background-color .22s ease-out,box-shadow .22s ease-out;box-shadow:0 0 #0000}.brand[data-astro-cid-nen7h5rs]:hover,.brand[data-astro-cid-nen7h5rs]:focus-visible{color:var(--hover);background-color:var(--hover-bg);box-shadow:.15em 0 0 var(--hover-bg), -.15em 0 0 var(--hover-bg);border-bottom:none;outline:none}.brand-suffix[data-astro-cid-nen7h5rs]{color:var(--muted);font-weight:600;transition:color .22s ease-out}.brand[data-astro-cid-nen7h5rs]:hover .brand-suffix[data-astro-cid-nen7h5rs],.brand[data-astro-cid-nen7h5rs]:focus-visible .brand-suffix[data-astro-cid-nen7h5rs]{color:var(--hover)}@media (width<=560px){.brand[data-astro-cid-nen7h5rs]{font-size:1.3rem}nav[data-astro-cid-nen7h5rs]{padding:.75em .85em}}footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--rule);color:var(--muted);margin-top:4em}.inner[data-astro-cid-jo6i4kqk]{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1em;margin:0 auto;padding:1.5em 1em;font-size:.85rem;display:flex}.links[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:baseline;gap:1em;display:flex}main[data-astro-cid-hkbrpulz].wide{width:100%;max-width:1080px}.ai-banner[data-astro-cid-hkbrpulz]{background:var(--code-bg);border-bottom:1px solid var(--rule);color:var(--muted);font-family:DraftingMono,ui-monospace,monospace;font-size:.72rem;line-height:1.5}.ai-inner[data-astro-cid-hkbrpulz]{max-width:var(--max-width);align-items:baseline;gap:.55rem;margin:0 auto;padding:.5rem 1rem;display:flex}.ai-dot[data-astro-cid-hkbrpulz]{background:var(--accent);width:.5rem;height:.5rem;box-shadow:0 0 0 0 var(--accent);border-radius:50%;flex:none;margin-top:.35em;animation:2.6s ease-out infinite ai-pulse}.ai-banner[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{border-bottom-width:1px}@keyframes ai-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}70%{box-shadow:0 0 0 .32rem #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.ai-dot[data-astro-cid-hkbrpulz]{animation:none}}
