@font-face{font-family:TWK Lausanne;src:url(/fonts/lausanne-400.woff2)format("woff2");font-style:normal;font-weight:400;font-display:block}@font-face{font-family:TWK Lausanne;src:url(/fonts/lausanne-500.woff2)format("woff2");font-style:normal;font-weight:500;font-display:block}@font-face{font-family:TWK Lausanne;src:url(/fonts/lausanne-600.woff2)format("woff2");font-style:normal;font-weight:600;font-display:block}@font-face{font-family:TWK Lausanne;src:url(/fonts/lausanne-600.woff2)format("woff2");font-style:normal;font-weight:700;font-display:block}@font-face{font-family:TWK Lausanne;src:url(/fonts/lausanne-800.woff2)format("woff2");font-style:normal;font-weight:800;font-display:block}:root{color-scheme:light;--paper:#fff;--surface:#f5f6f8;--surface-raised:#c3c5c6;--ink:#17191b;--ink-inverse:#fff;--muted:#696969;--line:#b8b9ba;--shape:#ecedef;--acid:#e5fe7b;--media-placeholder:#deded8;--focus:#8ab2ff;--icon-filter:none;--cursor-blend:#fff;--project-card-radius:16px;--compact-card-radius:12px;--case-media-gap:16px;--case-media-radius:16px;--content:1100px;--section-gap:200px;--expertise-career-gap:160px}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#0b0c0d;--surface:#181a1c;--surface-raised:#232629;--ink:#f5f6f2;--ink-inverse:#111315;--muted:#969b9f;--line:#363a3e;--shape:#202326;--acid:var(--shape);--media-placeholder:#1d2023;--focus:#9fc1ff;--icon-filter:invert(1)}}*{box-sizing:border-box}html{scroll-behavior:smooth}#cases{scroll-margin-top:5vh}#about{scroll-margin-top:10vh}#contact{scroll-margin-top:0}html.is-restoring-scroll body{visibility:hidden}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:TWK Lausanne,Arial,sans-serif;font-size:16px}.site-cursor{display:none}@media (hover:hover) and (pointer:fine){html,body,body *,.project-grid,.project-grid *{cursor:none!important}.site-cursor{z-index:10000;border:0 solid var(--cursor-blend);background:var(--cursor-blend);opacity:0;pointer-events:none;mix-blend-mode:difference;border-radius:50%;width:100px;height:100px;transition:opacity 80ms,transform .26s cubic-bezier(.34,1.2,.64,1),background-color .12s,border-width .12s;display:block;position:fixed;transform:translate(-50%,-50%)scale(.16)}.site-cursor.is-visible{opacity:1;transform:translate(-50%,-50%)scale(.16)}.site-cursor.is-stack{transform:translate(-50%,-50%)scale(.32)}.site-cursor.is-expertise{background:0 0;border-width:6.5px;transform:translate(-50%,-50%)scale(1)}.site-cursor.is-native-pan{background:var(--cursor-blend);opacity:1;border:0;border-radius:0;width:28px;height:28px;transition:opacity 80ms;transform:translate(-50%,-50%)scale(1);-webkit-mask:url(/images/cursors/pointer-default.svg) 50%/contain no-repeat;mask:url(/images/cursors/pointer-default.svg) 50%/contain no-repeat}.site-cursor.is-native-pan.is-pan-active{-webkit-mask-image:url(/images/cursors/pointer-active.svg);mask-image:url(/images/cursors/pointer-active.svg)}.site-cursor.is-pan-morphing{transition:none}}a{color:inherit;text-decoration:none}:where(a,button,[tabindex]):focus{outline:none}html.is-keyboard-navigation :where(a,button,[tabindex]):focus{outline:3px solid var(--focus);outline-offset:4px}img{max-width:100%;display:block}.section-shell{width:min(calc(100% - 48px), var(--content));margin-inline:auto}.type-h0,.type-h1,.type-h2,.type-h3,.type-t0,.type-t1,.type-t2{font-family:TWK Lausanne,Arial,sans-serif}.type-h0{letter-spacing:-.05em;font-size:230px;font-weight:700;line-height:.76}.type-h1{letter-spacing:-.05em;font-size:100px;font-weight:700;line-height:.8}.type-h2{letter-spacing:-.05em;font-size:60px;font-weight:600;line-height:1}.type-h3{letter-spacing:-.02em;font-size:34px;font-weight:600;line-height:1}.type-t0{letter-spacing:-.05em;font-size:60px;font-weight:400;line-height:1.1}.type-t1{letter-spacing:-.01em;font-size:20px;font-weight:400;line-height:1.4}.type-t2{letter-spacing:-.01em;font-size:18px;font-weight:400;line-height:1.4}.site-header-mask{z-index:20;color:#fff;mix-blend-mode:difference;pointer-events:none;width:100%;height:51px;position:fixed;top:0;left:0;overflow:hidden}.mobile-header-overscroll-bg{display:none}.site-header{letter-spacing:-.02em;width:100%;color:inherit;will-change:transform;pointer-events:auto;justify-content:space-between;align-items:center;padding:12px 60px;font-family:TWK Lausanne,Arial,sans-serif;font-size:21px;font-weight:400;line-height:1.2;transition:transform .5s cubic-bezier(.76,0,.24,1);display:flex;position:relative;transform:translateY(0)}.js .site-header{transform:translateY(-100%)}.js .site-header-mask.is-ready .site-header{transform:translateY(0)}.js .site-header-mask.is-ready .site-header.is-hidden{transform:translateY(-100%)}.site-header nav{gap:40px;display:flex}.mobile-menu-toggle{display:none}.header-link{height:25px;display:block;overflow:hidden}.header-link-track{flex-direction:column;display:flex}.header-link-track>span{white-space:nowrap;flex:0 0 25px;transition:transform .45s cubic-bezier(.22,1,.36,1)}.header-link-track>span:last-child{opacity:.55}@media (hover:hover) and (pointer:fine){.header-link:hover .header-link-track>span{transform:translateY(-100%)}}.wordmark{font-weight:400}.page-content{isolation:isolate;position:relative;overflow-x:clip}.page-content main{z-index:1;position:relative}.hero-shape-track{z-index:0;pointer-events:none;width:100%;height:3000px;position:absolute;top:0;left:0;overflow:visible}.hero-shape-position{--shape-parallax-y:0px;width:1000px;height:1000px;transform:translate(-50%, var(--shape-parallax-y));will-change:transform;position:absolute;top:-243px;left:50%}.hero-shape-entrance{transform-origin:50%;width:100%;height:100%;animation:2s cubic-bezier(.02,.57,.56,1) both hero-shape-entrance}.hero-shape-scale{--shape-scroll-scale:1;width:100%;height:100%;transform:scale(var(--shape-scroll-scale));transform-origin:50%;will-change:transform}.hero-shape-spinner{background:var(--shape);transform-origin:50%;will-change:transform;width:100%;height:100%;animation:100s linear infinite hero-shape-spin;display:block;-webkit-mask:url(/images/home/acid-shape.svg) 50%/contain no-repeat;mask:url(/images/home/acid-shape.svg) 50%/contain no-repeat}@keyframes hero-shape-entrance{0%{opacity:.001;transform:scale(.8)rotate(-30deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes hero-shape-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero{place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero h1{z-index:2;text-align:center;width:100%;margin:0;position:relative;transform:translateY(-60px)}.hero h1>span{display:block}.hero-title-line-mask{margin-bottom:-.18em;padding-bottom:.18em;overflow:hidden}.hero-title-character,.footer-title-character{transform-origin:100%;display:inline-block;transform:translateY(calc(100% + .18em))skewY(6deg)}.hero h1.is-ready .hero-title-character,.footer-heading.is-ready .footer-title-character{animation:1.2s cubic-bezier(.22,1,.36,1) both hero-title-character-reveal;animation-delay:calc(var(--character-index) * 45ms)}@keyframes hero-title-character-reveal{to{transform:translateY(0)skewY(0)}}.portrait-stage{--portrait-size:300px;width:var(--portrait-size);height:var(--portrait-size);flex:none;position:relative}.portrait-container{width:var(--portrait-container-size,calc(var(--portrait-size) * .8));height:var(--portrait-container-size,calc(var(--portrait-size) * .8));will-change:width, height;border-radius:50%;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.portrait{object-fit:cover;width:100%;height:100%;display:block}.portrait-container.is-scroll-revealing .portrait{transform:scale(var(--portrait-image-scale,1.375));transform-origin:50%;will-change:transform}.statement{min-height:0;padding-top:var(--expertise-career-gap);text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:56px;padding-bottom:96px;display:flex}.statement h2{text-align:center;white-space:nowrap;width:min(100%,100vw - 24px);max-width:none;margin:0 auto}.statement .line-reveal-mask{justify-content:center;width:100%;display:flex}.statement .line-reveal-text{flex:none;width:auto}.cases,.about,.expertise,.career,.stack,.faq{padding-block:0}.cases{width:min(calc(100% - 48px), var(--content));margin-top:var(--section-gap);background:0 0;padding:0}.about{margin-top:var(--section-gap)}.section-title{margin:0 0 52px}.project-grid{gap:0;display:grid}.project-row{grid-template-columns:minmax(0,1fr);gap:0;display:grid}.project-card{padding-bottom:40px;display:block}.project-card.is-scroll-revealing{will-change:auto}.project-card.is-scroll-revealing .project-card__image{clip-path:inset(var(--project-inset,5%) round var(--project-card-radius));will-change:clip-path}.project-card.is-scroll-revealing .project-card__image img{transform:scale(var(--project-image-scale,1.1));transform-origin:50%;will-change:transform}.project-card__image{aspect-ratio:3/2;border-radius:var(--project-card-radius);background:var(--media-placeholder);position:relative;overflow:hidden}.project-card__image img{object-fit:cover;width:100%;height:100%}.project-card h3{white-space:nowrap;margin:16px 0 0;display:block}.project-card h3 span{color:var(--muted)}.about-copy{text-align:left;max-width:1050px;margin:0}.js .line-reveal-copy{visibility:hidden}.js .line-reveal-copy.is-ready{visibility:visible}.line-reveal-mask{clip-path:inset(0 -100vw -.14em);display:block;overflow:visible}.line-reveal-text{transform-origin:100%;white-space:nowrap;display:block;transform:translateY(calc(100% + .8em))skewY(2.5deg)}.statement.is-visible .line-reveal-text,.about.is-visible .line-reveal-text{animation:1.6s cubic-bezier(.22,1,.36,1) both about-text-reveal}.about.is-animation-complete .about-title-text{animation:none;transform:none}.about .section-title{text-align:left;margin-bottom:calc(60px - .12em);padding-bottom:.12em;overflow:hidden}.about-title-text{transform-origin:100%;display:block;transform:translateY(calc(100% + .8em))skewY(3.5deg)}.about.is-visible .about-title-text{animation:1.6s cubic-bezier(.22,1,.36,1) both section-title-reveal}@keyframes section-title-reveal{0%{transform:translateY(calc(100% + .8em))skewY(3.5deg)}to{transform:translateY(0)skewY(0)}}@keyframes about-text-reveal{0%{transform:translateY(calc(100% + .8em))skewY(2.5deg)}to{transform:translateY(0)skewY(0)}}.numbered-list{gap:0;display:grid}.expertise{min-height:0;margin-top:var(--section-gap);padding:0}.expertise .section-title{margin-bottom:calc(60px - .12em);padding-bottom:.12em;overflow:hidden}.expertise-title-text{display:block}.expertise-item-mask{margin:6px 0;overflow:hidden}.js .expertise-title-text,.js .faq-title-text{transform-origin:100%;transform:translateY(calc(100% + .8em))skewY(3.5deg)}.js .expertise-item-mask>.expertise-item{transform-origin:100%;clip-path:inset(100% 0 0);transform:translateY(calc(100% + .8em))skewY(2.5deg)}.js .expertise.is-visible .expertise-title-text,.js .faq.is-visible .faq-title-text{animation:1.6s cubic-bezier(.22,1,.36,1) both section-title-reveal}.js .expertise.is-visible .expertise-item-mask>.expertise-item,.js .faq.is-visible .faq-item-mask>.faq-item{animation-name:about-text-reveal,expertise-item-clip-reveal;animation-duration:1.6s,2.2s;animation-timing-function:cubic-bezier(.22,1,.36,1),linear;animation-delay:var(--expertise-reveal-delay,.16s);animation-fill-mode:both,both}.js .expertise.is-animation-complete .expertise-title-text,.js .expertise.is-animation-complete .expertise-item-mask>.expertise-item,.js .faq.is-animation-complete .faq-title-text,.js .faq.is-animation-complete .faq-item-mask>.faq-item{animation:none;transform:none}.js .expertise.is-animation-complete .expertise-item-mask>.expertise-item,.js .faq.is-animation-complete .faq-item-mask>.faq-item{clip-path:none}@keyframes expertise-item-clip-reveal{0%,8%{clip-path:inset(100% 0 0)}20%,to{clip-path:inset(0)}}.expertise-item{height:var(--expertise-closed-height,66px);background:var(--surface);border-radius:12px;min-height:66px;margin:0;transition:height .3s cubic-bezier(.4,0,.2,1),background-color .22s;overflow:hidden}.expertise-item.is-open{height:var(--expertise-open-height,144px);background:var(--acid);color:var(--ink)}.expertise-item.is-open .expertise-content p{color:var(--ink)}@media (width>=768px){.expertise-item{transition:background-color .22s}}.expertise-trigger{width:100%;min-height:66px;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:19px 1fr;align-items:center;gap:24px;padding:14px 24px 12px;display:grid;transform:translateY(-1px)}.numbered-list p,.numbered-list span{margin:0}.expertise-trigger>span:first-child{font-variant-numeric:tabular-nums slashed-zero;letter-spacing:0;padding-top:0;font-family:TWK Lausanne,Arial,sans-serif;font-size:17px;font-weight:400;line-height:1.2}.expertise-title{transform:translateY(-2px)}.expertise-content{opacity:0;grid-template-rows:1fr;margin-top:-6px;padding-left:67px;transition:opacity .18s,transform .18s;display:grid;transform:translateY(-6px)}.expertise-content p,.career-list p{color:var(--ink)}.expertise-content p{width:80%;max-width:none;min-height:0;margin:0 24px 0 0;padding-bottom:22px;overflow:hidden}.expertise .expertise-content p{width:60%}.expertise-item.is-open .expertise-content{opacity:1;transform:translateY(0)}.expertise-cursor{display:none}@media (width>=768px) and (hover:hover) and (pointer:fine){.expertise-cursor{z-index:10001;opacity:0;pointer-events:none;mix-blend-mode:difference;width:100px;height:100px;transition:opacity .12s;display:block;position:fixed;transform:translate(-50%,-50%)}.expertise-cursor.is-visible{opacity:1}.expertise-cursor-icon{fill:#fff;opacity:0;transition:opacity .14s ease-out,transform .11s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.755)}.expertise-cursor-arrow{width:41px;height:41px}.expertise-cursor-disabled,.expertise-cursor-interface{width:53px;height:53px}.expertise-cursor-research{width:48px;height:53px}.expertise-cursor-component{width:63px;height:61px}.expertise-cursor-concept{width:58px;height:58px}.expertise-cursor[data-variant=interface] .expertise-cursor-interface,.expertise-cursor[data-variant=research] .expertise-cursor-research,.expertise-cursor[data-variant=component] .expertise-cursor-component,.expertise-cursor[data-variant=concept] .expertise-cursor-concept,.expertise-cursor[data-variant=arrow] .expertise-cursor-arrow,.expertise-cursor[data-variant=disabled] .expertise-cursor-disabled{opacity:1;transition:opacity .11s ease-out 35ms,transform .16s cubic-bezier(.34,1.16,.64,1) 35ms;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.site-header-mask,.site-header nav{transition:none!important}.js .site-header,.js .site-header-mask.is-ready .site-header{transition:none;transform:none}.js .site-header-mask.is-ready .site-header.is-hidden{transform:translateY(-100%)}.hero-title-character,.footer-title-character,.footer-meta-text{transform:none;animation:none!important}.hero-shape-entrance,.hero-shape-spinner{opacity:1;animation:none;transform:none}.line-reveal-text,.about-title-text,.expertise-title-text,.stack-title-text,.faq-title-text,.career-title-text,.site-cursor,.expertise-cursor,.expertise-cursor-icon,.expertise-content,.expertise-content p,.expertise-item,.stack-item-mask>article,.action-link{transition-duration:0s;animation:none}.line-reveal-text,.about-title-text,.expertise-title-text,.stack-title-text,.faq-title-text,.career-title-text,.expertise-item-mask>.expertise-item,.stack-item-mask>article,.action-link{clip-path:none;opacity:1;transform:none}.project-card.is-scroll-revealing .project-card__image{clip-path:none;will-change:auto}.project-card.is-scroll-revealing .project-card__image img,.portrait-container.is-scroll-revealing .portrait{will-change:auto;transform:none}.portrait-container.is-scroll-revealing{will-change:auto;width:300px;height:300px}}@media (width<=1199px) and (width>=768px){:root{--section-gap:180px;--expertise-career-gap:120px}.footer{padding-inline:24px}.type-h0{font-size:180px}.type-h1{font-size:86px}.type-h2{font-size:46px}.type-h3{font-size:28px}.type-t0{font-size:46px}.type-t1{font-size:18px}.type-t2{font-size:16px}.cases{margin-top:var(--section-gap);padding:0}.about{margin-top:var(--section-gap)}.project-grid{grid-template-columns:1fr;gap:0}.project-row-trigger,.project-row-mask,.project-row{display:contents}.project-card{padding-bottom:24px}.project-card h3{margin:12px 0 0;display:block}.expertise{min-height:0;margin-top:var(--section-gap);padding:0}.about .section-title,.expertise .section-title{margin-bottom:calc(40px - .12em)}.expertise-item-mask{min-height:62px;margin:5px 0}.expertise-item{min-height:62px}.expertise-trigger{grid-template-columns:14px 1fr;min-height:62px}.expertise-trigger>span:first-child{padding-top:0;font-size:14px}.expertise-content p{width:90%}.expertise-content{margin-top:-7px;padding-left:62px}}.section-heading-row{justify-content:space-between;align-items:flex-end;display:flex}.section-heading-row>a{text-underline-offset:4px;margin-bottom:10px;text-decoration:underline}.career{width:min(calc(100% - 48px), var(--content));margin-top:var(--expertise-career-gap);flex-direction:column;gap:60px;padding:0;display:flex}.career .section-heading-row{gap:24px;min-height:80px}.career .section-title{flex:1;margin:0;overflow:hidden}.career-title-text{display:block}.js .career-copy{visibility:hidden}.js .career.is-ready .career-copy{visibility:visible}.career-line-mask{margin-bottom:-.14em;padding-bottom:.14em;display:block;overflow:hidden}.career-line-text{transform-origin:100%;white-space:nowrap;display:block;transform:translateY(calc(200% + .8em))skewY(2.5deg)}.js .career-title-text{transform-origin:100%;transform:translateY(calc(100% + .8em))skewY(3.5deg)}.js .career.is-visible .career-title-text{animation:1.6s cubic-bezier(.22,1,.36,1) both section-title-reveal}.js .career.is-visible .career-line-text{animation:.9s cubic-bezier(.22,1,.36,1) both career-line-reveal}.js .career.is-animation-complete .career-title-text{animation:none;transform:none}@keyframes career-line-reveal{0%{transform:translateY(calc(200% + .8em))skewY(2.5deg)}to{transform:translateY(0)skewY(0)}}.action-link{--action-reveal-delay:.16s;background:var(--surface);width:max-content;height:30px;color:var(--ink);letter-spacing:-.02em;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:2px 12px 4px;font-family:TWK Lausanne,Arial,sans-serif;font-size:21px;font-weight:400;line-height:1.2;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.js .career .action-link,.js .faq .action-link,.js .footer-cta .action-link{clip-path:inset(100% 0 0);transform-origin:100%;transform:translateY(calc(100% + .8em))skewY(2.5deg)}.js .career.is-visible .action-link,.js .faq.is-visible .action-link,.js .footer-heading.is-ready+.action-link{animation-name:about-text-reveal,expertise-item-clip-reveal;animation-duration:1.6s,2.2s;animation-timing-function:cubic-bezier(.22,1,.36,1),linear;animation-delay:var(--action-reveal-delay);animation-fill-mode:both,both}.action-link-fill{z-index:0;aspect-ratio:1;background:var(--ink);border-radius:50%;width:calc(100% + 60px);transition:top .56s cubic-bezier(.22,1,.36,1),transform .56s cubic-bezier(.22,1,.36,1);position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.action-link-labels{z-index:1;flex-direction:column;height:1.2em;display:flex;position:relative;overflow:hidden}.action-link-label{white-space:nowrap;flex:0 0 1.2em;min-height:1.2em;transition:transform .42s cubic-bezier(.22,1,.36,1);display:block}.action-link-label--hover{color:var(--paper)}.action-link--large{--action-reveal-delay:.24s;height:51px;padding:8px 24px 12px;font-size:34px;font-weight:800;line-height:1}.action-link--large .action-link-labels{height:1em}.action-link--large .action-link-label{flex-basis:1em;min-height:1em}@media (width>=768px){.action-link--large{border-radius:12px}}@media (width>=768px) and (hover:hover) and (pointer:fine){.action-link.is-hover-ready:hover .action-link-fill{top:50%;transform:translate(-50%,-50%)}.action-link.is-hover-ready:hover .action-link-label{transform:translateY(-100%)}}.career-cv{flex:none}.career-cv--header{margin-bottom:0}.section-heading-row>.career-cv{margin-bottom:0;text-decoration:none}.career-cv--mobile{display:none}.career-list{flex-direction:column;gap:60px;display:flex}.career-list article{flex-direction:column;gap:0;display:flex}.career-list h3,.career-list h4,.career-list p{margin:0}.career-brand-mask{margin-bottom:4px;overflow:hidden}.career-brand{color:inherit;align-items:center;gap:6px;margin-left:2px;display:inline-flex}.career-brand img{width:calc(1em - 2px);height:calc(1em - 2px);filter:var(--icon-filter);flex:none;transform:translateY(1px)}.career-position{flex-direction:column;max-width:50vw;margin-bottom:20px;display:flex}.js .career-brand{transform-origin:100%;transform:translateY(calc(100% + .35em))skewY(2.5deg)}.js .career.is-visible .career-brand{animation:.9s cubic-bezier(.22,1,.36,1) both career-line-reveal;animation-delay:var(--career-brand-delay,.16s)}.js .career.is-animation-complete .career-brand{animation:none;transform:none}.career-list p{width:60%}@media (width<=1199px) and (width>=768px){.career{margin-top:var(--expertise-career-gap);gap:40px}.career .section-heading-row{min-height:68.8px}.action-link:not(.action-link--large){font-size:18px}.career-list{gap:40px}.career-list article{gap:0;width:80%}.career-brand-mask{margin-bottom:4px}.career-position{max-width:80vw;margin-bottom:20px}.career-list p{width:100%}}.stack{margin-top:var(--section-gap);padding:0}.stack .section-title{margin-bottom:calc(60px - .12em);padding-bottom:.12em;overflow:hidden}.stack-title-text{display:block}.js .stack-title-text{transform-origin:100%;transform:translateY(calc(100% + .8em))skewY(3.5deg)}.js .stack.is-visible .stack-title-text{animation:1.6s cubic-bezier(.22,1,.36,1) both section-title-reveal}.js .stack.is-animation-complete .stack-title-text{animation:none;transform:none}.stack-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stack-item-mask{border-radius:12px;overflow:hidden}.js .stack-item-mask>article{transform-origin:100%;clip-path:inset(100% 0 0);transform:translateY(calc(100% + .8em))skewY(2.5deg)}.js .stack.is-visible .stack-item-mask>article{animation-name:about-text-reveal,expertise-item-clip-reveal;animation-duration:1.6s,2.2s;animation-timing-function:cubic-bezier(.22,1,.36,1),linear;animation-delay:var(--stack-reveal-delay,.16s);animation-fill-mode:both,both}.js .stack.is-animation-complete .stack-item-mask>article{clip-path:none;animation:none;transform:none}.stack-grid article{background:var(--surface);border-radius:12px;align-items:center;gap:16px;min-width:0;height:100%;min-height:110px;padding:20px 16px 20px 24px;transition:background-color .22s;display:flex;overflow:hidden}.tool-icon{flex:0 0 62px;width:62px;height:62px;overflow:visible}.tool-icon--theme-invert{filter:var(--icon-filter)}.stack-copy{flex:auto;min-width:0;max-height:38px;transition:max-height .3s cubic-bezier(.22,1,.36,1);overflow:hidden;transform:translateY(-2px)}.stack-grid h3,.stack-grid p{text-overflow:ellipsis;white-space:nowrap;width:100%;margin:0;overflow:hidden}.stack-grid p{color:var(--ink);margin-top:2px}.stack-grid h3{line-height:1.1}@media (width>=768px) and (hover:hover) and (pointer:fine){.stack-grid article:hover{background:var(--acid);color:var(--ink)}.stack-grid article:hover p{color:var(--ink)}.stack-grid article:hover .stack-copy{max-height:72px}}@media (width<=1199px) and (width>=768px){.stack{margin-top:var(--section-gap)}.stack .section-title{margin-bottom:calc(40px - .12em)}.stack-grid{gap:10px}.stack-grid article{gap:6px;min-height:94px;padding:16px}.tool-icon{flex-basis:50px;width:50px;height:50px}.stack-copy{max-height:31px}}@media (width<=1199px) and (width>=768px) and (hover:hover) and (pointer:fine){.stack-grid article:hover .stack-copy{max-height:62px}}.faq{margin-top:var(--section-gap);flex-direction:column;gap:60px;padding:0;display:flex}.faq .section-heading-row{gap:24px;min-height:80px}.faq .section-title{flex:1;margin:0;padding-bottom:.12em;overflow:hidden}.faq-title-text{display:block}.faq .expertise-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:-.12em;padding-bottom:.12em;display:-webkit-box;overflow:hidden}.expertise-list,.faq-list{overflow-anchor:none;align-content:start}.expertise .expertise-item,.expertise .expertise-item.is-open,.faq .faq-item,.faq .faq-item.is-open{height:auto}.expertise .expertise-content,.faq .expertise-content{grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .18s,transform .18s}.expertise .expertise-item.is-open .expertise-content,.faq .faq-item.is-open .expertise-content{grid-template-rows:1fr}.expertise-content-inner,.faq-content-inner{min-height:0;overflow:hidden}.faq .expertise-content p{width:60%;padding-bottom:22px}@media (width>=1200px){.expertise .expertise-content p,.faq .expertise-content p{padding-bottom:24px}}.faq-contact{flex:none;align-self:flex-end;margin-bottom:0;text-decoration:none}.section-heading-row>.faq-contact{text-decoration:none}.faq-contact--mobile{display:none}.faq-list-reserve{min-width:0}@media (width<=1199px){.faq{margin-top:var(--section-gap);gap:40px}.faq .section-heading-row{min-height:68.8px}}.footer{height:100svh;max-height:100svh;margin-top:var(--expertise-career-gap);background:var(--paper);color:var(--ink);grid-template-rows:minmax(0,1fr) auto;padding:0 60px 20px;display:grid;overflow:hidden}.footer-cta{min-height:0;width:min(100%, var(--content));flex-direction:column;grid-area:1/1/-1/2;justify-content:center;align-items:center;gap:60px;margin:0 auto;display:flex;transform:translateY(-40px)}.footer-heading{text-align:center;flex-direction:column;align-items:center;display:flex}.footer-heading p{white-space:nowrap;margin:0}.footer-heading .footer-title-line-mask{margin:0 -.06em -.18em;padding:0 .06em .18em;overflow:hidden}.footer-title-character{white-space:pre;transform:translateY(calc(100% + .22em))skewY(6deg)}.footer-heading .footer-title-line-mask+.footer-title-line-mask{margin-top:-.035em}.round-link{margin-top:0}.footer-links{z-index:1;width:100%;color:var(--ink);flex-direction:column;grid-area:2/1;align-items:center;gap:20px;margin-inline:auto;display:flex}.footer-links div{gap:40px;display:flex}.footer-links>span{color:var(--muted);transform:translateY(-12px)}.footer-meta-mask{margin-bottom:-.15em;padding-bottom:.15em;display:block;overflow:hidden}.footer-meta-text{white-space:nowrap;display:inline-block}.footer-meta-text--link{display:inline-block}.footer-link-swap{flex-direction:column;height:1.4em;display:flex;overflow:hidden}.footer-link-face{min-height:1.4em;color:var(--ink);flex:0 0 1.4em;align-items:center;gap:4px;transition:transform .45s cubic-bezier(.22,1,.36,1);display:inline-flex}.footer-link-face--hover{color:var(--muted)}.footer-link-face--hover .footer-link-icon{opacity:.45}.footer-link-icon{filter:var(--icon-filter);display:none}@media (width>=768px){.footer-links{flex-direction:row-reverse;justify-content:space-between;align-items:baseline;gap:40px}.footer-links div{align-items:baseline}.footer-links>span{transform:none}.footer-links a{letter-spacing:-.02em;font-size:21px;font-weight:400;line-height:1.2}.footer-link-swap{height:1.2em}.footer-link-face{flex-basis:1.2em;min-height:1.2em}}@media (hover:hover) and (pointer:fine){.footer-links a:hover .footer-link-face{transform:translateY(-100%)}}.js .footer-meta-text{transform-origin:100%;transform:translateY(calc(100% + .25em))skewY(6deg)}.js .footer-meta-text--link{transform:translateY(calc(130% + .25em))skewY(6deg)}.js .footer-meta-text--copyright{transform:translateY(calc(225% + .25em))skewY(6deg)}.js .footer.is-meta-ready .footer-meta-text{animation:1.2s cubic-bezier(.22,1,.36,1) both footer-meta-reveal;animation-delay:calc(var(--footer-meta-index) * 90ms)}@keyframes footer-meta-reveal{to{transform:translateY(0)skewY(0)}}.case-hero{width:min(100% - 48px,1040px);padding-top:260px;padding-bottom:48px}.case-hero h1{letter-spacing:-.055em;margin:0 0 34px;font-family:TWK Lausanne,Arial,sans-serif;font-size:clamp(76px,7.65vw,110px);font-weight:600;line-height:.9}.case-hero dl{grid-template-columns:repeat(3,1fr);max-width:624px;margin:0;display:grid}.case-hero dt{margin-bottom:3px;font-size:24px;font-weight:600}.case-hero dt h2{font:inherit;letter-spacing:inherit;line-height:inherit;margin:0}.case-hero dd{margin:0;font-size:20px}.case-content{width:min(100% - 48px,1040px)}.case-section{margin:0;padding:0;display:block}.case-section--intro{margin-bottom:0}.case-copy-block+.case-copy-block{margin-top:44px}.case-copy-block+.case-media-block{margin-top:64px}.case-media-block+.case-media-block{margin-top:16px}.case-media-block+.case-copy-block,.case-content>.case-quote,.case-content>.case-metrics,.case-content>.case-video,.case-content>.case-quote+*,.case-content>.case-metrics+*,.case-content>.case-video+*{margin-top:72px}.case-section h2{letter-spacing:-.035em;max-width:624px;margin:0 0 24px;font-family:TWK Lausanne,Arial,sans-serif;font-size:clamp(32px,3vw,40px);font-weight:600;line-height:1}.case-section__copy{max-width:624px}.case-section__copy p{letter-spacing:-.02em;margin:0;font-size:20px;line-height:1.38}.case-section__copy ul{margin:24px 0 28px;padding-left:24px}.case-section__copy li{letter-spacing:-.02em;font-size:20px;line-height:1.38}.case-media{gap:var(--case-media-gap);grid-template-columns:1fr;margin-top:0;display:grid}.case-media img{width:100%}.case-media__button{border-radius:var(--case-media-radius);background:var(--surface);cursor:zoom-in;border:0;width:100%;height:100%;padding:0;display:block;overflow:hidden}.case-media__button img{object-fit:cover;width:100%;height:100%}.case-media--grid{grid-template-columns:repeat(2,minmax(0,1fr))}.case-quote{border-left:3px solid var(--ink);max-width:820px;margin-inline:0;padding-left:28px}.case-quote p{letter-spacing:-.04em;margin:0;font-size:clamp(32px,4vw,52px);line-height:1.05}.case-quote footer{color:var(--muted);margin-top:20px;font-size:18px}.case-metrics{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.case-metrics div{border-bottom:1px solid var(--line);flex-direction:column;justify-content:space-between;min-height:180px;padding:24px 24px 24px 0;display:flex}.case-metrics strong{letter-spacing:-.06em;font-size:clamp(48px,6vw,80px);font-weight:600;line-height:1}.case-metrics span{max-width:220px;font-size:18px}.case-video{margin-inline:0}.case-video video{background:var(--surface);width:100%;display:block}.case-video figcaption{color:var(--muted);margin-top:10px;font-size:16px}.more-projects{width:min(100% - 48px,1040px);padding-block:80px 160px}.more-projects__heading{justify-content:space-between;align-items:flex-end;margin-bottom:52px;display:flex}.more-projects h2{margin:0}.more-projects__heading .more-projects__action{margin-bottom:6px}.more-projects__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.more-projects .project-card__image{border-radius:var(--compact-card-radius)}.more-projects .project-card__image img{will-change:transform;transition:transform .5s cubic-bezier(.22,1,.36,1)}@media (hover:hover) and (pointer:fine){.more-projects .project-card:hover .project-card__image img{transform:scale(1.035)}}.case-lightbox{--lightbox-dissolve-duration:.3s;--lightbox-padding:24px;--lightbox-pan-overflow:48px;--lightbox-trackpad-sensitivity:1.8;width:100vw;max-width:none;height:100dvh;max-height:none;padding:var(--lightbox-padding);color:#fff;cursor:zoom-out;opacity:0;transition:opacity var(--lightbox-dissolve-duration) ease;background:#000000d1;border:0;margin:0;overflow:hidden}.case-lightbox[open]{place-items:center;display:grid}.case-lightbox.is-visible{opacity:1}.case-lightbox::backdrop{background:0 0}.case-lightbox__image{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - var(--lightbox-padding) * 2);object-fit:contain;cursor:zoom-in;touch-action:none;user-select:none;-webkit-user-drag:none;will-change:transform;transition:transform .28s cubic-bezier(.22,1,.36,1)}.case-lightbox__image.is-zoomed,.case-lightbox__image.is-dragging{cursor:none!important}.case-lightbox__image.is-dragging,.case-lightbox__image.is-trackpad-panning{transition:none}.case-lightbox__close{z-index:1;cursor:pointer;mix-blend-mode:difference;background:0 0;border:0;width:40px;height:40px;padding:0;position:fixed;top:20px;right:24px}.case-lightbox__close img{filter:invert();width:24px;height:24px;margin:auto;display:block}body.has-lightbox{overflow:hidden}.back-to-top{z-index:30;opacity:0;pointer-events:none;transition:opacity .22s,transform .5s cubic-bezier(.22,1,.36,1);position:fixed;bottom:40px;left:60px;transform:translateY(calc(100% + 40px))}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top.is-visible.is-pressed{animation:.15s cubic-bezier(.4,0,.2,1) back-to-top-press}@keyframes back-to-top-press{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(0)scale(.95)}}@media (width>=768px) and (width<=1199px){.back-to-top{bottom:24px;left:24px}.site-header{padding-inline:24px}.site-header nav{gap:24px}.hero-shape-position{width:800px;height:800px;top:-199px}.portrait-stage{--portrait-size:280px}.round-link{font-size:28px}}@media (width<=767px){:root{--section-gap:120px;--expertise-career-gap:60px;--case-media-gap:10px;--case-media-radius:10px}button,a.action-link,a:not(.action-link){-webkit-tap-highlight-color:transparent}button:active,a.action-link:active{background-color:var(--surface-raised)}.expertise-trigger:active{background-color:#0000}.mobile-menu-toggle:active{color:var(--muted);background-color:#0000}a:not(.action-link):active{color:var(--muted)}.back-to-top{bottom:16px;left:10px}.type-h0{font-size:92px}.type-h1{font-size:68px;line-height:.9}.type-h2{font-size:38px}.type-h3{font-size:24px}.hero-shape-position{width:709px;height:709px;top:-131px}.section-shell{width:min(calc(100% - 20px), var(--content))}.mobile-header-overscroll-bg{z-index:19;background:var(--paper);pointer-events:none;width:100%;height:100svh;transition:transform .5s cubic-bezier(.76,0,.24,1);display:block;position:fixed;top:calc(45px - 100svh);left:0}.js .mobile-header-overscroll-bg{transform:translateY(-45px)}.js body:has(.site-header-mask.is-ready) .mobile-header-overscroll-bg{transform:translateY(0)}.js body:has(.site-header.is-hidden) .mobile-header-overscroll-bg{transform:translateY(-45px)}.site-header-mask{height:45px;color:var(--ink);mix-blend-mode:normal;transition:height .45s cubic-bezier(.22,1,.36,1)}.site-header-mask.is-menu-open{height:100svh}.site-header-mask.is-menu-open,.site-header-mask.is-menu-closing{z-index:40;pointer-events:auto}html.is-mobile-menu-open,body.is-mobile-menu-open{overflow:hidden}.site-header{background:var(--paper);min-height:45px;padding:10px;font-size:clamp(15px,5vw,21px)}.site-header-mask.is-menu-open .site-header,.site-header-mask.is-menu-closing .site-header{align-items:flex-start;height:100%}.site-header nav{opacity:0;visibility:hidden;flex-direction:column;align-items:flex-start;gap:16px;transition:opacity .26s 40ms,transform .45s cubic-bezier(.22,1,.36,1) 40ms,visibility 0s linear .45s;display:flex;position:absolute;top:91px;left:10px;transform:translateY(-10px)}.site-header-mask.is-menu-open nav{opacity:1;visibility:visible;transition-delay:90ms,90ms,0s;transform:translateY(0)}.site-header nav .header-link{letter-spacing:-.05em;height:42px;font-size:38px;font-weight:400;line-height:1.1}.site-header nav .header-link-track>span{flex-basis:42px;transition:none}.site-header nav .header-link:hover .header-link-track>span{transform:none}.wordmark .header-link-track>span,.wordmark:hover .header-link-track>span{transition:none;transform:none}.wordmark{position:relative}.wordmark:before{content:"";position:absolute;inset:-10px}.mobile-menu-toggle{height:25px;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;display:block;transform:translateY(-.07em)}.portrait-stage{--portrait-size:240px}.statement{min-height:0;padding-top:var(--expertise-career-gap);gap:40px;padding-bottom:72px}.type-t0{font-size:38px}.type-t1{font-size:16px}.type-t2{font-size:14px}.action-link:not(.action-link--large){font-size:18px}.action-link:hover .action-link-fill,.action-link:active .action-link-fill{transition:none;top:calc(100% + 4px);transform:translate(-50%)}.action-link:hover .action-link-label,.action-link:active .action-link-label{transition:none;transform:none}.cases{width:min(100% - 20px,880px);margin-top:var(--section-gap);padding:0}.about{margin-top:var(--section-gap)}.expertise{min-height:0;margin-top:var(--section-gap);padding:0}.expertise .section-title,.about .section-title{margin-bottom:calc(40px - .12em)}.project-grid{grid-template-columns:1fr;gap:0}.project-row-trigger,.project-row-mask,.project-row{display:contents}.project-card{padding-bottom:24px}.project-card__image{aspect-ratio:2/3}.project-card h3{margin:12px 0 0;display:block}.expertise-item-mask{margin:4px 0}.expertise-item{height:var(--expertise-closed-height,54px);min-height:0}.expertise-item.is-open{height:var(--expertise-open-height,117px)}.expertise-trigger{grid-template-columns:14px 1fr;gap:16px;min-height:0;padding:14px 16px 12px}.expertise-trigger>span:first-child{padding-top:0;font-size:14px}.faq .expertise-trigger{position:relative}.faq .expertise-trigger>span:first-child{padding-top:0;position:absolute;top:18px;left:16px}.faq .expertise-trigger .expertise-title{grid-column:2}.expertise-content p{width:100%;margin-right:0;padding-right:12px}.faq .expertise-content p,.expertise .expertise-content p{width:100%}.expertise-content{margin-top:-3px;padding-left:46px}.expertise-content p,.expertise-item.is-open .expertise-content p{padding-bottom:18px}.career{width:min(100% - 20px,1040px);margin-top:var(--expertise-career-gap);gap:40px;padding:0}.career .section-heading-row{min-height:61.2px}.career-cv--header{display:none}.career-cv--mobile{align-self:flex-start;margin-top:-10px;font-size:18px;display:inline-flex}.career-list{gap:40px}.career-list article{gap:0;width:100%}.career-brand-mask{margin-bottom:4px}.career-position{max-width:100%;margin-bottom:20px}.career-list p{width:100%}.stack{margin-top:var(--section-gap);padding:0}.stack .section-title{margin-bottom:calc(40px - .12em)}.stack-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stack-grid article{justify-content:center;gap:0;min-height:110px;padding:16px}.tool-icon{flex-basis:62px;width:62px;height:62px}.stack-copy{display:none}.faq{margin-top:var(--section-gap)}.faq .section-heading-row{min-height:61.2px}.faq-contact--header{display:none}.faq-contact--mobile{align-self:flex-start;display:inline-flex}.faq-list-reserve{flex-direction:column;gap:24px;display:flex}.footer{padding:0 10px 16px}.action-link--large{height:auto;padding:6px 16px 10px;font-size:24px}.footer-cta{align-items:flex-start;min-height:0}.footer-heading{text-align:left;align-items:flex-start}.footer-links{align-items:flex-start;gap:20px}.footer-links div{gap:20px}.footer-link-icon{display:none}.footer-link-face,.footer-links a:hover .footer-link-face{transition:none;transform:none}.case-hero{width:min(100% - 20px,1040px);padding-top:88px;padding-bottom:34px}.case-hero h1{max-width:355px;margin-bottom:36px;font-size:clamp(58px,18vw,68px);line-height:.88}.case-hero dl{gap:10px}.case-hero dt,.case-hero dd{font-size:16px}.case-content{width:min(100% - 20px,1040px)}.case-section{margin:0;padding:0}.case-section--intro{margin-bottom:0}.case-copy-block+.case-copy-block{margin-top:28px}.case-copy-block+.case-media-block{margin-top:32px}.case-media-block+.case-media-block{margin-top:10px}.case-media-block+.case-copy-block,.case-content>.case-quote,.case-content>.case-metrics,.case-content>.case-video,.case-content>.case-quote+*,.case-content>.case-metrics+*,.case-content>.case-video+*{margin-top:48px}.case-quote{padding-left:18px}.case-quote p{font-size:30px}.case-metrics{grid-template-columns:1fr 1fr}.case-metrics div{min-height:130px;padding:16px 12px 16px 0}.case-section h2{margin-bottom:20px;font-size:26px}.case-section__copy p,.case-section__copy li{font-size:16px;line-height:1.4}.case-section__copy ul{margin:18px 0 22px;padding-left:20px}.case-media{margin-top:0}.case-media--grid{grid-template-columns:1fr}.more-projects{flex-direction:column;width:min(100% - 20px,1040px);padding-block:72px 100px;display:flex}.more-projects__heading{display:contents}.more-projects__heading h2{order:1;margin-bottom:34px}.more-projects__heading .more-projects__action{order:3;margin-top:8px;margin-bottom:0;display:inline-block}.more-projects__grid{order:2;grid-template-columns:1fr;gap:0}.more-projects .project-card__image{aspect-ratio:3/2}.case-lightbox{--lightbox-padding:10px}.case-lightbox__close{top:8px;right:4px}}@media (width>=320px) and (width<=375px){.type-h0{font-size:24.5333vw}.portrait-stage{--portrait-size:64vw}}
