@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.3wn_q526zaolu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.3uuun_-7zsf1g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.instrument_sans_b29e2fc2-module__FfAkna__className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.instrument_sans_b29e2fc2-module__FfAkna__variable{--font-sans:"Instrument Sans", "Instrument Sans Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_42eec60-module__Gb1_vG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_42eec60-module__Gb1_vG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-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-mono:var(--font-geist-mono);--spacing:.25rem;--font-weight-medium:500;--radius-sm:4px;--radius-md:8px;--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-geist-mono);--font-display:var(--font-sans);--font-body:var(--font-sans);--color-bg:var(--bg);--color-bg-2:var(--bg-2);--color-fg:var(--fg);--color-fg-2:var(--fg-2);--color-line:var(--line);--color-accent:var(--accent);--text-hero:clamp(3rem, .5rem + 16vw, 18rem);--text-display:clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem);--text-h2:clamp(1.375rem, 1.2rem + .8vw, 1.75rem);--text-h3:1.1875rem;--text-body:1.0625rem;--text-small:.875rem;--text-meta:.8125rem;--spacing-gutter:clamp(1.25rem, 5vw, 3rem);--spacing-section:clamp(4rem, 6vw, 6rem);--container-measure:44rem;--container-wide:62rem;--aspect-logo:814 / 600;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-in-out-quart:cubic-bezier(.65, 0, .35, 1)}}@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: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;-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: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: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}body{background-color:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);font-size:var(--text-body);line-height:1.6}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}:is(button,[role=button],summary,label[for],select):not(:disabled){cursor:pointer}}@layer components{:is(.work-filter:has(>nav[data-active-kind=client]) li[data-kind]:not([data-kind=client]),.work-filter:has(>nav[data-active-kind=personal]) li[data-kind]:not([data-kind=personal]),.work-filter:has(>nav[data-active-kind=tool]) li[data-kind]:not([data-kind=tool])){display:none}.prose>*+*{margin-top:1.25em}.prose h2{font-size:var(--text-h2);letter-spacing:-.01em;margin-top:2.5em;font-weight:500;line-height:1.2}.prose h3{font-size:var(--text-h3);margin-top:2em;font-weight:500;line-height:1.3}.prose :is(ul,ol){padding-left:1.5rem}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li::marker{color:var(--color-fg-2)}.prose li+li{margin-top:.4em}.prose a{color:var(--color-fg);text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-line);-webkit-text-decoration-color:var(--color-line);-webkit-text-decoration-color:var(--color-line);text-decoration-color:var(--color-line);text-underline-offset:4px;transition:text-decoration-color var(--duration-fast)}.prose a:hover{-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.prose blockquote{border-left:2px solid var(--color-line);color:var(--color-fg-2);padding-left:1rem}.prose hr{border-color:var(--color-line)}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-small);display:block;overflow-x:auto}.prose :is(th,td){border:1px solid var(--color-line);text-align:left;padding:.5rem .75rem}.prose img{border-radius:var(--radius-md)}.prose :not(pre)>code{border-radius:var(--radius-sm);background-color:var(--color-bg-2);font-family:var(--font-mono);padding:.15em .35em;font-size:.875em}.prose pre{border:1px solid var(--color-line);border-radius:var(--radius-md);background-color:var(--code-bg);font-size:var(--text-small);tab-size:2;padding:1rem 0;line-height:1.6;overflow-x:auto}.prose pre code{counter-reset:line;font-family:var(--font-mono);display:grid}.prose pre code>[data-line]{padding-right:1rem}.prose pre code>[data-line]:before{counter-increment:line;content:counter(line);text-align:right;width:1.25rem;color:var(--color-fg-2);opacity:.5;-webkit-user-select:none;user-select:none;margin-left:1rem;margin-right:1.25rem;display:inline-block}}@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}.inset-0{inset:0}.top-2{top:calc(var(--spacing) * 2)}.left-2{left:calc(var(--spacing) * 2)}.z-50{z-index:50}.z-\[1\]{z-index:1}.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}}.m-0{margin:0}.mx-auto{margin-inline:auto}.my-12{margin-block:calc(var(--spacing) * 12)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-auto{margin-top:auto}.mt-section{margin-top:clamp(4rem,6vw,6rem)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.aspect-\[\.\.\.\]{aspect-ratio:...}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-logo{aspect-ratio:814/600}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-32{width:calc(var(--spacing) * 32);height:calc(var(--spacing) * 32)}.size-full{width:100%;height:100%}.h-6{height:calc(var(--spacing) * 6)}.h-9{height:calc(var(--spacing) * 9)}.h-24{height:calc(var(--spacing) * 24)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[calc\(100svh-var\(--nav-height\)\)\]{min-height:calc(100svh - var(--nav-height))}.min-h-dvh{min-height:100dvh}.w-9{width:calc(var(--spacing) * 9)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[26ch\]{max-width:26ch}.max-w-\[34ch\]{max-width:34ch}.max-w-measure{max-width:44rem}.max-w-wide{max-width:62rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-\[calc\(100\%\+0\.5rem\)\]{--tw-translate-y:calc(calc(100% + .5rem) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-14{gap:calc(var(--spacing) * 14)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-px{gap:1px}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-x-8{column-gap:calc(var(--spacing) * 8)}.gap-x-10{column-gap:calc(var(--spacing) * 10)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.overflow-hidden{overflow:hidden}.rounded-md{border-radius:8px}.rounded-sm{border-radius:4px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-line{border-color:var(--line)}.bg-bg{background-color:var(--bg)}.bg-bg-2{background-color:var(--bg-2)}.bg-line{background-color:var(--line)}.object-cover{object-fit:cover}.p-0{padding:0}.p-8{padding:calc(var(--spacing) * 8)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-gutter{padding-inline:clamp(1.25rem,5vw,3rem)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-section{padding-block:clamp(4rem,6vw,6rem)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-10{padding-bottom:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-\[1\.1rem\]{padding-left:1.1rem}.text-center{text-align:center}.font-mono{font-family:var(--font-geist-mono)}.text-\[clamp\(2\.75rem\,7vw\,6rem\)\]{font-size:clamp(2.75rem,7vw,6rem)}.text-\[clamp\(2rem\,5\.5vw\,5rem\)\]{font-size:clamp(2rem,5.5vw,5rem)}.text-body{font-size:1.0625rem}.text-display{font-size:clamp(2.25rem,1.6rem + 2.4vw,3.5rem)}.text-h2{font-size:clamp(1.375rem,1.2rem + .8vw,1.75rem)}.text-h3{font-size:1.1875rem}.text-hero{font-size:clamp(3rem,.5rem + 16vw,18rem)}.text-meta{font-size:.8125rem}.text-small{font-size:.875rem}.leading-\[0\.88\]{--tw-leading:.88;line-height:.88}.leading-\[0\.95\]{--tw-leading:.95;line-height:.95}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.05\]{--tw-leading:1.05;line-height:1.05}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[-0\.02em\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\[-0\.03em\]{--tw-tracking:-.03em;letter-spacing:-.03em}.tracking-\[-0\.04em\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\[-0\.008em\]{--tw-tracking:-.008em;letter-spacing:-.008em}.tracking-\[-0\.025em\]{--tw-tracking:-.025em;letter-spacing:-.025em}.tracking-\[-0\.035em\]{--tw-tracking:-.035em;letter-spacing:-.035em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--accent)}.text-fg{color:var(--fg)}.text-fg-2{color:var(--fg-2)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.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,)}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-accent{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.decoration-line{-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.decoration-transparent{text-decoration-color:#0000}.decoration-1{text-decoration-thickness:1px}.decoration-2{text-decoration-thickness:2px}.underline-offset-4{text-underline-offset:4px}.underline-offset-\[6px\]{text-underline-offset:6px}.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,)}.invert{--tw-invert:invert(100%);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,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))}.transition-\[text-decoration-color\,text-underline-offset\]{transition-property:text-decoration-color,text-underline-offset;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\[var\(--duration-base\)\]{--tw-duration:var(--duration-base);transition-duration:var(--duration-base)}.duration-\[var\(--duration-fast\)\]{--tw-duration:var(--duration-fast);transition-duration:var(--duration-fast)}.ease-\[var\(--ease-standard\)\]{--tw-ease:var(--ease-standard);transition-timing-function:var(--ease-standard)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.group-hover\:scale-\[1\.02\]:is(:where(.group):hover *){scale:1.02}.group-hover\:decoration-accent:is(:where(.group):hover *){-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.group-focus-visible\:decoration-accent:is(:where(.group):focus-visible *){-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}@media (hover:hover){.hover\:border-fg-2:hover{border-color:var(--fg-2)}.hover\:text-fg:hover{color:var(--fg)}.hover\:decoration-accent:hover{-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.hover\:underline-offset-\[6px\]:hover{text-underline-offset:6px}}.focus\:translate-y-0:focus{--tw-translate-y:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:text-accent:active{color:var(--accent)}@media (min-width:640px){.min-\[640px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.min-\[640px\]\:grid-cols-\[repeat\(auto-fit\,minmax\(14rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.min-\[640px\]\:gap-14{gap:calc(var(--spacing) * 14)}.min-\[640px\]\:py-8{padding-block:calc(var(--spacing) * 8)}.min-\[640px\]\:py-12{padding-block:calc(var(--spacing) * 12)}.min-\[640px\]\:py-14{padding-block:calc(var(--spacing) * 14)}.min-\[640px\]\:pr-8{padding-right:calc(var(--spacing) * 8)}.min-\[640px\]\:pl-8{padding-left:calc(var(--spacing) * 8)}}@media (min-width:760px){.min-\[760px\]\:block{display:block}.min-\[760px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.min-\[760px\]\:grid-cols-\[11rem_minmax\(0\,1fr\)\]{grid-template-columns:11rem minmax(0,1fr)}.min-\[760px\]\:grid-cols-\[minmax\(0\,1fr\)_16rem\]{grid-template-columns:minmax(0,1fr) 16rem}.min-\[760px\]\:gap-16{gap:calc(var(--spacing) * 16)}.min-\[760px\]\:pl-8{padding-left:calc(var(--spacing) * 8)}.min-\[760px\]\:text-display{font-size:clamp(2.25rem,1.6rem + 2.4vw,3.5rem)}}@media (min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-7{height:calc(var(--spacing) * 7)}}}:root{--bg:#0f1214;--bg-2:#15191c;--fg:#e8ecec;--fg-2:#98a2a2;--line:#242b2d;--accent:#63d4bf;--code-bg:#15191c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--duration-fast:.15s;--duration-base:.24s;--duration-slow:.4s;--duration-draw:.6s;--duration-cut:.3s;--duration-pop:.2s;--duration-dock:.5s;--duration-draw-inline:.7s;--duration-stagger:60ms;--duration-route:.42s;--duration-sweep:.5s;--nav-height:4.0625rem;--cut-rise:.45;--cut-drop:calc(100vw * var(--cut-rise));--cut-angle:-24.23deg}.light{--bg:#f5f7f6;--bg-2:#eceeed;--fg:#151a1a;--fg-2:#5b6565;--line:#d8dedc;--accent:#0e7c69;--code-bg:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){:root:not(.dark){--bg:#f5f7f6;--bg-2:#eceeed;--fg:#151a1a;--fg-2:#5b6565;--line:#d8dedc;--accent:#0e7c69;--code-bg:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}html[data-intro] body:before{content:"";z-index:40;background-color:var(--color-bg);opacity:0;pointer-events:none;transition:opacity var(--duration-slow) var(--ease-out-expo);position:fixed;inset:0}html[data-intro=full] body:before{opacity:1;pointer-events:auto;animation:intro-veil-failsafe var(--duration-slow) var(--ease-out-expo) 5s both;transition:none}@keyframes intro-veil-failsafe{0%{opacity:1}to{opacity:0}}html[data-intro] [data-logo-pending]{animation:intro-logo-failsafe var(--duration-fast) linear 3s both}@keyframes intro-logo-failsafe{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){html[data-intro=inline] body>:is(header,main,footer){animation:intro-content var(--duration-slow) var(--ease-out-expo) both}html[data-intro=inline] body>main{animation-delay:var(--duration-stagger)}html[data-intro=inline] body>footer{animation-delay:calc(var(--duration-stagger) * 2)}}@keyframes intro-content{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){[data-route-enter]{animation:route-enter var(--duration-route) var(--ease-standard) both}}@keyframes route-enter{0%{clip-path:polygon(0 0, 100% 0, 100% calc(0% - var(--cut-drop)), 0 0)}to{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% + var(--cut-drop)))}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){[data-reveal]{animation:linear both reveal;animation-timeline:view();animation-range:entry 5% entry 60%}[data-draw-rule]{transform-origin:0;animation:linear both draw-rule;animation-timeline:view();animation-range:entry 10% entry 70%}}}[data-spine]{position:relative}[data-spine]:before{content:"";background:var(--color-line);transform-origin:top;width:1px;position:absolute;inset-block:0;inset-inline-start:0}@keyframes reveal{0%{transform:translateY(12px)}to{transform:none}}@keyframes draw-rule{0%{transform:scaleX(0)}to{transform:scaleX(1)}}header{z-index:30;position:relative}[data-slip]{font-family:var(--font-mono);font-size:var(--text-hero);font-variant-numeric:tabular-nums;letter-spacing:-.05em;color:var(--color-fg-2);--slip:.05em;justify-items:center;line-height:.8;display:grid;position:relative}[data-slip-half]{grid-area:1/1}[data-slip-half=above]{-webkit-mask-image:linear-gradient(var(--cut-angle), transparent 50%, #000 50%);-webkit-mask-image:linear-gradient(var(--cut-angle), transparent 50%, #000 50%);-webkit-mask-image:linear-gradient(var(--cut-angle), transparent 50%, #000 50%);mask-image:linear-gradient(var(--cut-angle), transparent 50%, #000 50%);transform:translate(var(--slip), calc(var(--slip) * var(--cut-rise) * -1))}[data-slip-half=below]{-webkit-mask-image:linear-gradient(var(--cut-angle), #000 50%, transparent 50%);-webkit-mask-image:linear-gradient(var(--cut-angle), #000 50%, transparent 50%);-webkit-mask-image:linear-gradient(var(--cut-angle), #000 50%, transparent 50%);mask-image:linear-gradient(var(--cut-angle), #000 50%, transparent 50%);transform:translate(calc(var(--slip) * -1), calc(var(--slip) * var(--cut-rise)))}[data-nav-sheet]>summary{cursor:pointer;list-style:none}[data-nav-sheet]>summary::-webkit-details-marker{display:none}[data-nav-sheet]>summary,[data-nav-bar-item]{z-index:11;position:relative}[data-nav-sheet]>summary>[data-nav-sheet-open],[data-nav-sheet][open]>summary>[data-nav-sheet-closed]{display:none}[data-nav-sheet][open]>summary>[data-nav-sheet-open]{display:inline}[data-nav-sheet-panel]{z-index:10;overscroll-behavior:contain;background-color:var(--color-bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}[data-nav-sheet-edge]{display:none}[data-nav-sheet-cut]{background:linear-gradient(to right, transparent, var(--color-accent) 15%, var(--color-accent) 85%, transparent);flex-shrink:0;height:1px;margin-block:2rem 1.5rem}@media (prefers-reduced-motion:no-preference){[data-nav-sheet-panel]{clip-path:polygon(0 0, 100% 0, 100% calc(0% - var(--cut-drop)), 0 0);transition:clip-path var(--duration-sweep) var(--ease-standard)}[data-nav-sheet]::details-content{transition:content-visibility var(--duration-sweep) allow-discrete}[data-nav-sheet][open] [data-nav-sheet-panel]{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% + var(--cut-drop)))}[data-nav-sheet-edge]{z-index:10;pointer-events:none;background-color:var(--color-accent);clip-path:polygon(0 0, 100% calc(0% - var(--cut-drop)), 100% calc(0% - var(--cut-drop) + 2px), 0 2px);transition:clip-path var(--duration-sweep) var(--ease-standard);display:block;position:fixed;inset:0}[data-nav-sheet][open] [data-nav-sheet-edge]{clip-path:polygon(0 calc(100% + var(--cut-drop)), 100% 100%, 100% calc(100% + 2px), 0 calc(100% + var(--cut-drop) + 2px))}@starting-style{[data-nav-sheet][open] [data-nav-sheet-panel]{clip-path:polygon(0 0, 100% 0, 100% calc(0% - var(--cut-drop)), 0 0)}[data-nav-sheet][open] [data-nav-sheet-edge]{clip-path:polygon(0 0, 100% calc(0% - var(--cut-drop)), 100% calc(0% - var(--cut-drop) + 2px), 0 2px)}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:0}::view-transition-new(root){z-index:1;animation:theme-sweep var(--duration-sweep) var(--ease-standard)}}@keyframes theme-sweep{0%{clip-path:polygon(0 0, 100% 0, 100% calc(0% - var(--cut-drop)), 0 0)}to{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% + var(--cut-drop)))}}[data-cut]{--cut-delay:0s;pointer-events:none;background:linear-gradient(var(--cut-angle), transparent calc(50% - .5px), var(--color-accent) calc(50% - .5px), var(--color-accent) calc(50% + .5px), transparent calc(50% + .5px));position:absolute;inset:0}[data-cut=over]{z-index:3}[data-cut=under]{z-index:0}@media (prefers-reduced-motion:no-preference){html[data-intro=done] [data-cut],html[data-intro=inline] [data-cut]{animation:cut var(--duration-sweep) var(--ease-standard) var(--cut-delay) both}}[data-cut-after-mark]{--cut-delay:calc(var(--duration-draw) + var(--duration-cut))}@keyframes cut{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}[data-hero-mark],[data-hero-mark-weave]{height:132%;aspect-ratio:var(--aspect-logo);pointer-events:none;position:absolute;top:50%;right:-6%;transform:translateY(-50%)}[data-hero-mark]{z-index:0}[data-hero-mark-weave]{z-index:2;clip-path:inset(44% 0 42%)}@media (prefers-reduced-motion:no-preference){html[data-intro=done] [data-hero-mark] [data-logo-part=letter-b],html[data-intro=inline] [data-hero-mark] [data-logo-part=letter-b]{animation:hero-mark-caret-down var(--duration-draw) var(--ease-standard) both}html[data-intro=done] [data-hero-mark] [data-logo-part=letter-a],html[data-intro=inline] [data-hero-mark] [data-logo-part=letter-a]{animation:hero-mark-caret-up var(--duration-draw) var(--ease-standard) both}html[data-intro=done] [data-hero-mark] [data-logo-part=cut],html[data-intro=inline] [data-hero-mark] [data-logo-part=cut],html[data-intro=done] [data-hero-mark-weave] [data-logo-part=cut],html[data-intro=inline] [data-hero-mark-weave] [data-logo-part=cut]{animation:hero-mark-slash var(--duration-cut) var(--ease-standard) var(--duration-draw) both}}@keyframes hero-mark-caret-down{0%{transform:translateY(-600px)}to{transform:none}}@keyframes hero-mark-caret-up{0%{transform:translateY(600px)}to{transform:none}}@keyframes hero-mark-slash{0%{transform:translate(-750px,337.5px)}to{transform:none}}.prose pre[data-theme]{color:var(--color-fg)}.prose [data-theme] span{color:var(--shiki-dark)}.light .prose [data-theme] span{color:var(--shiki-light)}@media (prefers-color-scheme:light){:root:not(.dark) .prose [data-theme] span{color:var(--shiki-light)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value: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-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@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-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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
