html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}.page-shell{--portfolio-ease-out:cubic-bezier(.23, 1, .32, 1)}html.lenis{scroll-behavior:auto!important}.portfolio-stable-viewport{visibility:hidden;pointer-events:none;width:0;height:100svh;position:fixed;top:0;left:0}.personal-gallery-viewport:focus-visible{outline:2px solid var(--ring);outline-offset:6px}.story-chapter:focus-within .story-content,.story-chapter:focus-within .website-grid{transform:none!important}.scroll-title{overflow:clip}.scroll-title-text{padding-bottom:.08em;display:block}.contact-main .scroll-title{margin-bottom:-.16em;padding-bottom:.16em}.personal-gallery:not(.is-scroll-gallery) .personal-gallery-viewport{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;direction:rtl;overflow-x:auto}.personal-gallery:not(.is-scroll-gallery) .personal-gallery-track{align-items:flex-start;gap:24px;width:100%;max-width:none;margin:0;display:flex}.personal-gallery:not(.is-scroll-gallery) .personal-highlight{scroll-snap-align:start;scroll-snap-stop:always;direction:ltr;flex:0 0 100%;margin:0;padding-bottom:16px}.personal-gallery:not(.is-scroll-gallery) .personal-photo{aspect-ratio:auto;height:min(56svh,640px)}.personal-gallery:not(.is-scroll-gallery) .personal-photo img{object-fit:cover}.is-scroll-gallery .personal-gallery-viewport{height:calc(100svh - 128px);overflow:clip}.is-scroll-gallery .personal-gallery-track{flex-direction:row-reverse;gap:0;width:100%;max-width:none;height:100%;margin:0;display:flex}.is-scroll-gallery .personal-highlight{flex:0 0 100%;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);place-items:center;gap:24px;height:100%;padding:16px 12px;display:grid;overflow:clip}.is-scroll-gallery .personal-photo{aspect-ratio:auto;place-items:center;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;display:grid;container-type:size}.is-scroll-gallery .personal-photo img{width:min(100cqw, calc(100cqh * var(--photo-ratio)));height:min(100cqh, calc(100cqw / var(--photo-ratio)))}.is-scroll-gallery .personal-highlight figcaption{width:100%;max-width:440px;margin:0}.is-scroll-gallery .personal-highlight h3{font-size:clamp(28px,4.3vw,60px)}@media (width>=641px){.is-scroll-gallery .personal-gallery-viewport{height:calc(100svh - 96px)}.is-scroll-gallery .personal-highlight{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:clamp(32px,6vw,96px);padding:24px clamp(0px,3vw,48px)}.is-scroll-gallery .personal-photo img{justify-self:end}.is-scroll-gallery .personal-highlight figcaption{justify-self:start}}@media (width<=640px){.page-shell .personal-gallery .personal-gallery-viewport{overscroll-behavior-x:auto;scroll-snap-type:none;scrollbar-width:auto;direction:ltr;height:auto;overflow:visible}.page-shell .personal-gallery .personal-gallery-track{grid-template-columns:minmax(0,1fr);gap:56px;width:100%;max-width:640px;height:auto;margin-inline:auto;display:grid;transform:none}.page-shell .personal-gallery .personal-highlight{scroll-snap-align:none;scroll-snap-stop:normal;flex:none;height:auto;margin:0;padding:0;display:block;overflow:visible;transform:none}.page-shell .personal-gallery .personal-photo{width:min(100%, calc(70svh * var(--photo-ratio)));height:auto;min-height:0;max-height:70svh;aspect-ratio:var(--photo-ratio);margin-inline:auto;display:block;overflow:visible;container-type:normal}.page-shell .personal-gallery .personal-photo img{object-fit:cover;width:100%;max-width:100%;height:100%;max-height:100%;position:absolute;inset:0}.page-shell .personal-gallery .personal-highlight figcaption{width:100%;max-width:440px;margin:18px auto 0}.page-shell .personal-gallery .personal-highlight h3{font-size:clamp(22px,2.1vw,30px)}}@media (width<=640px) and (prefers-reduced-motion:no-preference){.page-shell .personal-gallery .personal-highlight[data-photo-reveal]{transition:transform .48s var(--portfolio-ease-out)}.page-shell .personal-gallery .personal-highlight[data-photo-reveal] .personal-photo{transition:opacity .48s}.page-shell .personal-gallery .personal-highlight[data-photo-reveal=pending]{transform:translateY(16px)}.page-shell .personal-gallery .personal-highlight[data-photo-reveal=pending] .personal-photo{opacity:0}.page-shell .personal-gallery .personal-highlight[data-photo-reveal=visible]{transform:translateY(0)}.page-shell .personal-gallery .personal-highlight[data-photo-reveal=visible] .personal-photo{opacity:1}}.website-preview-viewport{isolation:isolate;width:100%;padding:6% 4% 9%;position:relative;overflow:visible}.website-preview-viewport:before{content:"";z-index:-1;background:radial-gradient(ellipse at 50% 55%, color-mix(in oklab, var(--foreground) 16%, transparent), transparent 70%);filter:blur(28px);pointer-events:none;position:absolute;inset:10% 8% 4%}.website-preview-scene{transform-origin:bottom;position:relative}.macbook{width:100%;position:relative}.macbook-lid{background:linear-gradient(oklch(26% .005 260),oklch(16% .005 260));border-radius:4.5%/7%;width:86%;margin-inline:auto;padding:2.2% 2.2% 2.6%;position:relative;box-shadow:inset 0 0 0 1px oklch(40% .005 260/.7),inset 0 0 0 3px oklch(8% 0 0),0 30px 60px -20px oklch(0% 0 0/.8)}.macbook-notch{z-index:2;background:oklch(8% 0 0);border-radius:0 0 6px 6px;width:11%;height:3.2%;position:absolute;top:2.2%;left:50%;transform:translate(-50%)}.macbook-screen{aspect-ratio:16/10;background:oklch(8% 0 0);border-radius:1.5%/2.4%;position:relative;overflow:hidden}.macbook-screen:after{content:"";pointer-events:none;background:linear-gradient(125deg,oklch(100% 0 0/.1) 0%,#0000 38%);position:absolute;inset:0}.website-preview-image{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.macbook-base{background:linear-gradient(oklch(42% .005 260) 0%,oklch(24% .005 260) 35%,oklch(12% 0 0) 100%);border-radius:0 0 40% 40%/0 0 100% 100%;height:0;padding-bottom:3.4%;position:relative;box-shadow:0 18px 30px -10px oklch(0% 0 0/.9)}.macbook-base:before{content:"";background:oklch(15% 0 0);border-radius:0 0 10px 10px;width:15%;height:45%;position:absolute;top:0;left:50%;transform:translate(-50%)}.website-preview-fallback{color:inherit;text-align:center;border:1px solid;place-items:center;padding:24px;font-size:13px;line-height:1.5;display:grid;position:absolute;inset:3% 0}.page-shell .hero-line>span,.page-shell .hero-introduction,.page-shell .hero-portrait{animation:none}.page-shell .project-trigger:before,.page-shell .text-link svg,.page-shell .website-link>svg,.page-shell .contact-link svg{transition-duration:.22s;transition-timing-function:var(--portfolio-ease-out)}@media (prefers-reduced-motion:reduce){.website-preview-image,.personal-highlight img{transition:none}.page-shell .hero-line>span,.page-shell .hero-introduction,.page-shell .hero-portrait{animation:none}.website-preview-scene,.portfolio-hero-scroll,.scroll-title-text,.story-chapter,.story-heading,.story-content,.story-chapter .website-grid{opacity:1!important;transform:none!important}}.tools-carousel{border-top:1px solid var(--border);min-width:0;padding-block:clamp(36px,5vw,64px)}.tools-carousel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;transition:opacity .48s,transform .48s cubic-bezier(.22,1,.36,1);display:flex}.tools-carousel-heading h3{letter-spacing:-.025em;font-size:clamp(20px,2vw,26px);font-weight:400;line-height:1.25}.tools-carousel-window{scrollbar-width:none;scroll-behavior:auto;overscroll-behavior-x:contain;cursor:grab;touch-action:pan-x pan-y pinch-zoom;-webkit-user-select:none;user-select:none;transition:opacity .56s 70ms,transform .56s cubic-bezier(.22,1,.36,1) 70ms;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000)}.tools-carousel-window::-webkit-scrollbar{display:none}.tools-carousel[data-enhanced=true][data-entered=false] .tools-carousel-heading,.tools-carousel[data-enhanced=true][data-entered=false] .tools-carousel-window{opacity:0;transform:translateY(12px)}.tools-carousel-window:focus-visible{outline:2px solid var(--ring);outline-offset:6px;-webkit-mask-image:none;mask-image:none}.tools-carousel-window[data-dragging=true]{cursor:grabbing}.tools-carousel-track{width:max-content;animation:80s linear infinite paused tools-drift;display:flex}.tools-carousel[data-playing=true] .tools-carousel-track{animation-play-state:running}.tools-carousel-list{flex-shrink:0;align-items:start;gap:12px;padding-inline-end:12px;list-style:none;display:flex}.tools-carousel-list li{text-align:center;width:100px;color:var(--muted-foreground);flex-direction:column;flex:0 0 100px;align-items:center;gap:8px;font-size:12px;line-height:1.5;display:flex}.tool-logo{place-items:center;width:56px;height:56px;display:grid}.tool-logo img{object-fit:contain;width:40px;height:40px;transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1)}.tools-carousel[data-enhanced=true] img:not([data-loaded=true]){opacity:0;transform:translateY(6px)}@keyframes tools-drift{to{transform:translate(-33.3333%)}}@media (width>=641px){.tools-carousel-list{gap:clamp(24px,4vw,56px);padding-inline-end:clamp(24px,4vw,56px)}.tools-carousel-list li{flex-basis:144px;width:144px;font-size:13px}.tool-logo{width:64px;height:64px}}@media (hover:hover){.tools-carousel .tools-carousel-window:hover .tools-carousel-track{animation-play-state:paused}}@media (prefers-reduced-motion:reduce),(scripting:none){.tools-carousel-list[aria-hidden=true]{display:none}.tools-carousel-window,.tools-carousel-window[data-dragging=true]{cursor:auto;overflow:visible;-webkit-mask-image:none;mask-image:none}.tools-carousel .tools-carousel-track{width:100%;animation:none;transform:none}.tools-carousel-heading,.tools-carousel-window,.tool-logo img{opacity:1;transition:none;transform:none}.tools-carousel-list{grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:24px 16px;width:100%;padding:0;display:grid}.tools-carousel-list li{width:auto;min-width:0}}.company-growth{grid-column:1/-1;min-width:0;margin-top:12px;display:grid}.company-growth-badges{flex-wrap:wrap;align-items:center;gap:20px;margin-top:2px;display:flex}.company-growth-badge{width:112px;max-width:calc(50% - 10px);height:auto;display:block;overflow:visible}.company-growth-badge image{filter:grayscale();transition:filter .3s}@media (hover:hover){.company-growth-badge:hover image{filter:grayscale(0)}}@media (prefers-reduced-motion:reduce){.company-growth-badge image{transition:none}}
