@font-face{font-family:'DM Sans';src:url('/dm-sans-regular.ca08ec1e3d1c.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'DM Sans';src:url('/dm-sans-semibold.dcdb654f802f.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}:root{color-scheme:light;--ink:#151515;--muted:#606060;--line:#171717}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding:30px 0 110px}body{margin:0;background:white;color:#080808;font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit}button{font:inherit;cursor:pointer;color:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #777;outline-offset:5px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,strong{font-weight:600}p+p{margin-top:18px}[hidden]{display:none!important}.paper{max-width:1280px;margin:auto}header{display:flex;align-items:center;gap:24px;justify-content:space-between;border-bottom:2px dotted var(--line);margin:0 48px;padding:28px 0}.wordmark{font-size:23px;font-weight:600;line-height:1.25;letter-spacing:-.07em;text-decoration:none;white-space:nowrap}.wordmark small{display:block;font-size:11px;font-weight:400;letter-spacing:.16em;margin-top:6px}nav{display:flex;gap:6px}nav a,.pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:13px 23px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:15px;background:transparent;line-height:1.3;transition:background .18s,color .18s,transform .18s}.pill:active{transform:scale(.98)}nav a{border:0;border-radius:0;font-size:16px;padding:10px 13px}nav a:hover,.pill:hover{background:#ececec}.dark{background:var(--ink);color:white;border-color:var(--ink)}.dark:hover{background:#353535}.menu{display:none}.nav-shell{min-width:0}.nav-shell .t-acc-panel-inner{overflow:visible}.hero{padding:56px 64px 64px}.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}.hero .eyebrow{font-size:13px;letter-spacing:.03em}.hero h1{font-size:clamp(48px,6.8vw,88px);line-height:1.02;letter-spacing:-.065em;margin:30px 0 0;text-align:center}.hero h1 span{color:#111}.hero-bottom{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:36px;align-items:center;margin-top:24px}.portrait{width:100%;height:400px;object-fit:cover;object-position:center 15%;display:block;border-radius:28px}.hero-bottom>p{font-size:21px;line-height:1.4}.hero-bottom>div p{font-size:14px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.hero-actions .pill{width:100%}.t-learn{display:inline-flex;align-items:center;gap:6px;min-height:44px;text-underline-offset:5px;font-size:15px}.hero-actions .t-learn{margin-top:2px}section:not(.hero){padding:58px 0;border-top:2px dotted var(--line);margin:0 48px}.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;margin-bottom:42px}h2{font-size:clamp(36px,4.1vw,52px);line-height:1.05;letter-spacing:-.04em}.section-heading>p{font-size:18px;max-width:380px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px dotted var(--line);border-bottom:2px dotted var(--line)}.stats>div{padding:28px;border-right:2px dotted var(--line)}.stats>div:last-child{border:0}.stats strong{display:block;font-size:50px;line-height:1.2;letter-spacing:-.05em}.stats span{display:block;margin-top:10px;font-size:14px;max-width:220px;color:#444}.about-copy{display:grid;grid-template-columns:1fr 1.5fr;gap:70px;margin-top:48px}h3{font-size:26px;line-height:1.25;letter-spacing:-.035em}.about-copy p{font-size:17px;color:#424242}.facts{display:flex;gap:10px 24px;flex-wrap:wrap;padding-top:30px;margin-top:32px;border-top:2px dotted var(--line);font-size:14px;color:#444}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project{border-top:2px dotted var(--line);padding:28px 0;margin:0 12px;align-self:start}.project .metric{font-size:clamp(30px,3.3vw,46px);font-weight:600;line-height:1.15;letter-spacing:-.055em;padding:36px 0 26px;margin:0;overflow-wrap:anywhere}.project>p:not(.metric):not(.eyebrow){color:var(--muted);margin:14px 0 22px}.project:is(summary,.t-acc-head){font-size:16px;padding:17px 0;border-top:2px dotted var(--line)}.case{padding-top:12px}.case h4{font-size:16px;margin:18px 0 8px}.case p{font-size:16px}.case .footnote{font-size:13px;color:var(--muted);margin-top:22px}.t-acc-head{width:100%;text-align:left;background:none;border:0;min-height:48px;display:flex;align-items:center;gap:12px}.t-acc-chevron{margin-left:auto;flex-shrink:0}.t-acc-chevron svg{width:16px;height:16px}.t-acc-panel-inner{min-height:0}.role{border-top:2px dotted var(--line)}.role:last-child{border-bottom:2px dotted var(--line)}.role:is(summary,.t-acc-head){display:grid;grid-template-columns:190px 1fr 60px;gap:26px;align-items:center;cursor:pointer;padding:28px 0;list-style:none}.role summary::-webkit-details-marker,.approach summary::-webkit-details-marker{display:none}.dates{font-size:15px;color:var(--muted)}.company{font-size:25px;font-weight:600;display:block;letter-spacing:-.03em;line-height:1.2}.role-title{display:block;font-size:15px;color:var(--muted);margin-top:7px}.expand{font-size:14px;text-decoration:underline;text-underline-offset:4px}.role-body{margin-left:216px;padding:0 0 30px;max-width:700px;font-size:17px}ul{margin:16px 0 0;padding-left:20px}li+li{margin-top:9px}.approach{border-top:2px dotted var(--line)}.approach:last-child{border-bottom:2px dotted var(--line)}.approach:is(summary,.t-acc-head){list-style:none;display:flex;align-items:center;gap:24px;padding:26px 0;cursor:pointer;min-height:86px}.approach h3{font-size:24px;flex:1}.index{font-size:15px;color:var(--muted)}.approach>p,.approach .t-acc-panel-inner>p{padding:0 0 28px 46px;font-size:17px;max-width:850px}footer{padding:64px;background:#111;color:#fff;border-radius:32px 32px 0 0;margin-top:28px}footer h2{font-size:clamp(60px,9vw,116px);margin:28px 0;letter-spacing:-.06em}.email{display:inline-flex;align-items:center;min-height:44px;font-size:clamp(14px,2.5vw,30px);text-decoration:none;max-width:100%;overflow-wrap:anywhere}.email:hover{text-decoration:underline}.contact-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}footer .pill{border-color:#777}footer .pill:hover{background:#333}.inverse{background:white!important;color:#111}.footer-bottom{border-top:2px dotted #aaa;margin-top:56px;padding-top:24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:13px;color:#bbb}.footer-bottom a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}.skip{position:absolute;left:20px;top:-100px;background:white;padding:12px;z-index:20}.skip:focus{top:10px}.mobile-actions{display:none}@media(max-width:1050px){header{margin-inline:32px;gap:12px}.hero{padding:44px 32px}section:not(.hero){margin-inline:32px}.header-cv{display:none}.hero-bottom{gap:24px}.role:is(summary,.t-acc-head){grid-template-columns:155px 1fr 50px;gap:20px}.role-body{margin-left:175px}.portrait{height:350px}.wordmark{font-size:21px}}@media(max-width:700px){header{margin:0 24px;padding:22px 0;flex-wrap:wrap;gap:0;align-items:center}.wordmark{font-size:21px;letter-spacing:-.055em}.menu{display:block;border:0;padding:10px 0;min-width:50px;font-size:17px;border-radius:0}.nav-shell{flex-basis:100%;min-width:100%}.nav-shell .t-acc-panel-inner{overflow:hidden}nav{flex-direction:column;gap:0;border-top:2px dotted var(--line);margin-top:18px}nav a{flex:none;justify-content:space-between;font-size:22px;font-weight:600;text-align:left;min-height:76px;border-bottom:2px dotted var(--line);padding:20px 0}nav a:last-child{border-bottom:0}.hero{padding:32px 24px 40px}.hero h1{font-size:clamp(29px,8.6vw,42px);line-height:1.08;margin:26px 0;letter-spacing:-.055em;text-align:left;white-space:normal}.hero-bottom{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px 20px;margin-top:0}.portrait{grid-column:1/-1;grid-row:1;width:100%;height:300px;object-fit:contain;border-radius:24px}.hero-bottom>p{font-size:16px;line-height:1.45}.hero-bottom>div{min-width:0}.hero-bottom>div p{font-size:15px}.hero-actions{display:flex;gap:10px}.hero-actions .pill{width:100%;flex:auto;padding:12px 14px}.hero-actions .t-learn{flex-basis:100%}section:not(.hero){margin:0 24px;padding:38px 0}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section-heading>p{font-size:17px}h2{font-size:38px;overflow-wrap:anywhere}.stats{grid-template-columns:1fr}.stats>div{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:18px;padding:20px 0;border-right:0;border-bottom:2px dotted var(--line)}.stats>div:last-child{border-bottom:0}.stats strong{font-size:38px}.stats span{font-size:14px;margin-top:0;max-width:none}.about-copy{grid-template-columns:1fr;gap:24px;margin-top:32px}.projects{grid-template-columns:1fr;gap:12px}.project{margin:0;padding:26px 0}.project .metric{font-size:38px;padding:30px 0 24px}.role:is(summary,.t-acc-head){grid-template-columns:minmax(0,32%) minmax(0,1fr) 24px;gap:10px;padding:24px 0;align-items:start}.role .t-acc-head>span:nth-child(2){min-width:0}.dates{font-size:15px;line-height:1.45;padding-top:2px;overflow-wrap:anywhere}.role-body{margin-left:0;padding-bottom:26px;font-size:16px}.company{font-size:24px;line-height:1.18;overflow-wrap:anywhere}.role-title{line-height:1.4;overflow-wrap:anywhere}.approach:is(summary,.t-acc-head){gap:16px}.approach h3{font-size:21px}.approach>p,.approach .t-acc-panel-inner>p{padding:0 0 24px}.approach .expand{display:none}.facts{gap:12px}.filters{display:grid;grid-template-columns:1fr 1fr}.filters .pill{width:100%;padding:10px 12px}.filters .pill:first-child{grid-column:1/-1}footer{padding:38px 24px;border-radius:26px 26px 0 0}footer h2{font-size:clamp(46px,12vw,80px)}.email{font-size:clamp(14px,4.1vw,22px);white-space:normal;word-break:break-word}.contact-links .pill{flex:1 1 40%;min-height:50px;padding-inline:14px}.footer-bottom{flex-direction:column;align-items:flex-start}.footer-bottom>*{max-width:100%;overflow-wrap:anywhere}.mobile-actions{position:fixed;bottom:0;left:0;right:0;z-index:15;display:flex;gap:10px;background:#fff;border-top:1px solid #ddd;padding:12px 20px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #0000000a}.mobile-actions .pill{flex:1;min-width:0;padding-inline:10px}}@media(max-width:380px){header{margin-inline:20px}.hero{padding-inline:20px}.hero-bottom{grid-template-columns:1fr}.portrait{height:280px}.hero-bottom>p{font-size:16px}.hero-actions{margin-top:16px}section:not(.hero){margin-inline:20px}.stats>div{grid-template-columns:72px minmax(0,1fr)}.stats strong{font-size:34px}.mobile-actions{padding-inline:12px}.mobile-actions .pill{font-size:14px}}.approach h3{min-width:0;overflow-wrap:anywhere}.t-acc-head{min-width:0}.t-acc-head>span:not(.t-acc-chevron){min-width:0}@media(max-width:700px){header>nav{display:none}header>nav.open{display:flex;flex-basis:100%}.nav-shell nav{display:flex}}@media(max-width:700px){.mobile-actions{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:440px;margin-inline:auto;padding:8px;gap:8px;border-radius:28px;border:1px solid rgba(255,255,255,.85);background:rgba(246,246,246,.86);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 6px 18px rgba(0,0,0,.14),0 0 1px rgba(0,0,0,.2),inset 1px 1px 1px #fff,inset -1px -1px 1px rgba(255,255,255,.55);isolation:isolate;}.mobile-actions .pill{min-height:48px;border-radius:21px;border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.5);color:#151515;font-weight:600;box-shadow:inset 1px 1px 1px #fff,inset -1px -1px 1px rgba(255,255,255,.45),0 2px 5px rgba(0,0,0,.06);transition:background 180ms ease,transform 180ms ease,box-shadow 180ms ease;}.mobile-actions .dark{background:rgba(25,25,25,.92);color:#fff;border-color:rgba(255,255,255,.2);box-shadow:inset 1px 1px 1px rgba(255,255,255,.22),0 2px 5px rgba(0,0,0,.12);}.mobile-actions .pill:active{transform:scale(.98)}}@media(max-width:700px) and (hover:hover){.mobile-actions .pill:hover{background:rgba(255,255,255,.85);transform:translateY(-1px)}.mobile-actions .dark:hover{background:#353535}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.mobile-actions{background:#f3f3f3}}@media(prefers-reduced-transparency:reduce){.mobile-actions{background:#f3f3f3;-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.t-stagger-line{opacity:1!important;transform:none!important;filter:none!important}}:root{--stagger-dur:500ms;--stagger-distance:12px;--stagger-stagger:40ms;--stagger-blur:0px;--stagger-ease:cubic-bezier(0.22,1,0.36,1);--acc-expand:250ms;--acc-collapse:250ms;--acc-chevron:250ms;--acc-ease:cubic-bezier(0.22,1,0.36,1);--learn-shift:2px;--learn-spread:8deg;--learn-in:350ms;--learn-out:350ms;--learn-ease:cubic-bezier(0.22,1,0.36,1);}.t-stagger-line{display:block;opacity:0;transform:translateY(var(--stagger-distance));filter:blur(var(--stagger-blur));transition:opacity var(--stagger-dur) var(--stagger-ease),transform var(--stagger-dur) var(--stagger-ease),filter var(--stagger-dur) var(--stagger-ease);will-change:transform,opacity,filter;}.t-stagger-line--2{transition-delay:var(--stagger-stagger);}.t-stagger.is-shown .t-stagger-line{opacity:1;transform:translateY(0);filter:blur(0);}.t-stagger.is-hiding .t-stagger-line{opacity:0;transform:translateY(0);filter:blur(0);transition:opacity 200ms ease,transform 0s linear,filter 0s linear;transition-delay:0s;}@media (prefers-reduced-motion:reduce){.t-stagger-line{transition:none !important;}}.t-acc-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--acc-collapse) var(--acc-ease);}.t-acc[data-open="true"] .t-acc-panel{grid-template-rows:1fr;transition:grid-template-rows var(--acc-expand) var(--acc-ease);}.t-acc-panel-inner{overflow:hidden;opacity:0;filter:blur(2px);transition:opacity var(--acc-collapse) var(--acc-ease),filter var(--acc-collapse) var(--acc-ease);}.t-acc[data-open="true"] .t-acc-panel-inner{opacity:1;filter:blur(0);transition:opacity var(--acc-expand) var(--acc-ease),filter var(--acc-expand) var(--acc-ease);}.t-acc-chevron{display:inline-flex;transform:scaleY(1);transform-origin:center;transition:transform var(--acc-chevron) var(--acc-ease);}.t-acc-chevron path{vector-effect:non-scaling-stroke;}.t-acc[data-open="true"] .t-acc-chevron{transform:scaleY(-1);}@media (prefers-reduced-motion:reduce){.t-acc-panel,.t-acc-panel-inner,.t-acc-chevron{transition:none !important;}}.t-learn-chevron{display:inline-flex;transform:translateX(0);transition:transform var(--learn-out) var(--learn-ease);}.t-learn-arm{transform-box:view-box;transform-origin:10px 8px;vector-effect:non-scaling-stroke;transition:transform var(--learn-out) var(--learn-ease);}.t-learn:hover .t-learn-chevron{transform:translateX(var(--learn-shift));transition-duration:var(--learn-in);}.t-learn:hover .t-learn-arm{transition-duration:var(--learn-in);}.t-learn:hover .t-learn-arm-top{transform:rotate(var(--learn-spread));}.t-learn:hover .t-learn-arm-bot{transform:rotate(calc(var(--learn-spread) * -1));}@media (prefers-reduced-motion:reduce){.t-learn-chevron,.t-learn-arm{transition:none !important;}}