html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent-horizontal],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-property:overflow;transition-duration:1ms;transition-behavior:allow-discrete}:root{--font-family-base:"SF Pro Text","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--typography-heading-1-font-size:40px;--typography-heading-1-font-weight:500;--typography-heading-1-line-height:48px;--typography-heading-2-font-size:28px;--typography-heading-2-font-weight:500;--typography-heading-2-line-height:36px;--typography-heading-3-font-size:20px;--typography-heading-3-font-weight:500;--typography-heading-3-line-height:28px;--typography-subtitle-font-size:18px;--typography-subtitle-font-weight:400;--typography-subtitle-line-height:28px;--typography-button-font-size:15px;--typography-button-font-weight:500;--typography-button-line-height:18px;--typography-body-large-font-size:18px;--typography-body-large-font-weight:400;--typography-body-large-line-height:30px;--typography-body-medium-font-size:16px;--typography-body-medium-font-weight:400;--typography-body-medium-line-height:27px;--typography-body-small-font-size:14px;--typography-body-small-font-weight:400;--typography-body-small-line-height:20px;--typography-caption-font-size:12px;--typography-caption-font-weight:400;--typography-caption-line-height:16px;--spacing-0:0px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-36:36px;--spacing-40:40px;--spacing-48:48px;--spacing-56:56px;--spacing-64:64px;--spacing-80:80px;--spacing-100:100px;--spacing-128:128px;--spacing-190:190px;--spacing-201:201px;--color-border-primary:#EDEDED;--color-border-secondary:#F0F0F0;--color-content-primary:#111111;--color-content-secondary:#737373;--color-content-tertiary:#B3B3B3;--color-content-contrast:#F9F9F7;--color-background-primary:#F7F7F7;--color-background-secondary:#F0F0F0;--color-background-contrast:#FFFFFF;--color-surface-card-primary:#F7F7F7;--color-surface-card-secondary:#F0F0F0;--color-button-secondary-default:#F5F5F5;--color-button-secondary-hover:#EEEEEE;--color-button-secondary-pressed:#E0E0E0}.text-heading-1{font-size:var(--typography-heading-1-font-size);font-weight:var(--typography-heading-1-font-weight);line-height:var(--typography-heading-1-line-height)}.text-heading-1,.text-heading-2{font-family:var(--font-family-base)}.text-heading-2{font-size:var(--typography-heading-2-font-size);font-weight:var(--typography-heading-2-font-weight);line-height:var(--typography-heading-2-line-height)}.text-heading-3{font-size:var(--typography-heading-3-font-size);font-weight:var(--typography-heading-3-font-weight);line-height:var(--typography-heading-3-line-height)}.text-heading-3,.text-subtitle{font-family:var(--font-family-base)}.text-subtitle{font-size:var(--typography-subtitle-font-size);font-weight:var(--typography-subtitle-font-weight);line-height:var(--typography-subtitle-line-height)}.text-button{font-size:var(--typography-button-font-size);font-weight:var(--typography-button-font-weight);line-height:var(--typography-button-line-height)}.text-body-large,.text-button{font-family:var(--font-family-base)}.text-body-large{font-size:var(--typography-body-large-font-size);font-weight:var(--typography-body-large-font-weight);line-height:var(--typography-body-large-line-height)}.text-body-medium{font-size:var(--typography-body-medium-font-size);font-weight:var(--typography-body-medium-font-weight);line-height:var(--typography-body-medium-line-height)}.text-body-medium,.text-body-small{font-family:var(--font-family-base)}.text-body-small{font-size:var(--typography-body-small-font-size);font-weight:var(--typography-body-small-font-weight);line-height:var(--typography-body-small-line-height)}.text-caption{font-family:var(--font-family-base);font-size:var(--typography-caption-font-size);font-weight:var(--typography-caption-font-weight);line-height:var(--typography-caption-line-height)}.btn-secondary{background-color:var(--color-button-secondary-default)}.btn-secondary:hover{background-color:var(--color-button-secondary-hover)}.btn-secondary:active{background-color:var(--color-button-secondary-pressed)}.card-surface-primary{background-color:var(--color-surface-card-primary)}.card-surface-secondary{background-color:var(--color-surface-card-secondary)}:root{--portfolio-page-background:Canvas;--portfolio-nav-active-background:Canvas;--portfolio-nav-background:color-mix(in srgb,var(--color-surface-card-primary) 80%,transparent);--portfolio-shell:960px;--portfolio-text-column:796px;--motion-fade-duration:360ms;--motion-fade-ease:cubic-bezier(0.22,1,0.36,1);--motion-reveal-distance:14px;--motion-stagger-step:60ms}*{box-sizing:border-box}html{color:var(--color-content-primary);scroll-behavior:auto}body,html{background:var(--portfolio-page-background)}body{display:flex;flex-direction:column;font-family:var(--font-family-base);margin:0;min-height:100svh;padding-bottom:40px;text-rendering:geometricPrecision}main{flex:1 0 auto}.portfolio-content-shell{opacity:0;transition:opacity .3s var(--motion-fade-ease)}html[data-landing-splash=entered] .portfolio-content-shell{opacity:1}.portfolio-route-fade{opacity:0;transition:opacity .3s var(--motion-fade-ease)}.portfolio-route-fade--visible{opacity:1}img,svg{display:block}a{color:inherit}a,button{-webkit-tap-highlight-color:transparent}::selection{background:var(--color-button-secondary-pressed);color:var(--color-content-primary)}.motion-reveal{opacity:0;transform:translate3d(0,var(--motion-reveal-distance),0);transition:opacity var(--motion-fade-duration) var(--motion-fade-ease),transform var(--motion-fade-duration) var(--motion-fade-ease);transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.motion-reveal:empty{opacity:1}.motion-reveal--visible{opacity:1;transform:translateZ(0);will-change:auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-reveal{opacity:1;transform:none;will-change:auto}.motion-reveal,.portfolio-content-shell{transition:none}.portfolio-route-fade{opacity:1;transition:none}}@media (max-width:1199px){:root{--portfolio-shell:calc(100vw - 64px);--portfolio-text-column:min(796px,var(--portfolio-shell))}}@media (max-width:767px){:root{--portfolio-shell:calc(100vw - 48px);--portfolio-text-column:var(--portfolio-shell)}html{overflow-x:clip}body{padding-bottom:40px}}.LandingSplash_overlay__EFWhu{align-items:center;background:#ffffff;color:#050505;display:flex;inset:0;justify-content:center;position:fixed;z-index:2147483647}.LandingSplash_overlayExiting__nEWQh{pointer-events:none}.LandingSplash_word__VFEeS{align-items:center;animation:LandingSplash_welcome-ease-in__tDzPS .56s var(--motion-fade-ease) .18s both;display:inline-flex;font-family:var(--font-family-base);font-size:clamp(32px,2.78vw,40px);font-weight:500;letter-spacing:normal;line-height:1.2;-webkit-user-select:none;-moz-user-select:none;user-select:none}.LandingSplash_overlayExiting__nEWQh .LandingSplash_word__VFEeS{animation:LandingSplash_welcome-ease-out__sB8Au .35s var(--motion-fade-ease) both}.LandingSplash_iconSlot__q8Br_{align-items:center;display:inline-flex;height:.5em;justify-content:center;margin-inline:.135em;transform:translate(1px,calc(.04em + 2px));width:.5em}.LandingSplash_icon__ZaNxn{animation:LandingSplash_symbol-soft-swap__g_dOv .2s var(--motion-fade-ease) both;height:100%;object-fit:contain;width:100%}@media (max-width:767px){.LandingSplash_word__VFEeS{font-size:clamp(30px,9vw,40px)}}@media (prefers-reduced-motion:reduce){.LandingSplash_icon__ZaNxn,.LandingSplash_overlayExiting__nEWQh,.LandingSplash_overlay__EFWhu,.LandingSplash_word__VFEeS{animation-duration:1ms;animation-delay:0s}}@keyframes LandingSplash_welcome-ease-in__tDzPS{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes LandingSplash_welcome-ease-out__sB8Au{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.985)}}@keyframes LandingSplash_symbol-soft-swap__g_dOv{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}