:root{--bg:#fafafa;--ink:#141414;--muted:#676767;--line:#dedede;--accent:#b8f769;--page:1440px;--pad:5vw}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #376df5;outline-offset:6px}::selection{background:var(--accent);color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--ink);color:white;padding:15px;transform:translateY(-200%)}.skip-link:focus{transform:none}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--ink);transform-origin:left;transform:scaleX(0);z-index:60}.site-header{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:var(--page);margin:auto;padding:26px var(--pad);border-bottom:1px solid var(--line)}.brand{font-size:18px;font-weight:650;letter-spacing:-.6px;white-space:nowrap}.brand span{display:block;font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:5px}nav{display:flex;gap:32px;font-size:14px}nav a{padding:9px 0;position:relative}nav a:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .25s}nav a:hover:after,nav a[aria-current]:after{transform:scaleX(1)}.contact,.button{background:var(--ink);color:white;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;font-weight:500;transition:background .25s,transform .25s,box-shadow .25s;border:1px solid var(--ink);cursor:pointer}.contact{padding:12px 22px;font-size:14px;white-space:nowrap}.button{padding:17px 27px;font-size:15px;line-height:1.4;min-height:52px}.contact:hover,.button:hover{background:#353535;transform:translateY(-3px);box-shadow:0 8px 20px #00000012}.button-light{background:transparent;color:var(--ink);border-color:#c5c5c5}.button-light:hover{background:#e8e8e8}.hero{padding:96px var(--pad) 28px;max-width:var(--page);margin:auto}.eyebrow{font-size:12px;line-height:1.6;letter-spacing:2px;font-weight:600}h1{font-size:clamp(48px,7.8vw,114px);line-height:1.06;letter-spacing:-.068em;font-weight:600;margin:26px 0 40px}.hero-muted{color:#858585}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:35px}.hero-bottom p{font-size:21px;line-height:1.6;max-width:550px;margin:0;letter-spacing:-.35px}.hero-bottom .button{flex-shrink:0}.hero-meta{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:22px;margin-top:67px;color:var(--muted);font-size:12px;line-height:1.6}.section{padding:94px var(--pad);max-width:var(--page);margin:auto}.section-heading{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:38px}.section-heading h2{margin-bottom:0}.section-aside{color:var(--muted);font-size:14px;line-height:1.6;text-align:right}h2{font-size:clamp(36px,4.3vw,62px);line-height:1.1;letter-spacing:-.055em;font-weight:550;margin:21px 0 38px}h3{font-size:26px;line-height:1.2;letter-spacing:-.8px;font-weight:550}.project-feature{background:#111511;color:#fff;border-radius:26px;overflow:hidden;display:grid;grid-template-columns:1fr 1.1fr;min-height:570px;position:relative}.project-copy{padding:60px 0 60px 54px;position:relative;z-index:2;max-width:550px}.project-number{font-size:12px;line-height:1.6;letter-spacing:1.7px;font-weight:500;color:#b4bbb4}.project-feature h3,.project-card h3{font-size:clamp(35px,4.2vw,60px);letter-spacing:-.06em;line-height:1.08;margin:27px 0 25px}.project-copy p{font-size:17px;line-height:1.65;color:#b7bcb7;margin:0 0 25px;max-width:370px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.tags span{border:1px solid #d5d5d5;padding:7px 11px;border-radius:99px;color:#555;font-size:12px;line-height:1.3}.project-feature .tags span{color:#c0c7c0;border-color:#394239}.project-link{display:inline-flex;border-bottom:1px solid currentColor;padding-bottom:7px;margin-top:30px;font-size:14px;font-weight:500;transition:opacity .2s,transform .2s}.project-link:hover{opacity:.7;transform:translateY(-2px)}.project-feature .project-link{color:var(--accent)}.project-visual{position:relative;min-height:570px;overflow:hidden;background:radial-gradient(ellipse at 55% 60%,#314c2838,transparent 68%)}.phone-shot{position:absolute;width:240px;height:auto;border-radius:28px;border:5px solid #292f29;box-shadow:0 32px 60px #0008;transition:transform .75s cubic-bezier(.2,.7,.2,1)}.shot-back{left:7%;top:104px;transform:rotate(-9deg)}.shot-front{left:44%;top:52px;transform:rotate(9deg)}.project-feature:hover .shot-back{transform:rotate(-12deg) translateY(-10px)}.project-feature:hover .shot-front{transform:rotate(6deg) translateY(-12px)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.project-card{min-height:435px;border-radius:26px;padding:43px;overflow:hidden;display:flex;flex-direction:column;align-items:start;position:relative}.project-card h3{font-size:44px;margin-top:22px;margin-bottom:20px}.project-card p{font-size:16px;line-height:1.6;margin:0;max-width:420px}.project-card .project-link{margin-top:auto;padding-top:28px}.tetris{background:#e7eaff;color:#222452}.tetris .project-number{color:#585c85}.bitchat{background:#e8edeb;color:#172720}.bitchat .project-number{color:#597066}.platform-list,.protocols{display:flex;flex-wrap:wrap;gap:7px;margin-top:25px;font-size:12px}.platform-list span,.protocols span{background:#ffffff80;padding:8px 12px;border-radius:8px}.section-foot{display:flex;justify-content:center;margin-top:38px}.text-link{display:inline-flex;background:none;border:0;border-bottom:1px solid currentColor;padding:0 0 6px;font-size:14px;line-height:1.6;font-weight:500;cursor:pointer;transition:opacity .2s}.text-link:hover{opacity:.65}.approach{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.approach-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:65px;margin-top:10px}.approach-copy{padding-top:17px}.approach-copy p{font-size:18px;line-height:1.7;color:#595959;margin:0 0 22px}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:52px}.cap-number{color:#757575;font-size:12px}.capability-grid h3{font-size:20px;letter-spacing:-.5px;margin:19px 0 13px}.capability-grid p{color:#666;font-size:15px;line-height:1.65;max-width:340px;margin:0}.experience-list{border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:28% 1fr;gap:40px;padding:35px 0;border-bottom:1px solid var(--line)}.experience-date{color:#656565;font-size:12px;line-height:1.7;letter-spacing:1px;padding-top:5px}.experience-row h3{margin:0 0 8px;font-size:28px}.experience-row p{font-size:16px;line-height:1.65;color:#666;max-width:620px;margin:14px 0 0}.experience-row p.role,.role{color:#333;font-weight:500;font-size:14px}.writing-strip{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--line)}.writing-strip>div:last-child{align-self:center;max-width:390px}.writing-strip p{font-size:18px;line-height:1.7;color:#666;margin:0 0 24px}.writing-strip h2{margin-bottom:0}.footer{background:#121212;color:white;padding:75px var(--pad) 28px}.footer-top,.footer-bottom{max-width:1296px;margin:auto}.footer-top{display:flex;justify-content:space-between;gap:50px;padding-bottom:70px}.footer .eyebrow{color:#aaa}.footer-title{display:block;font-size:clamp(40px,5.5vw,78px);line-height:1.07;letter-spacing:-.06em;margin-top:20px;transition:color .3s}.footer-title:hover{color:var(--accent)}.footer-contact{align-self:end;font-size:16px;line-height:1.7}.footer-contact>a{border-bottom:1px solid #707070;padding-bottom:6px}.footer-contact p{font-size:14px;color:#aaa;margin:25px 0 0}.footer-bottom{display:flex;justify-content:space-between;gap:22px;align-items:center;border-top:1px solid #363636;padding-top:25px;font-size:12px;color:#aaa}.footer-name{color:white;font-size:14px}.socials{display:flex;flex-wrap:wrap;gap:25px}.social{font-size:14px;transition:color .2s}.social:hover{color:var(--accent)}.page-intro{padding-top:80px;padding-bottom:68px}.page-intro h1{font-size:clamp(48px,7vw,100px)}.intro-text{font-size:21px;line-height:1.6;max-width:680px;color:#666;letter-spacing:-.3px;margin:0}.compact-section{padding-top:0}.project-wide{display:flex;justify-content:space-between;gap:40px;padding:48px 0;border-bottom:1px solid var(--line)}.project-wide h3{font-size:35px;margin:18px 0}.project-wide p{max-width:650px;line-height:1.7;color:#666;font-size:17px}.project-actions{display:flex;flex-direction:column;align-items:start;align-self:center;gap:20px;flex-shrink:0;max-width:200px}.about-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:90px}.monogram{font-size:clamp(80px,13vw,185px);letter-spacing:-.08em;font-weight:650;color:#d7d7d7;display:block;line-height:1}.about-side>p{font-size:16px;line-height:1.7;color:#777;margin:30px 0}.about-side .socials{gap:20px}.about-side .social:hover{color:#376df5}.prose{max-width:730px}.prose h2{margin-top:0;font-size:clamp(34px,3.5vw,50px)}.prose h3{font-size:24px;margin:36px 0 17px}.prose p{font-size:18px;line-height:1.8;color:#5e5e5e;margin:0 0 22px}.resume-actions{display:flex;gap:28px;flex-wrap:wrap;align-items:center;margin-top:35px}.resume-facts{display:flex;flex-wrap:wrap;gap:15px 25px;font-size:14px;color:#666;border-top:1px solid var(--line);padding-top:25px;margin-top:40px}.resume-layout{display:grid;grid-template-columns:1fr 2.2fr;gap:85px}.resume-sidebar{border-top:1px solid var(--line);padding-top:28px;align-self:start}.resume-sidebar h2{font-size:25px;letter-spacing:-.6px;margin:0 0 26px}.resume-sidebar h3{font-size:16px;letter-spacing:-.2px;margin:30px 0 9px}.resume-sidebar p{font-size:15px;line-height:1.7;color:#666;margin:0}.resume-sidebar a{font-size:14px;overflow-wrap:anywhere;border-bottom:1px solid #aaa}.resume-main section{margin-bottom:50px}.resume-main h2{font-size:35px;letter-spacing:-1.2px;margin-top:0}.resume-main h3{font-size:23px}.resume-main p,.resume-main li{font-size:16px;line-height:1.75;color:#5f5f5f}.resume-main .role{color:#333;font-size:15px}.resume-job{padding:25px 0;border-top:1px solid var(--line)}.job-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.job-heading h3{margin:0}.job-heading>span{font-size:13px;color:#777}.resume-job ul{padding-left:20px}.resume-job li{padding-left:5px;margin-bottom:9px}.blog-empty{background:#f0f0f0;padding:65px;border-radius:25px;min-height:330px}.empty-index{font-family:monospace;font-size:13px;color:#666;letter-spacing:1px}.blog-empty h2{font-size:clamp(30px,3.8vw,48px);margin:30px 0 18px}.blog-empty p{font-size:17px;line-height:1.7;color:#666;max-width:560px;margin-bottom:27px}.breadcrumb{display:inline-flex;font-size:14px;border-bottom:1px solid #aaa;margin-bottom:35px;padding-bottom:5px}.case-meta{display:flex;gap:65px;border-top:1px solid var(--line);padding-top:28px;margin-top:40px}.case-meta>div{display:flex;flex-direction:column;gap:10px}.case-meta span{font-size:12px;color:#777;letter-spacing:1px}.case-meta strong{font-size:15px;font-weight:500}.case-gallery{display:flex;justify-content:center;gap:40px;border-radius:25px;background:#111511;padding:65px 45px;overflow:hidden}.case-gallery img{width:26%;max-width:255px;height:auto;align-self:start;border-radius:25px;border:4px solid #333;box-shadow:0 20px 40px #0005}.case-gallery img:nth-child(2){margin-top:35px}.case-layout{display:grid;grid-template-columns:1fr 1.45fr;gap:90px;margin-top:80px}.case-title h2{margin-top:0}.case-links{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin-top:35px}.platform-stage{background:#e7eaff;border-radius:25px;padding:70px;color:#222452}.platform-wordmark{font-size:clamp(50px,11vw,150px);line-height:1.15;letter-spacing:-.08em;font-weight:600;margin:28px 0}.platform-wordmark span{color:#646cee}.platform-stage-list{display:flex;gap:25px;flex-wrap:wrap;font-size:16px}.contribution-stage{background:#e8edeb;padding:65px;border-radius:25px}.contribution-stage h2{color:#172720;font-size:clamp(36px,5vw,72px);margin-bottom:30px}.contribution-stage .tags span{border-color:#bfcac4;color:#375143}[data-tilt]{transition:box-shadow .4s;transform-style:preserve-3d}[data-tilt]:hover{box-shadow:0 24px 50px #00000010}.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal.visible{opacity:1;transform:translateY(0)}.hero-enter{animation:enter .9s cubic-bezier(.2,.7,.2,1) both}.hero-enter:nth-child(2){animation-delay:.08s}.hero-enter:nth-child(3){animation-delay:.16s}.hero-enter:nth-child(4){animation-delay:.24s}.hero-enter:nth-child(5){animation-delay:.3s}@keyframes enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1440px){:root{--pad:72px}}@media(max-width:1100px){nav{gap:24px}.project-feature{grid-template-columns:1fr 1fr;min-height:530px}.project-copy{padding:45px 0 45px 38px}.project-visual{min-height:530px}.phone-shot{width:205px}.shot-back{left:2%;top:120px}.shot-front{left:42%;top:68px}.project-card{padding:35px}.project-card h3{font-size:39px}.approach-layout{gap:40px}.resume-layout,.case-layout,.about-layout{gap:50px}.case-gallery{gap:26px}}
@media(max-width:760px){:root{--pad:6vw}.site-header{padding-top:22px;padding-bottom:18px;flex-wrap:wrap;gap:18px}.brand{font-size:17px}.contact{padding:10px 18px;font-size:13px}nav{order:3;width:100%;justify-content:space-between;gap:14px;font-size:14px}.hero{padding-top:65px}h1{font-size:clamp(42px,9.4vw,70px);line-height:1.1;margin:24px 0 30px}.hero-bottom{display:block}.hero-bottom p{font-size:18px;max-width:480px}.hero-bottom .button{margin-top:25px}.hero-meta{margin-top:48px}.hero-meta span:last-child{display:none}.section{padding-top:65px;padding-bottom:65px}.section-heading{display:block;margin-bottom:30px}.section-heading>.text-link{margin-top:20px}.section-aside{display:none}h2{font-size:clamp(32px,6.7vw,48px)}.project-feature{grid-template-columns:1fr;min-height:0;border-radius:21px}.project-copy{padding:35px 30px 12px;max-width:none}.project-feature h3{font-size:45px;margin-top:22px}.project-copy p{max-width:450px}.project-visual{min-height:400px;margin-top:18px}.phone-shot{width:190px}.shot-back{left:calc(50% - 160px);top:65px}.shot-front{left:calc(50% - 5px);top:18px}.project-grid{grid-template-columns:1fr;gap:18px;margin-top:18px}.project-card{min-height:380px;padding:33px;border-radius:21px}.project-card h3{font-size:40px}.approach-layout{grid-template-columns:1fr;gap:0}.approach-layout h2{margin-bottom:15px}.approach-copy p{font-size:17px}.capability-grid{grid-template-columns:1fr;gap:35px;margin-top:42px}.capability-grid>div{border-top:1px solid var(--line);padding-top:20px}.capability-grid h3{margin-top:13px}.capability-grid p{max-width:none}.experience-row{grid-template-columns:1fr;gap:15px;padding:30px 0}.experience-row h3{font-size:25px}.writing-strip{grid-template-columns:1fr;gap:22px}.writing-strip p{font-size:17px}.footer{padding-top:60px}.footer-top{display:block;padding-bottom:45px}.footer-title{font-size:clamp(42px,8.5vw,64px)}.footer-contact{margin-top:45px;font-size:15px;overflow-wrap:anywhere}.footer-bottom{flex-wrap:wrap;gap:23px}.footer-bottom .socials{gap:20px;order:3;width:100%}.page-intro{padding-top:60px;padding-bottom:50px}.page-intro h1{font-size:clamp(43px,9vw,70px)}.intro-text{font-size:18px}.compact-section{padding-top:0}.project-wide{display:block;padding:35px 0}.project-wide h3{font-size:29px;overflow-wrap:anywhere}.project-wide p{font-size:16px}.project-actions{margin-top:25px;flex-direction:row;max-width:none;flex-wrap:wrap}.about-layout{grid-template-columns:1fr;gap:48px}.about-side{display:none}.prose p{font-size:17px}.resume-actions{gap:22px;align-items:start;flex-direction:column}.resume-facts{font-size:14px;gap:12px 20px}.resume-layout{grid-template-columns:1fr;gap:38px}.resume-sidebar{order:2}.resume-main h2{font-size:30px}.job-heading{display:block}.job-heading>span{display:block;margin-top:10px}.blog-empty{padding:35px 28px;min-height:0}.blog-empty h2{font-size:32px}.blog-empty p{font-size:16px}.case-meta{gap:22px;flex-wrap:wrap}.case-meta>div{min-width:110px}.case-meta strong{font-size:14px}.case-gallery{padding:35px 20px;gap:16px}.case-gallery img{width:44%;border-radius:15px;border-width:3px}.case-gallery img:last-child{display:none}.case-layout{grid-template-columns:1fr;gap:15px;margin-top:50px}.case-title h2{margin-bottom:15px}.platform-stage{padding:38px 27px}.platform-wordmark{font-size:clamp(45px,12vw,80px)}.platform-stage-list{gap:16px;font-size:14px}.contribution-stage{padding:38px 28px}.contribution-stage h2{font-size:37px}.eyebrow{letter-spacing:1.5px}.case-links{gap:22px}.reading-progress{height:2px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-ready .reveal{opacity:1;transform:none}[data-tilt]{transform:none!important}.project-feature:hover .shot-back{transform:rotate(-9deg)}.project-feature:hover .shot-front{transform:rotate(9deg)}}
@media print{body{background:white;color:black}.site-header,.footer,.reading-progress,.skip-link,.resume-actions{display:none}.page-intro{padding:0}.page-intro h1{font-size:36pt;margin:15pt 0}.intro-text{font-size:14pt}.section{padding:0;max-width:none}.resume-layout{display:block;margin-top:30pt}.resume-sidebar{margin-top:25pt;break-inside:avoid}.resume-main h2{font-size:20pt}.resume-main h3{font-size:15pt}.resume-main p,.resume-main li{font-size:11pt}.resume-job{break-inside:avoid}.motion-ready .reveal{opacity:1;transform:none}.hero-enter{animation:none}.tags{display:none}.resume-main section{margin-bottom:20pt}a{color:black}}
