html{scrollbar-gutter:stable}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue%20Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue%20Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{color-scheme:light dark;interpolate-size:allow-keywords;transition:background-color .4s,color .4s;*,*:before,*:after{box-sizing:border-box}figure,p{margin:0}}:root{--gutter: min( calc(1rem + 1vw) , 2rem);--gap: min( calc(.5rem + 1vw) , 1.5rem);--gap-sm: min( calc(.5rem + 1vw) , 1rem);--gap-xs: min( calc(.5rem + 1vw) , .5rem);--gap-xxs: min( calc(.5rem + 1vw) , .325rem);--header-height: calc(4rem + 2vw) ;--radius: 0rem;--font-sans: "Helvetica Neue", system-ui, sans-serif;--font-display: "Helvetica Neue", system-ui, sans-serif;--radius-xxs: calc(var(--radius) - 12px);--radius-xs: calc(var(--radius) - 8px);--radius-sm: calc(var(--radius) - 4px);--radius-md: var(--radius);--radius-lg: calc(var(--radius) + 4px);--radius-xl: calc(var(--radius) + 8px);--radius-xxl: calc(var(--radius) + 16px);--radius-full: 100vw;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: clamp(1.063rem, 1.045rem + .09vw, 1.125rem);--text-xl: clamp(1.125rem, 1.089rem + .18vw, 1.25rem);--text-2xl: clamp(1.25rem, 1.179rem + .36vw, 1.5rem);--text-3xl: clamp(1.5rem, 1.393rem + .54vw, 1.875rem);--text-4xl: clamp(1.75rem, 1.607rem + .71vw, 2.25rem);--text-5xl: clamp(2rem, 1.714rem + 1.43vw, 3rem);--text-6xl: clamp(2.25rem, 1.893rem + 1.79vw, 3.5rem);--text-7xl: clamp(2.5rem, 2.071rem + 2.14vw, 4rem);--text-8xl: clamp(2.75rem, 2.25rem + 2.5vw, 4.5rem);--text-9xl: clamp(3rem, 2.313rem + 3.13vw, 5.25rem);--leading-tighter: 1;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.6;--leading-very-relaxed: 1.7;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .05em;--tracking-wider: .1em;--background-light: oklch(1 0 0);--foreground-light: oklch(.15 0 0);--foreground-dim-light: oklch(.15 0 0 / .65);--accent-light: oklch(.93 0 0);--border-light: oklch(.85 0 0);--destructive-light: oklch(57.7% .245 27.325);--background-dark: oklch(.15 0 0);--foreground-dark: oklch(1 0 0);--foreground-dim-dark: oklch(1 0 0 / .65);--accent-dark: oklch(.3 0 0);--border-dark: oklch(.4 0 0);--destructive-dark: oklch(70.4% .191 22.216);--site-container: min( calc(100% - (var(--gutter) * 2)), calc(120rem - (var(--gutter) * 2)) );--site-container-sm: min( calc(100% - (var(--gutter) * 2)), calc(85rem - (var(--gutter) * 2)) );--glide: linear( 0, .012 .9%, .05 2%, .411 9.2%, .517 11.8%, .611 14.6%, .694 17.7%, .765 21.1%, .824 24.8%, .872 28.9%, .91 33.4%, .939 38.4%, .977 50.9%, .994 68.4%, 1 );--ease-out: cubic-bezier(.25, .46, .45, .94);--ease-smooth: cubic-bezier(.76, 0, .24, 1)}@layer reset,base,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box;background-repeat:no-repeat}*{margin:0;padding:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;block-size:100%;overflow-x:clip}body{min-block-size:100%}img,picture,iframe,audio,video,canvas{display:block;max-inline-size:100%;block-size:auto}svg{max-inline-size:100%}svg:not([fill]){fill:currentColor}input,button,textarea,select{font:inherit}textarea{resize:vertical}fieldset,iframe{border:none}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}input,label,button,h1,h2,h3,h4,h5,h6{line-height:1.1}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}ul,ol{list-style:none}sup,sub{line-height:0}table{border-collapse:collapse}}@layer base{*{&:focus-visible{outline-style:solid;outline-color:light-dark(var(--foreground-light),var(--foreground-dark));outline-offset:2px;outline-width:2px}}html,body{background-color:light-dark(var(--background-light),var(--background-dark))}body{color:light-dark(var(--foreground-light),var(--foreground-dark));font-family:var(--font-sans, system-ui, sans-serif)}img{object-fit:contain}::selection{background:light-dark(var(--foreground-dim-light),var(--foreground-dim-dark));color:light-dark(var(--background-light),var(--background-dark))}.section-anchor{scroll-margin-top:var(--nav-height, 6rem)}}@layer utilities{.site-container{width:var(--site-container);margin-inline:auto}.site-container-sm{width:var(--site-container-sm);margin-inline:auto}.page-padding{padding-block:calc(var(--header-height) + var(--gutter))}.full-bleed{width:100vw;margin-inline:calc(50% - 50vw)}.page-header{display:flex;flex-direction:column;gap:var(--gap);margin-block-end:var(--gutter);h1{font-size:var(--text-6xl);line-height:var(--leading-tighter);letter-spacing:var(--tracking-tight)}p{font-size:var(--text-xl);color:light-dark(var(--foreground-dim-light),var(--foreground-dim-dark));max-width:75ch;text-wrap:balance}}.line-clamp-1{overflow:clip;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-3{overflow:clip;line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}.no-spin-buttons{appearance:textfield;-moz-appearance:textfield;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}}@keyframes fade-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes blur-fade-in{0%{opacity:0;blur:10px;transform:translateY(1rem)}to{opacity:1;blur:0px;transform:translateY(0)}}@keyframes skeleton-pulse{0%,to{background:light-dark(var(--accent-light),var(--accent-dark))}50%{background:light-dark(color-mix(in oklch,var(--accent-light) 70%,white),color-mix(in oklch,var(--accent-dark) 70%,white))}}@keyframes fade-out{to{opacity:0;transform:translateY(-1rem)}}@keyframes project-card-reveal{0%{transform:translateY(40px)}to{transform:translateY(0)}}}
