.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-mono);--spacing:.25rem;--text-base:1rem;--leading-tight:var(--leading-tight);--leading-snug:var(--leading-snug);--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:var(--radius-sm);--radius-md:var(--radius-md);--radius-lg:var(--radius-lg);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:var(--ink);--color-divider:var(--divider);--color-divider-strong:var(--divider-strong);--font-display:var(--font-display);--font-body:var(--font-body);--text-mono-xs:var(--text-mono-xs);--text-mono-sm:var(--text-mono-sm);--text-body-sm:var(--text-body-sm);--text-body-md:var(--text-body-md);--text-body-lg:var(--text-body-lg);--text-display-4:var(--text-display-4);--text-display-3:var(--text-display-3);--text-display-2:var(--text-display-2);--text-display-1:var(--text-display-1);--tracking-display:var(--tracking-display);--tracking-headline:var(--tracking-headline);--tracking-mono-tight:var(--tracking-mono-tight);--tracking-mono-medium:var(--tracking-mono-medium);--tracking-mono-wide:var(--tracking-mono-wide);--leading-mono:var(--leading-mono);--leading-body:var(--leading-body);--leading-display:var(--leading-display);--radius-pill:var(--radius-pill);--radius-card:var(--radius-card);--shadow-0:var(--shadow-0);--shadow-1:var(--shadow-1);--shadow-2:var(--shadow-2)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.flex-shrink,.shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.font-display{font-family:var(--font-display)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow,.shadow\/border{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.focus\:not-sr-only:focus{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}}:root{color-scheme:light dark;--canvas:#faf8f3;--canvas-elev:#f3eee4;--ink:#15140f;--ink-muted:#15140fa6;--ink-faint:#15140f9e;--divider:#15140f1f;--divider-strong:#15140f33;--accent:#b8430a;--accent-deep:#7a3a14;--accent-tint:#b8430a14;--danger:#c0392b;--danger-tint:#c0392b14;--danger-edge:#c0392b8c;--font-display:var(--font-fraunces), "Tiempos Headline", Georgia, "Times New Roman", serif;--font-body:var(--font-geist), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:var(--font-geist-mono), "SF Mono", Menlo, Monaco, "Courier New", monospace;--text-mono-xs:.6875rem;--text-mono-sm:.8125rem;--text-body-sm:.875rem;--text-body-md:.9375rem;--text-body-lg:1.125rem;--text-display-4:1.375rem;--text-display-3:2rem;--text-display-2:2.75rem;--text-display-1:clamp(3rem, 8vw, 6rem);--leading-tight:1.04;--leading-snug:1.1;--leading-normal:1.5;--leading-relaxed:1.6;--leading-loose:1.7;--tracking-display:-.025em;--tracking-headline:-.018em;--tracking-body:0;--tracking-mono-tight:.04em;--tracking-mono-medium:.08em;--tracking-mono-wide:.18em;--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;--space-10:8rem;--container-max:80rem;--container-content:47.5rem;--gutter-mobile:1.5rem;--gutter-desktop:3.5rem;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--duration-quick:.12s;--duration-default:.2s;--duration-slow:.32s;--easing:cubic-bezier(.2, .8, .2, 1);--duration-instant:0s;--duration-slower:.5s;--duration-scalar:1;--easing-standard:cubic-bezier(.2, .8, .2, 1);--easing-emphasized:cubic-bezier(.2, 0, 0, 1);--easing-decelerate:cubic-bezier(0, 0, .35, 1);--easing-linear:linear;--distance-shift-1:4px;--distance-shift-2:12px;--distance-shift-3:32px;--shadow-0:0 0 0 1px #2520181a;--shadow-1:0 1px 2px #1d160c0f, 0 4px 12px #1d160c14;--shadow-2:0 2px 4px #1d160c0f, 0 8px 24px #1d160c1f, 0 20px 48px #1d160c14;--z-base:1;--z-raised:10;--z-sticky:100;--z-dropdown:200;--z-overlay:300;--z-modal:400;--z-toast:500;--border-hairline:1px;--border-thin:1.5px;--border-medium:2px;--border-thick:3px;--radius-pill:9999px;--radius-card:var(--radius-lg);--leading-mono:1.4;--leading-body:1.6;--leading-display:1.15}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas:#14130f;--canvas-elev:#1c1a16;--ink:#f0ebde;--ink-muted:#f0ebdeb3;--ink-faint:#f0ebdea6;--divider:#f0ebde24;--divider-strong:#f0ebde3d;--accent:#dd6630;--accent-deep:#f0a06a;--accent-tint:#dd66301a;--danger:#ff6b6b;--danger-tint:#ff6b6b1a;--danger-edge:#ff6b6b8c;--shadow-1:0 0 0 1px #d6cec21a;--shadow-2:0 0 0 1px #d6cec229, 0 2px 16px #0006}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--canvas:#14130f;--canvas-elev:#1c1a16;--ink:#f0ebde;--ink-muted:#f0ebdeb3;--ink-faint:#f0ebdea6;--divider:#f0ebde24;--divider-strong:#f0ebde3d;--accent:#dd6630;--accent-deep:#f0a06a;--accent-tint:#dd66301a;--danger:#ff6b6b;--danger-tint:#ff6b6b1a;--danger-edge:#ff6b6b8c;--shadow-1:0 0 0 1px #d6cec21a;--shadow-2:0 0 0 1px #d6cec229, 0 2px 16px #0006}*,:before,:after{box-sizing:border-box}html{background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);font-size:var(--text-body-md);line-height:var(--leading-relaxed);color:var(--ink);background:var(--canvas);font-feature-settings:"ss01","cv01","kern","liga";font-variant-numeric:oldstyle-nums proportional-nums;margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;line-height:var(--leading-snug);letter-spacing:var(--tracking-headline);color:var(--ink);margin:0}p{margin:0 0 var(--space-4);color:var(--ink-muted)}p:last-child{margin-bottom:0}a{color:var(--ink);text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--divider-strong);text-decoration-color:var(--divider-strong);transition:text-decoration-color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing)}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}strong{color:var(--ink);font-weight:600}em{font-style:italic}code{font-family:var(--font-mono);background:var(--accent-tint);border-radius:var(--radius-sm);padding:.1em .35em;font-size:.92em}ul,ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}li{margin-bottom:var(--space-2)}hr{border:0;border-top:1px solid var(--divider);margin:var(--space-8) 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.skip-link{top:-100px;left:var(--space-4);z-index:var(--z-sticky);padding:var(--space-2) var(--space-4);background:var(--ink);color:var(--canvas);font-family:var(--font-mono);font-size:var(--text-mono-sm);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;border-radius:var(--radius-sm);transition:top calc(var(--duration-quick) * var(--duration-scalar)) var(--easing);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-4)}@media(prefers-reduced-motion:reduce){:root{--duration-scalar:.001}*,:before,:after{scroll-behavior:auto!important}}::selection{background:var(--accent);color:var(--canvas)}.container{max-width:var(--container-max);padding-left:var(--gutter-mobile);padding-right:var(--gutter-mobile);margin:0 auto}.content{max-width:var(--container-content)}@media(min-width:768px){.container{padding-left:var(--gutter-desktop);padding-right:var(--gutter-desktop)}}.eyebrow{font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-wide);text-transform:uppercase;color:var(--ink-muted);font-weight:500}.eyebrow-accent{color:var(--accent)}.lead{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--leading-relaxed);color:var(--ink);max-width:60ch}.display-heading,.display-1,.display-2,.display-3{font-family:var(--font-display);font-optical-sizing:auto;font-variation-settings:"opsz" 72,"wght" 600;font-variant-ligatures:common-ligatures discretionary-ligatures}.display-1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);font-weight:500}.display-2{font-size:clamp(2.25rem,4.5vw,2.75rem);line-height:var(--leading-snug);letter-spacing:var(--tracking-headline);font-weight:500}.display-3{font-size:var(--text-display-3);line-height:var(--leading-snug);letter-spacing:var(--tracking-headline);font-weight:500}.display-italic{font-variation-settings:"WONK" 0,"SOFT" 20;font-style:italic}.display-em{color:var(--accent-deep);font-style:italic;font-weight:400}.tabular-nums,.metric-value,table tbody td.numeric{font-variant-numeric:tabular-nums lining-nums}.oldstyle-nums{font-variant-numeric:oldstyle-nums proportional-nums}@media(prefers-color-scheme:dark){.display-em{color:var(--accent-deep)}}.section{padding-block:clamp(var(--space-8),8vw,var(--space-10))}.page-body .prose h2{margin-top:var(--space-9)}.page-body .prose h2:first-of-type{margin-top:var(--space-7)}.section-divider{border-top:1px solid var(--divider)}@keyframes hero-enter{0%{opacity:0;transform:translateY(var(--distance-shift-2))}to{opacity:1;transform:translateY(0)}}.display-1,.lead{animation:hero-enter calc(var(--duration-slower) * var(--duration-scalar)) var(--easing-decelerate) both}.lead{animation-delay:calc(var(--duration-quick) * var(--duration-scalar))}.project-block:first-of-type .project-pao .pao-row:first-child dd:first-letter,.has-dropcap p:first-of-type:first-letter,.prose>h2:first-child+p:first-letter,.prose>h2:first-child+h3+p:first-letter{font-family:var(--font-display);float:left;color:var(--ink);margin:.05em .06em 0 0;font-size:3.2em;font-weight:600;line-height:.85}@media(max-width:767px){.project-block:first-of-type .project-pao .pao-row:first-child dd:first-letter,.has-dropcap p:first-of-type:first-letter,.prose>h2:first-child+p:first-letter,.prose>h2:first-child+h3+p:first-letter{float:none;font-size:inherit;margin:0}}.bg-doc-grid{background-image:linear-gradient(to right,var(--divider) 1px,transparent 1px);background-size:80px 100%;background-position:var(--gutter-desktop) 0}time.last-updated{font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;color:var(--ink-faint);font-weight:500}@media(prefers-reduced-motion:no-preference){.pulse{animation:diagram-pulse calc(var(--duration-pulse,3s) * var(--duration-scalar)) var(--easing-standard) infinite;transform-origin:50%}}@keyframes diagram-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(prefers-reduced-motion:no-preference){[data-reveal]{opacity:0;transform:translateY(var(--distance-shift-2));transition:opacity calc(var(--duration-slower) * var(--duration-scalar)) var(--easing-decelerate),transform calc(var(--duration-slower) * var(--duration-scalar)) var(--easing-decelerate);will-change:opacity,transform}[data-reveal].is-revealed{opacity:1;transform:translateY(0)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.wordmark[data-astro-cid-hhuuaa7r]{display:inline-block;color:var(--ink);line-height:0}.wordmark[data-astro-cid-hhuuaa7r] svg{width:100%;height:auto;display:block}.wordmark-nav[data-astro-cid-hhuuaa7r]{width:112px}.wordmark-hero[data-astro-cid-hhuuaa7r]{width:224px}.wordmark-footer[data-astro-cid-hhuuaa7r]{width:88px}.lang-switcher[data-astro-cid-su6xvggn]{position:relative;font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;font-weight:500}.lang-toggle[data-astro-cid-su6xvggn]{display:inline-flex;align-items:center;gap:.35rem;background:transparent;border:1px solid var(--divider);border-radius:var(--radius-md);color:var(--ink-muted);cursor:pointer;padding:.4rem .6rem;font:inherit;letter-spacing:inherit;text-transform:inherit;transition:color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing),border-color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing);min-height:36px}.lang-toggle[data-astro-cid-su6xvggn]:hover,.lang-toggle[data-astro-cid-su6xvggn]:focus-visible{color:var(--accent);border-color:var(--accent);outline:none}.lang-toggle[data-astro-cid-su6xvggn][aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.lang-toggle[data-astro-cid-su6xvggn][aria-expanded=true] .lang-caret[data-astro-cid-su6xvggn]{transform:rotate(180deg)}.lang-caret[data-astro-cid-su6xvggn]{transition:transform calc(var(--duration-quick) * var(--duration-scalar)) var(--easing)}.lang-menu[data-astro-cid-su6xvggn]{position:absolute;top:calc(100% + 4px);right:0;min-width:11rem;margin:0;padding:var(--space-2);list-style:none;background:var(--canvas);border:1px solid var(--divider-strong);border-radius:var(--radius-md);box-shadow:var(--elevation-2, 0 8px 24px rgba(0, 0, 0, .08));z-index:var(--z-popover, 50)}.lang-menu[data-astro-cid-su6xvggn] li[data-astro-cid-su6xvggn]{margin:0}.lang-link[data-astro-cid-su6xvggn]{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);padding:.5rem .6rem;border-radius:var(--radius-sm, 4px);color:var(--ink-muted);text-decoration:none;transition:color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing),background-color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing);min-height:36px}.lang-link[data-astro-cid-su6xvggn]:hover{color:var(--ink);background:color-mix(in srgb,var(--accent) 8%,transparent)}.lang-link[data-astro-cid-su6xvggn]:focus{outline:2px solid var(--accent);outline-offset:2px;color:var(--ink)}.lang-link[data-astro-cid-su6xvggn].active{color:var(--accent)}.lang-name[data-astro-cid-su6xvggn]{color:var(--ink-faint);text-transform:none;letter-spacing:0;font-size:var(--text-mono-xs)}@media(pointer:coarse){.lang-toggle[data-astro-cid-su6xvggn]{min-height:44px;padding:var(--space-3) var(--space-3)}.lang-link[data-astro-cid-su6xvggn]{min-height:44px}}.site-header[data-astro-cid-dmqpwcec]{position:sticky;top:0;z-index:var(--z-sticky);background:color-mix(in srgb,var(--canvas) 92%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid transparent;transition:background calc(var(--duration-default) * var(--duration-scalar)) var(--easing-standard),border-color calc(var(--duration-default) * var(--duration-scalar)) var(--easing-standard)}.site-header[data-astro-cid-dmqpwcec].is-scrolled{background:color-mix(in srgb,var(--canvas) 80%,transparent);border-bottom-color:var(--divider)}.nav-row[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-block:var(--space-4);min-height:64px}.brand-link[data-astro-cid-dmqpwcec]{text-decoration:none;flex-shrink:0}.primary-nav[data-astro-cid-dmqpwcec]{display:none}.primary-nav[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{list-style:none;padding:0;margin:0;display:flex;align-items:center;gap:var(--space-5)}.nav-link[data-astro-cid-dmqpwcec]{font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;font-weight:500;color:var(--ink-muted);text-decoration:none;padding:.5rem 0;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1.5px;transition:color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing),background-size calc(var(--duration-default) * var(--duration-scalar)) var(--easing-standard)}.nav-link[data-astro-cid-dmqpwcec]:hover,.nav-link[data-astro-cid-dmqpwcec]:focus-visible{color:var(--ink);background-size:100% 1.5px}.nav-link[data-astro-cid-dmqpwcec].active{color:var(--accent)}.lang-cluster[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;gap:var(--space-3);margin-left:auto}.theme-toggle[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--divider);border-radius:var(--radius-md);color:var(--ink-muted);cursor:pointer;padding:0;transition:color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing),border-color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing)}.theme-toggle[data-astro-cid-dmqpwcec]:hover,.theme-toggle[data-astro-cid-dmqpwcec]:focus-visible{color:var(--accent);border-color:var(--accent);outline:none}.theme-icon-sun[data-astro-cid-dmqpwcec]{display:none}.theme-icon-moon[data-astro-cid-dmqpwcec]{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-icon-sun[data-astro-cid-dmqpwcec]{display:block}:root:not([data-theme=light]) .theme-icon-moon[data-astro-cid-dmqpwcec]{display:none}}:root[data-theme=dark] .theme-icon-sun[data-astro-cid-dmqpwcec]{display:block}:root[data-theme=dark] .theme-icon-moon[data-astro-cid-dmqpwcec]{display:none}:root[data-theme=light] .theme-icon-sun[data-astro-cid-dmqpwcec]{display:none}:root[data-theme=light] .theme-icon-moon[data-astro-cid-dmqpwcec]{display:block}@media(pointer:coarse){.theme-toggle[data-astro-cid-dmqpwcec]{width:44px;height:44px}}.menu-toggle[data-astro-cid-dmqpwcec]{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:1px solid var(--divider);border-radius:var(--radius-md);cursor:pointer;color:var(--ink);padding:0}.menu-icon[data-astro-cid-dmqpwcec]{display:inline-flex;flex-direction:column;gap:4px;width:18px}.menu-icon[data-astro-cid-dmqpwcec] span[data-astro-cid-dmqpwcec]{display:block;height:1.5px;background:currentColor;border-radius:1px}.sr-only[data-astro-cid-dmqpwcec]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-menu[data-astro-cid-dmqpwcec]{border-top:1px solid var(--divider);padding:var(--space-4) var(--gutter-mobile) var(--space-5)}.mobile-menu[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.mobile-nav-link[data-astro-cid-dmqpwcec]{display:flex;align-items:center;font-family:var(--font-mono);font-size:var(--text-mono-sm);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;font-weight:500;color:var(--ink-muted);text-decoration:none;padding:var(--space-3) 0;min-height:44px;border-bottom:1px solid var(--divider)}.mobile-nav-link[data-astro-cid-dmqpwcec].active{color:var(--accent)}@media(min-width:768px){.primary-nav[data-astro-cid-dmqpwcec]{display:block;flex:1;justify-content:center}.primary-nav[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{justify-content:flex-end}.lang-cluster[data-astro-cid-dmqpwcec]{display:inline-flex;margin-left:0}.menu-toggle[data-astro-cid-dmqpwcec]{display:none}.mobile-menu[data-astro-cid-dmqpwcec]{display:none!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.site-footer[data-astro-cid-sz7xmlte]{margin-top:clamp(var(--space-8),10vw,var(--space-10));border-top:1px solid var(--divider);padding:var(--space-8) 0 var(--space-6);color:var(--ink-muted);background:var(--canvas)}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:1fr;gap:var(--space-7)}@media(min-width:768px){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-7)}}.footer-brand[data-astro-cid-sz7xmlte] .wordmark[data-astro-cid-sz7xmlte]{margin-bottom:var(--space-3)}.brand-tagline[data-astro-cid-sz7xmlte]{font-family:var(--font-display);font-size:var(--text-body-md);color:var(--ink);margin:0 0 var(--space-2);max-width:30ch;line-height:var(--leading-snug)}.brand-meta[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-medium);text-transform:uppercase;color:var(--ink-faint);margin:0}.footer-heading[data-astro-cid-sz7xmlte]{font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-wide);text-transform:uppercase;font-weight:500;color:var(--ink-faint);margin:0 0 var(--space-3)}.footer-col[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--ink-muted);text-decoration:none;transition:color calc(var(--duration-quick) * var(--duration-scalar)) var(--easing)}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--ink)}.footer-bottom[data-astro-cid-sz7xmlte]{margin-top:var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--divider);display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-mono-xs);letter-spacing:var(--tracking-mono-tight);color:var(--ink-faint)}@media(min-width:768px){.footer-bottom[data-astro-cid-sz7xmlte]{flex-direction:row;align-items:center}}.footer-copy[data-astro-cid-sz7xmlte],.footer-updated[data-astro-cid-sz7xmlte],.footer-entity[data-astro-cid-sz7xmlte]{margin:0}.footer-entity[data-astro-cid-sz7xmlte]{color:var(--ink-muted)}@media(min-width:768px){.footer-entity[data-astro-cid-sz7xmlte]{flex-basis:100%;order:99;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--divider)}}.footer-updated-label[data-astro-cid-sz7xmlte]{text-transform:uppercase;letter-spacing:var(--tracking-mono-medium);margin-right:.4em}
