/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-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-ease:initial}}}@layer theme{:root,:host{--color-ground:#edeee8;--color-ground-raised:#e3e5dd;--color-paper:#f7f7f2;--color-night:#13211d;--color-night-raised:#1b2b26;--color-ink:#201c18;--color-ink-muted:#5b544c;--color-accent:#8a4a2b;--color-on-night:#e8eae2;--color-on-night-muted:#a7b0a8;--color-accent-on-night:#dfa27c;--color-line-control:#85817a;--color-line-control-night:#6e7a74;--color-rule:#201c1829;--color-rule-strong:#201c1852;--color-rule-night:#e8eae22e;--color-hatch:#201c1833;--color-scrim:#13211dd1;--color-fg:var(--color-ink);--color-fg-muted:var(--color-ink-muted);--color-fg-accent:var(--color-accent);--color-hairline:var(--color-rule);--color-control:var(--color-line-control);--color-surface:var(--color-ground);--font-sans:var(--font-plex-sans,"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif);--font-mono:var(--font-plex-mono,"IBM Plex Mono", ui-monospace, Menlo, monospace);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--text-micro:clamp(.8125rem, .79rem + .1vw, .875rem);--text-micro--line-height:var(--leading-ui);--text-small:clamp(.875rem, .85rem + .12vw, .9375rem);--text-small--line-height:var(--leading-ui);--text-body:clamp(1rem, .96rem + .2vw, 1.125rem);--text-body--line-height:var(--leading-body);--text-large:clamp(1.1875rem, 1.1rem + .4vw, 1.4375rem);--text-large--line-height:var(--leading-snug);--text-large--letter-spacing:var(--tracking-title);--text-subhead:clamp(1.4375rem, 1.25rem + .85vw, 2rem);--text-subhead--line-height:var(--leading-snug);--text-subhead--letter-spacing:var(--tracking-title);--text-heading:clamp(1.75rem, 1.4rem + 1.6vw, 2.75rem);--text-heading--line-height:var(--leading-snug);--text-heading--letter-spacing:var(--tracking-title);--text-hero:clamp(2.25rem, 1.35rem + 2.3vw, 3.25rem);--text-hero--line-height:var(--leading-snug);--text-hero--letter-spacing:var(--tracking-display);--text-display:clamp(2.625rem, 1.7rem + 4.2vw, 5.5rem);--text-display--line-height:var(--leading-tight);--text-display--letter-spacing:var(--tracking-display);--text-wordmark:clamp(1.0625rem, 1rem + .3vw, 1.25rem);--text-wordmark--line-height:var(--leading-none);--leading-none:1;--leading-tight:1.04;--leading-snug:1.18;--leading-ui:1.35;--leading-body:1.6;--tracking-normal:0em;--tracking-display:-.022em;--tracking-title:-.012em;--tracking-mono:.04em;--tracking-caps:.08em;--breakpoint-sm:40em;--breakpoint-md:48em;--breakpoint-lg:60em;--breakpoint-xl:64em;--breakpoint-2xl:72em;--spacing-0:0rem;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.5rem;--spacing-6:2rem;--spacing-7:3rem;--spacing-8:4rem;--spacing-9:6rem;--spacing-10:8rem;--spacing-section:clamp(4.5rem, 2.8rem + 6.2vw, 9.5rem);--spacing-stagger:clamp(2rem, .5rem + 6.5vw, 7.5rem);--spacing-page:clamp(1.25rem, 4.2vw, 4.5rem);--spacing-gutter:clamp(1rem, 2vw, 2rem);--spacing-tap:2.75rem;--spacing-header:3.75rem;--container-page:90rem;--container-measure:62ch;--container-measure-m:46ch;--container-measure-s:36ch;--container-measure-xs:24ch;--container-measure-2xs:18ch;--aspect-landscape:3 / 2;--aspect-photo:4 / 3;--aspect-card:5 / 4;--aspect-portrait:4 / 5;--aspect-tall:2 / 3;--aspect-wide:1.92 / 1;--aspect-pano:21 / 9;--aspect-square:1 / 1;--aspect-video:16 / 9;--radius-control:2px;--radius-round:50%;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-draw:cubic-bezier(.45, 0, .2, 1);--ease-glide:cubic-bezier(.37, 0, .63, 1);--default-transition-duration:var(--duration-ui);--default-transition-timing-function:var(--ease-out);--animate-fade:dk-fade var(--duration-ui) var(--ease-out) both;--animate-rise:dk-rise var(--duration-reveal) var(--ease-out) both;--animate-unveil:dk-unveil var(--duration-hero) var(--ease-out) both;--animate-wipe:dk-wipe var(--duration-draw) var(--ease-draw) both;--animate-settle:dk-settle var(--duration-reveal) var(--ease-out) var(--duration-draw) both;--animate-follow:dk-fade var(--duration-reveal) var(--ease-out) var(--duration-draw) both;--animate-drop:dk-drop var(--duration-micro) var(--ease-out) both;--hairline:1px;--rule-w:2px;--focus-offset:3px;--underline-offset:.22em;--icon:1.125rem;--icon-lg:1.5rem;--icon-stroke:1.5;--icon-inline:.5em;--dash-datum:3 5;--dash-datum-fine:2 5;--cols:12;--grid:repeat(var(--cols), minmax(0, 1fr));--cols-2:repeat(2, minmax(0, 1fr));--cols-3:repeat(3, minmax(0, 1fr));--cols-4:repeat(4, minmax(0, 1fr));--cols-essay:repeat(8, minmax(0, 1fr));--span-head:1 / span 4;--span-after-head:5 / -1;--span-lead:1 / span 5;--span-trail:7 / -1;--span-rail:1 / span 3;--span-essay:5 / -1;--span-title:1 / span 7;--span-title-side:9 / -1;--span-person:5 / span 3;--span-channels:8 / -1;--span-hero-copy:content-start / span 6;--span-hero-media:8 / full-end;--span-pair-a:1 / span 5;--span-pair-b:6 / span 3;--span-pair-b-m:3 / -1;--span-sheet-a:1 / span 6;--span-sheet-b:7 / span 6;--span-process-text:1 / span 4;--span-model:5 / span 5;--span-joint:10 / span 3;--span-joint-m:4 / -1;--span-fgroup:span 2;--span-fgroup-wide:span 4;--way-cols-m:var(--spacing-6) minmax(0, 1fr) var(--pict-w);--way-cols:var(--spacing-7) minmax(0, 3fr) minmax(0, 4fr) minmax(0, 2fr) var(--pict-w) var(--spacing-6);--ledger-cols-m:6ch minmax(0, 1fr);--ledger-cols:6ch minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1.3fr);--pdata-cols:minmax(0, 2fr) minmax(0, 3fr);--term-cols:minmax(0, 1fr) minmax(0, 3fr);--index-w:3ch;--count-w:7ch;--zoom-w:5ch;--title-min:12rem;--nav-gap:clamp(var(--spacing-4), 2.2vw, var(--spacing-7));--dot:.625rem;--dot-ring:3px;--dot-s:.5rem;--dot-ring-s:2px;--contour-h:3.5rem;--contour-h-mini:3rem;--contour-h-index:clamp(5rem, 3rem + 6vw, 9rem);--contour-h-horizon:clamp(4.5rem, 2rem + 9vw, 10rem);--contour-h-hero:clamp(3.5rem, 2rem + 4vw, 6rem);--tag-lane-gap:.5rem;--pict-w:6rem;--pict-stroke:1.25;--shape:3.5rem;--shape-echo:4px;--thumb:4.5rem;--preview-w:15rem;--dropdown-row-w:40rem;--dropdown-min-w:15rem;--dropdown-max-h:min(60svh, 26rem);--dropdown-drop:-.375rem;--check:1.125rem;--check-stroke:2.25;--portrait:5.5rem;--frame-h:clamp(15rem, 9rem + 24vw, 31rem);--frame-max-w:82vw;--hero-max-h:56rem;--phero-max-h:86svh;--hero-min:min(calc(100svh - var(--spacing-header)), var(--hero-max-h));--film-veil:86%;--film-veil-text:88%;--film-veil-open:64%;--film-veil-text-to:40%;--film-veil-open-from:85%;--film-ground-solid:16%;--film-ground-clear:46%;--film-saturation:.85;--span-film-copy:content-start / span 7;--results-min:60svh;--altview-h:36rem;--altview-axis:4.5rem;--alt-lift:2rem;--alt-label-w:12rem;--sheet-pad:clamp(.5rem, 1.2vw, 1.25rem);--preview-shift:-40%;--offscreen:-200%;--o-far:.45;--o-datum:.5;--o-shape-trace:.45;--o-disabled:.4;--rot-close:45deg;--rot-flip:180deg;--wordmark-gap:.26em;--datum-width:.55em;--datum-inset:.07em;--datum-thickness:.105em;--datum-drop:.2em;--emblem-size:2.75rem;--emblem-size-wordmark:1.875em;--emblem-gap-wordmark:.5em;--sticky-top:var(--header-block-size,var(--spacing-header));--sticky-extra:0rem;--notice-clearance:3rem;--duration-micro:.16s;--duration-ui:.28s;--duration-reveal:.56s;--duration-hero:1s;--duration-vt:.6s;--duration-draw:1.4s;--duration-none:.01ms;--stagger-step:70ms;--tenet-draw:1.6s;--tenet-step:.7s;--tenet-merge:1.4s;--tenet-merge-overlap:.6s;--tenet-travel:2s;--tenet-fade-lead:.6s;--tenet-crossfade:1.4s;--tenet-return:1.2s;--rise:.75rem;--unveil-from:14%;--wipe-bleed:-.5rem;--z-raised:1;--z-dropdown:2;--z-bar:20;--z-header:30;--z-notice:40;--z-skip:60;--image-placeholder:var(--color-ground-raised);--selection-bg:var(--color-ink);--selection-fg:var(--color-ground);--texture-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .91 0 0 0 0 .92 0 0 0 0 .89 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--glyph-slope:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 8'%3E%3Cpath d='M.7 7.3 4 4.9l2.5 1L13.3.8' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--fade-mask:linear-gradient(transparent, #000 30%, #000 70%, transparent)}}@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,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:normal;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;-webkit-text-decoration:inherit;-webkit-text-decoration: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:normal;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:where(:not(iframe)){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}@media (width>=60em){:root{--spacing-header:4.5rem;--frame-max-w:52vw}}html{background-color:var(--color-ground);color:var(--color-ink);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-block-size,var(--spacing-header)) + var(--spacing-4) + var(--sticky-extra))}html:has([data-preview-notice]){scroll-padding-bottom:var(--notice-clearance)}html:has(dialog[open]){overflow:hidden}body{background-color:var(--color-ground);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--font-weight-normal);line-height:var(--leading-body);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-weight:var(--font-weight-normal);text-wrap:balance;hyphens:none}strong,b{font-weight:var(--font-weight-semibold)}a{text-decoration-line:underline;text-decoration-thickness:var(--hairline);text-underline-offset:var(--underline-offset)}a:hover{color:var(--color-fg-accent)}button{cursor:pointer}address{font-style:normal}:focus-visible{outline:var(--rule-w) solid var(--color-fg-accent);outline-offset:var(--focus-offset)}main:focus{outline:none}::selection{background-color:var(--selection-bg);color:var(--selection-fg)}@media (prefers-reduced-motion:no-preference){:root:has([data-site-header][data-hidden]:not(:focus-within)){--sticky-top:var(--spacing-0)}html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:var(--duration-none)!important;transition-duration:var(--duration-none)!important;scroll-behavior:auto!important;animation-iteration-count:1!important}}@media print{[data-preview-notice],[data-site-header]{display:none}}}@layer components{.icon[data-astro-cid-zgufigjl]{width:var(--icon);height:var(--icon);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;flex:none}.icon--lg[data-astro-cid-zgufigjl]{width:var(--icon-lg);height:var(--icon-lg)}.icon--inline[data-astro-cid-zgufigjl]{width:var(--icon-inline);height:var(--icon-inline)}.crumbs[data-astro-cid-weurd6cm]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);color:var(--color-fg-muted)}.crumbs__trail[data-astro-cid-weurd6cm]{flex-wrap:wrap;display:flex}.crumbs__trail[data-astro-cid-weurd6cm] li[data-astro-cid-weurd6cm]{align-items:center;display:flex}.crumbs__trail[data-astro-cid-weurd6cm] li[data-astro-cid-weurd6cm]+li[data-astro-cid-weurd6cm]:before{content:"/";padding-inline:var(--spacing-2)}.crumbs__trail[data-astro-cid-weurd6cm] a[data-astro-cid-weurd6cm],.crumbs[data-astro-cid-weurd6cm] .crumbs__back[data-astro-cid-weurd6cm]{align-items:center;gap:var(--spacing-2);min-height:var(--spacing-tap);display:inline-flex}@media (width>=40em){.crumbs[data-astro-cid-weurd6cm] .crumbs__back[data-astro-cid-weurd6cm]{display:none}}@media not all and (width>=40em){.crumbs__trail[data-astro-cid-weurd6cm]{display:none}}.ptag[data-astro-cid-nykhdy7o]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-medium);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);font-variant-numeric:tabular-nums;white-space:nowrap;white-space:normal;align-content:flex-end;align-items:baseline;column-gap:var(--spacing-2);left:var(--x);width:fit-content;max-width:100%;min-height:var(--spacing-tap);translate:calc(-1 * var(--x)) 0;color:var(--color-fg);flex-wrap:wrap;display:flex;position:relative}.ptag__name[data-astro-cid-nykhdy7o]:after{content:" ·";content:" ·" / ""}.ptag--start[data-astro-cid-nykhdy7o]{text-align:start;justify-content:flex-start}.ptag--center[data-astro-cid-nykhdy7o]{text-align:center;justify-content:center}.ptag--end[data-astro-cid-nykhdy7o]{text-align:end;justify-content:flex-end}.ptag__value[data-astro-cid-nykhdy7o]{align-items:center;gap:var(--spacing-2);white-space:nowrap;display:inline-flex}a[data-astro-cid-nykhdy7o].ptag{text-decoration:none}a[data-astro-cid-nykhdy7o].ptag:hover .ptag__name[data-astro-cid-nykhdy7o]{text-decoration-line:underline;text-decoration-thickness:var(--hairline);text-underline-offset:var(--underline-offset)}.ptag[data-astro-cid-nykhdy7o] .ptag__arrow{color:var(--color-fg-accent);transition:translate var(--duration-ui) var(--ease-out)}a[data-astro-cid-nykhdy7o].ptag:hover .ptag__arrow{translate:var(--spacing-1) 0}.profile[data-astro-cid-hxwz72mj]{--profile-h:var(--contour-h);color:var(--color-fg);margin:0}.profile--project[data-astro-cid-hxwz72mj]{--profile-h:var(--contour-h-mini)}.profile--hero[data-astro-cid-hxwz72mj]{--profile-h:var(--contour-h-hero)}.profile__lane[data-astro-cid-hxwz72mj]{padding-bottom:var(--tag-lane-gap)}.profile__leader[data-astro-cid-hxwz72mj]{left:var(--x);top:calc(-1 * var(--tag-lane-gap));height:calc(var(--y) + var(--tag-lane-gap) - var(--dot) / 2 - var(--dot-ring));border-left:var(--hairline) solid currentColor;translate:calc(var(--hairline) / -2) 0;position:absolute}.profile--index[data-astro-cid-hxwz72mj]{--profile-h:var(--contour-h-index)}.profile--footer[data-astro-cid-hxwz72mj]{--profile-h:var(--contour-h-horizon);color:var(--color-on-night-muted)}.profile__plot[data-astro-cid-hxwz72mj]{height:var(--profile-h);position:relative}.profile__line[data-astro-cid-hxwz72mj]{fill:none;stroke:currentColor;width:100%;height:100%;stroke-width:var(--hairline);display:block;position:absolute;inset:0;overflow:visible}.profile__line[data-astro-cid-hxwz72mj] path[data-astro-cid-hxwz72mj]{vector-effect:non-scaling-stroke}.profile__line--far[data-astro-cid-hxwz72mj]{opacity:var(--o-far)}.profile__datum[data-astro-cid-hxwz72mj]{stroke-dasharray:var(--dash-datum-fine);stroke-opacity:var(--o-datum)}.profile__pin[data-astro-cid-hxwz72mj]{left:var(--x);top:var(--y);width:0;height:0;position:absolute}.profile__dot[data-astro-cid-hxwz72mj]{left:calc(var(--dot) / -2);top:calc(var(--dot) / -2);width:var(--dot);height:var(--dot);border-radius:var(--radius-round);background-color:var(--color-fg-accent);box-shadow:0 0 0 var(--dot-ring) var(--color-surface);position:absolute}.profile__tag[data-astro-cid-hxwz72mj]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-medium);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);font-variant-numeric:tabular-nums;white-space:nowrap;bottom:calc(var(--dot) / 2 + var(--spacing-2));translate:calc(-1 * var(--x)) 0;color:var(--color-fg);position:absolute;left:0}.profile--footer[data-astro-cid-hxwz72mj] .profile__tag[data-astro-cid-hxwz72mj]{color:var(--color-fg-muted)}.profile__ends[data-astro-cid-hxwz72mj]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);justify-content:space-between;gap:var(--spacing-4);margin-top:var(--spacing-2);color:var(--color-fg-muted);display:flex}.profile__caption[data-astro-cid-hxwz72mj]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);margin-top:var(--spacing-2);color:var(--color-fg-muted)}@media not all and (width>=40em){.profile--index[data-astro-cid-hxwz72mj]{--dot:var(--dot-s);--dot-ring:var(--dot-ring-s)}}.emblem[data-astro-cid-hjniuc6p]{inline-size:var(--emblem-size);aspect-ratio:var(--aspect-square);-webkit-mask:var(--emblem) center / contain no-repeat;-webkit-mask:var(--emblem) center / contain no-repeat;-webkit-mask:var(--emblem) center / contain no-repeat;mask:var(--emblem) center / contain no-repeat;background-color:currentColor;flex:none}.wordmark[data-astro-cid-iwd2mrac]{align-items:baseline;column-gap:var(--wordmark-gap);min-height:var(--spacing-tap);font-size:var(--text-wordmark);line-height:var(--leading-none);letter-spacing:var(--tracking-title);white-space:nowrap;color:var(--color-fg);text-decoration:none;display:inline-flex}a[data-astro-cid-iwd2mrac].wordmark{align-items:center}.wordmark[data-astro-cid-iwd2mrac]:hover{color:var(--color-fg)}.wordmark--footer[data-astro-cid-iwd2mrac]{font-size:var(--text-subhead);min-height:0}.wordmark[data-astro-cid-iwd2mrac] .wordmark__emblem{inline-size:var(--emblem-size-wordmark);align-self:center;margin-inline-end:calc(var(--emblem-gap-wordmark) - var(--wordmark-gap))}.wordmark__word[data-astro-cid-iwd2mrac]{font-weight:var(--font-weight-normal)}.wordmark__word--name[data-astro-cid-iwd2mrac]{font-weight:var(--font-weight-semibold);position:relative}.wordmark--datum-under[data-astro-cid-iwd2mrac] .wordmark__word--name[data-astro-cid-iwd2mrac]:after{content:"";inset-inline:var(--datum-inset) 0;bottom:calc(-1 * var(--datum-drop));block-size:var(--datum-thickness);background-color:var(--color-fg-accent);position:absolute}.wordmark__datum[data-astro-cid-iwd2mrac]{inline-size:var(--datum-width);block-size:var(--datum-thickness);background-color:var(--color-fg-accent);align-self:center}.lockup[data-astro-cid-ot3kzn3k]{align-items:center;gap:var(--spacing-3);display:flex}.site-footer[data-astro-cid-nw2ivrzo]{padding-bottom:var(--spacing-7)}.site-footer[data-astro-cid-nw2ivrzo] .site-footer__horizon{padding-top:var(--spacing-8)}.site-footer__datum[data-astro-cid-nw2ivrzo]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);justify-content:space-between;gap:var(--spacing-1) var(--spacing-5);padding-block:var(--spacing-4) var(--spacing-7);border-bottom:var(--hairline) solid var(--color-hairline);color:var(--color-fg-muted);flex-wrap:wrap;display:flex}.site-footer__groups[data-astro-cid-nw2ivrzo]{gap:var(--spacing-7) var(--spacing-gutter);padding-block:var(--spacing-8);display:grid}.fgroup__h[data-astro-cid-nw2ivrzo]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-medium);line-height:var(--leading-ui);letter-spacing:var(--tracking-caps);text-transform:uppercase;margin-bottom:var(--spacing-3);color:var(--color-fg-muted)}.fgroup[data-astro-cid-nw2ivrzo] .fgroup__lockup{margin-bottom:var(--spacing-3)}.fgroup__address[data-astro-cid-nw2ivrzo]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-normal);margin-bottom:var(--spacing-3);color:var(--color-fg);display:grid}.fgroup[data-astro-cid-nw2ivrzo] li[data-astro-cid-nw2ivrzo]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-normal);min-height:var(--spacing-tap);color:var(--color-fg-muted);align-items:center;display:flex}.fgroup[data-astro-cid-nw2ivrzo] a[data-astro-cid-nw2ivrzo]{align-items:center;column-gap:var(--spacing-2);min-height:var(--spacing-tap);color:var(--color-fg);flex-wrap:wrap;text-decoration:none;display:inline-flex}.fgroup[data-astro-cid-nw2ivrzo] a[data-astro-cid-nw2ivrzo]:hover{text-decoration:underline}.fgroup[data-astro-cid-nw2ivrzo] a[data-astro-cid-nw2ivrzo][aria-current],.fgroup__verb[data-astro-cid-nw2ivrzo]{color:var(--color-fg-accent)}.fgroup__count[data-astro-cid-nw2ivrzo]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);color:var(--color-fg-muted)}.site-footer__legal[data-astro-cid-nw2ivrzo]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-normal);align-items:center;gap:var(--spacing-2) var(--spacing-6);padding-top:var(--spacing-5);border-top:var(--hairline) solid var(--color-hairline);color:var(--color-fg-muted);flex-wrap:wrap;display:flex}.site-footer__legal[data-astro-cid-nw2ivrzo] ul[data-astro-cid-nw2ivrzo]{gap:0 var(--spacing-5);flex-wrap:wrap;display:flex}.site-footer__legal[data-astro-cid-nw2ivrzo] a[data-astro-cid-nw2ivrzo]{align-items:center;gap:var(--spacing-1);min-height:var(--spacing-tap);display:inline-flex}@media (width>=40em){.site-footer__groups[data-astro-cid-nw2ivrzo]{grid-template-columns:var(--cols-2)}}@media (width>=60em){.site-footer__groups[data-astro-cid-nw2ivrzo]{grid-template-columns:var(--grid)}.fgroup[data-astro-cid-nw2ivrzo]{grid-column:var(--span-fgroup)}.fgroup--wide[data-astro-cid-nw2ivrzo]{grid-column:var(--span-fgroup-wide)}}.site-header[data-astro-cid-jr7posx5]{z-index:var(--z-header);background-color:var(--color-ground);border-bottom:var(--hairline) solid var(--color-rule);view-transition-name:site-header;position:sticky;top:0}.site-header__inner[data-astro-cid-jr7posx5]{justify-content:space-between;align-items:center;column-gap:var(--spacing-5);min-height:var(--spacing-header);flex-wrap:wrap;display:flex}.site-nav[data-astro-cid-jr7posx5]{display:none}.site-nav__list[data-astro-cid-jr7posx5]{align-items:center;gap:var(--nav-gap);display:flex}.site-nav__link[data-astro-cid-jr7posx5]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-normal);align-items:center;gap:var(--spacing-2);min-height:var(--spacing-tap);background:linear-gradient(currentColor 0 0) 0 calc(100% - var(--spacing-2)) / 0 var(--rule-w) no-repeat;transition:background-size var(--duration-ui) var(--ease-out), color var(--duration-micro) var(--ease-out);text-decoration:none;display:inline-flex}.site-nav__link[data-astro-cid-jr7posx5]:hover,.site-nav__link[data-astro-cid-jr7posx5]:focus-visible{background-size:100% var(--rule-w);color:var(--color-fg)}.site-nav__link[data-astro-cid-jr7posx5][aria-current]{color:var(--color-fg-accent);background-size:100% var(--rule-w)}.site-header__actions[data-astro-cid-jr7posx5]{align-items:center;gap:var(--spacing-1);margin-inline-start:auto;display:flex}.site-header__icon[data-astro-cid-jr7posx5]{min-width:var(--spacing-tap);min-height:var(--spacing-tap);color:var(--color-fg);place-items:center;display:inline-grid}.menu-toggle[data-astro-cid-jr7posx5]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-none);letter-spacing:var(--tracking-normal);align-items:center;gap:var(--spacing-2);min-height:var(--spacing-tap);padding-inline:var(--spacing-4);border:var(--hairline) solid var(--color-control);border-radius:var(--radius-control);color:var(--color-fg);background:0 0;display:inline-flex}.menu-toggle[data-astro-cid-jr7posx5]:hover{border-color:var(--color-fg)}@media (width>=60em){.site-nav[data-astro-cid-jr7posx5]{display:block}.site-header__actions[data-astro-cid-jr7posx5]{display:none}}@media (prefers-reduced-motion:no-preference){.site-header[data-astro-cid-jr7posx5]{transition:translate var(--duration-ui) var(--ease-out)}.site-header[data-astro-cid-jr7posx5][data-hidden]:not(:focus-within){translate:0 -100%}}.menu[data-astro-cid-75vghe7t]{overscroll-behavior:contain;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.menu[data-astro-cid-75vghe7t]::backdrop{background-color:var(--color-scrim)}.menu__inner[data-astro-cid-75vghe7t]{gap:var(--spacing-7);min-height:100%;padding-bottom:var(--spacing-6);flex-direction:column;display:flex}.menu__top[data-astro-cid-75vghe7t]{justify-content:space-between;align-items:center;column-gap:var(--spacing-5);min-height:var(--spacing-header);border-bottom:var(--hairline) solid var(--color-hairline);flex-wrap:wrap;display:flex}.menu__close[data-astro-cid-75vghe7t]{font-family:var(--font-sans);font-size:var(--text-small);font-weight:var(--font-weight-normal);line-height:var(--leading-none);letter-spacing:var(--tracking-normal);align-items:center;gap:var(--spacing-2);min-height:var(--spacing-tap);padding-inline:var(--spacing-4);border:var(--hairline) solid var(--color-control);border-radius:var(--radius-control);color:var(--color-fg);background:0 0;margin-inline-start:auto;display:inline-flex}.menu__primary[data-astro-cid-75vghe7t] a[data-astro-cid-75vghe7t]{font-family:var(--font-sans);font-size:var(--text-heading);font-weight:var(--font-weight-normal);line-height:var(--leading-snug);letter-spacing:var(--tracking-title);align-items:baseline;gap:var(--spacing-4);min-height:var(--spacing-tap);padding-block:var(--spacing-2);text-decoration:none;display:flex}.menu[data-astro-cid-75vghe7t] a[data-astro-cid-75vghe7t][aria-current]{color:var(--color-fg-accent)}.menu__primary[data-astro-cid-75vghe7t] a[data-astro-cid-75vghe7t][aria-current] .menu__label[data-astro-cid-75vghe7t]{text-decoration-line:underline;text-decoration-thickness:var(--rule-w)}.menu__n[data-astro-cid-75vghe7t]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-medium);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:var(--index-w);line-height:var(--leading-none);color:var(--color-fg-muted)}.menu__secondary[data-astro-cid-75vghe7t]{gap:var(--spacing-1) var(--spacing-5);margin-top:var(--spacing-5);padding-left:calc(var(--index-w) + var(--spacing-4));flex-wrap:wrap;display:flex}.menu__secondary[data-astro-cid-75vghe7t] a[data-astro-cid-75vghe7t],.menu__routes[data-astro-cid-75vghe7t] a[data-astro-cid-75vghe7t]{min-height:var(--spacing-tap);align-items:center;display:inline-flex}.menu__contact[data-astro-cid-75vghe7t]{gap:var(--spacing-3);padding-top:var(--spacing-5);border-top:var(--hairline) solid var(--color-hairline);color:var(--color-fg-muted);margin-top:auto;display:grid}.menu__routes[data-astro-cid-75vghe7t]{gap:0 var(--spacing-5);color:var(--color-fg);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:no-preference){.menu[data-astro-cid-75vghe7t][open]{animation:var(--animate-fade)}.menu[data-astro-cid-75vghe7t][open] .menu__primary[data-astro-cid-75vghe7t] li[data-astro-cid-75vghe7t]{animation:var(--animate-rise);animation-delay:calc(var(--i) * var(--stagger-step) + var(--duration-micro))}}.preview-notice[data-astro-cid-3ngnksih]{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-medium);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono);font-variant-numeric:tabular-nums;white-space:nowrap;left:var(--spacing-3);bottom:var(--spacing-3);z-index:var(--z-notice);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-control);background-color:var(--color-ink);color:var(--color-ground);pointer-events:none;position:fixed}.skip-link[data-astro-cid-z4jru4n3]{top:var(--spacing-2);left:var(--spacing-page);z-index:var(--z-skip);padding:var(--spacing-3) var(--spacing-4);background-color:var(--color-ink);color:var(--color-ground);translate:0 var(--offscreen);position:absolute}.skip-link[data-astro-cid-z4jru4n3]:focus{translate:0}.header-sentinel[data-astro-cid-z4jru4n3]{width:var(--hairline);height:calc(var(--spacing-header) * 2);pointer-events:none;position:absolute;top:0;left:0}.layout-crumbs[data-astro-cid-z4jru4n3]{padding-top:var(--spacing-2)}}@layer utilities{.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}.container{width:100%}@media (width>=40em){.container{max-width:40em}}@media (width>=48em){.container{max-width:48em}}@media (width>=60em){.container{max-width:60em}}@media (width>=64em){.container{max-width:64em}}@media (width>=72em){.container{max-width:72em}}.page-wrap{width:min(100% - 2 * var(--spacing-page), var(--container-page));margin-inline:auto}.rich-text>*+*{margin-top:var(--spacing-4)}.rich-text :where(ul){padding-left:var(--spacing-5);list-style:outside}.rich-text :where(ol){padding-left:var(--spacing-5);list-style:decimal}.rich-text :where(li+li){margin-top:var(--spacing-2)}.rich-text :where(h2,h3,h4){margin-top:var(--spacing-6);font-family:var(--font-sans);font-size:var(--text-large);font-weight:var(--font-weight-medium);line-height:var(--leading-snug);letter-spacing:var(--tracking-title)}.rich-text :where(blockquote){padding-left:var(--spacing-5);border-left:var(--rule-w) solid var(--color-fg-accent)}.bleed-grid{column-gap:var(--spacing-gutter);grid-template-columns:[full-start] minmax(calc(var(--spacing-page) - var(--spacing-gutter)), 1fr) [content-start] repeat(var(--cols), minmax(0, calc((var(--container-page) - (var(--cols) - 1) * var(--spacing-gutter)) / var(--cols)))) [content-end] minmax(calc(var(--spacing-page) - var(--spacing-gutter)), 1fr) [full-end];display:grid}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow: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}.content-start{align-content:flex-start}.border{border-style:var(--tw-border-style);border-width:1px}.surface-night{background-color:var(--color-night);background-image:var(--texture-grain);color:var(--color-on-night);--color-fg:var(--color-on-night);--color-fg-muted:var(--color-on-night-muted);--color-fg-accent:var(--color-accent-on-night);--color-hairline:var(--color-rule-night);--color-control:var(--color-line-control-night);--color-surface:var(--color-night);--image-placeholder:var(--color-night-raised);--selection-bg:var(--color-on-night);--selection-fg:var(--color-night)}.type-note{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--font-weight-normal);line-height:var(--leading-ui);letter-spacing:var(--tracking-mono)}.text-wrap{text-wrap:wrap}.whitespace-nowrap{white-space:nowrap}.lowercase{text-transform:lowercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.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}.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,)}.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-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media not all and (width>=40em){.max-sm\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-sm\:hidden{display:none}}@media (width>=40em){.sm\:hidden{display:none}}}@keyframes dk-fade{0%{opacity:0}}@keyframes dk-rise{0%{opacity:0;translate:0 var(--rise)}}@keyframes dk-unveil{0%{clip-path:inset(var(--unveil-from) 0 0 0)}}@keyframes dk-wipe{0%{clip-path:inset(var(--wipe-bleed) 100% var(--wipe-bleed) var(--wipe-bleed))}to{clip-path:inset(var(--wipe-bleed))}}@keyframes dk-settle{0%{opacity:0;scale:0}}@keyframes dk-drop{0%{opacity:0;translate:0 var(--dropdown-drop)}}@keyframes dk-vt-out{to{opacity:0}}@keyframes dk-vt-in{0%{opacity:0}}@media (prefers-reduced-motion:no-preference){:root[data-reveal-ready] [data-reveal]:not([data-reveal=ground]){transition:opacity var(--duration-reveal) var(--ease-out), translate var(--duration-reveal) var(--ease-out);transition-delay:calc(var(--i,0) * var(--stagger-step))}:root[data-reveal-ready] [data-reveal]:not([data-reveal=ground]):not([data-inview]){opacity:0;translate:0 var(--rise)}:root[data-reveal-ready] [data-reveal=ground] img{transition:clip-path var(--duration-hero) var(--ease-out)}:root[data-reveal-ready] [data-reveal=ground]:not([data-inview]) img{clip-path:inset(100% 0 0)}:root[data-reveal-ready] [data-draw] [data-draw-line]{clip-path:inset(var(--wipe-bleed) 100% var(--wipe-bleed) var(--wipe-bleed));transition:clip-path var(--duration-draw) var(--ease-draw)}:root[data-reveal-ready] [data-draw][data-inview] [data-draw-line]{clip-path:inset(var(--wipe-bleed))}:root[data-reveal-ready] [data-draw] [data-draw-pin]{opacity:0;transition:opacity var(--duration-reveal) var(--ease-out) var(--duration-draw), scale var(--duration-reveal) var(--ease-out) var(--duration-draw);scale:0}:root[data-reveal-ready] [data-draw][data-inview] [data-draw-pin]{opacity:1;scale:1}.profile--draw-load [data-draw-line]{animation:var(--animate-wipe)}.profile--draw-load [data-draw-pin]{animation:var(--animate-settle)}.profile--draw-load [data-draw-follow]{animation:var(--animate-follow)}::view-transition-old(root){animation:dk-vt-out var(--duration-ui) var(--ease-out) both}::view-transition-new(root){animation:dk-vt-in var(--duration-ui) var(--ease-out) both}::view-transition-group(.project-hero){animation-duration:var(--duration-vt);animation-timing-function:var(--ease-in-out)}::view-transition-old(.project-hero){object-fit:cover;width:100%;height:100%}::view-transition-new(.project-hero){object-fit:cover;width:100%;height:100%}}@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-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-ease{syntax:"*";inherits:false}
