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}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f9f7ec;--bg2:#efebdc;--sky:#bdcbea;--brown:#3f2c1f;--ink:#2b211a;--ink2:#4a3e35;--muted:#857a6e;--accent:#2c4fa3;--burgundy:#7a2130;--ink-rgb:43, 33, 26;--bg-rgb:249, 247, 236;--sky-rgb:189, 203, 234;--line:rgba(var(--ink-rgb), .14);--line-inv:rgba(var(--bg-rgb), .16);--c-product:#2c4fa3;--c-wellbeing:#6f8fcf;--c-collaboration:#3f2c1f;--c-negotiation:#9c7a5b;--gutter:clamp(16px, 3.2vw, 48px);--ease:cubic-bezier(.22, 1, .36, 1);--sans:"Inter Tight", system-ui, sans-serif;--serif:"Instrument Serif", Georgia, serif}body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}em,.serif{font-family:var(--serif);letter-spacing:-.01em;font-style:italic;font-weight:400}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}body:after{content:"";pointer-events:none;z-index:999;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:1.2s steps(6,end) infinite grain;position:fixed;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}to{transform:translate(0)}}.cursor{color:#fff;mix-blend-mode:difference;pointer-events:none;z-index:1000;line-height:0;position:fixed;top:0;left:0;translate:-50% -50%}.cursor svg{display:block;overflow:visible}.has-heart-cursor,.has-heart-cursor *{cursor:none!important}.nav{z-index:100;padding:22px var(--gutter);color:#fff;mix-blend-mode:difference;letter-spacing:.01em;justify-content:space-between;align-items:center;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}.nav-name{font-weight:600}.nav-links{justify-content:flex-end;gap:28px;display:flex}.nav-links a{position:relative}.nav-links a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:-3px;left:0;transform:scaleX(0)}.nav-links a:hover:after{transform-origin:0;transform:scaleX(1)}.hero{background:var(--sky);min-height:100svh;padding:120px var(--gutter) 36px;flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow-x:clip}.hero-top{color:var(--ink2);justify-content:space-between;gap:24px;font-size:13px;display:flex}.hero-top .dot{vertical-align:1px;background:#4caf50;border-radius:50%;width:8px;height:8px;margin-right:8px;animation:2.2s infinite pulse;display:inline-block}@keyframes pulse{0%{box-shadow:0 0 #4caf5080}70%{box-shadow:0 0 0 10px #4caf5000}to{box-shadow:0 0 #4caf5000}}.hero h1{letter-spacing:-.055em;margin:6vh 0 5vh;font-size:clamp(46px,9.2vw,168px);font-weight:500;line-height:.92;position:relative}.hero h1 em{letter-spacing:-.03em}.hero h1 .accent{color:var(--accent)}.line{white-space:nowrap;margin-bottom:-.16em;padding-bottom:.16em;display:block;overflow:hidden}.line>span{display:inline-block}.hero h1 .indent{padding-left:12vw}.hero-bottom{grid-template-columns:1fr 1fr;align-items:end;gap:32px;display:grid}.hero-sub{color:var(--ink2);justify-self:end;max-width:34ch;font-size:clamp(16px,1.35vw,20px);line-height:1.5}.scroll-hint{color:var(--ink2);align-items:center;gap:12px;font-size:13px;display:flex}.scroll-hint .arrow{border:1px solid var(--line);width:44px;height:44px;animation:bob 2.4s var(--ease) infinite;border-radius:50%;place-items:center;display:grid}@keyframes bob{50%{transform:translateY(6px)}}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg);padding:18px 0;position:relative;overflow:hidden}.marquee-row{overflow:hidden}.marquee-track{will-change:transform;display:inline-flex}.marquee-track span{letter-spacing:-.04em;padding-right:.6em;font-size:clamp(28px,4vw,56px);font-weight:500}.marquee-track{align-items:center}.marquee-track .sep{background:var(--accent);border-radius:50%;flex-shrink:0;width:.22em;height:.22em;margin-right:.6em;padding:0}.serif-row{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.serif-row .marquee-track span:not(.sep){font-family:var(--serif);letter-spacing:-.01em;color:#0000;-webkit-text-stroke:1px var(--ink);font-style:italic;font-weight:400}.section{padding:clamp(80px, 12vw, 180px) var(--gutter);position:relative;overflow-x:clip}.section-head{margin-bottom:clamp(40px,6vw,88px)}.label{color:var(--muted);gap:10px;font-size:13px;display:flex}.section-title{letter-spacing:-.055em;font-size:clamp(44px,7vw,120px);font-weight:500;line-height:.95}.highlights{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.highlight{border-right:1px solid var(--line);margin-right:24px;padding:28px 24px 0 0}.highlight:last-child{border-right:0;margin-right:0}.highlight-n{letter-spacing:-.05em;margin-bottom:14px;font-size:clamp(28px,3.2vw,52px);font-weight:500;line-height:1}.highlight-l{color:var(--muted);font-size:13px}.filters{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.f-btn{border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:13px;transition:background .3s,color .3s,border-color .3s}.f-btn:hover{border-color:var(--ink)}.f-btn.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.f-btn sup{opacity:.6;margin-left:3px;font-size:9px}.cases-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.case-list{border-top:1px solid var(--ink)}.case{border-bottom:1px solid var(--line)}.case-head{text-align:left;isolation:isolate;grid-template-columns:80px 1fr 220px 56px;align-items:center;gap:24px;width:100%;padding:34px 0;display:grid;position:relative;overflow:hidden}.case-head:before{content:"";z-index:-1;background:var(--ink);transform-origin:bottom;transition:transform .6s var(--ease);position:absolute;inset:0;transform:scaleY(0)}.case-head>*{transition:color .4s var(--ease), transform .6s var(--ease), border-color .4s}.case-num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.case-title{letter-spacing:-.045em;font-size:clamp(24px,3.4vw,54px);font-weight:500;line-height:1.02}.case-cat{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.case-cat:before{content:"";background:var(--cat);border-radius:50%;width:8px;height:8px}.case-toggle{border:1px solid var(--line);border-radius:50%;justify-self:end;place-items:center;width:48px;height:48px;display:grid}.case-toggle svg{transition:transform .6s var(--ease)}.case.open .case-toggle svg{transform:rotate(45deg)}@media (hover:hover){.case-head:hover:before{transform:scaleY(1)}.case-head:hover>*{color:var(--bg)}.case-head:hover .case-num,.case-head:hover .case-title{transform:translate(16px)}.case-head:hover .case-toggle{border-color:var(--line-inv);transform:translate(-16px)}}.case-body{transition:grid-template-rows .8s var(--ease);grid-template-rows:0fr;display:grid}.case.open .case-body{grid-template-rows:1fr}.case-body>div{overflow:hidden}.case-inner{grid-template-columns:80px 1fr 1.6fr;gap:24px;padding:8px 0 72px;display:grid}.case-aside{color:var(--muted);grid-column:2;font-size:13px;line-height:1.9}.case-aside strong{color:var(--ink);font-weight:500;display:block}.case-text{grid-column:3;max-width:62ch}.case-text p,.case-text li{color:var(--ink2);font-size:17px;font-weight:300;line-height:1.65}.case-text p+p,.case-text ul+p,.case-text p+ul{margin-top:1.1em}.case-text p:first-child{font-family:var(--serif);color:var(--ink);font-size:clamp(22px,2vw,28px);font-weight:400;line-height:1.3}.case-text ul{border-top:1px solid var(--line);list-style:none}.case-text li{border-bottom:1px solid var(--line);gap:14px;padding:12px 0;display:flex}.case-text li:before{content:"→";color:var(--accent)}.preview-anchor{z-index:90;pointer-events:none;position:fixed;top:0;left:0}.preview{width:180px;height:220px;color:var(--bg);border-radius:6px;flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:absolute;top:0;left:0;overflow:hidden;translate:-50% -50%}.preview-cat{letter-spacing:.04em;opacity:.85;font-size:11px}.preview-num{font-family:var(--serif);font-size:96px;font-style:italic;line-height:.8;display:block}.preview:before{content:"";background:radial-gradient(circle at 30% 30%,#ffffff59,#fff0 70%);border-radius:50%;width:140px;height:140px;position:absolute;top:40px;right:-45px}.about{background:var(--brown);color:var(--bg);overflow:hidden}.about .label{color:rgba(var(--bg-rgb), .55)}.about-orb{background:radial-gradient(circle at 35% 35%, rgba(var(--sky-rgb), .45), rgba(var(--sky-rgb), 0) 65%);filter:blur(20px);pointer-events:none;border-radius:50%;width:46vw;height:46vw;position:absolute;top:10%;right:-12vw}.about>:not(.about-orb){position:relative}.about-statement{letter-spacing:-.045em;max-width:20ch;margin-bottom:clamp(64px,9vw,140px);font-size:clamp(30px,4.4vw,72px);font-weight:400;line-height:1.05}.about-statement em{color:var(--sky)}.about-grid{border-top:1px solid var(--line-inv);grid-template-columns:1fr 1fr 1fr;align-items:start;gap:clamp(32px,5vw,80px);padding-top:40px;display:grid}.about-copy p{color:rgba(var(--bg-rgb), .8);font-size:17px;font-weight:300;line-height:1.65}.about-copy p+p{margin-top:1em}.about-meta{font-size:14px;line-height:2}.about-meta dt{color:rgba(var(--bg-rgb), .5);font-size:13px}.about-meta dd{margin-bottom:18px}.skills{list-style:none}.skills li{border-bottom:1px solid var(--line-inv);padding:14px 0}.skills li:first-child{padding-top:0}.skill-row{justify-content:space-between;margin-bottom:10px;font-size:15px;display:flex}.skill-row span:last-child{color:rgba(var(--bg-rgb), .5);font-variant-numeric:tabular-nums}.skill-bar{background:var(--line-inv);height:1px}.skill-fill{background:var(--bg);height:1px}.cert-list{border-top:1px solid var(--ink);list-style:none}.cert{border-bottom:1px solid var(--line);transition:padding .5s var(--ease);grid-template-columns:80px 1.4fr 1fr 40px;align-items:center;gap:24px;padding:26px 0;display:grid}.cert-i{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.cert-name{letter-spacing:-.035em;font-size:clamp(20px,2vw,30px);font-weight:500}.cert-issuer{color:var(--muted);font-size:14px}.cert-mark{color:var(--accent);opacity:0;transition:.5s var(--ease);justify-self:end;font-size:14px;transform:scale(.4)}@media (hover:hover){.cert:hover{padding-left:16px;padding-right:16px}.cert:hover .cert-mark{opacity:1;transform:none}}.contact{background:var(--sky);color:var(--ink);padding:clamp(80px, 12vw, 160px) var(--gutter) 0;overflow:hidden}.contact .label{color:rgba(var(--ink-rgb), .65);margin-bottom:28px}.contact-cta{letter-spacing:-.06em;align-items:center;gap:clamp(16px,3vw,48px);font-size:clamp(56px,12vw,220px);font-weight:500;line-height:.9;display:inline-flex}.contact-cta .circle{background:var(--brown);width:clamp(64px,9vw,150px);height:clamp(64px,9vw,150px);color:var(--sky);transition:transform .8s var(--ease);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.contact-cta .circle svg{width:38%;height:38%}.contact-cta:hover .circle{transform:rotate(45deg)scale(1.06)}.contact-email{border-bottom:1px solid;margin-top:28px;padding-bottom:2px;font-size:clamp(16px,1.6vw,22px);display:inline-block}.foot{border-top:1px solid rgba(var(--ink-rgb), .25);grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(80px,12vw,160px);padding-top:24px;font-size:13px;display:grid}.foot .muted{color:rgba(var(--ink-rgb), .65);margin-bottom:6px;display:block}.foot a:hover{text-underline-offset:3px;text-decoration:underline}.foot>div:last-child{text-align:right}.wordmark-clip{margin-top:40px;overflow:hidden}.wordmark{color:var(--brown);letter-spacing:-.065em;white-space:nowrap;margin-left:-.04em;padding-bottom:.06em;font-size:13.4vw;font-weight:500;line-height:.8}.portfolio-hero{padding:120px var(--gutter) clamp(40px, 6vw, 80px);flex-direction:column;justify-content:space-between;min-height:72svh;display:flex;position:relative;overflow-x:clip}.portfolio-hero h1{letter-spacing:-.06em;margin-top:8vh;font-size:clamp(64px,15vw,260px);font-weight:500;line-height:.88}.portfolio-hero h1 .accent{color:var(--burgundy)}.portfolio-hero h1 .indent{padding-left:18vw}.projects{padding-top:0}.project{border-top:1px solid var(--ink);margin-bottom:clamp(100px,14vw,200px);padding-top:28px}.project-top{grid-template-columns:80px 1fr auto auto;align-items:center;gap:24px;margin-bottom:clamp(28px,4vw,48px);display:grid}.project-i{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.project-name{letter-spacing:-.055em;font-size:clamp(40px,6vw,96px);font-weight:500;line-height:.95}.project-tags{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:12px}.visit{background:var(--ink);color:var(--bg);border-radius:999px;align-items:center;gap:8px;padding:12px 20px;font-size:13px;transition:background .3s;display:inline-flex}.visit:hover{background:var(--accent)}.showcase{isolation:isolate;border-radius:clamp(10px,1.4vw,20px);padding:clamp(40px,7vw,110px) clamp(20px,6vw,100px) clamp(60px,9vw,140px);display:block;position:relative;overflow:hidden}.showcase:after{content:"";z-index:-1;background:radial-gradient(ellipse at 70% 110%, rgba(var(--sky-rgb), .35), transparent 60%);position:absolute;inset:0}.browser{background:#fff;border-radius:10px;width:88%;overflow:hidden;box-shadow:0 40px 80px -30px #00000080}.browser-bar{background:#f1efe8;border-bottom:1px solid #0000000f;align-items:center;gap:6px;padding:10px 14px;display:flex}.browser-bar>span{background:#00000026;border-radius:50%;width:10px;height:10px}.browser-url{color:#6b665e;text-align:center;background:#fff;border-radius:6px;flex:1;max-width:320px;margin-left:12px;padding:4px 10px;font-size:11px}.browser-view{aspect-ratio:1440/900;overflow:hidden}.browser-view img{object-fit:cover;object-position:top;width:100%;height:108%;margin-top:-4%;display:block}.phone{aspect-ratio:390/844;background:#151210;border:clamp(4px,.6vw,8px) solid #151210;border-radius:clamp(18px,2.4vw,36px);width:clamp(110px,17vw,250px);position:absolute;bottom:clamp(24px,4vw,60px);right:clamp(20px,6vw,100px);overflow:hidden;box-shadow:0 40px 70px -20px #0000008c}.phone img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.project-info{grid-template-columns:1fr 1.3fr .8fr;gap:clamp(28px,4vw,64px);margin-top:clamp(36px,5vw,64px);display:grid}.project-tagline{font-size:clamp(28px,3vw,44px);line-height:1.05}.project-desc p{color:var(--ink2);font-size:17px;font-weight:300;line-height:1.65}.project-desc p+p{margin-top:1em}.project-features{border-top:1px solid var(--line);margin-top:24px;list-style:none}.project-features li{border-bottom:1px solid var(--line);color:var(--ink2);gap:14px;padding:12px 0;font-size:15px;display:flex}.project-features li:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:8px}.project-meta{font-size:14px;line-height:1.6}.project-meta dt{color:var(--muted);font-size:13px}.project-meta dd{margin-bottom:18px}.project-meta a{border-bottom:1px solid}.project-soon{border-top:1px dashed var(--ink);border-bottom:1px dashed var(--line);grid-template-columns:80px 1fr auto;align-items:center;gap:24px;padding:clamp(48px,8vw,110px) 0;display:grid}.project-soon .project-name{color:var(--muted)}.soon-pill{background:var(--sky);border-color:#0000}@media (width<=900px){.hero-bottom{grid-template-columns:1fr}.hero-sub{justify-self:start}.scroll-hint{order:2}.highlights{border-top:0;grid-template-columns:repeat(2,1fr)}.highlight{border-right:0;border-top:1px solid var(--line);margin-right:0;padding:22px 12px 28px 0}.case-head{grid-template-columns:36px 1fr 44px;gap:14px;padding:26px 0}.case-cat{grid-area:2/2}.case-toggle{grid-area:1/3/span 2;width:40px;height:40px}.case-inner{grid-template-columns:1fr;padding-bottom:48px}.case-aside,.case-text{grid-column:1}.case-text p,.case-text li{font-size:16px}.about-grid{grid-template-columns:1fr}.about-orb{width:90vw;height:90vw;right:-40vw}.cert{grid-template-columns:36px 1fr;gap:6px 14px}.cert-issuer{grid-column:2}.cert-mark{display:none}.foot{grid-template-columns:1fr 1fr;row-gap:28px}.foot>div:last-child{text-align:left}.filters{justify-content:flex-start}.project-top{grid-template-columns:36px 1fr;gap:14px}.project-tags{grid-column:2}.visit{grid-column:2;justify-self:start}.browser{width:100%}.project-info{grid-template-columns:1fr}.project-soon{grid-template-columns:36px 1fr}.soon-pill{grid-column:2;justify-self:start}}@media (width<=480px){.nav{font-size:12px}.nav-links{gap:12px}.portfolio-hero h1 .indent{padding-left:10vw}.hero h1 .indent{padding-left:0}.line{white-space:normal}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}}
