@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--paper:#f5f6f8;--ink:#191c23;--muted:#626874;--line:#dce0e7;--blue:#254ce4;--white:#fff;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:5px}a,button{touch-action:manipulation}.wrap{max-width:1200px;margin:auto;padding-left:44px;padding-right:44px}.header{display:flex;align-items:center;justify-content:space-between;min-height:112px;gap:24px}.identity{display:flex;gap:15px;align-items:center}.monogram{font-family:'Manrope',sans-serif;font-weight:800;font-size:35px;letter-spacing:-3px}.monogram span{color:var(--blue)}.identity-name{font-size:14px;font-weight:650;line-height:1.4}.identity-name>span{display:block;font-size:12px;font-weight:400;color:var(--muted)}nav{display:flex;gap:28px;font-size:14px}nav a:hover,.text-link:hover{color:var(--blue)}.header-actions{display:flex;align-items:center;gap:26px}.language{display:flex;gap:2px;background:#e7eaf0;padding:4px;border-radius:6px}.language button{border:0;background:transparent;color:#626874;border-radius:3px;padding:7px 9px;font-size:12px;cursor:pointer}.language button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 1px 3px #0000000d}.contact-nav{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600}.hero{display:grid;grid-template-columns:1fr 300px;gap:68px;padding-top:76px;padding-bottom:74px;align-items:center}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.5px;line-height:1.6;margin:0;color:var(--muted)}.hero .eyebrow{color:var(--blue)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',Arial,sans-serif}h1{font-size:clamp(44px,5.1vw,65px);line-height:1.13;letter-spacing:-3.2px;font-weight:650;margin-top:24px;margin-bottom:24px}h1 em{font-style:normal;color:var(--blue)}.intro{font-size:18px;line-height:1.75;max-width:590px;color:#5a606c;margin-bottom:29px}.hero-actions{display:flex;align-items:center;gap:26px}.button{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:11px;padding:14px 20px;border-radius:5px;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:white}.primary:hover{background:var(--blue)}.text-link{display:flex;align-items:center;gap:13px;font-size:14px;font-weight:500}.download-meta{color:var(--muted);font-size:12px;margin:12px 0 0 2px}.portrait-block{position:relative;align-self:center}.photo{width:100%;aspect-ratio:1/1.14;overflow:hidden;border-radius:5px;background:#d4d4df}.photo img{height:100%;width:100%;object-fit:cover;object-position:50% 28%}.portrait-caption{display:flex;justify-content:space-between;font-size:12px;gap:10px;color:var(--muted);margin-top:13px}.portrait-caption span:last-child{font-size:12px;letter-spacing:.2px}.portrait-note{line-height:1.6;font-size:14px;margin-top:19px;margin-bottom:0;color:var(--muted)}.portrait-note strong{font-weight:500;color:var(--ink)}.current{margin-top:4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:25px;padding-bottom:25px;display:flex;align-items:center;gap:22px}.current-icon{font-size:29px;color:var(--blue)}.current .eyebrow{font-size:12px;letter-spacing:1.3px}.current-title{font-size:17px;font-weight:550;margin:4px 0 3px}.current-detail{font-size:12px;color:var(--muted);margin:0}.circle-link{margin-left:auto;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;width:40px;height:40px}.circle-link:hover{background:white}.section{padding-top:91px;padding-bottom:92px}.section-label{margin-bottom:22px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:36px}h2{font-size:40px;line-height:1.22;letter-spacing:-1.7px;font-weight:600;margin-bottom:0}.section-heading h2{max-width:620px}.section-heading>p{color:var(--muted);max-width:340px;font-size:16px;line-height:1.8;margin:0}.projects{display:grid;grid-template-columns:1fr 1fr;gap:22px}.project{border:1px solid var(--line);border-radius:7px;background:var(--white);overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.project:hover{border-color:#a7b1c5;transform:translateY(-3px)}.project-top{display:flex;justify-content:space-between;align-items:center;padding:30px 30px 25px;min-height:119px}.project-brand{font-family:'Manrope',sans-serif;font-size:38px;letter-spacing:-1.9px;font-weight:750}.project-number{color:#737b8c;font-size:12px}.kairn .project-top{background:#edf0f6}.roumy .project-top{background:#ebefff}.roumy .project-brand{color:#2447c7;letter-spacing:-2px}.dashy .project-top{background:#eaf4f4}.dashy .project-brand{color:#156665;font-size:32px}.sg .project-top{background:#f4edf0}.sg .project-brand{font-size:25px;letter-spacing:-1px}.project-body{padding:29px 30px 23px;flex:1}.project .eyebrow{font-size:12px;letter-spacing:1.1px}.project h3{font-size:23px;letter-spacing:-.65px;margin:12px 0 13px;font-weight:650}.project-description{font-size:16px;color:var(--muted);line-height:1.8;margin-bottom:24px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{background:#f4f5f7;border:1px solid #e9ecf0;border-radius:4px;font-size:12px;color:#606773;padding:6px 9px}.project-bottom{border-top:1px solid #e9ecf0;padding:17px 30px;font-size:14px;font-weight:550}.project-bottom a{display:flex;justify-content:space-between;align-items:center}.project-bottom a:hover{color:var(--blue)}.ongoing{color:var(--muted);font-weight:400}.experience-section{background:#eceff3;border-top:1px solid #e2e6ec;border-bottom:1px solid #e2e6ec}.experience-section .section-heading h2{max-width:560px}.timeline{border-top:1px solid #d5dbe4}.job{padding:28px 0;display:grid;grid-template-columns:165px 1fr 1.2fr;gap:30px;border-bottom:1px solid #d5dbe4}.job-date{font-size:12px;letter-spacing:.5px;color:var(--muted);padding-top:5px;line-height:1.6;margin-bottom:0}.job h3{font-size:18px;letter-spacing:-.4px;margin-bottom:7px;font-weight:650}.job-title p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.job-description{font-size:14px;color:#626874;line-height:1.85;margin:0}.about{display:grid;grid-template-columns:1.2fr 1fr;gap:100px}.about-intro>p:not(.eyebrow){font-size:16px;line-height:1.9;color:var(--muted);margin:26px 0 29px}.education{display:grid;grid-template-columns:1.3fr 1fr;gap:25px;padding-top:24px;border-top:1px solid var(--line)}.education .eyebrow{font-size:12px;margin-bottom:10px}.education div>p:not(.eyebrow){font-size:14px;line-height:1.9;margin:0}.muted{color:var(--muted)}.capabilities{padding-top:39px}.capabilities>div{border-top:1px solid var(--line);padding:23px 0 23px 42px;position:relative}.cap-number{position:absolute;left:0;top:29px;font-size:12px;color:var(--blue)}.capabilities h3{font-size:21px;letter-spacing:-.5px;margin-bottom:10px;font-weight:600}.capabilities p{font-size:16px;line-height:1.8;color:var(--muted);margin:0}.contact-section{background:#1a1d25;color:white;padding-top:72px;padding-bottom:75px}.contact-content{display:flex;justify-content:space-between;align-items:center;gap:40px}.contact-section .eyebrow{font-size:12px;color:#a9b0bd;margin-bottom:19px}.contact-section h2{font-size:45px;font-weight:500}.contact-section p:not(.eyebrow){color:#a9b0bd;font-size:14px;margin:20px 0 0}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:19px}.email-link{display:flex;gap:25px;align-items:center;font-size:20px;border-bottom:1px solid #49505d;padding-bottom:13px}.phone-link{color:#abb2c0;font-size:14px}.light{background:white;color:var(--ink);margin-top:7px}.footer{display:flex;align-items:center;justify-content:space-between;min-height:86px;gap:20px;font-size:12px;color:var(--muted)}.footer a{font-size:20px}.skip{position:fixed;left:20px;top:-80px;background:white;padding:15px;z-index:10}.skip:focus{top:10px}#notification{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--ink);color:white;padding:15px 24px;border-radius:6px;font-size:14px;box-shadow:0 8px 30px #0003;transition:.2s;max-width:calc(100% - 32px);width:max-content;z-index:20}#notification.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1500px){.hero{padding-top:94px;padding-bottom:94px}}
@media(max-width:1000px){.wrap{padding-left:30px;padding-right:30px}.hero{gap:35px;grid-template-columns:1fr 250px;padding-top:55px}h1{font-size:49px;letter-spacing:-2.5px}.header-actions{gap:14px}.contact-nav{display:none}.job{grid-template-columns:130px 1fr 1.1fr;gap:22px}.about{gap:50px}.section-heading{gap:30px}h2{font-size:35px}.email-link{font-size:17px}.contact-section h2{font-size:40px}}
@media(max-width:720px){.wrap{padding-left:23px;padding-right:23px}.header{min-height:87px;gap:14px}.identity{gap:10px}.identity-name{font-size:12px}.identity-name>span{font-size:12px}nav{display:none}.monogram{font-size:31px}.hero{grid-template-columns:1fr;padding-top:41px;padding-bottom:40px;gap:33px}.hero .eyebrow{font-size:12px;letter-spacing:1px}h1{font-size:45px;line-height:1.14;letter-spacing:-2px;margin-top:20px}.intro{font-size:16px;line-height:1.8}.hero-actions{gap:20px;flex-wrap:wrap}.button{font-size:14px;padding:14px 17px}.text-link{font-size:14px}.portrait-block{display:grid;grid-template-columns:105px 1fr;grid-template-rows:auto auto;column-gap:21px}.photo{grid-row:1/3;aspect-ratio:1/1.08}.portrait-caption{display:block;margin-top:12px;align-self:end}.portrait-caption span{display:block;margin-bottom:5px}.portrait-note{font-size:12px;margin-top:4px;align-self:start}.current{gap:13px;padding-top:22px;padding-bottom:22px;margin-left:23px;margin-right:23px;padding-left:0;padding-right:0}.current .eyebrow{font-size:12px}.current-title{font-size:16px;line-height:1.6}.current-detail{font-size:12px;line-height:1.6}.current-icon{display:none}.circle-link{width:34px;height:34px}.section{padding-top:58px;padding-bottom:58px}.section-label{font-size:12px;margin-bottom:17px}h2{font-size:32px;letter-spacing:-1.3px}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:19px;max-width:none;font-size:14px}.projects{grid-template-columns:1fr;gap:18px}.project-top{padding:24px;min-height:105px}.project-body{padding:25px 24px 23px}.project-bottom{padding:17px 24px}.project h3{font-size:23px}.project-description{font-size:16px}.job{grid-template-columns:1fr;padding:25px 0;gap:10px}.job-date{font-size:12px}.job h3{font-size:19px}.job-description{font-size:14px}.job-title p{font-size:12px}.about{grid-template-columns:1fr;gap:23px}.about-intro>p:not(.eyebrow){font-size:16px}.capabilities{padding-top:0}.education{gap:20px}.contact-section{padding-top:51px;padding-bottom:51px}.contact-content{display:block}.contact-section h2{font-size:37px}.contact-links{margin-top:32px}.email-link{font-size:18px}.footer{flex-wrap:wrap;gap:10px;padding-top:23px;padding-bottom:23px}.footer span:first-child{width:calc(100% - 40px)}.footer span:nth-child(2){order:3}.footer a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.experience-detail{margin:20px 0 24px;border-top:1px solid var(--line);padding-top:16px}
.experience-detail summary{font-size:14px;line-height:1.6;color:var(--blue);font-weight:550;cursor:pointer;list-style-position:outside;margin-left:17px;padding-left:3px}
.experience-detail summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.experience-detail dl{margin:23px 0 0}.experience-detail dl>div+div{margin-top:20px}
.experience-detail dt{font-size:14px;font-weight:650;line-height:1.6;color:var(--ink);margin-bottom:5px}
.experience-detail dd{font-size:16px;line-height:1.8;color:var(--muted);margin:0}
.source-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:23px}.source-links a{display:flex;gap:7px;align-items:center;color:var(--blue);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.job-content{min-width:0}.job-content .experience-detail{margin-bottom:0}.job-content .experience-detail dd{font-size:14px;line-height:1.85}
.projects{align-items:start}
@media(max-width:720px){.experience-detail summary{padding-top:4px;padding-bottom:4px}.job-content .experience-detail dd{font-size:16px}.email-link{max-width:100%;gap:12px;overflow-wrap:anywhere}}
.cipher .project-top{background:#eeeafe}.cipher .project-brand{color:#5b36c9;font-size:32px}
.paywithz .project-top{background:#e8f5ef}.paywithz .project-brand{color:#087a57;font-size:32px}
