:root{--gray-0: #f8f9fa;--gray-1: #f1f3f5;--gray-2: #e9ecef;--gray-3: #dee2e6;--gray-4: #ced4da;--gray-11: #0d0f12;--gray-10: #16191d;--gray-9: #212529;--gray-8: #343a40;--gray-7: #495057;--gray-6: #868e96;--gray-5: #adb5bd;--gray-5-hsl: 210 11% 71%;--shadow-color: 220 3% 15%}.blur,.filter{--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: }*,*:before,*:after{box-sizing:border-box}:where(html){-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}:where(html){block-size:100%}@media(prefers-reduced-motion:no-preference){:where(html){scroll-behavior:smooth}}:where(body){min-block-size:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}@supports (min-block-size: 100svh){:where(body){min-block-size:100svh}}:where(body,h1,h2,h3,h4,p,ol,ul,figure,blockquote,pre,dl,dd,hr){margin:0}:where(ol[role=list],ul[role=list]){list-style:none;padding:0}:where(h1,h2,h3,h4,button,input,label){line-height:1.1}:where(h1,h2,h3,h4){text-wrap:balance}:where(p){text-wrap:pretty}:where(a:not([class])){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;color:currentColor}:where(a,u,ins,abbr){text-underline-offset:2px}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,svg,picture){max-inline-size:100%;block-size:auto}:where(hr){border-width:0;border-style:solid;block-size:2px;background-color:currentColor}:where(input,button,textarea,select),:where(input[type=file])::-webkit-file-upload-button{font:inherit;font-size:inherit;color:inherit;letter-spacing:inherit}:where(textarea:not([rows])){min-block-size:10em}:where(a[href],area,button,input:not([type=text],[type=email],[type=number],[type=password],[type=""],[type=tel],[type=url]),label[for],select,summary,[tabindex]:not([tabindex*="-"])){cursor:pointer}:where(a[href],area,button,input,label[for],select,summary,textarea,[tabindex]:not([tabindex*="-"])){touch-action:manipulation}:target{scroll-margin-block:5ex}:root{--space-zero: clamp(0rem, -.02rem + .1vw, .06rem);--space-5xs: clamp(.06rem, .06rem + 0vw, .06rem);--space-4xs: clamp(.13rem, .1rem + .1vw, .19rem);--space-3xs: clamp(.31rem, .31rem + 0vw, .31rem);--space-2xs: clamp(.56rem, .54rem + .1vw, .63rem);--space-xs: clamp(.88rem, .85rem + .1vw, .94rem);--space-s: clamp(1.13rem, 1.08rem + .21vw, 1.25rem);--space-m: clamp(1.69rem, 1.63rem + .31vw, 1.88rem);--space-l: clamp(2.25rem, 2.17rem + .42vw, 2.5rem);--space-xl: clamp(3.38rem, 3.25rem + .63vw, 3.75rem);--space-2xl: clamp(4.5rem, 4.33rem + .83vw, 5rem);--space-3xl: clamp(6.75rem, 6.5rem + 1.25vw, 7.5rem);--space-4xl: clamp(9rem, 8.67rem + 1.67vw, 10rem);--space-5xs-4xs: clamp(.06rem, .02rem + .21vw, .19rem);--space-4xs-3xs: clamp(.13rem, .06rem + .31vw, .31rem);--space-3xs-2xs: clamp(.31rem, .21rem + .52vw, .63rem);--space-2xs-xs: clamp(.56rem, .44rem + .63vw, .94rem);--space-xs-s: clamp(.88rem, .75rem + .63vw, 1.25rem);--space-s-m: clamp(1.13rem, .88rem + 1.25vw, 1.88rem);--space-m-l: clamp(1.69rem, 1.42rem + 1.35vw, 2.5rem);--space-l-xl: clamp(2.25rem, 1.75rem + 2.5vw, 3.75rem);--space-xl-2xl: clamp(3.38rem, 2.83rem + 2.71vw, 5rem);--space-2xl-3xl: clamp(4.5rem, 3.5rem + 5vw, 7.5rem);--space-3xl-4xl: clamp(6.75rem, 5.67rem + 5.42vw, 10rem);--space-s-l: clamp(1.13rem, .67rem + 2.29vw, 2.5rem);--space-s-xl: clamp(1.13rem, .25rem + 4.38vw, 3.75rem);--space-4xs-m: clamp(.13rem, -.46rem + 2.92vw, 1.88rem);--space-3xl-2xl: clamp(5rem, 7.33rem + -2.92vw, 6.75rem);--space-xl-3xl: clamp(3.38rem, 2rem + 6.88vw, 7.5rem);--space-m-s: clamp(1.25rem, 1.83rem + -.73vw, 1.69rem);--space-s-3xs: clamp(.31rem, 1.4rem + -1.35vw, 1.13rem);--space-l-2xl: clamp(2.25rem, 1.33rem + 4.58vw, 5rem);--size-step-000: clamp(.78rem, .78rem + .03vw, .8rem);--size-step-00: clamp(.94rem, .92rem + .1vw, 1rem);--size-step-0: clamp(1.13rem, 1.08rem + .21vw, 1.25rem);--size-step-1: clamp(1.35rem, 1.28rem + .35vw, 1.56rem);--size-step-2: clamp(1.62rem, 1.51rem + .56vw, 1.95rem);--size-step-3: clamp(1.94rem, 1.78rem + .83vw, 2.44rem);--size-step-4: clamp(2.33rem, 2.09rem + 1.2vw, 3.05rem);--size-step-5: clamp(2.8rem, 2.46rem + 1.69vw, 3.81rem);--leading-flat: 1.15;--leading-tight: 1.3;--leading-snug: 1.45;--leading-normal: 1.6;--leading-relaxed: 1.75;--leading-loose: 1.9;--font-monospace: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--font-serif: Georgia,serif;--font-ultra-light: 200;--font-light: 300;--font-regular: 400;--font-medium: 475;--font-bold: 550}.skip-to-main{position:absolute;inset-inline-start:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);white-space:nowrap;overflow:hidden;font-size:var(--primary-nav-font-size);line-height:var(--primary-nav-leading);opacity:0;transform:translateY(-100%);transition:opacity var(--transition-base),inset-block-start var(--transition-base),transform var(--transition-base);z-index:1000}.skip-to-main:hover{color:var(--color-brand-inverted)}.skip-to-main:focus-visible{block-size:unset;inline-size:100vw;margin:unset;padding:var(--primary-nav-padding-block) var(--dynamic-gutter);border:unset;clip:unset;white-space:normal;overflow:auto;background:transparent;backdrop-filter:blur(var(--space-s));opacity:1;inset-block-start:0;transform:translateY(0);outline:none}.skip-to-main:before{content:"";position:absolute;inset-block:calc(.75 * var(--primary-nav-padding-block));inset-inline-start:calc(var(--dynamic-gutter) - calc(.5 * var(--primary-nav-padding-inline)));inset-inline-end:calc(100vw - var(--dynamic-gutter) - 9ch);border-radius:var(--border-radius-1)}.skip-to-main:focus-visible:before{outline:var(--focus-ring);outline-color:var(--color-brand-inverted);outline-offset:var(--focus-ring-offset)}.site-header{position:absolute;inset-block-start:0;inset-inline:0;overflow-x:auto;transition:background var(--transition-base);z-index:1}.site-nav{border-block-end:var(--site-header-border-thickness) solid var(--color-border-hero)}.site-nav ul{--gutter: var(--space-5xs);flex-wrap:nowrap;margin-inline-start:calc(-1 * var(--primary-nav-padding-inline))}.site-nav ul a{position:relative;display:inline-block;padding:var(--primary-nav-padding-block) var(--primary-nav-padding-inline);font-size:var(--primary-nav-font-size);line-height:var(--primary-nav-leading);text-decoration-line:none}.site-nav ul a:before{content:"";position:absolute;inset:calc(.75 * var(--primary-nav-padding-block)) calc(.5 * var(--primary-nav-padding-inline));border-radius:var(--border-radius-1);transition:outline-offset var(--transition-base)}.site-nav ul a:after{--text-decoration-size: var(--border-thickness-2);content:"";position:absolute;inset-inline:auto var(--primary-nav-padding-inline);inset-block-end:calc(-1 / 2 * var(--text-decoration-size));inline-size:0%;block-size:var(--text-decoration-size);background-color:transparent;transition:inset-inline var(--transition-base),inline-size var(--transition-base),background-color var(--transition-base)}.site-nav ul a:hover:after{background-color:currentColor}.site-nav ul a:focus-visible{outline:none}.site-nav ul a:focus-visible:before{outline:var(--focus-ring);outline-color:var(--color-brand-inverted);outline-offset:var(--focus-ring-offset)}.site-nav ul a:hover:after,.site-nav :is([aria-current=page],[data-state=active]):after{inline-size:calc(100% - (2 * var(--primary-nav-padding-inline)));inset-inline:var(--primary-nav-padding-inline) auto}.site-nav :is([aria-current=page],[data-state=active]):after{background-color:var(--color-underline)}@media(forced-colors:active){.site-nav :is([aria-current=page],[data-state=active]):after{background-color:canvasText}.site-nav ul a:after,.site-nav ul a:hover:after{background-color:canvasText}}#secondary-nav dl{--gutter: var(--space-m-l) var(--space-xl)}#secondary-nav dd{text-wrap:pretty}@media(width>=48em){#secondary-nav dd{text-wrap:balance}}#secondary-nav a:focus-visible{outline:none}#secondary-nav a:before,#secondary-nav a:after{content:"";position:absolute;inset:calc(-1 * var(--space-2xs-xs));background-color:transparent;border-radius:var(--border-radius-2);transition:background-color var(--transition-base)}#secondary-nav a:before{z-index:-1}#secondary-nav a:focus-visible:before{outline:var(--focus-ring)}#get-in-touch{--gutter: var(--space-xl-2xl) var(--space-s-l)}#get-in-touch a{max-inline-size:-moz-fit-content;max-inline-size:fit-content;font-size:var(--size-step-4-5);word-break:break-word}#get-in-touch svg{display:none;max-inline-size:min(33vw,37.5rem);inline-size:100%}@media(width>=80em){#get-in-touch svg{display:unset}}#get-in-touch svg path{fill:var(--color-bird-icon-path)}@media(prefers-reduced-motion:no-preference){.blinking-dot{animation:--blink 1s ease infinite}}#get-in-touch:target .blinking-dot{color:var(--color-brand)}.site-footer a{position:relative;padding-block:var(--space-s)}.site-footer a:focus-visible{outline:none}.site-footer a:before{content:"";position:absolute;inset:calc(1 / 1.5 * var(--space-s)) calc(-1 / 4 * var(--space-s))}.site-footer a:focus-visible:before{outline:var(--focus-ring);border-radius:var(--border-radius-1)}:where(.site-footer) .repel{--gutter: 0 var(--space-xs)}.socials{--gutter: 0 var(--space-s)}.socials a{display:inline-flex;gap:var(--space-3xs)}.socials svg{block-size:1em}.socials path{fill:currentColor}:root{--color-brand: #1c22ff;--color-brand-inverted: #99adff}@media(dynamic-range:high)or (color-gamut:p3){:root{--color-brand: oklch(47.35% .3177 266.4767422167044);--color-brand-inverted: oklch(76.53% .13 272.52) }}@media(prefers-color-scheme:dark){:root{--color-brand: var(--color-brand-inverted);--color-brand-inverted: rgb(194, 227, 0) }@media(dynamic-range:high)or (color-gamut:p3){:root{--color-brand-inverted: oklch(89.11% .2105 95.33);--color-brand-inverted: oklch(.8584 .2344 119.13) }}}:root{--color-bg-1: var(--gray-0);--color-bg-2: var(--gray-1);--color-bg-3: var(--gray-2);--color-bg-4: var(--gray-3);--color-bg-5: var(--gray-4);--color-bg-inverted-1: var(--gray-11);--color-bg-inverted-2: var(--gray-10);--color-bg-inverted-3: var(--gray-9);--color-bg-inverted-4: var(--gray-8);--color-text-1: var(--gray-8);--color-text-2: var(--gray-11);--color-text-3: var(--gray-7);--color-text-4: var(--gray-6);--color-text-inverted-1: var(--gray-4);--color-text-inverted-2: var(--gray-1);--color-text-inverted-3: var(--gray-5);--color-text-inverted-4: var(--gray-6);--color-border-1: var(--gray-3);--color-border-2: var(--gray-8);--color-underline: currentColor;--color-border-hero: var(--color-border-2);--color-border-code: transparent;--color-border-pre: transparent;--color-border-pre-separator: var(--gray-8);--color-blockquote: var(--gray-8);--color-counter-connector: var(--color-border-1);--color-text-button: var(--color-text-2);--color-bg-button: var(--color-bg-4);--color-bird-icon-path: var(--color-text-2);--color-bg-site-header: var(--color-bg-1)}@media(prefers-color-scheme:dark){:root{--color-bg-1: var(--color-bg-inverted-1);--color-bg-2: var(--color-bg-inverted-2);--color-bg-3: var(--color-bg-inverted-3);--color-bg-4: var(--color-bg-inverted-4);--color-text-1: var(--color-text-inverted-1);--color-text-2: var(--color-text-inverted-2);--color-text-3: var(--color-text-inverted-3);--color-text-4: var(--color-text-inverted-4);--color-border-1: var(--gray-8);--color-border-2: var(--gray-3);--color-border-hero: var(--color-border-1);--color-border-pre: var(--gray-8);--color-blockquote: var(--gray-5);--color-counter-connector: var(--color-border-hero);--color-bird-icon-path: var(--color-text-1) }}@supports (background: color-mix(in srgb,red 50%,blue)){:root{--color-underline: color-mix(in srgb, currentColor, transparent 33%);--color-blockquote: color-mix(in srgb, currentColor, transparent 33%) }}:root{--measure: 55ch;--content-box-max-width: calc( var(--border-box-max-width, 80rem) - (2 * var(--page-gutter)) );--page-gutter: var(--space-s-l);--dynamic-gutter: max( var(--page-gutter), calc((100% - var(--content-box-max-width)) / 2) );--border-thickness-1: 1px;--border-thickness-2: 2px;--border-thickness-3: 3px;--border-radius-1: var(--space-4xs);--border-radius-2: var(--space-3xs);--border-radius-conditional-1: clamp( 0px, calc(100vw - 100%) * 1e5, var(--border-radius-1) );--border-radius-round: 100vmin;--underline-offset: var(--space-4xs);--counter-size: 3rem;--counter-gap: var(--space-xs);--button-padding-block: .5em;--button-padding-inline: .75em}:root{--size-step-000-00: clamp(.7813rem, .7083rem + .3646vw, 1rem);--size-step-00-0: clamp(.9375rem, .8333rem + .5208vi, 1.25rem);--size-step-3-4: clamp(1.9438rem, 1.5744rem + 1.8469vi, 3.0519rem);--size-step-4-5: clamp(2.3325rem, 1.8383rem + 2.4708vi, 3.815rem)}:root{--transition-base: .25s ease;--transition-movement: .2s linear;--transition-fade: .3s ease;--transition-bounce: .5s cubic-bezier(.5, .05, .2, 1.5)}:root{--focus-ring-width: var(--border-thickness-2);--focus-ring: var(--focus-ring-width) solid var(--color-brand);--focus-ring-offset: var(--space-5xs)}:root{--site-header-border-thickness: var(--border-thickness-1);--primary-nav-padding-block: var(--space-s);--primary-nav-padding-inline: var(--space-2xs);--primary-nav-font-size: var(--size-step-00);--primary-nav-leading: var(--leading-flat);--primary-nav-height: calc( (2 * var(--primary-nav-padding-block)) + (var(--primary-nav-leading) * var(--primary-nav-font-size)) )}:root{--geist-tnum: "tnum" on;--geist-ss05: "ss05" on}@supports (font-variant-numeric: tabular-nums){:root{--geist-tnum: "____";font-variant-numeric:tabular-nums}}@view-transition{navigation: auto;}:root{color-scheme:light dark}body{display:flex;flex-direction:column;position:relative;background:var(--color-bg-1);color:var(--color-text-1);font-size:var(--size-step-0);font-weight:var(--font-regular);line-height:var(--leading-normal);font-feature-settings:var(--geist-tnum),var(--geist-ss05);-webkit-font-smoothing:auto}@media(prefers-color-scheme:dark){body{-webkit-font-smoothing:antialiased}}body>*+*:not(.site-header,main)>*{border-block-start:var(--border-thickness-1) solid var(--color-border-1)}main{flex-grow:999}main>*:not(.hero,[aria-label=Breadcrumbs])+*{border-block-start:var(--border-thickness-1) solid var(--color-border-1)}:where(h1,.heading-1,h2,.heading-2,h3,.heading-3,h4,.heading-4,h5,.heading-5){color:var(--color-text-2)}h2,.heading-2,h3,.heading-3,h4,.heading-4,h5,.heading-5{font-weight:var(--font-medium)}h2,.heading-2,h3,.heading-3{line-height:var(--leading-tight)}h4,.heading-4,h5,.heading-5{line-height:var(--leading-snug)}h1,.heading-1{font-size:var(--size-step-5);font-weight:var(--font-bold);line-height:var(--leading-flat);letter-spacing:-.0125em;word-break:break-word}h2,.heading-2{font-size:var(--size-step-3)}h3,.heading-3{font-size:var(--size-step-2)}h4,.heading-4{font-size:var(--size-step-1)}h5,.heading-5{font-size:var(--size-step-0)}p,dd,li{max-inline-size:var(--measure);text-wrap:pretty}:where(a,u,ins,abbr){text-decoration-thickness:max(.05em,var(--border-thickness-1));text-underline-offset:var(--underline-offset)}a{color:inherit;text-decoration-color:var(--color-underline);-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:color var(--transition-base),text-decoration-color var(--transition-base),outline-offset var(--transition-base)}a:hover{color:var(--color-brand)}button{border-color:transparent}em{font-weight:var(--font-bold)}:where(ol,ul):not([role=list]){padding-inline-start:var(--space-s)}:where(ol,ul):not([role=list]) :where(li){padding-inline-start:var(--space-4xs)}blockquote{position:relative;display:grid;gap:0 var(--space-xs);grid-template-columns:auto 1fr}blockquote>*{grid-column:2/-1}blockquote>*+*{margin-block-start:var(--flow-space, var(--space-xs))}blockquote:before{content:"“";grid-row:1/2;align-self:start;block-size:1ex;background-color:var(--color-bg-1);color:var(--color-blockquote);font-size:3em;font-weight:var(--font-ultra-light);line-height:var(--leading-flat);translate:0 -20%;max-block-size:.3lh}blockquote:after{--_width: var(--border-thickness-2);content:"";position:absolute;grid-column:1/2;justify-self:center;inline-size:var(--_width);block-size:calc(100% - 1.25lh);align-self:end;transform:translateY(calc(var(--_width) * -1 / 2));background-color:var(--color-blockquote);z-index:-1}cite{font-style:normal}strong{color:var(--color-text-2);font-weight:var(--font-bold)}hr{block-size:0;background-color:unset;border-block-end:var(--border-thickness-1) solid var(--color-border-1)}:where(:focus-visible){text-decoration-line:none;outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:var(--border-radius-1)}[tabindex="-1"]:focus{outline:none}:target{scroll-margin-block:0}#main:target{scroll-margin-block:calc(-1 * (var(--border-thickness-2) + var(--primary-nav-height)))}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.grid{display:grid}.hidden{display:none}.resize{resize:both}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.text-step-1{font-size:clamp(1.35rem,1.28rem + .35vw,1.56rem)}.font-light{font-weight:300}.font-medium{font-weight:475}.leading-flat{line-height:1.15}.leading-snug{line-height:1.45}.tracking-wide{letter-spacing:.025em}.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)}.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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.flow-space-2xs{--flow-space: clamp(.56rem, .54rem + .1vw, .63rem)}.flow-space-xs{--flow-space: clamp(.88rem, .85rem + .1vw, .94rem)}.flow-space-s{--flow-space: clamp(1.13rem, 1.08rem + .21vw, 1.25rem)}.flow-space-l{--flow-space: clamp(2.25rem, 2.17rem + .42vw, 2.5rem)}.cluster{display:flex;flex-wrap:wrap;gap:var(--gutter, var(--space-s-m));justify-content:var(--cluster-horizontal-alignment, flex-start);align-items:var(--cluster-vertical-alignment, center)}.stack{display:flex;flex-direction:column;gap:var(--gutter, var(--space-s-m));justify-content:var(--stack-vertical-alignment, flex-start);align-items:var(--stack-horizontal-alignment, flex-start)}.flow>*+*{margin-block-start:var(--flow-space, 1em)}.grid{display:grid;grid-template-columns:repeat(var(--grid-placement, auto-fill),minmax(var(--grid-min-item-size, min(16rem, 100%)),1fr));gap:var(--gutter, var(--space-s-l))}.grid[data-layout=halves]{--grid-placement: auto-fit;--grid-min-item-size: clamp(min(16rem, 100%), (50vw - (2 * var(--page-gutter))), 33rem)}.grid[data-layout=thirds]{--grid-placement: auto-fit;--grid-min-item-size: clamp(min(16rem, 100%), 33%, 20rem)}.icon{inline-size:.75em;block-size:.75em}@supports (inline-size: 1cap){.icon{inline-size:1cap;block-size:1cap}}.with-icon .icon{margin-inline-end:1rem}.repel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:var(--repel-vertical-alignment, center);gap:var(--gutter, var(--space-s-m))}.repel[data-nowrap]{flex-wrap:nowrap}.wrapper{margin-inline:auto;max-inline-size:min(var(--border-box-max-width, 80rem),100vw);padding-inline:var(--page-gutter)}.btn{--focus-ring-offset: 0px;padding:var(--button-padding-block) var(--button-padding-inline);border:unset;border-radius:var(--border-radius-round);outline:var(--border-thickness-2) solid transparent;background-color:var(--color-bg-button);color:var(--color-text-button);line-height:var(--leading-flat);transition:opacity var(--transition-base),background-color var(--transition-base),color var(--transition-base),outline var(--transition-base),outline-offset var(--transition-base)}.btn:hover,.btn:focus-visible{outline-color:var(--color-border-2);outline-offset:var(--focus-ring-offset)}.btn:focus-visible{outline-color:var(--color-brand)}.inverted{background:var(--color-bg-inverted-1);color:var(--color-text-inverted-1);-webkit-font-smoothing:antialiased}.inverted :focus-visible{outline-color:var(--color-brand-inverted)}@media(forced-colors:active){.inverted{-webkit-font-smoothing:auto}@media(prefers-color-scheme:dark){.inverted{-webkit-font-smoothing:antialiased}}}.inverted :where(h1,.heading-1,h2,.heading-2,h3,.heading-3,h4,.heading-4,h5,.heading-5){color:var(--color-text-inverted-2)}.inverted a:hover{color:var(--color-brand-inverted)}.inverted strong{color:var(--color-text-inverted-2)}.region{padding-block-start:var( --region-start-space, var(--region-space, var(--space-xl)) );padding-block-end:var( --region-end-space, var(--region-space, var(--space-xl)) )}.text-color-2{color:var(--color-text-2)}.text-color-inverted-3{color:var(--color-text-inverted-3)}.small-text{font-size:clamp(.94rem,.92rem + .1vw,1rem);letter-spacing:.025em}.tiny-text{font-size:clamp(.78rem,.78rem + .03vw,.8rem);letter-spacing:.05em}.text-uppercase-medium{font-weight:475;text-transform:uppercase}.visually-hidden:not(:focus):not(:active){position:absolute;block-size:0;inline-size:1px;margin:0;padding:0;border:0;clip:rect(0 0 0 0);white-space:nowrap;overflow:hidden}@keyframes --blink{0%,to{opacity:1}50%{opacity:.125}}.homepage-heading{--gutter: var(--space-5xs)}.homepage-heading .translations{--gutter: var(--space-3xs);order:-1;font-size:var(--size-step-000-00);line-height:1.45;letter-spacing:.05em}@media(width>=48em){.homepage-heading .translations{letter-spacing:.025em}}#latest-posts .list-header{--cluster-horizontal-alignment: space-between}.hero-email{position:relative;display:inline-block;text-decoration:none;line-height:var(--leading-tight)}.circle{max-inline-size:unset;position:absolute;inset-inline-start:50%;inset-block-start:50%;translate:-49% -61%;block-size:175%;inline-size:calc(100% + 3ch);fill:none;stroke-linecap:round;stroke-dasharray:var(--offset, 69px) 278px;stroke-dashoffset:361px}.hero-email:hover .circle{--offset: 180px}@media(hover)and (pointer:fine){@media(prefers-reduced-motion:no-preference){.circle{transition:stroke-dasharray .5s ease;pointer-events:none}}}.circle path{stroke:var(--color-underline)}.hero-email:focus-visible .circle path{--color-underline: transparent}.hero{--region-start-space: calc(var(--space-xl) + var(--primary-nav-height))}.hero>:first-child{border-block-end:var(--site-header-border-thickness) solid var(--color-border-hero)}.list-wrapper{--measure: 45.75rem;max-inline-size:var(--measure)}.list-header{--gutter: var(--space-3xs);--cluster-vertical-alignment: baseline}.list-entry{--flow-space: var(--space-m-s);--gutter: var(--space-3xs) var(--space-m-l);position:relative;grid-template-columns:1fr}@media(width>=30em){.list-entry{grid-template-columns:minmax(0,var(--measure)) auto;align-items:first baseline}}.list-entry a{max-inline-size:-moz-fit-content;max-inline-size:fit-content}.list-entry a:before{content:"";position:absolute;inset:0}a[data-draft]:hover{color:red}[data-draft]:after{content:"Draft";display:inline-block;margin-inline-start:1ch;padding-inline:.5ch;border-radius:var(--border-radius-1);color:red;font-weight:var(--font-medium);text-transform:uppercase;vertical-align:middle;outline:.1em solid}:is(.list-entry) [data-draft]:after{font-size:var(--size-step-000);line-height:var(--leading-normal);letter-spacing:.05em}.post [data-draft]:after{font-size:var(--size-step-0);line-height:var(--leading-normal);letter-spacing:normal}.post h1{font-size:var(--size-step-3-4);line-height:var(--leading-tight)}@media(width>=48em){.post h1{line-height:var(--leading-flat)}}.post h2,.post h3{line-height:var(--leading-snug)}.post h2 a[href^="#"],.post h3 a[href^="#"]{margin-inline-start:.5ch;font-family:var(--font-monospace)}.post h2:target,.post h3:target{scroll-margin-block:1lh}.post h2{font-size:var(--size-step-1)}.post h3{font-size:var(--size-step-0)}.summary,.pubdate{--flow-space: var(--space-xs)}.summary{text-wrap:pretty}@media(width>=48em){.summary{text-wrap:balance}}.post .hero-inner,.post-body{display:grid;grid-template-columns:minmax(0,var(--measure)) minmax(0,1fr) minmax(0,1fr)}.post .hero-inner>*{grid-column:1/-1}.post-body>*{grid-column:1/2}@media(width>=80em){.post .hero-inner:has(.post-featured-img){grid-template-rows:auto auto 1fr}.post .hero-inner:has(.post-featured-img)>*:not(.post-featured-img){grid-column:1/2}.post .hero-inner:has(.post-featured-img) .pubdate{align-self:end}.post .hero-inner:has(.post-featured-img) .post-featured-img{--flow-space: 0;grid-column:2/-1;grid-row:1/-1}}.post-featured-img,.post-body>p:has(img){min-inline-size:calc(100% + (2 * var(--page-gutter)));margin-inline-start:calc(-1 * var(--page-gutter))}@media(width>=30em){.post-featured-img,.post-body>p:has(img){min-inline-size:unset;margin-inline-start:unset}}.post-featured-img img,.post-body img{border-radius:var(--border-radius-conditional-1)}.post-featured-img{--flow-space: var(--space-l)}.post-featured-img figcaption{--flow-space: var(--space-xs);margin-inline:var(--page-gutter);text-wrap:balance}@media(width>=30em){.post-featured-img figcaption{margin-inline:unset}}.post-body img{margin-inline:auto}@media(width>=30em){.post-body img{margin-inline:unset}}.post-footer{--region-space: var(--space-s);--gutter: var(--space-s) var(--space-xl);grid-template-columns:1fr;border-block-start:var(--border-thickness-1) solid var(--color-border-1)}@media(width>=80em){.post-footer{grid-template-columns:1fr auto;align-items:last baseline}}.post-footer .tag-list{max-inline-size:unset}.reply-methods svg{block-size:1em;inline-size:auto}.reply-methods a{display:inline-flex;gap:var(--space-3xs);align-items:center}pre{padding-block:var(--space-xs);outline:var(--border-thickness-1) solid var(--color-border-pre);border-radius:var(--border-radius-1);background:var(--color-bg-inverted-2)!important;-moz-tab-size:2;-o-tab-size:2;tab-size:2;-webkit-font-smoothing:antialiased;cursor:auto}pre:focus-visible{--focus-ring-offset: calc(-1 * var(--space-4xs));outline:var(--focus-ring)}pre code{display:block;min-inline-size:100%;inline-size:-moz-fit-content;inline-size:fit-content;padding-inline:var(--space-s);font-size:var(--size-step-00);line-height:var(--leading-relaxed)}code{font-size:.875em;font-family:var(--font-monospace)}:not(pre)>code{padding:0px var(--space-3xs);border-radius:var(--border-radius-1);background-color:var(--color-bg-4);outline:var(--border-thickness-1) solid var(--color-border-code);color:var(--color-text-2);-webkit-box-decoration-break:clone;box-decoration-break:clone}code-pen{display:block;outline:var(--border-thickness-1) solid var(--color-border-pre);background:var(--color-bg-inverted-1);border-radius:var(--border-radius-1);overflow:hidden;-moz-column-break-inside:avoid;break-inside:avoid}code-pen>*{border-radius:0;outline:none}code-pen>*+*{border-block-start:var(--border-thickness-1) solid var(--color-border-pre-separator)}code-pen [type=submit]{font-size:var(--size-step-00);letter-spacing:.025em;inline-size:100%;padding:var(--space-xs) var(--space-s);border:unset;background-color:var(--color-bg-inverted-3);color:var(--color-text-inverted-1);line-height:var(--leading-flat);text-align:start;-webkit-font-smoothing:antialiased;transition:background-color var(--transition-base),color var(--transition-base),outline var(--transition-base)}code-pen [type=submit]:hover{background-color:var(--color-bg-inverted-4);color:var(--color-text-inverted-2)}code-pen [type=submit]:focus-visible{--focus-ring-offset: calc(-1 * var(--space-4xs))}.line{display:block}.diff,.highlighted{margin-inline:calc(-1 * var(--space-s));padding-inline:var(--space-s);inline-size:calc(100% + calc(2 * var(--space-s)))}.remove{background:linear-gradient(to right,hsl(0deg 100% 50%) var(--border-thickness-3),hsl(0deg 100% 50% / 20%) var(--border-thickness-3))}.add{background:linear-gradient(to right,hsl(120deg 73.44% 74.9%) var(--border-thickness-3),hsl(120deg 73.44% 74.9% / 20%) var(--border-thickness-3))}.highlighted{background:linear-gradient(to right,var(--gray-5) var(--border-thickness-3),hsl(var(--gray-5-hsl) / 20%) var(--border-thickness-3))}.add:before{content:"+";color:#90ee90;-webkit-user-select:none;-moz-user-select:none;user-select:none}.remove:before{content:"-";color:red;-webkit-user-select:none;-moz-user-select:none;user-select:none}.error{background:#f43f5e29}.warning{background:#eab30829}project-showcase{display:block}.projects-scroll-container{padding-block:var(--space-s);overflow-x:scroll;scroll-snap-type:x mandatory;scroll-padding-inline:var(--dynamic-gutter);scrollbar-width:none}.projects-scroll-container::-webkit-scrollbar{display:none}.project-list{--image-width: 83vmin;display:grid;grid-auto-flow:column;align-items:center;gap:var(--page-gutter);inline-size:-moz-fit-content;inline-size:fit-content;padding-inline-start:var(--dynamic-gutter);padding-inline-end:calc(100% - var(--dynamic-gutter) - var(--image-width))}.project-item{position:relative;display:grid;gap:1em;max-inline-size:unset;scroll-snap-align:start}@media(hover:none)and (pointer:coarse){.project-item{scroll-snap-stop:always}}.project-item:last-child{scroll-snap-align:end}.project-item:before{content:"";position:absolute;inset:calc(-1 * var(--space-2xs-xs));border-radius:var(--border-radius-2);background-color:transparent;transition:background-color var(--transition-base);z-index:-1}.project-item picture{display:block}.project-item img{max-inline-size:var(--image-width);-o-object-fit:contain;object-fit:contain;transition:scale var(--transition-bounce)}.project-item:focus-within:before{outline:var(--focus-ring)}.project-item-header{--_iPad-bezel: 3%;--_iphone-inset: 5.25%;display:grid;grid-template-columns:auto 1fr 4ch;grid-template-areas:"title separator index";align-items:baseline;gap:var(--space-xs-s);margin-inline-end:var(--_iphone-inset)}.project-item-header:before,.project-item-header:after{content:"";grid-area:separator;flex-grow:1;block-size:var(--border-thickness-1);border-block-start:var(--border-thickness-1) dashed var(--color-border-1);align-self:center;transition:background-color var(--transition-base)}.project-link{grid-area:title;text-align:end}.project-link:after{content:"";position:absolute;inset:0;z-index:1}.project-link:focus-visible{outline:none}.project-index{grid-area:index}.project-item:has(:hover){color:var(--color-brand)}.project-item:has(:hover) img{scale:.98}.project-showcase-controls{--gutter: var(--space-2xs);--cluster-horizontal-alignment: end}.project-showcase-controls button{padding:.25em .375em;display:inline-grid;place-items:center;aspect-ratio:1;opacity:.42;cursor:not-allowed}.project-showcase-controls svg{block-size:1.25rlh;inline-size:auto}.project-showcase-controls path{stroke:currentColor;stroke-width:2.5px}project-showcase:defined button:not([aria-disabled=true]){opacity:1;cursor:pointer}:where(.content-page>article){position:relative}:where(.content-page>article):before{content:"";position:absolute;inset-block-start:0;inset-inline-start:calc(var(--page-gutter) + .5 * var(--counter-size));block-size:100%;border-inline-start:var(--border-thickness-1) dashed var(--color-counter-connector);translate:-50% 0}.content-entry{display:grid;grid-template-columns:auto 1fr;gap:var(--counter-gap);align-items:start;counter-increment:entry;grid-template-rows:auto 1fr}.content-entry>*{--flow-space: var(--space-xs)}.content-entry blockquote{--flow-space: 1ex}.content-entry:before{content:counter(entry,decimal-leading-zero) ".";grid-row:1 / -1;display:grid;place-content:center;border-radius:100vmin;inline-size:var(--counter-size);aspect-ratio:1;background:var(--color-bg-1);color:var(--color-text-2);font-size:var(--size-step-1);font-weight:var(--font-regular);line-height:1;translate:0 -10%;letter-spacing:.025em}.content-entry>:not(:first-child){grid-column:2/-1}.content-entry a{max-inline-size:-moz-fit-content;max-inline-size:fit-content}.links-page .content-entry:before{content:"●";content:"●" / ""}.month-year-group{display:grid;grid-template-columns:1fr;gap:var(--space-l) var(--space-xs)}.month-year-heading{background:var(--color-bg-1)}@media(width>=64em){.month-year-group{grid-template-columns:1fr clamp(33%,46%,42ch)}.month-year-heading{order:2;align-self:start;position:sticky;inset-block-start:var(--space-s);display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-xs)}.month-year-heading>span{order:2}.month-year-heading:after{content:"";block-size:var(--border-thickness-1);inline-size:100%;border-block-start:var(--border-thickness-1) dashed var(--color-border-1)}}.book-list{--gutter: var(--space-m-l);--grid-min-item-size: min(9.6rem, calc(50% - var(--gutter)));grid-template-rows:1fr auto}.book-list li{display:grid;grid-template-rows:subgrid;row-gap:var(--space-xs);grid-row:span 2}.artwork{--_book-cover-radius: 3px 4px 4px 3px;--_shadow-strength: 15%;--_box-shadow: 0 -1px 2px 0 hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 2%)), 0 3px 2px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 3%)), 0 7px 5px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 3%)), 0 12px 10px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 4%)), 0 22px 18px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 5%)), 0 41px 33px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 6%)), 0 100px 80px -2px hsl(var(--shadow-color) / calc(var(--_shadow-strength) + 7%));position:relative;align-self:end;border-radius:var(--_book-cover-radius);box-shadow:var(--_box-shadow)}@media(prefers-color-scheme:dark){.artwork{box-shadow:none}}.artwork:before,.artwork:after{content:"";position:absolute;border-radius:var(--_book-cover-radius);pointer-events:none}.artwork:before{inset:0;box-shadow:inset var(--space-4xs) calc(-1 * var(--space-5xs)) var(--space-3xs) #00000040;background-image:linear-gradient(to top,#0000001a,#fff);mix-blend-mode:multiply}.artwork:after{inset-block-start:0;inset-inline-start:4%;inline-size:var(--space-4xs);block-size:100%;background:#0000000f;box-shadow:var(--space-5xs) 0 var(--space-4xs) #ffffff40}.artwork,.artwork :where(picture,img){inline-size:100%;block-size:auto;border-radius:var(--_book-cover-radius)}.book-title,.book-author{word-break:break-word}.questionnaire-wrapper{--gutter: var(--space-l);grid-template-columns:1fr}@media(width>=80em){.questionnaire-wrapper{grid-template-columns:auto 1fr}.questionnaire-wrapper .acknowledgment{place-self:end;text-align:end}}.questionnaire-wrapper .content-entry{grid-template-rows:unset}.questionnaire-wrapper .content-entry>span{align-self:center}.questionnaire-wrapper .content-entry:before{translate:0 0}.acknowledgment{background:var(--color-bg-1)}[aria-label=Breadcrumbs]{position:sticky;inset-block-start:0;display:flex;align-items:center;gap:0;padding-inline-start:calc(var(--page-gutter) - var(--primary-nav-padding-inline));border-block-end:var(--border-thickness-1) solid var(--color-border-1);background:var(--color-bg-1);z-index:2;overflow:auto}[aria-label=Breadcrumbs]>*{flex:0 0 auto}[aria-label=Breadcrumbs] a{position:relative;padding:var(--primary-nav-padding-block) var(--primary-nav-padding-inline)}[aria-label=Breadcrumbs] a:before{content:"";position:absolute;inset:calc(.75 * var(--primary-nav-padding-block)) calc(.5 * var(--primary-nav-padding-inline));border-radius:var(--border-radius-1);transition:outline-offset var(--transition-base)}[aria-label=Breadcrumbs] a:focus-visible{outline:none}[aria-label=Breadcrumbs] a:focus-visible:before{outline:var(--focus-ring);outline-color:var(--color-brand);outline-offset:var(--focus-ring-offset)}[aria-label=Breadcrumbs] svg{inline-size:calc(1em * var(--leading-flat));color:var(--color-underline)}@supports (inline-size: 1lh){[aria-label=Breadcrumbs] svg{inline-size:1lh}}:where(.tag-page .list-header) h2:target{scroll-margin-block:calc(1ex + (2 * var(--primary-nav-padding-block)) + var(--space-xl))}@media(prefers-color-scheme:dark){:root{--shadow-color: 220 40% 2%}}clipboard-copy[data-astro-cid-bua75twu]:not(:defined){opacity:.42;cursor:not-allowed}.god-rays{--god-ray-color: var(--color-text-inverted-2);--rainbow: repeating-linear-gradient( 100deg, var(--god-ray-color) 10%, var(--god-ray-color) 20%, var(--god-ray-color) 30% );--stripes: repeating-linear-gradient( 100deg, #000 0%, #000 7%, transparent 10%, transparent 12%, #000 16% );--ray-filter: blur(var(--space-2xs)) opacity(50%) saturate(200%);display:unset;position:absolute;inline-size:75%;block-size:100%;inset-block-start:0;inset-inline-end:0;margin:0;z-index:999;background-image:var(--stripes),var(--rainbow);filter:var(--ray-filter);pointer-events:none;opacity:.25;background-position:50%,50%;background-size:0%,100%;-webkit-mask-image:radial-gradient(at 100% 0,#000 40%,#0000 70%);mask-image:radial-gradient(at 100% 0,#000 40%,#0000 70%)}.god-rays:after{content:"";background-image:var(--stripes),var(--rainbow);mix-blend-mode:difference;background-size:200%,100%;position:absolute;inset:0}
