:root{--color-bg: #F5F3EF;--color-surface: #ECEAE5;--color-surface-raised: #FFFFFF;--color-text: #110F0D;--color-text-muted: #6A6560;--color-text-faint: #9A9590;--color-accent: #C07A18;--color-accent-hover: #A46612;--color-accent-subtle: rgba(192, 122, 24, .08);--color-border: #DCD9D3;--color-border-subtle: #ECEAE5;--color-code-bg: #1A1816;--color-code-surface: #252220;--color-code-text: #D4CFC7;--dot-color: rgba(17, 15, 13, .09);--font-head: "DM Sans", system-ui, sans-serif;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.75rem;--text-5xl: 3.5rem;--text-hero: 4.25rem;--line-height-body: 1.7;--line-height-heading: 1.15;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 600;--space-1: .25rem;--space-2: .5rem;--space-xs: .5rem;--space-3: .75rem;--space-sm: 1rem;--space-4: 1rem;--space-md: 1.5rem;--space-6: 1.5rem;--space-lg: 2.5rem;--space-xl: 4rem;--space-2xl: 6rem;--shadow-sm: 0 1px 2px rgba(17, 15, 13, .06), 0 1px 4px rgba(17, 15, 13, .04);--shadow-md: 0 2px 8px rgba(17, 15, 13, .08), 0 1px 3px rgba(17, 15, 13, .05);--shadow-lg: 0 4px 16px rgba(17, 15, 13, .1), 0 2px 6px rgba(17, 15, 13, .06);--content-width: 720px;--wide-width: 1100px;--nav-height: 3.75rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-io: cubic-bezier(.4, 0, .2, 1)}@media(prefers-color-scheme:dark){:root{--color-bg: #0E0D0B;--color-surface: #1B1916;--color-surface-raised: #242119;--color-text: #E6E0D6;--color-text-muted: #7A756C;--color-text-faint: #4A4842;--color-accent: #D4962A;--color-accent-hover: #E8A838;--color-accent-subtle: rgba(212, 150, 42, .1);--color-border: #2C2924;--color-border-subtle: #1E1C19;--color-code-surface: #2A2724;--color-code-text: #CCC8C0;--dot-color: rgba(230, 224, 214, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 4px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .25);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4), 0 2px 6px rgba(0, 0, 0, .3)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;scroll-padding-top:calc(var(--nav-height) + 1.5rem)}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-head);line-height:var(--line-height-heading);font-weight:var(--font-weight-bold);color:var(--color-text)}h2{font-size:var(--text-3xl);letter-spacing:-.02em;margin-bottom:var(--space-md)}h3{font-size:var(--text-xl);margin-bottom:var(--space-xs)}p{margin-bottom:var(--space-sm)}p:last-child{margin-bottom:0}a{color:var(--color-text);text-decoration:underline;text-decoration-color:var(--color-border);transition:text-decoration-color .15s ease}a:hover{text-decoration-color:var(--color-text)}ul,ol{padding-left:1.25rem}li{margin-bottom:.25rem}code{font-family:var(--font-mono);font-size:.9em}.content-width{max-width:var(--content-width);margin-left:auto;margin-right:auto;padding-left:var(--space-sm);padding-right:var(--space-sm)}.wide-width{max-width:var(--wide-width);margin-left:auto;margin-right:auto;padding-left:var(--space-sm);padding-right:var(--space-sm)}.dot-grid{background-image:radial-gradient(circle,var(--dot-color) 1px,transparent 1px);background-size:24px 24px}.dot-grid-dense{background-image:radial-gradient(circle,var(--dot-color) 1px,transparent 1px);background-size:16px 16px}.dot-grid-faded{--dot-color-faded: rgba(17, 15, 13, .05);background-image:radial-gradient(circle,var(--dot-color-faded) 1px,transparent 1px);background-size:24px 24px}@media(prefers-color-scheme:dark){.dot-grid-faded{--dot-color-faded: rgba(230, 224, 214, .04)}}section{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}section+section{border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:.6875rem 1.375rem;font-size:var(--text-base);font-weight:var(--font-weight-medium);font-family:var(--font-head);line-height:1.25;text-decoration:none;border-radius:var(--radius-sm);border:1.5px solid transparent;cursor:pointer;transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out),color .15s var(--ease-out),box-shadow .15s var(--ease-out),transform .1s var(--ease-out);white-space:nowrap}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn-primary{background-color:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.btn-primary:hover{background-color:color-mix(in srgb,var(--color-text) 86%,var(--color-bg));border-color:color-mix(in srgb,var(--color-text) 86%,var(--color-bg));box-shadow:var(--shadow-md)}.btn-secondary{background-color:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{border-color:var(--color-text-muted);background-color:var(--color-surface)}@media(max-width:639px){h2{font-size:var(--text-2xl);letter-spacing:-.01em}section{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.site-header[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:100;background-color:color-mix(in srgb,var(--color-bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:background-color .2s ease,border-color .2s ease}.nav-inner[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;height:var(--nav-height);max-width:var(--content-width);margin:0 auto;padding:0 var(--space-sm)}.nav-wordmark[data-astro-cid-dmqpwcec]{font-family:var(--font-head);font-size:var(--text-lg);font-weight:var(--font-weight-bold);text-decoration:none;color:var(--color-text);letter-spacing:-.02em;transition:opacity .15s ease}.nav-wordmark[data-astro-cid-dmqpwcec]:hover{color:var(--color-text);text-decoration:none;opacity:.75}.nav-wordmark-accent[data-astro-cid-dmqpwcec]{color:var(--color-accent)}.nav-links[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:var(--space-md);list-style:none;padding:0;margin:0}.nav-link[data-astro-cid-dmqpwcec]{font-family:var(--font-head);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-decoration:none;letter-spacing:.01em;padding:.25rem 0;position:relative;transition:color .15s ease}.nav-link[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background-color:var(--color-accent);transition:width .2s var(--ease-out);border-radius:2px}.nav-link[data-astro-cid-dmqpwcec]:hover{color:var(--color-text);text-decoration:none}.nav-link[data-astro-cid-dmqpwcec]:hover:after{width:100%}.nav-link--active[data-astro-cid-dmqpwcec]{color:var(--color-text)}.nav-link--active[data-astro-cid-dmqpwcec]:after{width:100%}.nav-link--github[data-astro-cid-dmqpwcec]{padding:.3rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.nav-link--github[data-astro-cid-dmqpwcec]:after{display:none}.nav-link--github[data-astro-cid-dmqpwcec]:hover{border-color:var(--color-text-muted);background-color:var(--color-surface)}.nav-toggle[data-astro-cid-dmqpwcec]{display:none;background:none;border:none;cursor:pointer;color:var(--color-text);font-size:var(--text-xl);line-height:1;padding:var(--space-xs);min-width:44px;min-height:44px;align-items:center;justify-content:center}.nav-toggle-close[data-astro-cid-dmqpwcec]{display:none}@media(max-width:639px){.nav-inner[data-astro-cid-dmqpwcec]{flex-wrap:wrap;height:auto;padding:var(--space-xs) var(--space-sm)}.nav-toggle[data-astro-cid-dmqpwcec]{display:flex}.nav-links[data-astro-cid-dmqpwcec]{display:none;flex-direction:column;align-items:flex-start;gap:var(--space-xs);width:100%;padding:var(--space-xs) 0 var(--space-sm) 0}.nav--open[data-astro-cid-dmqpwcec] .nav-links[data-astro-cid-dmqpwcec]{display:flex}.nav--open[data-astro-cid-dmqpwcec] .nav-toggle-open[data-astro-cid-dmqpwcec]{display:none}.nav--open[data-astro-cid-dmqpwcec] .nav-toggle-close[data-astro-cid-dmqpwcec]{display:inline}.nav-link[data-astro-cid-dmqpwcec]{font-size:var(--text-lg);padding:var(--space-xs) 0}.nav-link--github[data-astro-cid-dmqpwcec]{font-size:var(--text-sm);margin-top:var(--space-xs)}}.site-footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--color-border);padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.footer-inner[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:var(--space-lg)}.footer-top[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:var(--space-2)}.footer-wordmark[data-astro-cid-sz7xmlte]{font-family:var(--font-head);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;color:var(--color-text);margin:0}.footer-wordmark-accent[data-astro-cid-sz7xmlte]{color:var(--color-accent)}.footer-tagline[data-astro-cid-sz7xmlte]{font-size:var(--text-base);color:var(--color-text-muted);margin:0}.footer-ctas[data-astro-cid-sz7xmlte]{display:flex;gap:var(--space-lg);flex-wrap:wrap;align-items:flex-start}.footer-cta-item[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:var(--space-xs)}.cta-subtext[data-astro-cid-sz7xmlte]{font-size:var(--text-xs);color:var(--color-text-faint);margin:0;font-family:var(--font-mono)}.footer-attribution[data-astro-cid-sz7xmlte]{font-size:var(--text-sm);color:var(--color-text-faint);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-md);margin:0;line-height:1.65}.footer-attribution[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--color-text-muted);text-decoration-color:var(--color-border)}.footer-attribution[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-text)}@media(max-width:639px){.footer-ctas[data-astro-cid-sz7xmlte]{flex-direction:column}}
