@font-face{font-family:"Outfit";src:url("../fonts/Outfit-Regular.woff") format("woff");font-weight:400;font-display:swap}@font-face{font-family:"Geist Mono";src:url("../fonts/GeistMono-Regular.woff") format("woff");font-weight:400;font-display:swap}:root{color-scheme:light;--bg:#eceded;--bg-2: #e4e5e6;--surface:#f5f5f5;--ink:#121316;--ink-2: #565a62;--line:rgb(0 0 0 / 0.12);--line-strong:rgb(0 0 0 / 0.28);--accent:var(--ink);--on-accent:var(--bg);--shadow:0 26px 56px -28px rgb(20 20 30 / 0.4);--shadow-lg:0 40px 80px -30px rgb(20 20 30 / 0.5);--peek:clamp(1.4rem,4dvh,2.6rem);--r:clamp(1rem,2.4vw,1.75rem);--radius:16px;--gutter:clamp(1.25rem,4vw,4rem);--maxw:1400px;--ease:cubic-bezier(0.16,1,0.3,1);--soft:cubic-bezier(0.45,0.05,0.25,1);--spring:cubic-bezier(0.34,1.45,0.64,1);--font-sans:"Outfit","Helvetica Neue",Arial,sans-serif;--font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",Menlo,monospace}@supports (transition-timing-function:linear(0,1)){:root{--spring:linear(0,0.082,0.268,0.488,0.694,0.861,0.98,1.052,1.087,1.095,1.085,1.066,1.045,1.026,1.011,1.001,0.994,0.991,0.991,0.992,0.994,0.996,0.998,0.999,1,1.001,1.001,1.001,1.001,1.001,1,1,1,1,1,1,1)}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:var(--bg);padding:0.6rem 1rem;border-radius:999px;z-index:50}.skip:focus{top:1rem}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.btn{position:relative;display:inline-flex;align-items:center;gap:0.6rem;white-space:nowrap;padding:0.85rem 1.4rem;border:1px solid var(--line-strong);border-radius:999px;font:inherit;font-size:0.95rem;line-height:1;color:var(--ink);background:transparent;overflow:hidden;isolation:isolate;cursor:pointer;transition:color 0.45s var(--ease),border-color 0.45s var(--ease),transform 1s var(--spring)}.btn::before{content:"";position:absolute;inset:-1px;z-index:-1;background:color-mix(in srgb,var(--ink) 9%,var(--bg));border-radius:inherit;transform:scaleX(0);transform-origin:var(--origin,left) center;transition:transform 0.55s var(--ease)}.btn:hover,.btn:focus-visible{border-color:color-mix(in srgb,var(--ink) 45%,var(--bg))}.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1)}.btn:hover,.btn:focus-visible{transform:scale(1.04)}.btn:active{transform:scale(0.97);transition-duration:0.45s,0.45s,0.15s}.btn .arr{display:inline-block;transition:transform 0.45s var(--ease)}.btn:hover .arr{transform:translateX(4px)}.js [data-fade]{opacity:0;transition:opacity 1.1s var(--ease)}.js [data-fade].is-in{opacity:1}.hero{position:relative;min-height:100dvh;display:grid;align-items:center;padding-block:clamp(3rem,9vh,6rem)}.lang{margin:clamp(1.2rem,3vh,2rem) 0 0;padding-left:calc(var(--lead-size) * 0.04);text-align:left;font-size:0.95rem;color:var(--ink-2)}.lang a{color:var(--ink);border-bottom:1px solid var(--line-strong);transition:border-color 0.5s var(--ease),color 0.5s var(--ease)}.lang a:hover,.lang a:focus-visible{color:var(--ink-2);border-color:var(--line)}.hero h1{margin:0;font-weight:400;font-size:clamp(4rem,min(15vw,25vh),15rem);line-height:0.9;letter-spacing:-0.05em;white-space:nowrap;width:fit-content}.hero h1 span{display:block;padding-bottom:0.04em}.hero__sub{margin:clamp(0.8rem,2vh,1.4rem) 0 0;font-size:clamp(1.1rem,1.7vw,1.5rem);line-height:1.3;color:var(--ink)}.hero__sub b{color:var(--ink);font-weight:400}.about{min-height:100dvh;display:grid;align-content:center;padding-block:clamp(2rem,6vh,6rem)}.about{--lead-size:clamp(1.7rem,3.5vw,3.35rem)}.about__col{margin-left:clamp(0rem,12vw,12rem);max-width:calc(var(--lead-size) * 26)}.about__lead{margin:0;font-size:var(--lead-size);line-height:1.18;letter-spacing:-0.025em;view-timeline-name:--lead}.about__lead + .about__lead{margin-top:1.05em}.about__lead .w{display:inline-block;margin-right:0.26em}.facts{min-height:100dvh;display:grid;align-content:center;padding-block:clamp(4rem,9vh,7rem)}.facts__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(1rem,2vw,2rem);row-gap:clamp(2.5rem,8vh,5rem)}.fact{position:relative;min-width:0}.mag{margin:0;transform-origin:left center;transform:translate(var(--tx,0px),var(--ty,0px)) scale(var(--s,1));transition:transform 1.3s var(--spring)}.fact .num{font-size:clamp(3.4rem,7.2vw,7.2rem);line-height:0.9;letter-spacing:-0.05em;font-variant-numeric:tabular-nums}.fact .num small{font-size:0.42em;letter-spacing:-0.02em;margin-left:0.04em}.fact .lab{margin:1rem 0 0;max-width:24ch;font-size:0.95rem;line-height:1.4;color:var(--ink-2);transition:color 0.6s var(--soft)}.fact .stmt{max-width:24ch;font-size:clamp(1.3rem,2vw,1.9rem);line-height:1.22;letter-spacing:-0.02em}.js .fact[data-fade]{transition:opacity 0.7s var(--soft)}.case--intro{grid-template-columns:1fr;align-items:center}.case--intro h2{margin:0;max-width:12.5ch;font-weight:400;font-size:clamp(3rem,min(8vw,14vh),8rem);line-height:0.94;letter-spacing:-0.05em}.case.case--intro{align-content:center;position:relative;flex-basis:calc(85vw - var(--edge) - clamp(1rem,2.2vw,2rem));grid-template-columns:minmax(0,1fr);align-items:center}.work__ui{transition:opacity 0.6s var(--soft)}.work.at-start .work__ui{opacity:0;pointer-events:none}.work__ui{justify-content:center}.swipe{display:block;width:clamp(90px,11vw,140px);height:auto;margin-top:clamp(1.4rem,4vh,2.6rem);color:var(--ink);cursor:pointer;--nudge:12px;opacity:0;transition:color 0.5s var(--ease);animation:swipe-in 1.2s var(--soft) 2s forwards,swipe-nudge 2.6s var(--spring) 3.2s infinite}.swipe:hover{color:color-mix(in srgb,var(--ink) 40%,var(--bg))}@keyframes swipe-in{to{opacity:1}}@keyframes swipe-nudge{0%,55%,100%{transform:translateX(0)}25%{transform:translateX(var(--nudge))}}@media (max-width:1023px){.case.case--intro{align-content:center;flex-basis:calc(100vw - var(--edge) - 12vw - clamp(1rem,2.2vw,2rem))}.swipe{width:110px}}@media (prefers-reduced-motion:reduce){.swipe{animation:none;opacity:1}}@media (min-width:1024px){.case--intro h2{max-width:9.2ch}}.case--intro p{margin:clamp(1.2rem,3.5vh,2.4rem) 0 0;max-width:34ch;font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--ink-2)}.work{min-height:100dvh;display:grid;align-content:center;padding-block:clamp(3rem,8vh,6rem)}.work__track{--edge:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)));display:flex;gap:clamp(1rem,2.2vw,2rem);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);padding-inline:var(--edge);padding-block:2rem 3rem;scrollbar-width:none}.work__track::-webkit-scrollbar{display:none}.work__track.is-drag{scroll-snap-type:none;scroll-behavior:auto}.work__track.is-drag *{pointer-events:none}.case{flex:0 0 min(86vw,1180px);scroll-snap-align:start;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(1.5rem,3vw,3rem);align-items:end;transition:opacity 0.7s var(--ease)}.js .case{opacity:0.38}.js .case.is-active{opacity:1}.case__media{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius);overflow:hidden;background:var(--surface)}.case__media .media-inner{position:absolute;inset:-8%;transition:transform 1.4s var(--spring)}.case:hover .media-inner{transform:scale(1.045)}.case__media video,.case__media img{width:100%;height:100%;object-fit:cover}.ph{--h:250;background:radial-gradient(120% 90% at 18% 8%,oklch(0.42 0.06 var(--h)),transparent 62%),linear-gradient(160deg,oklch(0.26 0.025 var(--h)),oklch(0.15 0.01 var(--h)))}.case__media iframe{position:absolute;inset:0;z-index:3;width:100%;height:100%;border:0;background:#000}.play{position:absolute;inset:0;z-index:2;display:grid;place-items:center;cursor:pointer;background:none;border:0}.play svg{width:4.2rem;height:4.2rem;padding:1.25rem 1.1rem 1.25rem 1.45rem;border-radius:50%;fill:var(--ink);background:rgb(255 255 255 / 0.9);transition:transform 0.7s var(--spring),background 0.4s var(--ease)}.play[hidden]{display:none}.play:hover svg,.play:focus-visible svg{transform:scale(1.12);background:#fff}.slot{position:absolute;left:1rem;bottom:0.9rem;z-index:2;font-family:var(--font-mono);font-size:0.72rem;color:rgb(255 255 255 / 0.55)}.case__body{padding-bottom:0.4rem}.case__brand{margin:0 0 0.8rem;font-size:0.95rem;color:var(--ink-2)}.case h3{margin:0 0 1.1rem;font-weight:400;font-size:clamp(2rem,3.6vw,3.6rem);line-height:0.98;letter-spacing:-0.04em}.case__text{margin:0 0 1.4rem;font-size:0.98rem;line-height:1.6;color:var(--ink-2)}.scope{margin:0 0 1.6rem;padding:0;list-style:none;font-size:0.92rem;line-height:1.5;color:var(--ink-2)}.case__links{display:flex;flex-wrap:wrap;gap:0.6rem}.work__ui{display:flex;align-items:center;gap:1.5rem}.work__arrows{display:flex;gap:0.6rem}.arrow{width:3.2rem;height:3.2rem;padding:0;justify-content:center;font-size:1.15rem}.arrow::before{background:var(--ink)}.arrow:hover,.arrow:focus-visible{color:var(--bg);border-color:var(--ink)}.arrow[disabled]{opacity:0.3;pointer-events:none}.contact{min-height:100dvh;display:grid;align-content:center;padding-block:clamp(3rem,9vh,6rem);overflow:clip}.contact>.wrap:last-child{position:absolute;left:0;right:0;bottom:2rem}.contact h2{margin:0;font-weight:400;font-size:clamp(4.2rem,17vw,17rem);line-height:0.84;letter-spacing:-0.06em}.contact__links{display:flex;flex-direction:column;align-items:flex-start;gap:1.4rem;margin-top:clamp(2rem,6vh,4rem)}.mail{position:relative;display:inline-block;font-size:clamp(1.6rem,4vw,3.6rem);letter-spacing:-0.035em;line-height:1.1}.mail::after{content:"";position:absolute;left:0;right:0;bottom:-0.1em;height:2px;background:var(--ink);transform:scaleX(0.18);transform-origin:left center;transition:transform 0.7s var(--ease)}.mail:hover::after,.mail:focus-visible::after{transform:scaleX(1)}.linkedin{font-size:clamp(1.1rem,1.8vw,1.5rem);color:var(--ink-2);transition:color 0.3s var(--ease)}.linkedin:hover{color:var(--ink)}.foot{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:clamp(2rem,6vh,4rem);font-size:0.9rem}.foot a{color:var(--ink-2);border-bottom:1px solid var(--line-strong);transition:color 0.5s var(--ease),border-color 0.5s var(--ease)}.foot a:hover,.foot a:focus-visible{color:var(--ink);border-color:var(--ink)}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.hero__sub{animation:p-fade linear both;animation-timeline:scroll(root);animation-range:0 50vh}@keyframes p-fade{to{opacity:0;transform:translateY(-20px)}}.contact h2{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 90%}@keyframes rise{from{transform:translateY(18vh);opacity:0}to{transform:none;opacity:1}}.case__media .media-inner{animation:slide-in linear both;animation-timeline:view(inline);animation-range:cover}@keyframes slide-in{from{translate:-5% 0}to{translate:5% 0}}}}@media (max-width:1023px){.case{flex-basis:min(90vw,860px);grid-template-columns:1fr;align-items:start}.case__media{aspect-ratio:16 / 10}.facts__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.2rem}.fact--a{order:1}.fact--f{order:2}.fact--h{order:3}.fact--d{order:4}.fact--b{order:5}.fact--g{order:6}.fact--j{order:7}.fact--c{order:8}.fact .num{font-size:clamp(3.4rem,14vw,6rem)}.fact .stmt{max-width:34ch}}@media (max-width:767px){body{font-size:1rem}.about__col{margin-left:0}.foot{flex-direction:column}}@media (prefers-reduced-motion:reduce){.js [data-fade]{opacity:1;transform:none;transition:none}.case,.fact .lab,.mag,.btn,.btn::before,.case__media .media-inner,.mail,.mail::after{transition:none}.js .case{opacity:1}}@media (min-width:1024px){.about{--lead-size:clamp(1.25rem,min(2.35vw,3.9vh),2.35rem);padding-block:clamp(1.5rem,4vh,4rem)}.facts{padding-block:clamp(2.5rem,6vh,4.5rem)}.fact .num{font-size:clamp(3.4rem,min(7.4vw,15vh),8.5rem)}.fact .lab{margin-top:0.7rem;font-size:clamp(0.82rem,1.8vh,1rem)}.fact .stmt{font-size:clamp(1.02rem,min(1.4vw,2.5vh),1.4rem);max-width:22ch}}@media (min-width:1024px) and (max-height:800px){.work{padding-block:2rem}.case h3{font-size:clamp(1.6rem,3.6vh,2.2rem)}.case__text{font-size:0.9rem;line-height:1.5;margin-bottom:0.9rem}.case__media{height:min(56vh,30rem)}}.hero,.about,.facts,.work,.contact{scroll-snap-align:start;scroll-snap-stop:normal}html{scroll-snap-type:y mandatory}.fact{padding-left:clamp(0.9rem,1.4vw,1.4rem);border-left:1px solid var(--line-strong)}.wd{opacity:0.1;transition:opacity 0.7s var(--soft)}.wd.on{opacity:1}.about .wd{transition-duration:0.55s}.mag.wd{transition:transform 1.3s var(--spring),opacity 0.7s var(--soft)}.linkedin.wd{transition:color 0.3s var(--ease),opacity 0.7s var(--soft)}.lang a.wd,.foot a.wd{transition:border-color 0.5s var(--ease),color 0.5s var(--ease),opacity 0.7s var(--soft)}@media (prefers-reduced-motion:reduce){.wd{opacity:1;transition:none}}@media (max-width:1023px){.hero,.about,.facts,.work,.contact{min-height:100dvh;max-height:none;scroll-snap-stop:always}.hero{padding-block:clamp(2.5rem,8dvh,4rem)}.hero h1{font-size:min(27vw,14dvh)}.about{--lead-size:clamp(1.05rem,min(5.6vw,2.85dvh),2rem);padding-block:clamp(2rem,6dvh,4rem)}.about__col{max-width:none}.lang{margin-top:clamp(0.6rem,1.6dvh,1.2rem);font-size:0.85rem}.about{--lead-size:clamp(1.05rem,min(5.3vw,2.4dvh),2rem)}.about__lead{line-height:1.22}.work{padding-block:clamp(1rem,2.5dvh,2rem)}.work__track{padding-block:0.5rem 1rem}.case{gap:clamp(0.8rem,2dvh,1.4rem)}.case__media{aspect-ratio:auto;height:min(30dvh,26rem)}.case h3{font-size:clamp(1.4rem,3.6dvh,2.2rem);margin-bottom:0.5rem}.case__brand{margin-bottom:0.4rem;font-size:0.85rem}.case__text{font-size:clamp(0.86rem,1.95dvh,1.02rem);line-height:1.42;margin-bottom:0.8rem}.scope{font-size:clamp(0.8rem,1.8dvh,0.96rem);line-height:1.38;margin-bottom:0.9rem}.case .btn{padding:0.6rem 1rem;font-size:0.85rem}.case--intro h2{font-size:clamp(2.4rem,min(12vw,8dvh),6rem)}.work__ui{margin-top:clamp(0.8rem,2dvh,1.6rem)}.facts{padding-block:clamp(1.5rem,4dvh,3rem);align-content:center}.facts__grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0.9rem;row-gap:clamp(0.9rem,2.4dvh,1.8rem);display:grid}.fact{width:auto;margin:0 !important;padding-left:0.6rem;align-self:start;grid-column:auto !important}.fact .stmt,.fact .lab{hyphens:auto}.fact .num{font-size:min(13.5vw,6.8dvh)}.fact .lab{margin-top:0.35rem;font-size:clamp(0.74rem,1.7dvh,0.92rem);line-height:1.3}.fact .stmt{max-width:none;font-size:clamp(0.8rem,1.95dvh,1.05rem);line-height:1.25}}.down{position:absolute;left:50%;bottom:clamp(0.6rem,2.2dvh,1.6rem);z-index:2;display:grid;place-items:center;padding:0.7rem 1.1rem;margin-left:-1.6rem;color:var(--ink);cursor:pointer;transition:color 0.5s var(--ease)}.down svg{display:block;opacity:0;animation:down-in 1.2s var(--soft) 2s forwards,down-nudge 2.6s var(--spring) 3.2s infinite}.down:hover,.down:focus-visible{color:color-mix(in srgb,var(--ink) 40%,var(--bg))}@keyframes down-in{to{opacity:1}}@keyframes down-nudge{0%,55%,100%{transform:translateY(0)}25%{transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.down svg{animation:none;opacity:1}}.z-dark{--bg:#0f1012;--bg-2: #141518;--surface:#1a1c20;--ink:#ecebe8;--ink-2: #a3a6ad;--line:rgb(255 255 255 / 0.12);--line-strong:rgb(255 255 255 / 0.28);color-scheme:dark}.hero,.about,.work,.facts,.contact{position:relative;background:var(--bg);color:var(--ink);min-height:calc(100dvh - var(--peek))}.about,.work,.facts,.contact{margin-top:calc(var(--r) * -1);border-top:var(--r) solid transparent}.hero,.about,.work,.facts{border-bottom:var(--r) solid transparent;border-radius:0 0 var(--r) var(--r)}.contact{min-height:calc(100dvh + var(--r))}.about,.work,.facts,.contact{scroll-margin-top:calc(var(--r) * -1)}.hero{z-index:5}.about{z-index:4}.work{z-index:3}.facts{z-index:2}.contact{z-index:1}