.mark[data-astro-cid-4pt2nqzy]{flex:none}.mark-edge[data-astro-cid-4pt2nqzy]{stroke:var(--text);stroke-width:2.25px;fill:none}.mark-a[data-astro-cid-4pt2nqzy]{fill:var(--accent)}.mark-w[data-astro-cid-4pt2nqzy]{fill:var(--warm)}.mark-i[data-astro-cid-4pt2nqzy]{fill:var(--text)}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--border);border-radius:var(--radius-sm);width:2.5rem;height:2.5rem;color:var(--text-muted);cursor:pointer;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;place-items:center;padding:0;display:inline-grid}.theme-toggle[data-astro-cid-l6lhmie6][hidden]{display:none}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--text);border-color:var(--border-strong)}svg[data-astro-cid-l6lhmie6]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round}.moon[data-astro-cid-l6lhmie6]{fill:currentColor;stroke:none}.theme-toggle[data-astro-cid-l6lhmie6][data-current=light] .sun[data-astro-cid-l6lhmie6],.theme-toggle[data-astro-cid-l6lhmie6][data-current=dark] .moon[data-astro-cid-l6lhmie6]{display:none}.site-header[data-astro-cid-fzpbxy5g]{z-index:20;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.bar[data-astro-cid-fzpbxy5g]{justify-content:space-between;align-items:center;gap:var(--space-5);min-height:var(--header-h);display:flex}.brand[data-astro-cid-fzpbxy5g]{letter-spacing:-.01em;color:var(--text);padding-block:var(--space-2);align-items:center;gap:.65rem;font-size:1.02rem;font-weight:600;text-decoration:none;display:inline-flex}.brand[data-astro-cid-fzpbxy5g]:hover{color:var(--text)}.right[data-astro-cid-fzpbxy5g]{align-items:center;gap:var(--space-4);display:flex}ul[data-astro-cid-fzpbxy5g]{padding:0;list-style:none}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{font-size:var(--text-sm);color:var(--text-muted);padding:.5rem 0;font-weight:500;text-decoration:none;display:block;position:relative}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover,nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{color:var(--text)}.inline[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform var(--dur) var(--ease);border-radius:1px;position:absolute;bottom:.15rem;left:0;right:0;transform:scaleX(0)}.inline[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover:after,.inline[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]:after{transform:scaleX(1)}.inline[data-astro-cid-fzpbxy5g]{gap:clamp(1.25rem,2.4vw,2rem);display:none}@media (width>=46rem){.inline[data-astro-cid-fzpbxy5g]{display:flex}.menu[data-astro-cid-fzpbxy5g]{display:none}}.menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g]{cursor:pointer;height:2.5rem;font-size:var(--text-sm);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.5rem;padding:0 .85rem;font-weight:500;list-style:none;display:inline-flex}.menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g]::-webkit-details-marker{display:none}.menu[data-astro-cid-fzpbxy5g] summary[data-astro-cid-fzpbxy5g] svg[data-astro-cid-fzpbxy5g]{stroke:currentColor;stroke-width:1.6px;stroke-linecap:round}.menu[data-astro-cid-fzpbxy5g][open] summary[data-astro-cid-fzpbxy5g]{border-color:var(--border-strong)}.menu[data-astro-cid-fzpbxy5g] ul[data-astro-cid-fzpbxy5g]{left:0;right:0;top:var(--header-h);z-index:10;padding:var(--space-2) 1rem var(--space-5);background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow);position:absolute}.menu[data-astro-cid-fzpbxy5g] li[data-astro-cid-fzpbxy5g]+li[data-astro-cid-fzpbxy5g]{border-top:1px solid var(--border)}.menu[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{font-size:var(--text-lg);color:var(--text);padding:.9rem 0}.menu[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{color:var(--accent)}.site-footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--border);background:var(--band);font-size:var(--text-sm);margin-top:auto}.grid[data-astro-cid-nns7i3if]{gap:var(--space-6) var(--gutter);padding-block:var(--space-7) var(--space-6);display:grid}@media (width>=46rem){.grid[data-astro-cid-nns7i3if]{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}}.who[data-astro-cid-nns7i3if]{gap:var(--space-3);align-content:start;display:grid}.brand[data-astro-cid-nns7i3if]{font-weight:600;font-size:var(--text-base);color:var(--text);align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.contact[data-astro-cid-nns7i3if]{gap:var(--space-1);margin-top:var(--space-2);display:grid}.contact[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{justify-self:start;font-weight:500}ul[data-astro-cid-nns7i3if]{margin-top:var(--space-3);gap:var(--space-1);padding:0;list-style:none;display:grid}ul[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--text);padding-block:.2rem;text-decoration:none;display:inline-block}ul[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--accent)}.base[data-astro-cid-nns7i3if]{justify-content:space-between;gap:var(--space-2) var(--space-5);padding-block:var(--space-5);border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;display:flex}.base[data-astro-cid-nns7i3if] .mono[data-astro-cid-nns7i3if]{font-size:var(--text-xs)}:root{color-scheme:light;--bg:#f6f4ef;--band:#eeebe3;--surface:#fcfbf8;--text:#14161b;--text-muted:#555b66;--text-faint:#60666f;--border:#dedad0;--border-strong:#c3bdaf;--accent:#2446c4;--accent-strong:#1a3397;--warm:#b13f12;--green:#1d7348;--on-accent:#fff;--code-bg:#efede6;--dot:#d3cec2;--accent-soft:color-mix(in srgb, var(--accent) 9%, var(--surface));--warm-soft:color-mix(in srgb, var(--warm) 9%, var(--surface));--green-soft:color-mix(in srgb, var(--green) 10%, var(--surface));--accent-line:color-mix(in srgb, var(--accent) 55%, transparent);--warm-line:color-mix(in srgb, var(--warm) 55%, transparent);--selection:color-mix(in srgb, var(--accent) 18%, transparent);--shadow:0 1px 0 #14161b08, 0 10px 30px -12px #14161b1f;--font-sans:var(--font-plex-sans), "IBM Plex Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:var(--font-source-serif), "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:var(--font-jetbrains-mono), "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:clamp(.72rem, .7rem + .08vw, .78rem);--text-sm:clamp(.84rem, .82rem + .1vw, .92rem);--text-base:clamp(1rem, .96rem + .16vw, 1.08rem);--text-lg:clamp(1.15rem, 1.06rem + .35vw, 1.35rem);--text-xl:clamp(1.4rem, 1.2rem + .8vw, 1.95rem);--text-2xl:clamp(2.1rem, 1.6rem + 2vw, 3.4rem);--text-hero:clamp(2.5rem, 1.55rem + 3.9vw, 5.4rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--section-pad:clamp(3.5rem, 7vw, 6.5rem);--page-max:1200px;--measure:68ch;--gutter:clamp(1rem, 2.4vw, 2.25rem);--header-h:4.25rem;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--ease:cubic-bezier(.2, .7, .2, 1);--dur:.18s}@media (width>=1800px){:root{--page-max:1360px}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#0c0e12;--band:#11141a;--surface:#151921;--text:#e7e9ee;--text-muted:#a2a9b5;--text-faint:#8a919d;--border:#252a33;--border-strong:#3a414c;--accent:#89a3ff;--accent-strong:#b3c3ff;--warm:#f2936a;--green:#6fcf9c;--on-accent:#0c0e12;--code-bg:#12161c;--dot:#262b34;--accent-soft:color-mix(in srgb, var(--accent) 12%, var(--surface));--warm-soft:color-mix(in srgb, var(--warm) 12%, var(--surface));--green-soft:color-mix(in srgb, var(--green) 12%, var(--surface));--shadow:0 1px 0 #0003, 0 12px 32px -12px #0009}}:root[data-theme=dark]{color-scheme:dark;--bg:#0c0e12;--band:#11141a;--surface:#151921;--text:#e7e9ee;--text-muted:#a2a9b5;--text-faint:#8a919d;--border:#252a33;--border-strong:#3a414c;--accent:#89a3ff;--accent-strong:#b3c3ff;--warm:#f2936a;--green:#6fcf9c;--on-accent:#0c0e12;--code-bg:#12161c;--dot:#262b34;--accent-soft:color-mix(in srgb, var(--accent) 12%, var(--surface));--warm-soft:color-mix(in srgb, var(--warm) 12%, var(--surface));--green-soft:color-mix(in srgb, var(--green) 12%, var(--surface));--shadow:0 1px 0 #0003, 0 12px 32px -12px #0009}.prose{min-width:0;max-width:var(--measure);font-size:var(--text-base);line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--text-xl);letter-spacing:-.015em;margin-top:2.4em}.prose h3{font-size:var(--text-lg);margin-top:1.9em}.prose h2+*,.prose h3+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--text-muted)}.prose strong{font-weight:600}.prose blockquote{padding-left:var(--space-5);border-left:2px solid var(--border-strong);color:var(--text-muted);font-family:var(--font-serif);font-size:1.05em}.prose hr{border:0;border-top:1px solid var(--border);margin-block:2.5em}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-wrap:anywhere;padding:.12em .35em;font-size:.86em}.prose pre{font-family:var(--font-mono);padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);tab-size:2;font-size:.84rem;line-height:1.6;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-family:inherit}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important}}.prose .table-wrap,.prose table{max-width:100%;display:block;overflow-x:auto}.prose table{border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.prose th,.prose td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.5em .9em .5em 0}.prose th{border-bottom-color:var(--border-strong);font-weight:600}.prose figure{margin-block:2em}.prose figcaption{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.prose .footnotes{padding-top:var(--space-5);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-muted);margin-top:3em}.prose sup a{font-family:var(--font-mono);font-size:.75em;text-decoration:none}.prose .callout{padding:var(--space-4) var(--space-5);border-left:2px solid var(--accent);background:var(--surface);font-size:var(--text-sm)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;hanging-punctuation:first last;scroll-padding-top:calc(var(--header-h) + 1rem)}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;line-height:1.65;display:flex}img,svg,video{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}p,li,h1,h2,h3,h4{overflow-wrap:break-word}h1,h2,h3,h4{text-wrap:balance;font-weight:600;line-height:1.15}p{text-wrap:pretty}::selection{background:var(--selection)}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}a{color:var(--accent);text-underline-offset:.2em;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);transition:color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease)}a:hover{color:var(--accent-strong);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.page-shell{width:min(calc(100% - 2rem), var(--page-max));margin-inline:auto}main{flex:1}.section{padding-block:var(--section-pad)}.band{background:var(--band);border-block:1px solid var(--border)}.sec-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-6);flex-wrap:wrap;margin-bottom:clamp(2rem,4vw,3rem);display:flex}.sec-head h2{font-size:var(--text-xl);letter-spacing:-.02em;margin-top:var(--space-2)}.sec-head .sec-desc{margin-top:var(--space-2);color:var(--text-muted);max-width:56ch}.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.6em;font-weight:500;display:inline-flex}.eyebrow .num{color:var(--text-faint)}.eyebrow.tone-accent{color:var(--accent)}.eyebrow.tone-warm{color:var(--warm)}.eyebrow .dot{background:currentColor;border-radius:50%;width:.55em;height:.55em}.label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:500}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--text-muted)}.page-title{font-family:var(--font-serif);font-size:var(--text-2xl);letter-spacing:-.028em;font-weight:600;line-height:1.04}.lede{font-size:var(--text-lg);color:var(--text-muted);max-width:58ch;line-height:1.55}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.page-head{gap:var(--space-7) var(--gutter);border-bottom:1px solid var(--border);padding-block:clamp(3rem,7vw,5.5rem) clamp(2.5rem,5vw,4rem);display:grid}.page-head .intro{gap:var(--space-4);align-content:start;display:grid}.page-head+.section{padding-top:clamp(2.5rem,5vw,4rem)}@media (width>=60rem){.page-head.with-aside{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end}}.badge{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);background:color-mix(in srgb, var(--text) 6%, var(--surface));white-space:nowrap;border-radius:3px;align-items:center;gap:.4em;padding:.18rem .5rem;font-size:.7rem;font-weight:500;line-height:1.4;display:inline-flex}.badge.warm{color:var(--warm);background:var(--warm-soft)}.badge.accent{color:var(--accent);background:var(--accent-soft)}.badge.green{color:var(--green);background:var(--green-soft)}.badges{gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.btn{min-height:2.75rem;font-size:var(--text-sm);border-radius:var(--radius-sm);border:1px solid var(--text);background:var(--text);color:var(--bg);transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;gap:.5em;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.ghost{color:var(--text);border-color:var(--border-strong);background:0 0}.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-row{gap:var(--space-3);flex-wrap:wrap;padding:0;list-style:none;display:flex}.link-row{gap:var(--space-2) var(--space-5);font-size:var(--text-sm);flex-wrap:wrap;padding:0;font-weight:500;list-style:none;display:flex}.link-row a{align-items:baseline;gap:.3em;padding-block:.35rem;display:inline-flex}.arrow{transition:transform var(--dur) var(--ease);display:inline-block}a:hover .arrow{transform:translate(3px)}a:hover .arrow.ext{transform:translate(2px,-2px)}.tags{font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;gap:.3rem .45rem;padding:0;font-size:.72rem;list-style:none;display:flex}.tags li{border:1px solid var(--border);border-radius:3px;padding:.05rem .4rem}.figure-panel{background-color:var(--surface);background-image:radial-gradient(var(--dot) 1px, transparent 1px);border:1px solid var(--border);border-radius:var(--radius-md);background-position:7px 7px;background-size:14px 14px;position:relative}.figure-caption{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.7rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root{--bg:#fff;--band:#fff;--surface:#fff;--text:#000;--text-muted:#333;--text-faint:#444;--border:#bbb;--accent:#000;--warm:#000;--green:#000}.site-header,.site-footer,.skip-link,.no-print{display:none!important}.section{padding-block:1.25rem}.band{border:0}a{text-decoration:none}}.skip-link[data-astro-cid-z4jru4n3]{z-index:100;background:var(--text);color:var(--bg);border-radius:var(--radius-sm);padding:.6rem 1rem;font-weight:500;text-decoration:none;position:fixed;top:-4rem;left:1rem}.skip-link[data-astro-cid-z4jru4n3]:focus{top:1rem}main[data-astro-cid-z4jru4n3]:focus{outline:none}
