*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{width:100%;max-width:100%;transition:background-color .3s,color .3s;overflow-x:clip}body{width:100%;max-width:100%;overflow-x:clip}:root,.light{--paper:42 38% 97%;--ink:28 14% 9%;--brand:14 78% 37%;--brand-ink:0 0% 100%;--tint:40 28% 93%;--tint-ink:28 14% 9%;--wash:40 28% 93%;--ink-soft:28 8% 36%;--hover:40 28% 93%;--hover-ink:28 14% 9%;--surface:0 0% 100%;--surface-ink:28 14% 9%;--line:38 20% 85%;--line-strong:36 14% 72%;--danger:4 70% 44%;--danger-ink:0 0% 100%;--focus:14 78% 37%;--code-bg:28 12% 6%;--code-color:0 0% 83%;--inline-code-bg:38 20% 88%;--inline-code-color:28 10% 28%;--prose-text:28 8% 24%;--prose-heading:28 14% 9%;--prose-link:14 78% 37%;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--corner:.25rem;--corner-lg:.375rem;--corner-xl:.625rem;--pill-radius:999px;--content-width:45rem;--post-col:45rem;--toc-col:21.25rem;--post-max:75rem;--header-h:4rem;--eyebrow-size:.6875rem;--eyebrow-tracking:.08em;--black:26, 23, 20;--gray:113, 105, 98;--gray-light:224, 219, 209;--gray-dark:42, 38, 34;--gray-gradient:rgba(var(--gray-light), .6);--box-shadow:0 1px 2px rgba(var(--black), 5%), 0 4px 12px rgba(var(--black), 8%)}.dark{--paper:28 10% 8%;--ink:40 24% 95%;--brand:14 86% 66%;--brand-ink:28 10% 8%;--tint:28 8% 14%;--tint-ink:40 24% 95%;--wash:28 8% 14%;--ink-soft:34 10% 66%;--hover:28 8% 14%;--hover-ink:40 24% 95%;--surface:28 8% 11%;--surface-ink:40 24% 95%;--line:28 7% 20%;--line-strong:28 7% 30%;--focus:14 86% 66%;--code-bg:28 12% 5%;--code-color:0 0% 83%;--inline-code-bg:28 7% 22%;--inline-code-color:34 12% 82%;--prose-text:34 12% 82%;--prose-heading:40 24% 95%;--prose-link:14 86% 66%;--black:245, 243, 239;--gray:177, 169, 160;--gray-light:42, 38, 34;--gray-dark:224, 219, 209;--gray-gradient:#161412e6;--box-shadow:0 1px 2px #0006, 0 8px 24px #00000073}body{font-family:var(--font-sans);text-align:left;background-color:hsl(var(--paper));color:hsl(var(--ink));word-wrap:break-word;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:16px;line-height:1.5}main{width:100%;margin:0;padding:0}h1,h2,h3,h4,h5,h6{color:hsl(var(--ink));font-family:var(--font-display);letter-spacing:-.015em;font-optical-sizing:auto;margin:0 0 .5rem;font-weight:500;line-height:1.2}h1{font-size:2.5rem;line-height:1.2}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{color:hsl(var(--brand));font-size:1rem}strong,b{font-weight:600}a{color:hsl(var(--ink));text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:hsl(var(--brand))}p{margin-bottom:1em}textarea{width:100%;font-size:16px}input{font-size:16px}img{border-radius:var(--corner);max-width:100%;height:auto}code{font-family:var(--font-mono);background-color:hsl(var(--inline-code-bg));color:hsl(var(--inline-code-color));border-radius:4px;padding:2px 5px;font-size:.875em}pre{font-family:var(--font-mono);background-color:hsl(var(--code-bg));color:hsl(var(--code-color));border-radius:var(--corner);border:1px solid hsl(var(--line))}pre>code{all:unset;font-family:var(--font-mono);display:block}blockquote{border-left:3px solid hsl(var(--brand));color:hsl(var(--ink-soft));margin:0 0 1.5rem;padding:.5rem 0 .5rem 1rem;font-size:1em}hr{border:none;border-top:1px solid hsl(var(--line))}pre,code{white-space:pre-wrap;word-wrap:break-word;max-width:100%;overflow-x:auto}pre{white-space:pre;word-wrap:normal;margin:1rem 0;padding:1rem;font-size:.9375rem;line-height:1.55}.astro-code{background-color:hsl(var(--code-bg))!important}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.9375rem;display:block;overflow-x:auto}table th{color:hsl(var(--ink));font-weight:600}table th,table td{border:1px solid hsl(var(--line));padding:.5rem .75rem}@media (width<=768px){body{font-size:16px}main{padding:.5em}body.menu-open{overflow:hidden}pre{margin:.75rem 0;padding:.75rem;font-size:14px}table{font-size:14px}}.sr-only{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}a[data-astro-cid-evkijfd6]{text-decoration:none;transition:color .2s;display:inline-block}a[data-astro-cid-evkijfd6].active{color:hsl(var(--ink));font-weight:600}@media (width<=768px){a[data-astro-cid-evkijfd6]{text-align:center;border-radius:var(--corner);color:hsl(var(--ink-soft));padding:.75rem 1rem;display:block}a[data-astro-cid-evkijfd6]:hover,a[data-astro-cid-evkijfd6]:focus{background-color:hsl(var(--hover));color:hsl(var(--ink))}a[data-astro-cid-evkijfd6].active{background-color:hsl(var(--tint));color:hsl(var(--ink))}}.theme-switcher[data-astro-cid-ijxc6blt]{z-index:10;align-items:center;margin-right:.5rem;display:flex;position:relative}button[data-astro-cid-ijxc6blt]{cursor:pointer;border-radius:var(--corner);color:currentColor;background:0 0;border:none;justify-content:center;align-items:center;width:38px;height:38px;margin:0;padding:0;transition:color .3s,background-color .3s,transform .2s;display:flex}button[data-astro-cid-ijxc6blt]:hover{color:var(--brand);background-color:hsl(var(--tint) / .3);transform:translateY(-1px)}.icon[data-astro-cid-ijxc6blt]{width:24px;height:24px}.sun-icon[data-astro-cid-ijxc6blt]{display:none}.language-switcher[data-astro-cid-l4evwy7q]{align-items:center;margin-right:.75rem;display:flex}.language-select[data-astro-cid-l4evwy7q]{appearance:none;background-color:hsl(var(--paper));border:1px solid hsl(var(--line));color:hsl(var(--ink));cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;border-radius:6px;min-width:110px;padding:.5rem 2rem .5rem .75rem;font-size:.9rem;transition:all .2s}.language-select[data-astro-cid-l4evwy7q]:hover{border-color:hsl(var(--hover));background-color:hsl(var(--hover) / .1)}.language-select[data-astro-cid-l4evwy7q]:focus{border-color:hsl(var(--brand));box-shadow:0 0 0 2px hsl(var(--brand) / .2);outline:none}.sr-only[data-astro-cid-l4evwy7q]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-color-scheme:dark){.language-select[data-astro-cid-l4evwy7q]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%9ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e")}}@media (width<=768px){.language-switcher[data-astro-cid-l4evwy7q]{justify-content:center;margin-bottom:1rem;margin-right:0}.language-select[data-astro-cid-l4evwy7q]{min-width:140px;padding:.7rem 2.5rem .7rem 1rem;font-size:1rem}}@media (prefers-contrast:high){.language-select[data-astro-cid-l4evwy7q]{border:2px solid}.language-select[data-astro-cid-l4evwy7q]:focus{box-shadow:0 0 0 2px hsl(var(--paper)), 0 0 0 4px currentColor}}@media (prefers-reduced-motion:reduce){.language-select[data-astro-cid-l4evwy7q]{transition:none}}.burger-menu[data-astro-cid-5c7vcqbv]{cursor:pointer;z-index:20;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:30px;height:22px;padding:0;display:none}.burger-line[data-astro-cid-5c7vcqbv]{background-color:hsl(var(--ink));width:100%;height:2px;transition:all .3s ease-in-out}@media (width<=768px){.burger-menu[data-astro-cid-5c7vcqbv]{display:flex}}.burger-menu[data-astro-cid-5c7vcqbv].active .burger-line[data-astro-cid-5c7vcqbv]:first-child{transform:translateY(10px)rotate(45deg)}.burger-menu[data-astro-cid-5c7vcqbv].active .burger-line[data-astro-cid-5c7vcqbv]:nth-child(2){opacity:0}.burger-menu[data-astro-cid-5c7vcqbv].active .burger-line[data-astro-cid-5c7vcqbv]:nth-child(3){transform:translateY(-10px)rotate(-45deg)}header[data-astro-cid-nen7h5rs]{background-color:hsl(var(--paper) / .85);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--line));z-index:1000;margin:0;padding:0 1.5rem;position:sticky;top:0}.site-title[data-astro-cid-nen7h5rs]{letter-spacing:-.02em;margin:0;font-size:1em;font-weight:700}.site-title[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs],.site-title[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs].active{text-decoration:none}nav[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.logo-container[data-astro-cid-nen7h5rs]{flex-shrink:0;justify-content:space-between;align-items:center;width:auto;display:flex}.nav-container[data-astro-cid-nen7h5rs]{flex-grow:1;justify-content:space-between;align-items:center;max-width:100%;display:flex}.internal-links[data-astro-cid-nen7h5rs]{flex-grow:1;justify-content:center;align-items:center;display:flex}.social-links[data-astro-cid-nen7h5rs]{flex-shrink:0;align-items:center;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:hsl(var(--ink-soft));border-bottom:2px solid #0000;padding:1.25em .75em;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .2s}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:hsl(var(--ink))}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs].active{color:hsl(var(--ink));border-bottom-color:hsl(var(--brand));font-weight:600}.internal-links[data-astro-cid-nen7h5rs]{align-items:center;display:flex}.social-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:hsl(var(--ink-soft));align-items:center;transition:color .2s;display:flex}.social-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:hsl(var(--ink))}body.menu-open{overflow:hidden}@media (width<=1400px){.internal-links[data-astro-cid-nen7h5rs]{gap:.25rem}.internal-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:1.25em .5em;font-size:.875rem}}@media (width<=1200px){header[data-astro-cid-nen7h5rs]{padding:0 .75rem}.internal-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:1.25em .4em;font-size:.85rem}.social-links[data-astro-cid-nen7h5rs]{gap:.25rem}}@media (width<=1000px){.internal-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:1.25em .3em;font-size:.8rem}}@media (width<=768px){.logo-container[data-astro-cid-nen7h5rs]{width:100%;padding:1rem 0}.nav-container[data-astro-cid-nen7h5rs]{background-color:hsl(var(--paper));z-index:10;border-left:1px solid hsl(var(--line));flex-direction:column;justify-content:center;gap:2rem;width:100%;height:100vh;padding:2rem;transition:transform .3s ease-in-out;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(100%)}.nav-container[data-astro-cid-nen7h5rs].active{transform:translate(0)}.internal-links[data-astro-cid-nen7h5rs]{flex-direction:column;align-items:center;gap:1rem;width:100%}.internal-links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{text-align:center;width:100%;padding:.5rem 1rem;font-size:1.2rem}.social-links[data-astro-cid-nen7h5rs]{justify-content:center;width:100%;margin-top:1rem;display:flex}}footer[data-astro-cid-jo6i4kqk]{border-top:1px solid hsl(var(--line));background-color:hsl(var(--surface));color:hsl(var(--ink-soft));text-align:center;margin-top:3rem;padding:1.5rem 1rem}.footer-inner[data-astro-cid-jo6i4kqk]{flex-direction:column;align-items:center;gap:.75rem;max-width:72rem;margin:0 auto;display:flex}.footer-copy[data-astro-cid-jo6i4kqk]{margin:0;font-size:.875rem}.social-links[data-astro-cid-jo6i4kqk]{justify-content:center;gap:1.25em;display:flex}.social-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:hsl(var(--ink-soft));align-items:center;text-decoration:none;transition:color .2s;display:inline-flex}.social-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:hsl(var(--ink))}@media (width>=768px){footer[data-astro-cid-jo6i4kqk]{padding:1.25rem 2rem}.footer-inner[data-astro-cid-jo6i4kqk]{flex-direction:row;justify-content:space-between}}
