:root{color:#111318;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#ecebe6;--white:#f8f7f2;--ink:#111318;--muted:#555a62;--line:#c7c7c1;--blue:#182640;--blue-soft:#cdd3de;--radius:18px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);background:#ecebe6;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}html.lenis{scroll-behavior:auto}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit}img,svg{max-width:100%;display:block}h1,h2,h3,p{margin:0}a,button{min-height:44px}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}::selection{background:var(--blue);color:#fff}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portrait-intro.intro{background:0 0;height:100svh;min-height:min(680px,100svh);padding:0;display:block;overflow:hidden}.portrait-surface{z-index:0;background:var(--paper);will-change:transform;position:absolute;inset:0}.portrait-heading{z-index:8;pointer-events:none;position:absolute;top:135px;left:4vw;right:4vw}.portrait-intro .portrait-heading h1{letter-spacing:-.075em;max-width:none;margin-top:0;font-size:clamp(80px,8vw,125px);line-height:.9}.portrait-heading h1 em{font-family:Georgia,serif;font-weight:400}.portrait-stage-motion{z-index:7;aspect-ratio:1341/1173;will-change:transform, opacity;width:min(83vw,1010px,114.3svh - 115px);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.portrait-stage{width:100%;height:100%;position:relative}.hero-work-transition{z-index:6;pointer-events:none;position:absolute;inset:0;overflow:visible}.transition-float{opacity:0;will-change:transform, opacity;position:absolute;top:50%;left:50%}.transition-float-browser{width:clamp(360px,38vw,620px)}.transition-float-motion{width:220px}.transition-float-product{width:150px}.transition-float-chip{letter-spacing:.06em;background:#dce2ef;border:1px solid #182640;align-items:center;gap:14px;width:max-content;padding:13px 16px;font:9px monospace;display:flex}.transition-float-chip i{font-style:normal}.transition-float-chip strong{color:#fff;background:#182640;padding:7px 9px;font-weight:400}.transition-browser-card{color:#111318;background:#f3f1ebf5;border:1px solid #5f7191;overflow:hidden;transform:rotate(-2deg);box-shadow:0 28px 70px #00000038}.transition-browser-bar{border-bottom:1px solid #182640;align-items:center;height:34px;padding:0 12px;display:flex}.transition-browser-bar i{border:1px solid #182640;border-radius:50%;width:6px;height:6px;margin-right:6px}.transition-browser-bar span{color:#4b5362;margin-left:auto;font:8px monospace}.transition-browser-body{background-image:linear-gradient(90deg,#0000 49.8%,#18264010 50%,#0000 50.2%);min-height:245px;padding:22px}.transition-browser-body small,.transition-motion-card small,.transition-product-card small{letter-spacing:.11em;font:8px monospace}.transition-browser-body strong{letter-spacing:-.075em;margin:25px 0 34px;font:400 clamp(27px,2.7vw,43px)/.9 monospace;display:block}.browser-ui{grid-template-columns:1.45fr .75fr .75fr;gap:6px;display:grid}.browser-ui span{background:#d1d2ce;height:8px}.browser-ui span:first-child{background:#182640}.browser-ui b{background:#ffffff75;border:1px solid #18264028;height:34px;margin-top:5px}.browser-ui b:first-of-type{grid-column:1/3}.transition-motion-card{color:#111318;background:#eff0ec;border:1px solid #667797;padding:22px;position:relative;overflow:hidden;transform:rotate(3deg);box-shadow:0 24px 60px #00000030}.transition-motion-card:after{content:"";border:1px solid #7386aa;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-42px;right:-32px}.transition-motion-card strong{letter-spacing:-.065em;margin:32px 0 56px;font:400 22px/.92 monospace;display:block}.motion-sequence{color:#182640;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:6px;font:8px monospace;display:grid}.motion-sequence i{transform-origin:0;background:#7185aa;height:1px;transform:scaleX(.78)}.transition-product-card{color:#fff;background:#182640;border:1px solid #50668f;border-radius:30px;min-height:260px;padding:13px 15px 17px;position:relative;overflow:hidden;transform:rotate(5deg);box-shadow:0 28px 65px #00000042,inset 0 0 0 4px #ffffff0a}.product-status{justify-content:space-between;align-items:center;margin-bottom:23px;padding:0 4px;font:6px monospace;display:flex}.product-status i{border:1px solid #ffffff8c;border-radius:4px;width:24px;height:6px}.transition-product-card strong{letter-spacing:-.055em;margin-top:23px;font:400 13px/.95 monospace;display:block}.product-ui{background:#ffffff0d;border-radius:13px;gap:7px;margin-top:24px;padding:13px 11px 9px;display:grid}.product-ui>b{background:#9cafda;border-radius:50%;width:35px;height:35px}.product-ui>i{background:#bac5d8;border-radius:4px;height:5px}.product-ui>i:nth-of-type(2){width:68%}.product-ui>span{border-top:1px solid #fff2;justify-content:space-between;margin-top:7px;padding-top:8px;display:flex}.product-ui>span i{background:#7185aa;border-radius:3px;width:13px;height:3px}.transition-atom{z-index:0;aspect-ratio:1;opacity:0;will-change:transform, opacity;width:min(48vw,650px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.28)}.transition-atom-canvas{width:100%;height:100%;display:block}.portrait-stage img,.portrait-canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.portrait-stage img{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.portrait-technical{opacity:0}.portrait-stage[data-mode=technical] .portrait-technical{opacity:1}.portrait-stage[data-mode=technical] .portrait-base{opacity:0}.portrait-canvas{opacity:0;pointer-events:none}.portrait-stage[data-ready=true] .portrait-canvas{opacity:1}.portrait-stage[data-ready=true] img.portrait-base,.portrait-stage[data-ready=true] img.portrait-technical{opacity:0}.portrait-caption{z-index:8;max-width:220px;position:absolute;bottom:17%;left:4vw}.portrait-caption>span,.portrait-hint{letter-spacing:.09em;font:10px monospace}.portrait-caption p{letter-spacing:-.04em;margin-top:25px;font-size:clamp(25px,2.5vw,38px);line-height:1.07}.portrait-caption em{color:var(--blue);font-family:Georgia,serif}.portrait-actions{z-index:8;gap:10px;width:210px;display:grid;position:absolute;bottom:17%;right:4vw}.portrait-actions button,.portrait-actions a{color:var(--ink);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:13px;display:flex}.portrait-hint{color:var(--muted);line-height:1.5}.portrait-actions .portrait-auto-toggle{color:var(--muted);border:0;font-size:11px}.portrait-intro:not(:has(.portrait-stage[data-ready=true])) .portrait-auto-toggle{display:none}@media (width<=1100px){.portrait-stage-motion{width:min(88vw,860px)}.portrait-caption{max-width:170px;bottom:13%}.portrait-actions{width:180px;bottom:13%}}@media (width<=800px){.portrait-intro.intro{flex-direction:column;height:auto;min-height:100svh;padding:72px 20px 0;display:flex}.portrait-heading{position:relative;inset:auto}.hero-work-transition{display:none}.portrait-intro .portrait-heading h1{font-size:clamp(58px,15vw,120px)}.portrait-heading h1 br{display:none}.portrait-stage-motion{width:calc(100% + 40px);margin:auto -20px 0;position:relative;inset:auto;transform:none}.portrait-caption{display:none}.portrait-actions{width:auto;margin:18px 0 28px;position:relative;inset:auto}.portrait-hint{display:none}}@media (prefers-reduced-motion:reduce),(hover:none){.portrait-hint{display:none}}@media (width<=1100px),(height<=719px),(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.portrait-pointer-wash{display:none!important}.portrait-stage[data-ready=true] .portrait-canvas{opacity:0}.portrait-stage[data-ready=true] .portrait-base{opacity:1}.portrait-stage[data-ready=true] .portrait-technical,.portrait-stage[data-ready=true][data-mode=technical] .portrait-base{opacity:0}.portrait-stage[data-ready=true][data-mode=technical] .portrait-technical{opacity:1}}.portrait-pointer-wash{z-index:1;opacity:.45;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.portrait-specialties{color:var(--muted);letter-spacing:.035em;margin-top:25px;font:11px monospace}.portrait-actions .portrait-hint{letter-spacing:-.01em;font-family:inherit;font-size:14px;line-height:1.55}.portrait-actions a{order:-1;font-weight:600}.portfolio-preloader{z-index:10000;color:#f4f4f0;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.preloader-shutter{z-index:0;background:var(--ink);will-change:transform;width:100%;height:calc(50% + 1px);position:absolute;left:0}.preloader-shutter-top{top:0}.preloader-shutter-bottom{bottom:0}.preloader-minimal{z-index:1;will-change:transform, opacity;justify-items:center;gap:16px;display:grid;position:relative}.preloader-wordmark{letter-spacing:-.065em;width:max-content;padding-bottom:.1em;font-size:clamp(38px,4vw,58px);line-height:1;position:relative;overflow:hidden}.preloader-wordmark>span,.preloader-wordmark b,.preloader-wordmark em{display:flex}.preloader-wordmark>span{white-space:nowrap;gap:.18em}.preloader-wordmark b{font-weight:400}.preloader-wordmark em{font-family:Georgia,serif;font-weight:400}.preloader-wordmark i{opacity:0;font-style:inherit;animation:.42s cubic-bezier(.23,1,.32,1) both preloader-letter-in;display:inline-block;transform:translateY(.72em)}.preloader-wordmark-base{color:#4d5561}.preloader-wordmark-fill{color:#f4f4f0;clip-path:inset(0 100% 0 0);position:absolute;inset:0}.preloader-wordmark-fill em{color:#9cafda}.preloader-status{color:#8f97a3;letter-spacing:.13em;text-transform:uppercase;font:9px monospace}@media (width<=800px){.portrait-specialties{margin-top:18px;font-size:10px}.portrait-caption{max-width:none;margin-top:24px;display:block;position:relative;inset:auto}.portrait-caption>span{font-size:9px}.portrait-caption p{margin-top:12px;font-size:30px}.portrait-caption br{display:none}.portrait-actions .portrait-hint{display:block}}.portrait-caption>span{letter-spacing:.04em;font-size:9px}.preloader-progress{background:#ffffff24;width:min(180px,58vw);height:1px;overflow:hidden}.preloader-progress span{transform-origin:0;background:#9cafda;width:100%;height:100%;display:block;transform:scaleX(0)}@keyframes preloader-letter-in{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.preloader-wordmark i{opacity:1;animation:none;transform:none}}@media (width<=800px){.preloader-wordmark{font-size:clamp(36px,12vw,48px)}}.v2 .work,.v2 .experience,.v2 .about,.v2 .technology,.v2 .contact{z-index:4;position:relative}.hero-work-bridge{z-index:4;background:var(--ink);position:relative}.hero-work-transition-track{z-index:6;pointer-events:none;height:200svh;position:absolute;top:0;left:0;right:0}.hero-work-sticky{pointer-events:none;height:100svh;min-height:680px;position:sticky;top:0}.work-opening{padding-bottom:0;z-index:auto!important}.work-opening .work-heading{z-index:8;position:relative}.work-projects{padding-top:0}.work{background:var(--ink);color:#f5f5f2;padding:150px 4vw 120px}.work-heading,.experience-heading{grid-template-columns:.55fr 1.5fr .65fr;align-items:end;gap:clamp(28px,4vw,72px);margin-bottom:120px;display:grid}.work-heading>span,.experience-heading>span,.technology header>span{color:#9da2ad;letter-spacing:.13em;text-transform:uppercase;align-self:start;font:10px monospace}.work-heading h2,.experience-heading h2,.technology h2{letter-spacing:-.07em;font-size:clamp(54px,7.2vw,112px);font-weight:400;line-height:.89}.work-heading h2 em,.experience-heading h2 em,.technology h2 em{color:#9cafda;font-family:Georgia,serif;font-weight:400}.work-heading>p,.experience-heading>p{color:#b2b6bf;max-width:34ch;line-height:1.65}.work-transition-target{border-top:1px solid #ffffff32;grid-template:"intro browser browser"290px"atom motion product"420px/minmax(280px,.82fr) minmax(360px,1.08fr) minmax(220px,.62fr);gap:54px clamp(40px,5vw,90px);min-height:880px;margin:-35px 0 0;padding:120px 0 0;display:grid;position:relative}.work-atom-slot{z-index:0;pointer-events:none;grid-area:atom;align-self:center;width:min(100%,500px);height:390px;position:relative}.work-transition-target>:not(.work-atom-slot){z-index:7}.work-transition-intro{grid-area:intro;align-self:center;width:290px;position:relative}.work-chip-slot{width:177px;height:90px}.work-transition-intro p{letter-spacing:-.055em;margin-top:30px;font-size:clamp(34px,3.35vw,53px);line-height:.95}.work-transition-intro em{color:#9cafda;font-family:Georgia,serif}.work-artifact{color:var(--ink);position:relative}.work-artifact-slot{display:block}.work-browser-slot{width:min(100%,540px);height:250px;margin:0 auto}.work-motion-slot{width:220px;height:230px;margin:0}.work-product-slot{width:165px;height:260px;margin:0}.work-artifact>p{color:#cbd0d9;max-width:32ch;margin-top:24px;font-size:clamp(15px,1.08vw,17px);line-height:1.5}.work-artifact>p span{color:#9cafda;margin-right:13px;font:11px monospace}.work-artifact-browser{grid-area:browser;justify-self:start;width:min(100%,540px)}.work-artifact-browser>p{width:min(100%,540px);max-width:none;margin-left:auto;margin-right:auto}.work-artifact-browser .transition-browser-card{transform:rotate(-3deg)}.work-artifact-motion{grid-area:motion;align-self:center;width:220px}.work-artifact-motion>p{width:220px;margin-left:0}.work-artifact-product{grid-area:product;align-self:center;width:220px}.work-artifact-product .transition-product-card{width:min(100%,165px);margin-left:0}.work-artifact-product>p{text-align:left;width:220px;margin-left:0}.mobile-work-artifacts{display:none}.mobile-work-artifact{min-width:0}.mobile-work-artifact>p{color:#cbd0d9;max-width:32ch;margin-top:24px;font-size:clamp(15px,1.08vw,17px);line-height:1.5}.mobile-work-artifact>p span{color:#9cafda;margin-right:13px;font:11px monospace}.project-archive{border-top:1px solid #ffffff32;grid-template-columns:minmax(0,.92fr) minmax(380px,1.08fr);gap:clamp(56px,8vw,160px);display:grid}.project-preview{background:var(--ink);align-self:start;height:100svh;position:sticky;top:0;overflow:hidden}.project-preview-stage{background:var(--ink);isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.project-preview-layer{position:absolute;inset:0}.project-preview-layer--active{z-index:1;opacity:0;transition:opacity .26s var(--ease-out), transform .26s var(--ease-out);will-change:opacity, transform;transform:scale(1.012)}.project-preview-layer--active.is-visible{opacity:1;transform:scale(1)}.project-archive:has(.project-index-item:focus-within) .project-preview-layer--active{transition:none}.project-preview-meta{z-index:2;color:#dce0e7;letter-spacing:.08em;text-shadow:0 1px 12px #000;text-transform:uppercase;background:linear-gradient(#0000,#111318cc 68%);justify-content:space-between;gap:24px;padding-top:58px;font:10px monospace;display:flex;position:absolute;bottom:clamp(20px,3vw,38px);left:clamp(18px,2vw,34px);right:clamp(18px,2vw,34px)}.project-preview-meta span:last-child{text-align:right}.project-device-scene{background:var(--ink);place-items:start center;width:100%;height:100%;padding-top:clamp(24px,4vh,48px);display:grid;overflow:hidden}.project-desktop-device{will-change:transform;background:#0d1119;border:1px solid #dae2f066;width:92%;padding:9px 9px 17px;transform:rotate(-2.2deg);box-shadow:0 35px 80px #0000008a}.project-desktop-device-bar{color:#b7c2d6;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:5px;height:17px;padding:0 3px 8px;font:7px monospace;display:flex}.project-desktop-device-bar i{background:#9cafda;border-radius:50%;width:5px;height:5px;display:block}.project-desktop-device-bar span{opacity:.7;margin-left:auto}.project-desktop-device>img{aspect-ratio:3/2;object-fit:contain;object-position:center;background:#080a0e;width:100%;height:auto;display:block}.project-index{min-width:0;padding-bottom:24svh}.project-group-heading{color:#dce0e7;letter-spacing:.11em;text-transform:uppercase;border-bottom:1px solid #ffffff32;justify-content:space-between;align-items:baseline;gap:24px;padding:24px 0 18px;font:10px monospace;display:flex}.project-group-heading small{color:#858b96;font:inherit;letter-spacing:.08em;text-align:right}.project-index-item{border-bottom:1px solid #ffffff32}.project-index-item>a{grid-template-columns:54px minmax(190px,.8fr) minmax(230px,1fr) auto;align-items:center;gap:clamp(18px,2.2vw,42px);min-height:230px;padding:38px 0;transition:color .18s,background-color .18s;display:grid}.project-index-item--featured>a{min-height:clamp(300px,44svh,440px)}.project-number{color:#9cafda;align-self:start;padding-top:5px;font:11px monospace}.project-index-title small{color:#9da2ad;letter-spacing:.1em;text-transform:uppercase;font:9px monospace}.project-index-title h3{letter-spacing:-.065em;margin-top:15px;font-size:clamp(31px,3.6vw,62px);font-weight:400;line-height:.88}.project-index-item--featured .project-index-title h3{font-size:clamp(40px,4.5vw,72px)}.project-index-details{gap:30px;display:grid}.project-index-item p{color:#c4c8d0;max-width:34ch;font-size:15px;line-height:1.65}.project-index-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;display:grid}.project-index-details dl div{border-top:1px solid #ffffff24;padding-top:10px}.project-index-details dt{color:#777e8a;letter-spacing:.1em;text-transform:uppercase;font:8px monospace}.project-index-details dd{color:#b8bec8;margin:7px 0 0;font-size:11px;line-height:1.4}.project-index-link{border-bottom:1px solid #fff5;justify-content:space-between;align-items:center;gap:13px;min-width:108px;padding:11px 0;font-size:12px;display:flex}.project-index-link span{transition:transform .18s var(--ease-out)}.project-index-mobile-media{display:none}.study-projects{border-top:1px solid #ffffff32;padding:72px 0 30px}.study-projects-heading{grid-template-columns:minmax(0,1.15fr) minmax(280px,.55fr);align-items:end;gap:clamp(48px,9vw,150px);display:grid}.study-projects-heading span,.study-project-copy>span{color:#858b96;letter-spacing:.11em;text-transform:uppercase;font:9px monospace}.study-projects-heading h2{letter-spacing:-.055em;margin-top:24px;font-size:clamp(38px,4.5vw,68px);font-weight:400;line-height:.94}.study-projects-heading h2 em{color:#9cafda;font-family:Georgia,serif;font-weight:400}.study-projects-heading p{color:#9da2ad;max-width:43ch;font-size:14px;line-height:1.65}.study-projects-heading a{border-bottom:1px solid #fff5;justify-content:space-between;width:min(100%,210px);margin-top:24px;padding:12px 0;font-size:12px;display:flex}.study-projects-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,72px);margin-top:68px;display:grid}.study-project-card{border-top:1px solid #ffffff32}.study-project-card>a{grid-template-columns:minmax(150px,.62fr) minmax(0,1fr);align-items:center;gap:clamp(22px,3vw,42px);padding:22px 0;display:grid}.study-project-media{background:#0c1018;height:132px;overflow:hidden}.study-project-media>img{object-fit:cover;object-position:top;width:100%;height:100%}.study-project-media--foodiary>img{object-position:center}.study-project-media--foodiary .foodiary-phone{border-radius:12px;width:72px;padding:12px 8px;transform:rotate(-4deg)}.study-project-media--foodiary .foodiary-phone:before{height:2px;top:5px}.study-project-media--foodiary .foodiary-phone>span{font-size:4px}.study-project-media--foodiary .foodiary-phone>strong{margin:20px 0 12px;font-size:8px}.study-project-media--foodiary .foodiary-phone>i{height:2px;margin-top:3px}.study-project-media--foodiary .foodiary-phone>b{width:14px;height:14px;font-size:9px;bottom:6px;right:6px}.study-project-copy h3{letter-spacing:-.045em;margin-top:12px;font-size:clamp(25px,2.4vw,38px);font-weight:400}.study-project-copy p{color:#9da2ad;max-width:37ch;margin-top:16px;font-size:13px;line-height:1.55}.study-project-copy small{color:#c2c7d0;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:16px;margin-top:22px;font:9px monospace;display:flex}.v2 .experience{background:var(--white);color:var(--ink);padding:150px 4vw}.experience-heading>span{color:var(--muted)}.experience-heading h2 em{color:var(--blue)}.experience-heading>p{color:var(--muted)}.experience-heading h2{font-size:clamp(52px,5.7vw,88px)}.experience-heading>p{max-width:46ch}.career-list{border-top:1px solid var(--ink)}.career-item{border-bottom:1px solid var(--ink);grid-template-columns:minmax(64px,.16fr) minmax(300px,.82fr) minmax(420px,1.12fr);align-items:start;gap:clamp(32px,4vw,68px);padding:clamp(56px,5vw,80px) 0;display:grid}.career-index{flex-direction:column;justify-content:space-between;min-height:100%;display:flex}.career-index>span{letter-spacing:-.08em;font:36px monospace}.career-index>div{gap:7px;display:grid}.career-index small{color:var(--muted);letter-spacing:.11em;font:9px/1.5 monospace}.career-index time{color:#3f444c;white-space:nowrap;font:10px/1.45 monospace}.career-intro>span{color:var(--blue);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;font:10px/1.5 monospace;display:block}.career-intro h3{letter-spacing:-.06em;margin-top:18px;font-size:clamp(44px,4.5vw,68px);font-weight:400;line-height:.94}.career-company{color:var(--muted);letter-spacing:.08em;margin-top:10px;font:10px/1.5 monospace;display:block}.career-intro>p{letter-spacing:-.025em;max-width:31ch;margin-top:30px;font-size:clamp(19px,1.55vw,24px);line-height:1.28}.career-details>p{color:#3f444c;max-width:60ch;font-size:16px;line-height:1.72}.career-details dl{border-top:1px solid #b9bab7;margin:34px 0 0}.career-details dl>div{border-bottom:1px solid #d0d0cc;grid-template-columns:minmax(78px,.3fr) 1fr;gap:24px;padding:18px 0;display:grid}.career-details dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font:9px monospace}.career-details dd{color:#30353d;margin:0;font-size:13px;line-height:1.5}.v2 .about{background:var(--paper);color:var(--ink);padding:125px 4vw}.about-heading{grid-template-columns:.42fr 1.58fr;align-items:start;gap:clamp(32px,5vw,78px);display:grid}.about-heading>span,.about-profile>span{color:var(--muted);letter-spacing:.13em;text-transform:uppercase;font:10px monospace}.about-heading h2{letter-spacing:-.06em;font-size:clamp(46px,5.2vw,76px);font-weight:400;line-height:.96}.about-content{grid-template-columns:.42fr 1.58fr;align-items:start;gap:clamp(32px,5vw,78px);margin-top:72px;padding-top:32px;display:grid;position:relative}.about-rule{background:var(--ink);transform-origin:0;height:1px;position:absolute;inset:0 0 auto}.about-profile{gap:20px;padding-top:5px;display:grid}.about-profile p{color:#42474e;font-size:14px;line-height:1.6}.about-profile .about-personal{align-self:end;margin-top:56px}.about-personal span{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font:9px monospace;display:block}.about-story{max-width:860px}.about-story>p{color:#474c54;max-width:62ch;font-size:16px;line-height:1.72}.about-story>.about-lead{max-width:47ch;color:var(--ink);letter-spacing:-.035em;font-size:clamp(25px,2.3vw,35px);line-height:1.22}.about-story>p+p{margin-top:32px}.about-links{grid-template-columns:repeat(2,minmax(150px,230px));gap:28px;margin-top:48px;display:grid}.about-links a,.v2 .contact-actions a{border-bottom:1px solid;justify-content:space-between;padding:15px 0;font-size:13px;display:flex}.about-links a span{transition:transform .2s var(--ease-out)}.v2 .technology{color:#f5f6f8;background:#2b3a50;padding:112px 4vw 126px}.technology-heading{grid-template-columns:.42fr 1fr .58fr;align-items:start;gap:clamp(32px,5vw,78px);display:grid}.technology .technology-heading>span{color:#c5cfdd}.technology-heading h2{font-size:clamp(42px,4.6vw,68px);line-height:.98}.technology-heading>p{color:#d5dce6;max-width:34ch;font-size:15px;line-height:1.65}.technology-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(56px,8vw,140px);margin:76px 0 0;padding:0;list-style:none;display:grid}.technology-row{grid-template-columns:42px 1fr;align-content:start;column-gap:24px;padding-top:28px;display:grid;position:relative}.technology-line{transform-origin:0;background:#dce3ec73;height:1px;position:absolute;inset:0 0 auto}.technology-index{color:#b9c6d8;grid-row:1/3;font:10px monospace}.technology-category>span{color:#f2f4f7;letter-spacing:.11em;text-transform:uppercase;font:10px monospace}.technology-category p{color:#cbd4e0;max-width:34ch;margin-top:14px;font-size:14px;line-height:1.55}.technology-specs{grid-column:2;margin:34px 0 0;padding:0}.technology-specs>div{border-top:1px solid #dce3ec35;grid-template-columns:minmax(90px,.34fr) 1fr;align-items:baseline;min-height:58px;padding:17px 0;display:grid}.technology-specs>div:last-child{border-bottom:1px solid #dce3ec35}.technology-specs dt{color:#9fadc1;letter-spacing:.08em;text-transform:uppercase;font:9px monospace}.technology-specs dd{color:#f5f6f8;letter-spacing:-.025em;margin:0;font-size:clamp(18px,1.45vw,23px);line-height:1.25}.technology-specs--stacked>div{grid-template-columns:1fr;gap:10px}.v2 .contact{background:var(--white);min-height:100dvh;color:var(--ink);padding:120px 4vw 28px}.contact-heading{grid-template-columns:.42fr 1fr .58fr;align-items:start;gap:clamp(32px,5vw,78px);display:grid}.contact-heading>span,.contact-direct>div>span,.contact-form-heading>span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font:10px monospace}.contact-heading h2{letter-spacing:-.06em;max-width:14ch;font-size:clamp(46px,4.9vw,76px);font-weight:400;line-height:.94}.contact-heading h2 span,.contact-heading h2 em{display:block}.contact-heading h2 em{color:var(--blue);font-family:Georgia,serif;font-weight:400}.contact-heading>p{color:#4b5058;max-width:37ch;font-size:15px;line-height:1.65}.contact-body{border-top:1px solid var(--ink);grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:clamp(64px,10vw,170px);margin-top:82px;padding-top:32px;display:grid}.contact-direct{flex-direction:column;justify-content:space-between;gap:70px;display:flex}.contact-direct>div>p{color:#575c64;max-width:28ch;margin-top:16px;font-size:14px;line-height:1.6}.contact-direct nav{gap:12px;display:grid}.contact-direct nav a{min-height:78px;transition:border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s var(--ease-out);background:#f4f4f0;border:1px solid #d6d6d1;border-radius:14px;justify-content:space-between;align-items:center;gap:22px;padding:14px 14px 14px 19px;display:flex}.contact-direct nav a>span:first-child{align-items:center;gap:13px;min-width:0;font-size:14px;display:flex}.contact-channel-icon{flex:none;width:20px;height:20px}.contact-direct nav a>span:last-child,.contact-submit button>span{transition:transform .18s var(--ease-out);flex:none}.contact-direct nav a>span:last-child{border:1px solid #a7aab0;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.contact-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px;display:grid}.contact-form-heading,.contact-field,.contact-submit{grid-column:1/-1}.contact-form-heading{grid-template-columns:minmax(130px,.35fr) 1fr;align-items:start;gap:32px;margin-bottom:16px;display:grid}.contact-form-heading h3{letter-spacing:-.035em;max-width:30ch;font-size:clamp(25px,2.25vw,35px);font-weight:400;line-height:1.18}.contact-field--half{grid-column:span 1}.contact-field{position:relative}.contact-field label{color:#4f545c;letter-spacing:.1em;text-transform:uppercase;margin-bottom:9px;font:10px monospace;display:block}.contact-field label span{color:#5d626a;font-size:8px}.contact-field input,.contact-field select,.contact-field textarea{width:100%;color:var(--ink);font:inherit;background:#f6f6f2;border:1px solid #d0d1ce;border-radius:12px;outline:0;font-size:16px;transition:border-color .18s,background-color .18s,box-shadow .18s}.contact-field input,.contact-field select{min-height:58px;padding:0 17px}.contact-field select{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;cursor:pointer;padding-right:40px}.contact-field textarea{resize:vertical;min-height:144px;padding:17px}.contact-field input::placeholder,.contact-field textarea::placeholder{color:#7a7f87;opacity:1}.contact-field input:hover,.contact-field select:hover,.contact-field textarea:hover{background:#f8f8f5;border-color:#656a72}.contact-field input:focus-visible,.contact-field select:focus-visible,.contact-field textarea:focus-visible{border-color:var(--blue);background:var(--white);box-shadow:0 0 0 3px #4969aa24}.contact-honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.contact-submit{grid-template-columns:minmax(190px,.42fr) 1fr;align-items:center;gap:28px;display:grid}.contact-submit button{border:1px solid var(--blue);background:var(--blue);min-height:60px;color:var(--white);cursor:pointer;font:inherit;transition:background-color .18s ease, border-color .18s ease, transform .18s var(--ease-out);border-radius:12px;justify-content:space-between;align-items:center;padding:0 23px;font-size:14px;display:flex}.contact-submit button:disabled{cursor:wait;opacity:.62}.contact-submit button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.contact-status{color:#4b5058;min-height:22px;font-size:13px;line-height:1.55}.contact-status--success{color:#24643a}.contact-status--error{color:#a12c2c}.contact-status a{text-underline-offset:3px;text-decoration:underline}.contact-success-dialog{background:var(--white);width:min(100% - 40px,480px);color:var(--ink);text-align:center;border:0;border-radius:18px;padding:46px 42px 40px;box-shadow:0 28px 90px #080b1266}.contact-success-dialog[open]{animation:contact-dialog-in .26s var(--ease-out)}.contact-success-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#101722b8}.contact-success-close{width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #d0d1ce;border-radius:50%;place-items:center;display:grid;position:absolute;top:16px;right:16px}.contact-success-close svg{width:20px;height:20px}.contact-success-icon{width:52px;height:52px;color:var(--blue);background:#4969aa18;border-radius:50%;place-items:center;margin:0 auto 26px;display:grid}.contact-success-icon svg{width:25px;height:25px}.contact-success-label{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;font:9px monospace}.contact-success-dialog h3{letter-spacing:-.045em;max-width:14ch;margin:12px auto 0;font-size:36px;font-weight:400;line-height:1.04}.contact-success-dialog p{color:#575c64;max-width:36ch;margin:20px auto 0;font-size:15px;line-height:1.6}.contact-success-action{border:1px solid var(--blue);background:var(--blue);min-width:140px;min-height:50px;color:var(--white);cursor:pointer;font:inherit;border-radius:12px;margin-top:32px;padding:0 20px;font-size:13px}.contact-success-close:focus-visible,.contact-success-action:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.contact-footer{border-top:1px solid var(--ink);grid-template-columns:1fr 1fr auto;margin-top:112px;padding-top:20px;font-size:12px;display:grid}@keyframes contact-dialog-in{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:none}}@media (hover:hover) and (pointer:fine){.project-index-item>a:hover{color:#9cafda}.project-index-item>a:hover .project-index-link span{transform:translate(3px,-3px)}.project-index-item.is-active{background:linear-gradient(90deg,#9cafda12,#0000 72%)}.about-links a:hover span,.contact-direct nav a:hover>span:last-child,.contact-submit button:hover>span{transform:translate(3px,-3px)}.contact-direct nav a:hover{border-color:var(--ink);background:var(--ink);color:var(--white);transform:translateY(-2px)}.contact-direct nav a:hover>span:last-child{border-color:#ffffff80}.contact-submit button:hover{background:#304f8f;border-color:#304f8f}}@media (width<=1180px) and (width>=1001px){.project-archive{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:35px}.project-index-item>a{grid-template-columns:36px 1fr;gap:16px;min-height:0;padding:35px 0}.project-index-details,.project-index-link{grid-column:2}}@media (width<=1100px),(height<=719px){.hero-work-transition-track{display:none}.work-transition-target{grid-template:"intro""mobile"/1fr;min-height:0;margin-top:0;padding-top:64px}.work-transition-intro{grid-area:intro}.work-artifact,.work-atom-slot,.work-chip-slot{display:none}.mobile-work-artifacts{grid-area:mobile;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(18px,3vw,32px);display:grid}.mobile-work-artifact{flex-direction:column;justify-content:space-between;min-height:100%;display:flex}.mobile-work-artifacts .transition-product-card{width:min(100%,165px)}}@media (width<=1000px){.work-heading,.experience-heading{grid-template-columns:1fr}.work-heading>p,.experience-heading>p{max-width:50ch}.project-archive{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:35px}.project-index-item>a{grid-template-columns:36px 1fr;gap:16px;min-height:0;padding:35px 0}.project-index-details,.project-index-link{grid-column:2}.career-item{grid-template-columns:56px minmax(240px,.76fr) minmax(340px,1.24fr);gap:32px}.about-heading,.about-content{grid-template-columns:.36fr 1.64fr;gap:42px}}@media (width<=800px){.hero-work-bridge{background:var(--paper)}.hero-work-transition-track{display:none}.work,.v2 .experience,.v2 .about,.v2 .technology{padding:95px 20px}.work-heading,.experience-heading{gap:28px;margin-bottom:70px}.work-heading h2,.experience-heading h2,.technology h2{font-size:clamp(48px,13vw,76px)}.work-projects{padding-top:0}.work-transition-target{grid-template-columns:1fr;grid-template-areas:"intro""mobile";min-height:0;margin:0 0 80px;padding-top:42px;display:grid}.work-transition-intro{grid-column:auto}.work-artifact-slot,.work-chip-slot,.work-atom-slot{display:none}.mobile-work-artifacts{grid-column:1;grid-template-columns:1fr;gap:22px;display:grid}.mobile-work-artifacts .transition-motion-card{width:min(75%,260px);margin-left:auto}.mobile-work-artifacts .transition-product-card{width:145px}.mobile-work-artifact>p{margin-top:20px}.project-archive{display:block}.project-index{padding-bottom:0}.project-preview{display:none}.project-index-item>a{grid-template-columns:40px 1fr;padding:36px 0}.project-group-heading{flex-direction:column;align-items:flex-start;gap:8px}.project-group-heading small{text-align:left}.project-index-item--featured>a{min-height:0}.project-index-details{margin-top:22px}.project-index-item p{font-size:15px}.project-index-details dl{gap:14px}.project-index-link{width:min(100%,180px);margin-top:24px}.project-index-mobile-media{aspect-ratio:4/3;background:#0c1018;grid-column:1/-1;margin:8px 0 0 56px;display:block;overflow:hidden}.project-index-mobile-media>img{object-fit:cover;object-position:top;width:100%;height:100%}.project-index-mobile-media .project-device-scene{min-height:0}.project-index-mobile-media .project-desktop-device{width:90%;padding:5px 5px 10px}.project-index-mobile-media .project-desktop-device-bar{height:10px;padding-bottom:5px;font-size:5px}.project-index-mobile-media .project-desktop-device-bar i{width:3px;height:3px}.study-projects{padding-top:54px}.study-projects-heading{grid-template-columns:1fr;gap:30px}.study-projects-list{grid-template-columns:1fr;gap:14px;margin-top:52px}.study-project-card>a{grid-template-columns:112px 1fr;gap:20px}.study-project-media{height:100px}.study-project-copy h3{font-size:28px}.study-project-copy p{font-size:12px}.study-project-copy small{align-items:flex-end;font-size:8px;line-height:1.4}.career-item{grid-template-columns:1fr;gap:34px;padding:55px 0}.career-index{flex-direction:row;align-items:baseline;min-height:0}.career-index>div{justify-items:end}.career-index>span{font-size:30px}.experience-heading h2{font-size:clamp(44px,11.5vw,64px)}.career-intro h3{font-size:clamp(42px,11.5vw,58px)}.career-intro>p{max-width:32ch;margin-top:24px;font-size:20px}.career-details>p{max-width:none;font-size:16px}.career-details dl{margin-top:34px}.v2 .about{padding-bottom:95px}.about-heading,.about-content{grid-template-columns:1fr;gap:28px}.about-heading h2{font-size:clamp(42px,12vw,58px)}.about-content{margin-top:54px;padding-top:24px}.about-profile{grid-template-columns:1fr 1fr;gap:20px;padding-top:0}.about-profile p{text-align:right}.about-profile .about-personal{text-align:left;grid-column:1/-1;margin-top:10px}.about-story{margin-top:18px}.about-story>.about-lead{font-size:clamp(24px,7vw,30px)}.about-links{grid-template-columns:1fr 1fr;gap:22px;margin-top:42px}.technology-heading{grid-template-columns:1fr;gap:28px}.technology-heading h2{font-size:clamp(40px,11vw,54px)}.technology-heading>p{margin-top:6px}.technology-list{grid-template-columns:1fr;gap:56px;margin-top:58px}.technology-row{grid-template-columns:30px 1fr;gap:18px;padding-top:24px}.technology-category p{margin-top:13px}.technology-specs{margin-top:28px}.technology-specs>div{grid-template-columns:92px 1fr;min-height:54px;padding:15px 0}.technology-specs--stacked>div{grid-template-columns:1fr}.technology-specs dd{font-size:19px}.v2 .contact{min-height:0;padding:95px 20px 22px}.contact-heading{grid-template-columns:1fr;gap:28px}.contact-heading h2{max-width:12ch;font-size:clamp(42px,11.5vw,56px)}.contact-heading>p{margin-top:4px}.contact-body{grid-template-columns:1fr;gap:72px;margin-top:68px;padding-top:24px}.contact-direct{gap:42px}.contact-form{grid-template-columns:1fr;gap:28px}.contact-form-heading{grid-template-columns:1fr;gap:14px;margin-bottom:12px}.contact-form-heading h3{font-size:27px}.contact-field--half{grid-column:1}.contact-submit{grid-template-columns:1fr;gap:14px}.contact-submit button{min-height:58px}.contact-success-dialog{padding:36px 26px 28px}.contact-success-dialog h3{font-size:32px}.contact-footer{grid-template-columns:1fr auto;gap:12px;margin-top:88px}.contact-footer span{grid-area:2/1/auto/3}}@media (prefers-reduced-motion:reduce){.project-preview-layer--active{transition:opacity .18s var(--ease-out);transform:none}.hero-work-bridge{background:var(--paper)}.hero-work-transition-track,.work-artifact-slot,.work-chip-slot,.work-atom-slot{display:none}.mobile-work-artifacts{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.career-item,.about-heading>*,.about-rule,.about-profile>*,.about-story>*,.technology-heading>*,.technology-line,.technology-index,.technology-category,.technology-specs>div,.contact-heading>*,.contact-direct,.contact-form{opacity:1!important;clip-path:none!important;transform:none!important}.contact-success-dialog[open]{animation:none}.hero-work-transition{display:none!important}.work-transition-target,.work-transition-target *{opacity:1!important;transform:none!important}}.v2{background:var(--paper);overflow:clip}.skip-link{z-index:100;color:#fff;background:var(--blue);padding:12px 18px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}.topbar{z-index:20;justify-content:center;width:100%;padding:24px 3vw;font-size:13px;display:flex;position:absolute;inset:0 0 auto}.topbar nav{gap:34px;display:flex}.topbar nav a{align-items:center;display:inline-flex}.intro{position:relative}@media (hover:hover) and (pointer:fine){.topbar nav a:hover{color:var(--blue)}}@media (width<=1000px){.topbar{display:none}}
