.astro-ekguhzzh:is(.btn,.btn-icon){border-radius:var(--radius-round);background-color:var(--color-control);color:var(--color-text-inverse);cursor:pointer;will-change:background-color, box-shadow, transform;box-shadow:var(--shadow-elevation-low);transition:background-color var(--motion-duration-out) var(--motion-ease-out), box-shadow var(--motion-duration-out) var(--motion-ease-out), transform var(--motion-duration-out) var(--motion-ease-out);border:0;align-items:center;display:inline-flex}.btn.astro-ekguhzzh{justify-content:flex-start;gap:var(--space-2);width:fit-content;max-width:100%;padding-block:var(--space-3);padding-inline:var(--space-4);font-family:var(--font-family-primary);font-size:var(--font-size-button);line-height:1;font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);text-align:left;text-decoration:none}.btn-forward.astro-ekguhzzh:after{content:"→";font-family:var(--font-family-alt);font-size:1em;line-height:1}.btn-back.astro-ekguhzzh:before{content:"←";font-family:var(--font-family-alt);font-size:1em;line-height:1}.btn-back.astro-ekguhzzh{white-space:nowrap;transition:background-color var(--motion-duration-out) var(--motion-ease-out), box-shadow var(--motion-duration-out) var(--motion-ease-out), transform var(--motion-duration-out) var(--motion-ease-out), inline-size var(--motion-duration-out) var(--motion-ease-out), gap var(--motion-duration-out) var(--motion-ease-out), padding-inline var(--motion-duration-out) var(--motion-ease-out)}.btn__label.astro-ekguhzzh{overflow-clip-margin:.2em;white-space:nowrap;opacity:1;max-inline-size:24ch;transition:max-inline-size var(--motion-duration-out) var(--motion-ease-out), opacity var(--motion-duration-out) var(--motion-ease-out);line-height:normal;display:inline-block;overflow:clip}.btn-back.astro-ekguhzzh.is-compact{justify-content:center;gap:var(--space-0);block-size:calc(var(--font-size-button) + (var(--space-3) * 2));aspect-ratio:1;inline-size:auto;padding-inline:var(--space-3);transition:background-color var(--motion-duration-in) var(--motion-ease-in), box-shadow var(--motion-duration-in) var(--motion-ease-in), transform var(--motion-duration-in) var(--motion-ease-in), inline-size var(--motion-duration-in) var(--motion-ease-in), gap var(--motion-duration-in) var(--motion-ease-in), padding-inline var(--motion-duration-in) var(--motion-ease-in)}.btn-back.astro-ekguhzzh.is-compact .btn__label.astro-ekguhzzh{opacity:0;max-inline-size:0;transition:max-inline-size var(--motion-duration-in) var(--motion-ease-in), opacity var(--motion-duration-in) var(--motion-ease-in)}.astro-ekguhzzh:is(.btn,.btn-icon):not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){transition:background-color var(--motion-duration-in) var(--motion-ease-in), box-shadow var(--motion-duration-in) var(--motion-ease-in), transform var(--motion-duration-in) var(--motion-ease-in);background-color:var(--color-control-hover);box-shadow:var(--shadow-elevation-medium);transform:var(--motion-hover-transform)}:is(.btn,.btn-icon).is-floating.astro-ekguhzzh{box-shadow:var(--shadow-elevation-medium)}:is(.btn,.btn-icon).is-floating.astro-ekguhzzh:not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){box-shadow:var(--shadow-elevation-high)}.astro-ekguhzzh:is(.btn,.btn-icon):focus-visible{outline:.125rem solid var(--color-signal);outline-offset:.125rem}.astro-ekguhzzh:is(.btn,.btn-icon):disabled,:is(.btn,.btn-icon).astro-ekguhzzh[aria-disabled=true]{cursor:not-allowed;opacity:.6}.btn-icon.astro-ekguhzzh{padding:var(--space-3);aspect-ratio:1;block-size:calc(var(--font-size-button) + (var(--space-3) * 2));inline-size:auto;font-family:var(--font-family-alt);font-size:var(--font-size-button);line-height:1;font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);justify-content:center;text-decoration:none}@supports (corner-shape:superellipse(1)){.astro-ekguhzzh:is(.btn,.btn-icon){corner-shape:var(--corner-shape)}}@media (prefers-reduced-motion:reduce){.astro-ekguhzzh:is(.btn,.btn-icon){transition:background-color var(--motion-duration-out) var(--motion-ease-out), opacity var(--motion-duration-out) var(--motion-ease-out)}.btn-back.astro-ekguhzzh,.btn__label.astro-ekguhzzh,.btn-back.astro-ekguhzzh.is-compact,.btn-back.astro-ekguhzzh.is-compact .btn__label.astro-ekguhzzh{transition:none}.astro-ekguhzzh:is(.btn,.btn-icon):not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){transform:none}.astro-ekguhzzh:is(.btn,.btn-icon):not(.is-floating):not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){box-shadow:var(--shadow-elevation-low)}:is(.btn,.btn-icon).is-floating.astro-ekguhzzh:not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible){box-shadow:var(--shadow-elevation-medium)}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.legal.astro-jo6i4kqk{justify-content:center;display:flex}.legal.astro-jo6i4kqk ul.astro-jo6i4kqk{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.legal.astro-jo6i4kqk li.astro-jo6i4kqk{align-items:center;margin:0;display:inline-flex}:root{--space-0:0rem;--space-1:.125rem;--space-2:.25rem;--space-3:.5rem;--space-4:1rem;--space-5:2rem;--space-6:4rem;--space-7:8rem;--radius-0:0rem;--radius-1:.5rem;--radius-2:1rem;--radius-3:2rem;--radius-round:9999px;--surface-radius:var(--radius-3);--surface-inset-1:var(--space-1);--surface-inset-2:var(--space-3);--surface-inset-3:var(--space-4);--surface-inner-radius-1:max(0px, calc(var(--surface-radius) - var(--surface-inset-1)));--surface-inner-radius-2:max(0px, calc(var(--surface-radius) - var(--surface-inset-2)));--surface-inner-radius-3:max(0px, calc(var(--surface-radius) - var(--surface-inset-3)));--font-family-primary:"Space Grotesk", sans-serif;--font-family-alt:"Space Mono", monospace;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:550;--font-weight-semibold:600;--font-weight-bold:700;--font-size-display:clamp(4rem, 8vw, 6rem);--font-size-heading:clamp(3rem, 6vw, 4rem);--font-size-subheading:clamp(1.75rem, 3vw, 2rem);--font-size-lead:clamp(1.35rem, 2.25vw, 1.8rem);--font-size-body:clamp(1.125rem, 1.75vw, 1.25rem);--font-size-meta:clamp(1.125rem, 1.75vw, 1.25rem);--font-size-small:clamp(.875rem, 1.25vw, 1rem);--font-size-button:clamp(1.375rem, 2.2vw, 1.75rem);--line-height-fluid:calc(.9em + .6rem);--line-height-dense:1;--letter-spacing-dense:-.04em;--letter-spacing-normal:0em;--letter-spacing-wide:.02em;--width-text:65ch;--width-content:80rem;--inset-page:var(--space-4);--inset-section:var(--space-6);--motion-ease-standard:ease;--motion-duration-in:.2s;--motion-duration-out:.6s;--motion-ease-in:var(--motion-ease-standard);--motion-ease-out:var(--motion-ease-standard);--motion-duration-page-enter:1s;--motion-duration-page-leave:.1s;--motion-duration-page-morph:.6s;--motion-ease-page-transition:var(--motion-ease-standard);--motion-hover-transform:scale(1.02);--z-index-project-nav:1200;--z-index-section-nav:2100;--corner-shape:superellipse(1.2);--icon-scale:1.125;--card-list-autoplay-delay:5s;--card-list-scroll-duration:.4s;--card-list-card-min-width:22.5rem;--media-radius:var(--radius-2);--media-radius-card:var(--surface-inner-radius-1);--media-ratio-card:1 / 1;--media-mobile-max-width:50%;--media-project-cover-max-height:50svh;--color-canvas:#f3f1f1;--color-surface-1:#e8e3e4;--color-surface-2:#fbf9fa;--color-control:#aaa1a4;--color-control-hover:#746d6f;--color-signal:#f42f60;--color-page-transition:var(--color-canvas);--color-chip:#f3f1f1;--color-text:#151314;--color-text-muted:#6b6466;--color-text-inverse:#fff;--shadow-color:0deg 0% 0%;--shadow-elevation-low:0px .4px .6px hsl(var(--shadow-color) / 0), 0px 1.1px 1.7px hsl(var(--shadow-color) / .08);--shadow-elevation-medium:0px .4px .6px hsl(var(--shadow-color) / 0), -.2px 5.7px 8.6px hsl(var(--shadow-color) / .08);--shadow-elevation-high:0px .4px .6px hsl(var(--shadow-color) / 0), -.2px 6.2px 9.3px hsl(var(--shadow-color) / .07), -.6px 18.9px 28.4px hsl(var(--shadow-color) / .14)}html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,:before,:after{box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,dd{margin:0}img,picture,svg,video,canvas{max-width:100%;display:block}@font-face{font-family:Space Grotesk;src:url(/assets/fonts/SpaceGrotesk%5Bwght%5D.woff2)format("woff2");font-style:normal;font-weight:300 700;font-display:swap}@font-face{font-family:Space Mono;src:url(/assets/fonts/SpaceMono-Regular.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/assets/fonts/SpaceMono-Bold.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}body{font-family:var(--font-family-primary);font-size:var(--font-size-body);line-height:var(--line-height-fluid);background:var(--color-canvas);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-wrap:break-word}:focus-visible{outline:.125rem solid var(--color-signal);outline-offset:.125rem}::selection{background-color:color-mix(in srgb, var(--color-signal) 35%, transparent);color:var(--color-text)}header{padding-block:var(--inset-section)}footer{padding-block:var(--inset-page);color:var(--color-text-muted);text-align:center}main>section{padding-block:var(--inset-section)}.surface-1{background-color:var(--color-surface-1)}.surface-2{background-color:var(--color-surface-2)}.text-width{max-width:var(--width-text);padding-inline:var(--inset-page);margin-inline:auto}.content-width{max-width:var(--width-content);padding-inline:var(--inset-page);margin-inline:auto}.section-center{max-width:var(--width-content);min-width:min(100%, var(--width-text));padding-inline:var(--inset-page);justify-content:center;margin-inline:auto;display:flex}.full-width{width:100%;max-width:none;margin-inline:0}.stack>*+*{margin-block-start:var(--space-5)}.stack-wide>*+*{margin-block-start:var(--space-6)}.stack-dense>*+*{margin-block-start:var(--space-4)}.grid-2,.grid-3,.grid-4{align-items:start;gap:var(--space-5);grid-template-columns:1fr;display:grid}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.centered{align-self:center}.end-aligned{align-self:end}.hero{padding-block-end:0}@media (width>=48rem){.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.order-desktop-1{order:1}.order-desktop-2{order:2}.order-desktop-3{order:3}}h1{font-family:var(--font-family-primary);font-size:var(--font-size-heading);line-height:var(--line-height-fluid);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-dense);text-wrap:balance}h2{font-family:var(--font-family-primary);font-size:var(--font-size-subheading);line-height:var(--line-height-fluid);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-dense);text-wrap:balance}p{font-family:var(--font-family-primary);font-size:var(--font-size-body);line-height:var(--line-height-fluid);font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing-normal);text-wrap:pretty}a{color:inherit;text-underline-offset:var(--space-1);transition:color var(--motion-duration-out) var(--motion-ease-out), text-decoration-color var(--motion-duration-out) var(--motion-ease-out), text-underline-offset var(--motion-duration-out) var(--motion-ease-out);text-decoration:underline}a:focus-visible,a:hover{transition:color var(--motion-duration-in) var(--motion-ease-in), text-decoration-color var(--motion-duration-in) var(--motion-ease-in), text-underline-offset var(--motion-duration-in) var(--motion-ease-in);text-decoration-color:var(--color-signal);text-underline-offset:var(--space-2)}strong{font-weight:var(--font-weight-bold)}code{font-family:var(--font-family-alt);font-size:inherit;line-height:inherit;font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-normal);padding-block:var(--space-0);padding-inline:var(--space-2);border-radius:var(--radius-1);background-color:var(--color-surface-1)}ul{padding-inline-start:var(--space-5);list-style:outside}li{margin-block:var(--space-2)}.display{font-family:var(--font-family-primary);font-size:var(--font-size-display);line-height:var(--line-height-fluid);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-dense);text-wrap:balance}.heading{font-family:var(--font-family-primary);font-size:var(--font-size-heading);line-height:var(--line-height-fluid);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-dense);text-wrap:balance}.subheading{font-family:var(--font-family-primary);font-size:var(--font-size-subheading);line-height:var(--line-height-fluid);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-spacing-dense);text-wrap:balance}.lead{font-family:var(--font-family-primary);font-size:var(--font-size-lead);line-height:var(--line-height-fluid);font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing-dense);text-wrap:pretty}.body{font-family:var(--font-family-primary);font-size:var(--font-size-body);line-height:var(--line-height-fluid);font-weight:var(--font-weight-light);letter-spacing:var(--letter-spacing-normal);text-wrap:pretty;text-decoration-thickness:from-font}.meta{font-family:var(--font-family-alt);font-size:var(--font-size-meta);line-height:var(--line-height-fluid);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-normal)}.tag{font-family:var(--font-family-alt);font-size:var(--font-size-meta);line-height:var(--line-height-dense);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-normal)}.small{font-family:var(--font-family-primary);font-size:var(--font-size-small);line-height:var(--line-height-dense);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide);text-wrap:pretty}.hyphenate{hyphens:auto}.legal{font-family:var(--font-family-primary);font-size:var(--font-size-small);line-height:var(--line-height-dense);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing-wide)}.accent{font-family:var(--font-family-alt);color:var(--color-signal)}@keyframes page-leave{to{opacity:0}}@keyframes page-enter{0%{opacity:0}}::view-transition{background-color:var(--color-page-transition)}::view-transition-old(root){animation:page-leave var(--motion-duration-page-leave) var(--motion-ease-page-transition) both}::view-transition-new(root){animation:page-enter var(--motion-duration-page-enter) var(--motion-ease-page-transition) var(--motion-duration-page-leave) both}::view-transition-group(*.project-cover){animation-duration:var(--motion-duration-page-morph);animation-timing-function:var(--motion-ease-page-transition)}::view-transition-image-pair(*.project-cover){border-radius:var(--media-radius);overflow:clip}::view-transition-old(*.project-cover),::view-transition-new(*.project-cover){object-fit:cover;height:100%;animation-duration:var(--motion-duration-page-morph);animation-timing-function:var(--motion-ease-page-transition)}::view-transition-old(*.project-cover):only-child{animation:page-leave var(--motion-duration-page-leave) var(--motion-ease-page-transition) both}::view-transition-new(*.project-cover):only-child{animation:page-enter var(--motion-duration-page-enter) var(--motion-ease-page-transition) var(--motion-duration-page-leave) both}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
