:root{--color-black:#1e1e1e;--color-white:#ffffff;--color-grey-3:#7A7A7A;--color-grey-2:#909090;--color-grey:#c4c4c4;--color-grey-50:rgba(0,0,0,0.5);--color-transparent:transparent;--color-foreground:var(--color-black);--color-background:var(--color-white);--base-font-size:16;--design-width:1728;--max-width:2000;--min-font-size:12;--font-scale:calc(1vw * var(--base-font-size) / var(--design-width) * 100);--max-font-size:calc(var(--base-font-size) * var(--max-width) / var(--design-width));--space-4:calc(4 / var(--base-font-size) * 1rem);--space-6:calc(6 / var(--base-font-size) * 1rem);--space-8:calc(8 / var(--base-font-size) * 1rem);--space-12:calc(12 / var(--base-font-size) * 1rem);--space-14:calc(14 / var(--base-font-size) * 1rem);--space-16:calc(16 / var(--base-font-size) * 1rem);--space-18:calc(18 / var(--base-font-size) * 1rem);--space-20:calc(20 / var(--base-font-size) * 1rem);--space-24:calc(24 / var(--base-font-size) * 1rem);--space-32:calc(32 / var(--base-font-size) * 1rem);--space-36:calc(36 / var(--base-font-size) * 1rem);--space-40:calc(37 / var(--base-font-size) * 1rem);--space-48:calc(48 / var(--base-font-size) * 1rem);--space-64:calc(64 / var(--base-font-size) * 1rem);--space-80:calc(77 / var(--base-font-size) * 1rem);--space-100:calc(100 / var(--base-font-size) * 1rem);--space-120:calc(120 / var(--base-font-size) * 1rem);--space-150:calc(147 / var(--base-font-size) * 1rem);--space-160:calc(160 / var(--base-font-size) * 1rem);--space-200:calc(200 / var(--base-font-size) * 1rem);--space-260:calc(240 / var(--base-font-size) * 1rem);--space-300:calc(300 / var(--base-font-size) * 1rem);--space-400:calc(400 / var(--base-font-size) * 1rem);--space-600:calc(600 / var(--base-font-size) * 1rem);--font-body:15px;--font-body-weight:400;--font-body-line-height:1.35;--font-heading-1:22px;--font-heading-weight:500;--font-heading-line-height:1.2;--font-caption:8px;--font-caption-weight:400;--font-caption-line-height:1.35;--gutter:7px;--inset:7px;--hover-opacity:0.5;--transition-time:0.8s}@media(min-width:768px){:root{--font-body:18px;--font-heading-1:32px;--font-caption:12px;--inset:calc(20 / var(--base-font-size) * 1rem);--gutter:calc(16/ var(--base-font-size) * 1rem)}}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{text-size-adjust:none;font-size:clamp(var(--min-font-size)*1px,(var(--font-scale)),var(--max-font-size)*1px)}body{min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-background);color:var(--color-foreground);transition:background-color var(--transition-time),color var(--transition-time)}body:has([data-theme=dark]){--color-foreground:var(--color-white);--color-background:var(--color-black)}body.homepage-projects-light{--color-foreground:var(--color-black);--color-background:var(--color-white)}ol,ul{list-style:none}button,h1,h2,h3,h4,h5,h6,input,label{line-height:1.1}h1,h2,h3,h4,h5,h6{text-wrap:balance}a:not([class]),a:visited{-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;color:currentColor}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}textarea{resize:vertical}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}#__next,#root{isolation:isolate}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid currentColor;outline-offset:2px}a{text-decoration:none;color:currentColor}@media(hover:hover){a:hover{opacity:var(--hover-opacity)}}::view-transition-new(root),::view-transition-old(root){animation-duration:.5s;animation-timing-function:linear}