:root{--bg:#fbfbfa;--card-bg:#fff;--bg-subtle:#f4f4f2;--bg-elevated:#fff;--text:#1a1a18;--text-muted:#5c5c57;--text-faint:#8a8a83;--border:#e6e6e1;--border-strong:#d8d8d2;--brand:#2f5e4e;--brand-hover:#274f42;--brand-contrast:#fff;--brand-soft:color-mix(in srgb, var(--brand) 10%, transparent);--brand-ring:color-mix(in srgb, var(--brand) 28%, transparent);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--s-1:var(--space-2);--s-2:var(--space-4);--s-3:var(--space-5);--s-4:var(--space-6);--s-5:40px;--s-6:var(--space-7);--s-8:var(--space-8);--s-10:80px;--s-12:var(--space-9);--fs-xs:.8125rem;--fs-sm:.9375rem;--fs-base:1rem;--fs-lg:1.1875rem;--fs-xl:1.375rem;--fs-2xl:clamp(1.6rem, 1.1rem + 2vw, 2rem);--fs-3xl:clamp(2rem, 1.4rem + 2.6vw, 2.6rem);--fs-4xl:clamp(2.4rem, 1.6rem + 3.4vw, 3.4rem);--lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.6;--lh-prose:1.7;--tracking-tight:-.011em;--tracking-tighter:-.02em;--tracking-wide:.06em;--font-sans:var(--font-plex), system-ui, -apple-system, "Segoe UI", sans-serif;--font-prose:var(--font-serif), Georgia, Cambria, "Times New Roman", serif;--font-mono:var(--font-jbmono), ui-monospace, SFMono-Regular, Menlo, monospace;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-full:999px;--shadow-sm:0 1px 2px #1a1a180a;--shadow:0 1px 3px #1a1a180d, 0 4px 14px #1a1a180f;--shadow-lg:0 8px 30px #1a1a1817;--container:1120px;--container-prose:920px;--header-h:64px}[data-theme=dark]{--bg:#0e0f0d;--card-bg:#161714;--bg-subtle:#1a1b17;--bg-elevated:#161714;--text:#ecece6;--text-muted:#a6a69e;--text-faint:#71716a;--border:#262723;--border-strong:#33342e;--brand:#6fb39a;--brand-hover:#86c3ac;--brand-contrast:#0e0f0d;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 3px #0006, 0 6px 20px #00000073;--shadow-lg:0 10px 34px #0000008c}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:1rem;line-height:var(--lh-normal);word-wrap:break-word;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;transition:background .2s,color .2s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);margin:0 0 var(--s-2) 0;color:var(--text);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);font-weight:600}h1{font-size:var(--fs-4xl);letter-spacing:var(--tracking-tighter);font-weight:700}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-2xl)}h4{font-size:var(--fs-xl)}h5{font-size:var(--fs-lg)}p{margin:0 0 var(--s-2) 0}a{color:var(--brand);text-decoration:none;transition:color .15s,opacity .15s}a:hover{color:var(--brand-hover)}strong,b{font-weight:700}img{border-radius:var(--radius-sm);max-width:100%;height:auto}table{width:100%}textarea{width:100%;font-size:1rem}input{font-size:1rem}main{display:block}.container{width:100%;max-width:var(--container);padding-inline:var(--s-3);margin-inline:auto}.section{padding-block:var(--s-8)}.btn{border-radius:var(--radius);font-family:var(--font-sans);font-weight:600;font-size:var(--fs-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:10px 18px;line-height:1;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,color .15s;display:inline-flex}.btn-primary{background:var(--brand);color:var(--brand-contrast)!important}.btn-primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-sm)}.btn-secondary,.btn-ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn-secondary:hover,.btn-ghost:hover{background:var(--bg-subtle);border-color:var(--text-faint)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-sm{font-size:var(--fs-xs);padding:7px 13px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform .2s,box-shadow .2s,border-color .2s}.card:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-2px)}.eyebrow{color:var(--brand);font-weight:700;font-size:var(--fs-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin:0 0 var(--s-1);display:inline-block}.chip{font-size:var(--fs-xs);border:1px solid var(--border);color:var(--text-muted);background:var(--bg-subtle);border-radius:999px;align-items:center;padding:.25rem .6rem;font-weight:500;display:inline-flex}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s-2);margin-bottom:var(--s-4);padding-bottom:var(--s-2);border-bottom:1px solid var(--border);display:flex}.section-head h2{font-size:var(--fs-2xl);margin:0}.section-head .more{color:var(--brand);font-weight:600;font-size:var(--fs-sm);white-space:nowrap}.section-head .more:hover{opacity:.8}.grid-cards{gap:var(--s-3);grid-template-columns:1fr;display:grid}@media (width>=640px){.grid-cards{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.grid-cards{grid-template-columns:repeat(3,1fr)}}code{font-family:var(--font-mono);background:var(--bg-subtle);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.12em .38em;font-size:.875em}pre{font-family:var(--font-mono);padding:var(--space-5);border-radius:var(--radius);border:1px solid var(--border);font-size:.9rem;line-height:1.65;overflow-x:auto;background:var(--bg-subtle)!important}pre code{all:unset;font-family:var(--font-mono);background:0 0;border:0}[data-theme=dark] pre.astro-code,[data-theme=dark] pre.astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}blockquote{border-left:3px solid var(--brand);padding:0 0 0 var(--s-2);color:var(--text-muted);margin:0}hr{border:none;border-top:1px solid var(--border);margin:var(--s-4) 0}.theme-toggle .icon-moon{display:none}.theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}:where(a,button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.sr-only{clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.theme-toggle[data-astro-cid-l6lhmie6]{border-radius:var(--radius-sm);border:1px solid var(--border);width:38px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--text);background:var(--bg-subtle);border-color:var(--border-strong)}.skip-link[data-astro-cid-nen7h5rs]{z-index:100;border-radius:var(--radius-sm);background:var(--brand);color:var(--brand-contrast);font-size:var(--fs-sm);padding:.5rem .9rem;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-60px;left:8px}.skip-link[data-astro-cid-nen7h5rs]:focus{top:8px}.site-header[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{max-width:var(--container);padding-inline:var(--s-3);height:var(--header-h);align-items:center;gap:var(--s-2);margin-inline:auto;display:flex}.brand[data-astro-cid-nen7h5rs]{color:var(--text);white-space:nowrap;align-items:center;gap:.6rem;margin-right:auto;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);background:var(--brand);width:30px;height:30px;color:var(--brand-contrast);font-family:var(--font-sans);letter-spacing:.02em;place-items:center;font-size:.72rem;font-weight:700;display:inline-grid}.brand-name[data-astro-cid-nen7h5rs]{letter-spacing:-.01em;font-size:1rem;font-weight:700}.brand[data-astro-cid-nen7h5rs]:hover .brand-name[data-astro-cid-nen7h5rs]{color:var(--brand)}.nav-desktop[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{align-items:center;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--fs-sm);align-items:center;padding:.4rem .7rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.nav-link[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--bg-subtle)}.nav-link[data-astro-cid-nen7h5rs].active{color:var(--brand);background:var(--brand-soft);font-weight:600}.actions[data-astro-cid-nen7h5rs]{margin-left:var(--s-2);align-items:center;gap:.5rem;display:flex}.icon-btn[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);border:1px solid var(--border);width:38px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.icon-btn[data-astro-cid-nen7h5rs]:hover{color:var(--text);background:var(--bg-subtle);border-color:var(--border-strong)}.menu-btn[data-astro-cid-nen7h5rs]{border-radius:var(--radius-sm);border:1px solid var(--border);width:38px;height:38px;color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:none}.menu-btn[data-astro-cid-nen7h5rs] .i-close[data-astro-cid-nen7h5rs]{display:none}.nav-mobile[data-astro-cid-nen7h5rs]{border-top:1px solid var(--border);background:var(--bg);display:none}.nav-mobile[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{padding:var(--s-1) var(--s-3) var(--s-3);flex-direction:column;gap:.15rem;margin:0;list-style:none;display:flex}.nav-mobile[data-astro-cid-nen7h5rs] .nav-link[data-astro-cid-nen7h5rs]{padding:.8rem .75rem;font-size:1rem}.cta-mobile[data-astro-cid-nen7h5rs]{margin-top:var(--s-1);width:100%}@media (width<=780px){.nav-desktop[data-astro-cid-nen7h5rs],.cta-desktop[data-astro-cid-nen7h5rs]{display:none}.menu-btn[data-astro-cid-nen7h5rs]{display:inline-flex}.site-header[data-astro-cid-nen7h5rs].is-open .nav-mobile[data-astro-cid-nen7h5rs]{display:block}.site-header[data-astro-cid-nen7h5rs].is-open .menu-btn[data-astro-cid-nen7h5rs] .i-open[data-astro-cid-nen7h5rs]{display:none}.site-header[data-astro-cid-nen7h5rs].is-open .menu-btn[data-astro-cid-nen7h5rs] .i-close[data-astro-cid-nen7h5rs]{display:inline}}footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--border);background:var(--bg);color:var(--text-muted);margin-top:var(--s-12)}.footer-container[data-astro-cid-jo6i4kqk]{max-width:var(--container);padding:var(--s-6) var(--s-3);margin-inline:auto}.footer-top[data-astro-cid-jo6i4kqk]{gap:var(--s-3) var(--s-4);padding-bottom:var(--s-4);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.footer-brand[data-astro-cid-jo6i4kqk]{color:var(--text);align-items:center;gap:.6rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-jo6i4kqk]{border-radius:var(--radius-sm);background:var(--brand);width:28px;height:28px;color:var(--brand-contrast);place-items:center;font-size:.68rem;font-weight:700;display:inline-grid}.footer-nav[data-astro-cid-jo6i4kqk]{gap:var(--s-3);flex-wrap:wrap;display:flex}.footer-nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.footer-nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}.footer-bottom[data-astro-cid-jo6i4kqk]{gap:var(--s-2);padding-top:var(--s-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.copyright[data-astro-cid-jo6i4kqk]{font-size:var(--fs-sm);margin:0}.social-links[data-astro-cid-jo6i4kqk]{gap:var(--s-2);display:flex}.social-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--text-muted);align-items:center;transition:color .15s;display:inline-flex}.social-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--text)}
