:root{--color-background:#efefe6;--color-foreground:#1f2518;--color-card:#f7f7f2;--color-primary:#222919;--color-primary-foreground:#f6f6ef;--color-muted:#e2e2d5;--color-muted-foreground:#5f6751;--color-border:#d2d4c4;--color-brand:#46562e;--color-field:#46562e;--color-field-foreground:#f6f6ef;--color-field-muted:#c6cfb4;--container-narrow:768px;--container-wide:1180px;--header-height:clamp(3.75rem, 3.4rem + 1vw, 4.5rem);--gutter:clamp(1.25rem, 3.5vw, 2rem);--section-gap:clamp(2.5rem, 1.25rem + 5vw, 5rem);--block-gap:clamp(1.25rem, .9rem + 1.6vw, 2rem);--field-pad:clamp(1.75rem, 1.1rem + 2.6vw, 3rem);--main-pad-top:calc(var(--header-height) + clamp(1.5rem, 1rem + 3vw, 3rem));--main-pad-bottom:clamp(3.5rem, 2.5rem + 5vw, 7rem);--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-field:clamp(1.25rem, .9rem + 1.5vw, 2rem);--font-family-sans:Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-serif:"Crimson Text", Georgia, Cambria, "Times New Roman", Times, serif;--font-family-mono:"JetBrains Mono", SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--tracking-wide:.08em;--line-height-normal:1.5;--line-height-relaxed:1.75;--transition-fast:.15s ease-in-out;--transition-normal:.25s ease-in-out;--z-fixed:1030}.dark{--color-background:#050505;--color-foreground:#edece8;--color-card:#1f291a;--color-primary:#edece8;--color-primary-foreground:#050505;--color-muted:#2b3a22;--color-muted-foreground:#b0b6a5;--color-border:#354030;--color-brand:#a5ca72;--color-field:#2c3a22;--color-field-foreground:#edece8;--color-field-muted:#b0bc9f}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}img{max-width:100%;height:auto}*{margin:0;padding:0}html{color-scheme:light;overflow-y:scroll}html.dark{color-scheme:dark}html,body{width:100%;height:100%}body{background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.flex{display:flex}.transition{transition:all var(--transition-normal)}article{max-width:100%;font-family:var(--font-family-serif);line-height:var(--line-height-relaxed)}.prose{font-size:clamp(1.15rem,1rem + .4vw,1.3rem)}.prose :is(h2,h3){margin-top:2.5rem}.prose pre{font-size:.85rem}article pre{font-size:var(--font-size-sm);font-family:var(--font-family-mono);background-color:var(--color-muted);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-lg) 0;overflow-x:auto}article code{font-size:var(--font-size-sm);font-family:var(--font-family-mono)}article p code{background-color:var(--color-muted);border-radius:var(--radius-xs);padding:.125rem .25rem;font-size:.8em}article h1,article h2,article h3,article h4,article h5,article h6{font-family:var(--font-family-serif);letter-spacing:-.02em;color:var(--color-foreground);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-md);font-weight:700}article h1{font-size:var(--font-size-4xl)}article h2{font-size:var(--font-size-3xl)}article h3{font-size:var(--font-size-2xl)}article p{margin-bottom:var(--spacing-md);font-family:var(--font-family-serif)}article a{color:currentColor;text-underline-offset:2px;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--color-brand) 45%, transparent);transition:all var(--transition-normal)}article a:hover{color:var(--color-brand);text-decoration-color:currentColor}article :is(h1,h2,h3,h4,h5,h6) a{color:inherit;text-decoration:none}article :is(h1,h2,h3,h4,h5,h6) a:hover{text-decoration:underline;text-decoration-color:var(--color-brand);text-underline-offset:4px}article img{margin:var(--spacing-lg) auto;max-width:100%;height:auto}article ul,article ol{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md);padding-left:var(--spacing-xl)}article ul{list-style-type:disc}article ol{list-style-type:decimal}article li{margin-bottom:var(--spacing-xs);line-height:var(--line-height-relaxed)}article ul ul,article ol ul,article ul ol,article ol ol{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs);padding-left:var(--spacing-lg)}article ul ul{list-style-type:circle}article ul ul ul{list-style-type:square}ul ul,ol ul,ul ol,ol ol{padding-left:var(--spacing-lg)}.container{width:100%;padding-left:var(--gutter);padding-right:var(--gutter);max-width:var(--container-narrow);margin-left:auto;margin-right:auto}.container--wide{max-width:var(--container-wide)}.site-main{padding-top:var(--main-pad-top);padding-bottom:var(--main-pad-bottom)}.relative{position:relative}.flex-col{flex-direction:column}.flex-1{flex:1}.font-sans{font-family:var(--font-family-sans)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-foreground{color:var(--color-foreground)}.bg-background{background-color:var(--color-background)}.page-title{font-family:var(--font-family-serif);letter-spacing:-.025em;color:var(--color-foreground);text-wrap:balance;font-size:clamp(2.5rem,2rem + 2.5vw,3.75rem);font-weight:600;line-height:1.02}.button{border-radius:var(--radius-lg);background-color:var(--color-foreground);color:var(--color-background);transition:opacity var(--transition-fast);align-items:center;gap:.5rem;padding:.65rem 1.15rem;font-size:.9375rem;font-weight:500;line-height:1.2;text-decoration:none;display:inline-flex}.button:hover{opacity:.86}.text-link{color:var(--color-foreground);text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:4px;transition:text-decoration-color var(--transition-fast);font-size:.9375rem;text-decoration-thickness:1px}.text-link:hover{text-decoration-color:var(--color-brand)}.quiet-link{color:var(--color-muted-foreground);transition:color var(--transition-fast);font-size:.875rem;text-decoration:none}.quiet-link:hover{color:var(--color-brand)}.section{gap:var(--block-gap);grid-template-columns:13rem minmax(0,1fr);display:grid}.section+.section{margin-top:var(--section-gap)}.section__title{font-family:var(--font-family-serif);color:var(--color-foreground);padding-top:1rem;font-size:1.5rem;font-weight:600;line-height:1.2}.section__more{margin-top:1rem;display:inline-block}@media (width<=820px){.section{grid-template-columns:1fr;gap:.75rem}.section__title{padding-top:0}}.rows{border-top:1px solid var(--color-border);padding:0;list-style:none}.row{border-bottom:1px solid var(--color-border);color:inherit;grid-template-columns:minmax(0,1fr) auto;gap:.15rem 1.5rem;padding:1rem 0;text-decoration:none;display:grid}.row__title{color:var(--color-foreground);transition:color var(--transition-fast);font-size:1.0625rem;font-weight:500}.row__desc{color:var(--color-muted-foreground);grid-column:1;font-size:.9375rem}.row__meta{color:var(--color-muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:1/2;font-size:.875rem}a.row:hover .row__title{color:var(--color-brand)}@media (width<=520px){.row{grid-template-columns:1fr}.row__meta{grid-area:auto/1}}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/crimson-text-latin-400-normal.pRLgj_b_.woff2)format("woff2"),url(/_astro/crimson-text-latin-400-normal.qfr3ao9R.woff)format("woff")}@font-face{font-family:Crimson Text;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/crimson-text-latin-400-italic.C7rttgBh.woff2)format("woff2"),url(/_astro/crimson-text-latin-400-italic.DhN5Sx-s.woff)format("woff")}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/crimson-text-latin-600-normal.BLvyr2CS.woff2)format("woff2"),url(/_astro/crimson-text-latin-600-normal.DrBK31Eo.woff)format("woff")}@font-face{font-family:Crimson Text;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/crimson-text-latin-700-normal.Stku49pw.woff2)format("woff2"),url(/_astro/crimson-text-latin-700-normal.CZ4Qu9jq.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.theme-toggle-button[data-astro-cid-6kgiinfj]{border-radius:var(--radius-lg);border:1px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-muted-foreground);cursor:pointer;background-color:#0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s ease-in-out;display:none;position:relative}html.js-ready .theme-toggle-button[data-astro-cid-6kgiinfj]{display:flex}.theme-toggle-button[data-astro-cid-6kgiinfj]:hover{border-color:var(--color-brand);color:var(--color-brand)}.theme-toggle-button[data-astro-cid-6kgiinfj] svg[data-astro-cid-6kgiinfj]{opacity:0;transition:all .15s ease-in-out;position:absolute;transform:scale(.8)}:root:not(.dark) .theme-toggle-button[data-astro-cid-6kgiinfj] .sun-icon[data-astro-cid-6kgiinfj],:root.dark .theme-toggle-button[data-astro-cid-6kgiinfj] .moon-icon[data-astro-cid-6kgiinfj],:root[data-theme=system] .theme-toggle-button[data-astro-cid-6kgiinfj] .system-icon[data-astro-cid-6kgiinfj]{opacity:1;transform:scale(1)}:root[data-theme=system] .theme-toggle-button[data-astro-cid-6kgiinfj] .sun-icon[data-astro-cid-6kgiinfj],:root[data-theme=system] .theme-toggle-button[data-astro-cid-6kgiinfj] .moon-icon[data-astro-cid-6kgiinfj]{opacity:0;transform:scale(.8)}.site-header[data-astro-cid-4oan7hod]{z-index:var(--z-fixed);background-color:color-mix(in srgb, var(--color-background) 86%, transparent);-webkit-backdrop-filter:blur(12px)saturate(180%);transition:border-color var(--transition-normal);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}html.scrolled .site-header[data-astro-cid-4oan7hod],.site-header[data-astro-cid-4oan7hod][data-nav-open=true]{border-bottom-color:var(--color-border)}.site-header__inner[data-astro-cid-4oan7hod]{justify-content:space-between;align-items:center;gap:var(--spacing-lg);min-height:var(--header-height);display:flex}.site-header__brand[data-astro-cid-4oan7hod]{font-family:var(--font-family-serif);letter-spacing:-.02em;color:var(--color-foreground);white-space:nowrap;font-size:1.35rem;font-weight:600;text-decoration:none}.site-header__nav[data-astro-cid-4oan7hod]{order:2;align-items:center;gap:2rem;margin-left:auto;display:flex}.site-header__link[data-astro-cid-4oan7hod]{color:var(--color-muted-foreground);transition:color var(--transition-fast);font-size:.9375rem;text-decoration:none}.site-header__link[data-astro-cid-4oan7hod]:hover{color:var(--color-foreground)}.site-header__link[data-astro-cid-4oan7hod][aria-current=page]{color:var(--color-foreground);text-decoration:underline;text-decoration-color:var(--color-brand);text-underline-offset:8px;text-decoration-thickness:2px}.site-header__actions[data-astro-cid-4oan7hod]{flex-shrink:0;order:3;align-items:center;gap:.75rem;display:flex}.site-header__burger[data-astro-cid-4oan7hod]{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:2.75rem;height:2.75rem;color:var(--color-foreground);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast);background-color:#0000;order:4;justify-content:center;align-items:center;padding:0;display:none}.site-header__burger[data-astro-cid-4oan7hod]:hover{border-color:var(--color-brand);color:var(--color-brand)}.site-header__burger-icon[data-astro-cid-4oan7hod]{flex-direction:column;justify-content:center;gap:4px;width:1.15rem;height:1rem;display:flex}.site-header__burger-icon[data-astro-cid-4oan7hod] span[data-astro-cid-4oan7hod]{width:100%;height:2px;transition:transform var(--transition-fast), opacity var(--transition-fast);background-color:currentColor;border-radius:2px;display:block}.site-header[data-astro-cid-4oan7hod][data-nav-open=true] .site-header__burger-icon[data-astro-cid-4oan7hod] span[data-astro-cid-4oan7hod]:first-child{transform:translateY(6px)rotate(45deg)}.site-header[data-astro-cid-4oan7hod][data-nav-open=true] .site-header__burger-icon[data-astro-cid-4oan7hod] span[data-astro-cid-4oan7hod]:nth-child(2){opacity:0}.site-header[data-astro-cid-4oan7hod][data-nav-open=true] .site-header__burger-icon[data-astro-cid-4oan7hod] span[data-astro-cid-4oan7hod]:nth-child(3){transform:translateY(-6px)rotate(-45deg)}html.nav-open{overflow:hidden}@media (width<=860px){.site-header__actions[data-astro-cid-4oan7hod]{margin-left:auto}.site-header[data-astro-cid-4oan7hod] .container{position:static}html.nav-collapsible .site-header__burger[data-astro-cid-4oan7hod]{display:inline-flex}html.nav-collapsible .site-header__nav[data-astro-cid-4oan7hod]{max-height:calc(100dvh - var(--header-height));padding:0 var(--gutter) var(--gutter);background-color:var(--color-background);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}html.nav-collapsible .site-header[data-astro-cid-4oan7hod][data-nav-open=true] .site-header__nav[data-astro-cid-4oan7hod]{display:flex}html.nav-collapsible .site-header__link[data-astro-cid-4oan7hod]{border-bottom:1px solid var(--color-border);color:var(--color-foreground);padding:1rem 0;font-size:1.0625rem;text-decoration:none}html.nav-collapsible .site-header__link[data-astro-cid-4oan7hod][aria-current=page]{color:var(--color-brand)}}.back-to-top[data-astro-cid-m765rkco]{font:inherit;color:var(--color-muted-foreground);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-size:.875rem;display:inline-flex}.back-to-top[data-astro-cid-m765rkco]:hover{color:var(--color-brand)}.footer[data-astro-cid-buwxlt3j]{margin-top:var(--section-gap);border-top:1px solid var(--color-border);padding:1.5rem 0 2.5rem}.footer__inner[data-astro-cid-buwxlt3j]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;display:flex}.footer__copy[data-astro-cid-buwxlt3j]{color:var(--color-muted-foreground);font-size:.875rem}.skip-to-content[data-astro-cid-6ezw5tpv]{background:var(--color-primary);color:var(--color-primary-foreground);z-index:calc(var(--z-fixed) + 1);border-radius:4px;padding:8px;font-weight:600;text-decoration:none;transition:top .3s;position:absolute;top:-40px;left:6px}.skip-to-content[data-astro-cid-6ezw5tpv]:focus{top:6px}
