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{color-scheme:light;--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-subtitle-2-font-size:16px;--typography-subtitle-2-font-weight:500;--typography-subtitle-2-line-height:27px;--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-status-positive:#66DC16;--color-status-warning:#FFD600;--color-button-secondary-default:#F5F5F5;--color-button-secondary-hover:#EEEEEE;--color-button-secondary-pressed:#E0E0E0;--color-content-primary-rgb:17,17,17}[data-theme=dark]{color-scheme:dark;--color-border-primary:#2C2C2C;--color-border-secondary:#242424;--color-content-primary:#F7F7F7;--color-content-secondary:#A3A3A3;--color-content-tertiary:#8A8A8A;--color-content-contrast:#111111;--color-background-primary:#1A1A1A;--color-background-secondary:#222222;--color-background-contrast:#111111;--color-surface-card-primary:#1A1A1A;--color-surface-card-secondary:#222222;--color-status-positive:#66DC16;--color-status-warning:#FFD600;--color-button-secondary-default:#1C1C1C;--color-button-secondary-hover:#262626;--color-button-secondary-pressed:#333333;--color-content-primary-rgb:247,247,247}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-border-primary:#2C2C2C;--color-border-secondary:#242424;--color-content-primary:#F7F7F7;--color-content-secondary:#A3A3A3;--color-content-tertiary:#8A8A8A;--color-content-contrast:#111111;--color-background-primary:#1A1A1A;--color-background-secondary:#222222;--color-background-contrast:#111111;--color-surface-card-primary:#1A1A1A;--color-surface-card-secondary:#222222;--color-status-positive:#66DC16;--color-status-warning:#FFD600;--color-button-secondary-default:#1C1C1C;--color-button-secondary-hover:#262626;--color-button-secondary-pressed:#333333;--color-content-primary-rgb:247,247,247}}.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-subtitle-2{font-size:var(--typography-subtitle-2-font-size);font-weight:var(--typography-subtitle-2-font-weight);line-height:var(--typography-subtitle-2-line-height)}.text-button,.text-subtitle-2{font-family:var(--font-family-base)}.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{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-large,.text-body-medium{font-family:var(--font-family-base)}.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-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-body-small,.text-caption{font-family:var(--font-family-base)}.text-caption{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{--tilt-perspective:1000px;--tilt-return:1000ms;--tilt-return-ease:cubic-bezier(0.22,1,0.36,1);--tilt-follow:400ms;--tilt-follow-ease:cubic-bezier(0.22,1,0.36,1)}.t-tilt{touch-action:none}.t-tilt-card{position:relative;transform:perspective(var(--tilt-perspective)) rotateX(var(--tilt-rx,0deg)) rotateY(var(--tilt-ry,0deg));transform-style:preserve-3d;transition:transform var(--tilt-return) var(--tilt-return-ease);will-change:transform}.t-tilt-card.is-tilting{transition:transform var(--tilt-follow) var(--tilt-follow-ease)}@media (prefers-reduced-motion:reduce){.t-tilt-card{transform:none!important;transition:none!important}}:root{--portfolio-page-background:var(--color-background-contrast);--portfolio-nav-active-background:var(--color-background-contrast);--portfolio-nav-background:color-mix(in srgb,var(--color-surface-card-primary) 80%,transparent);--portfolio-min-width:360px;--portfolio-page-gutter:var(--spacing-24);--portfolio-shell:min(960px,calc(100vw - (var(--portfolio-page-gutter) * 2)));--portfolio-text-column:min(796px,var(--portfolio-shell));--motion-fade-duration:360ms;--motion-fade-ease:cubic-bezier(0.22,1,0.36,1);--motion-reveal-distance:14px;--motion-stagger-step:60ms;--motion-theme-duration:420ms;--motion-theme-ease:cubic-bezier(0.22,1,0.36,1)}*{box-sizing:border-box}html{background:var(--portfolio-page-background);color:var(--color-content-primary);min-width:var(--portfolio-min-width);overflow-anchor:none;scroll-behavior:auto}html:not([data-landing-splash=entered]),html:not([data-landing-splash=entered]) body{height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none}body{background:var(--portfolio-page-background);display:flex;flex-direction:column;font-family:var(--font-family-base);margin:0;min-height:100svh;min-width:var(--portfolio-min-width);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:none}.portfolio-route-fade--visible{opacity:1;transition:opacity .3s var(--motion-fade-ease)}img,svg{display:block}a{color:inherit}.text-link{position:relative;text-decoration:none}.text-link:after,.text-link:before{content:"";height:1px;left:0;pointer-events:none;position:absolute;right:0;bottom:0}.text-link:before{background:var(--color-border-primary)}.text-link:not(a):before{background:var(--color-content-tertiary)}.text-link:after{background:var(--color-content-primary);transform:scaleX(0);transform-origin:left center;transition:transform .38s var(--motion-fade-ease)}.text-link:not(a):after{content:none}a.text-link:focus-visible:after,a.text-link:hover:after{transform:scaleX(1)}.text-link:focus-visible,.text-link:hover{outline:none}.text-link:focus-visible:after{height:2px}@media (prefers-reduced-motion:reduce){.text-link:after{transition:none}}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:no-preference){html[data-theme-transitioning],html[data-theme-transitioning] body{transition:background-color var(--motion-theme-duration) var(--motion-theme-ease),color var(--motion-theme-duration) var(--motion-theme-ease)}html[data-theme-transitioning] body *,html[data-theme-transitioning] body :after,html[data-theme-transitioning] body :before{transition:background-color var(--motion-theme-duration) var(--motion-theme-ease),color var(--motion-theme-duration) var(--motion-theme-ease),border-color var(--motion-theme-duration) var(--motion-theme-ease),outline-color var(--motion-theme-duration) var(--motion-theme-ease),fill var(--motion-theme-duration) var(--motion-theme-ease),stroke var(--motion-theme-duration) var(--motion-theme-ease),box-shadow var(--motion-theme-duration) var(--motion-theme-ease)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-reveal{opacity:1;transform:none;will-change:auto}.motion-reveal,.portfolio-content-shell,.portfolio-route-fade,.portfolio-route-fade--visible{transition:none}}@media (max-width:767px){body,html{min-width:0;overflow-x:clip}}