@font-face{font-family:Tomato Grotesk;src:url(/fonts/TomatoGrotesk/TomatoGrotesk-Light.ttf) format("truetype");font-weight:300;font-display:swap}@font-face{font-family:Tomato Grotesk;src:url(/fonts/TomatoGrotesk/TomatoGrotesk-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Tomato Grotesk;src:url(/fonts/TomatoGrotesk/TomatoGrotesk-Medium.ttf) format("truetype");font-weight:500;font-display:swap}:root{--bg: #e1dfdd;--bg-2: #d6d3cf;--ink: #212121;--muted: #5e5c59;--line: #b9b6b1;--on-dark: #e1dfdd;--on-dark-muted: #9c9993;--line-dark: #3d3c3a;--live: #2e8f57;--live-bright: #4cc27e;--font: "Tomato Grotesk", "Helvetica Neue", Arial, sans-serif;--mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--gutter: clamp(20px, 3.33vw, 48px);--max: 1760px;--inline: max(var(--gutter), calc((100vw - var(--max)) / 2));--section-y: clamp(72px, 8.4vw, 120px);--ease: cubic-bezier(.22, 1, .36, 1)}html{background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;overflow-x:hidden;cursor:default}a,button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}::-moz-selection{background:var(--ink);color:var(--bg)}::selection{background:var(--ink);color:var(--bg)}.mono{font-family:var(--mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;line-height:1.4}.muted{color:var(--muted)}.wrap{padding-inline:var(--inline)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rule{display:block;height:1px;width:100%;background:var(--line);transform-origin:left center}.is-dark .rule{background:var(--line-dark)}.head-meta{display:flex;justify-content:space-between;gap:16px;padding-bottom:18px}.head-meta+.rule{margin-bottom:0}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:15px;font-weight:500;transition:transform .4s var(--ease),background .3s;will-change:transform}.btn svg{transition:transform .4s var(--ease)}.btn:hover svg{transform:translate(2px,2px)}.link-underline{position:relative;display:inline-flex;align-items:center;gap:6px;padding-bottom:3px}.link-underline:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transition:transform .5s var(--ease)}.link-underline:hover:after{transform:scaleX(0);transform-origin:left}.link-underline svg{transition:transform .4s var(--ease)}.link-underline:hover svg{transform:translate(2px,-2px)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--live);position:relative;flex:none}.live-dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:pulse 2.2s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(3);opacity:0}}.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px var(--inline);transition:transform .6s var(--ease),background .4s,color .4s}.nav.is-scrolled{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.nav.is-hidden{transform:translateY(-100%)}.nav.is-on-dark{color:var(--on-dark)}.nav.is-on-dark.is-scrolled{background:color-mix(in srgb,var(--ink) 82%,transparent)}.nav.is-on-dark .btn{background:var(--on-dark);color:var(--ink)}.nav__brand{font-size:20px;font-weight:500;letter-spacing:-.01em}.nav__links{display:flex;gap:36px;font-size:15px}.nav__links a{position:relative}.nav__links a:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.nav__links a:hover:after{transform:scaleX(1);transform-origin:left}.nav__right{display:flex;align-items:center;gap:28px}.nav__availability{display:flex;align-items:center;gap:8px}.nav .btn{padding:11px 18px;font-size:14px}.nav__menu{display:none;align-items:center;gap:8px;background:none;border:0;color:inherit;cursor:pointer}.menu-overlay{position:fixed;inset:0;z-index:49;background:var(--ink);color:var(--on-dark);padding:96px var(--gutter) 32px;display:flex;flex-direction:column;justify-content:space-between;-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transition:-webkit-clip-path .7s var(--ease);transition:clip-path .7s var(--ease);transition:clip-path .7s var(--ease),-webkit-clip-path .7s var(--ease);pointer-events:none}.menu-overlay.is-open{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);pointer-events:auto}.menu-overlay nav{display:flex;flex-direction:column;gap:4px}.menu-overlay nav a{font-size:56px;letter-spacing:-.04em;line-height:1.05}body.menu-open .nav{color:var(--on-dark);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.hero{min-height:min(100svh,1120px);display:flex;flex-direction:column;padding-top:96px;padding-bottom:40px}.hero__middle{flex:1;display:grid;grid-template-columns:auto minmax(0,520px) 1fr 220px;gap:40px;align-items:end;padding:clamp(40px,5vw,72px) 0 clamp(48px,5vw,72px)}.hero__portrait{width:clamp(160px,16vw,232px);aspect-ratio:4 / 5;overflow:hidden}.hero__portrait img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 30%;object-position:50% 30%}.hero__intro p{font-size:clamp(19px,1.67vw,24px);line-height:1.3;letter-spacing:-.01em;margin:0 0 28px}.hero__ctas{display:flex;align-items:center;gap:24px;flex-wrap:wrap;font-size:15px}.hero__currently{display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.35}.hero__headline{margin:0;font-weight:400}.hero__headline .line{display:block;-webkit-clip-path:inset(0 -100vw);clip-path:inset(0 -100vw);padding-bottom:.06em}.hero__headline .line-inner{display:block;will-change:transform}.hero__h1{font-size:clamp(60px,14.4vw,270px);letter-spacing:-.045em;line-height:.9;white-space:nowrap}.hero__row2{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.hero__h2{font-size:clamp(38px,8.5vw,160px);letter-spacing:-.04em;line-height:.95;white-space:nowrap}html.is-loading [data-intro]{opacity:0}.section{padding-block:var(--section-y)}.section-title{margin:0;font-weight:400;letter-spacing:-.04em;line-height:.95}.split-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}.split-word>span{display:inline-block;will-change:transform}.work__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin:28px 0 clamp(56px,6.7vw,96px)}.work__head h2{font-size:clamp(48px,6.7vw,96px)}.work__head p{max-width:400px;font-size:18px;line-height:1.4;margin:0}.media{position:relative;overflow:hidden;border-radius:6px;background:var(--bg-2);display:block}.media img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transform:scale(1.06);will-change:transform}.media--wide,.media--card,.media--split{aspect-ratio:16 / 10}.project{display:block}.project+.project,.projects-duo,.project--split{margin-top:clamp(64px,6.7vw,96px)}.caption{padding-top:24px;display:flex;flex-direction:column;gap:20px}.caption__title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.caption__name{display:flex;align-items:flex-end;gap:16px}.caption__name h3{margin:0;font-weight:400;font-size:clamp(32px,2.8vw,40px);letter-spacing:-.035em;line-height:1}.project--wide .caption__name h3{font-size:clamp(36px,3.9vw,56px)}.caption__body{display:flex;flex-direction:column;gap:20px}.project--wide .caption__body{flex-direction:row;justify-content:space-between;gap:32px}.caption__desc{margin:0;font-size:17px;line-height:1.45;color:var(--muted);max-width:560px}.caption__meta{display:flex;gap:32px;font-size:14px}.caption__meta div{display:flex;flex-direction:column;gap:6px}.caption__meta .mono{font-size:11px;color:var(--muted)}.projects-duo{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}.projects-duo .project:nth-child(2){margin-top:120px}.projects-duo .project+.project{margin-top:120px}.project--split{display:grid;grid-template-columns:460px 1fr;gap:48px;align-items:center}.project--split.is-reversed{grid-template-columns:1fr 460px}.project--split.is-reversed .media{order:-1}.project--split .caption{padding-top:0}.ledger{margin-top:clamp(96px,10vw,140px)}.ledger__head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:24px}.ledger__head h3{margin:0;font-weight:400;font-size:40px;letter-spacing:-.035em}.ledger__row{position:relative;display:grid;grid-template-columns:40px 340px 1fr 180px 170px 48px 18px;gap:32px;align-items:center;padding:26px 0;border-top:1px solid var(--line);isolation:isolate}.ledger__row:last-child{border-bottom:1px solid var(--line)}.ledger__row:before{content:"";position:absolute;inset:0 calc(var(--gutter) * -1);background:var(--ink);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}.ledger__row:hover:before{transform:scaleY(1);transform-origin:top}.ledger__row{transition:color .35s}.ledger__row:hover{color:var(--on-dark)}.ledger__row:hover .muted{color:var(--on-dark-muted)}.ledger__row svg{transition:transform .4s var(--ease)}.ledger__row:hover svg{transform:rotate(45deg)}.ledger__name{font-size:28px;letter-spacing:-.03em}.ledger__desc{font-size:15px;line-height:1.45;margin:0}.ledger__type{font-size:14px}.is-dark{background:var(--ink);color:var(--on-dark)}.is-dark .muted,.is-dark .mono.muted{color:var(--on-dark-muted)}.services__statement{display:grid;grid-template-columns:220px 1fr;gap:48px;margin:clamp(64px,6.7vw,96px) 0}.services__statement p{grid-column:2;margin:0;font-size:clamp(32px,4.45vw,64px);letter-spacing:-.035em;line-height:1.04}.scrub-word{opacity:.18}.services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.capability{display:flex;flex-direction:column;gap:20px;padding-top:24px;position:relative}.capability>.rule{position:absolute;top:0;left:0;background:var(--on-dark)}.capability h3{margin:0;font-weight:400;font-size:clamp(24px,2.1vw,30px);letter-spacing:-.03em;line-height:1.1}.capability p{margin:0;font-size:16px;line-height:1.5}.experience__body{display:grid;grid-template-columns:420px 1fr;gap:48px;margin-top:72px}.experience__aside h2{font-size:clamp(44px,5vw,72px);margin-bottom:24px}.experience__aside p{font-size:17px;margin:0}.experience__sticky{position:sticky;top:110px}.role{display:grid;grid-template-columns:170px 1fr 140px;gap:32px;padding:28px 0;border-top:1px solid var(--line)}.role__title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.role__title h3{margin:0;font-weight:400;font-size:28px;letter-spacing:-.03em}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--ink);border-radius:999px;font-size:10px}.pill .live-dot{width:6px;height:6px}.role p{margin:0;font-size:16px;line-height:1.45}.role__company{text-align:right}.education{display:grid;grid-template-columns:170px 1fr;gap:32px;padding-top:28px;border-top:1px solid var(--line)}.education__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.education__grid div{display:flex;flex-direction:column;gap:6px}.education__grid .mono{font-size:11px}.about{background:var(--bg-2)}.about__body{display:grid;grid-template-columns:500px 1fr;gap:80px;margin-top:72px}.about__photo{aspect-ratio:1 / 1;overflow:hidden}.about__photo img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 30%;object-position:50% 30%;transform:scale(1.05)}.about__caption{display:flex;justify-content:space-between;margin-top:14px}.about__text{display:flex;flex-direction:column;gap:48px}.about__quote{margin:0;font-size:clamp(32px,3.6vw,52px);letter-spacing:-.04em;line-height:1.05;font-weight:400}.about__bio{display:grid;grid-template-columns:1fr 1fr;gap:32px}.about__bio p{margin:0;font-size:17px;line-height:1.55}.toolkit{position:relative;padding-top:24px}.toolkit>.rule{position:absolute;top:0}.toolkit__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:20px}.toolkit__grid ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.toolkit__grid .mono{font-size:11px}.contact{padding-top:var(--section-y);padding-bottom:40px}.contact__main{padding:clamp(80px,8.4vw,120px) 0 clamp(96px,9.7vw,140px)}.contact__kicker{font-size:clamp(32px,4.45vw,64px);letter-spacing:-.035em;color:var(--on-dark-muted);margin:0 0 40px;font-weight:400}.contact__email{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:clamp(28px,2.8vw,40px);position:relative}.contact__email .email{font-size:clamp(36px,7.8vw,140px);letter-spacing:-.045em;line-height:1.1}.contact__email svg{width:clamp(36px,6.7vw,96px);height:auto;flex:none;transition:transform .6s var(--ease)}.contact__email:hover svg{transform:rotate(45deg)}.contact__email .rule{position:absolute;left:0;bottom:0;height:1px;background:var(--line-dark)}.contact__email-fill{position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--on-dark);transform:scaleX(0);transform-origin:right;transition:transform .9s var(--ease)}.contact__email:hover .contact__email-fill{transform:scaleX(1);transform-origin:left}.contact__sub{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;margin-top:40px}.contact__sub p{max-width:480px;font-size:18px;margin:0}.socials{display:flex;gap:40px;font-size:18px}.footer{display:flex;justify-content:space-between;gap:16px;padding-top:24px;position:relative}.footer>.rule{position:absolute;top:0;left:0}.footer button{background:none;border:0;color:inherit;cursor:pointer;padding:0}.cursor{position:fixed;top:0;left:0;z-index:60;pointer-events:none;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;transform:scale(0)}@media (hover: none){.cursor{display:none}}@media (min-width: 1800px){.mono{font-size:13px}.hero__middle{grid-template-columns:auto minmax(0,620px) 1fr 260px}.hero__portrait{width:260px}.hero__intro p{font-size:27px}.hero__currently,.nav__links{font-size:16px}.work__head p,.contact__sub p{max-width:460px;font-size:20px}.caption__desc,.about__bio p,.experience__aside p{font-size:19px}.caption__desc{max-width:640px}.caption__meta,.ledger__type{font-size:15px}.capability p,.role p,.ledger__desc{font-size:17px}.experience__body{grid-template-columns:500px 1fr}.about__body{grid-template-columns:600px 1fr}.project--split{grid-template-columns:540px 1fr}.project--split.is-reversed{grid-template-columns:1fr 540px}}@media (max-width: 1180px){.ledger__row{grid-template-columns:32px 240px 1fr 150px 18px}.ledger__row .ledger__stack,.ledger__row .ledger__year{display:none}.experience__body,.about__body{grid-template-columns:340px 1fr;gap:48px}.hero__middle{grid-template-columns:auto minmax(0,480px) 1fr}.hero__currently{display:none}}@media (max-width: 900px){.nav__links,.nav__availability,.nav .btn{display:none}.nav__menu{display:inline-flex}.hero{padding-top:80px}.hero__middle{grid-template-columns:1fr;order:3;padding:32px 0 0;gap:28px}.hero__headline{order:2;margin-top:28px}.hero__portrait{width:140px}.hero__row2 .mono{display:none}.hero__h1,.hero__h2{white-space:normal}.hero__h1{font-size:clamp(56px,17vw,120px)}.hero__h2{font-size:clamp(34px,10vw,72px)}.hero__intro .btn{width:100%;justify-content:space-between}.head-meta .hide-sm{display:none}.head-meta{font-size:11px;white-space:nowrap}.work__head{flex-direction:column;align-items:flex-start;gap:16px}.projects-duo,.project--split,.project--split.is-reversed{grid-template-columns:1fr;gap:0}.projects-duo .project:nth-child(2),.projects-duo .project+.project{margin-top:clamp(64px,6.7vw,96px)}.project--split .caption{padding-top:20px;order:2}.project--wide .caption__body{flex-direction:column}.caption__meta{gap:20px;flex-wrap:wrap}.ledger__row{grid-template-columns:1fr auto;gap:8px;padding:18px 0}.ledger__row .ledger__num,.ledger__row .ledger__desc,.ledger__row svg{display:none}.ledger__name{font-size:20px}.ledger__head h3{font-size:28px}.ledger__head .mono{display:none}.services__statement{grid-template-columns:1fr}.services__statement p{grid-column:1}.services__grid,.education__grid,.about__bio{grid-template-columns:1fr}.experience__body,.about__body{grid-template-columns:1fr;margin-top:40px}.experience__sticky{position:static}.role{grid-template-columns:1fr;gap:6px;padding:20px 0}.role__company{text-align:left;color:var(--muted)}.role__title h3{font-size:22px}.education{grid-template-columns:1fr;gap:16px}.toolkit__grid{grid-template-columns:1fr 1fr}.contact__sub{flex-direction:column}.socials{gap:24px;flex-wrap:wrap}.footer{flex-wrap:wrap}.footer .hide-sm{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.media img,.hero__portrait img,.about__photo img{transform:none}.scrub-word{opacity:1}}.lang-switch{display:flex;align-items:center;gap:2px}.lang-switch a{padding:4px 5px;opacity:.45;transition:opacity .3s}.lang-switch a:hover,.lang-switch a[aria-current=page]{opacity:1}.lang-switch a+a:before{content:"/";margin-right:7px;opacity:.45}.menu-overlay__footer{display:flex;justify-content:space-between;align-items:center;gap:16px}.btn--light{background:var(--on-dark);color:var(--ink)}.lang-prompt{position:fixed;right:var(--gutter);bottom:var(--gutter);z-index:70;width:min(380px,calc(100vw - 2 * var(--gutter)));padding:24px;border-radius:16px;background:var(--ink);color:var(--on-dark);box-shadow:0 30px 60px -20px #00000073;display:flex;flex-direction:column;gap:14px;opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .6s var(--ease),transform .8s var(--ease)}.lang-prompt.is-visible{opacity:1;transform:none;pointer-events:auto}.lang-prompt__label{color:var(--on-dark-muted);font-size:11px}.lang-prompt p{margin:0;font-size:24px;letter-spacing:-.03em;line-height:1.15}.lang-prompt__actions{display:flex;align-items:center;gap:20px;margin-top:6px}.lang-prompt__actions button{background:none;border:0;color:var(--on-dark-muted);font:inherit;font-size:15px;padding:0 0 3px}@media (max-width: 900px){.nav__right .lang-switch{display:none}}
