@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/manrope-latin.woff2) format("woff2")}@font-face{font-family:Manrope Fallback;src:local("Arial");font-style:normal;font-weight:400 599;size-adjust:99.7929%;ascent-override:106.8212%;descent-override:30.0623%;line-gap-override:0%}@font-face{font-family:Manrope Fallback;src:local("Arial Bold");font-style:normal;font-weight:600 799;size-adjust:99.6073%;ascent-override:107.0203%;descent-override:30.1183%;line-gap-override:0%}@font-face{font-family:Manrope Fallback;src:local("Arial Bold");font-style:normal;font-weight:800;size-adjust:101.199%;ascent-override:105.3371%;descent-override:29.6446%;line-gap-override:0%}@font-face{font-family:DM Sans Fallback;src:local("Arial");font-style:normal;font-weight:400 599;size-adjust:104.1365%;ascent-override:95.2596%;descent-override:29.7686%;line-gap-override:0%}@font-face{font-family:DM Sans Fallback;src:local("Arial Bold");font-style:normal;font-weight:600 699;size-adjust:100.5758%;ascent-override:98.6321%;descent-override:30.8225%;line-gap-override:0%}@font-face{font-family:DM Sans Fallback;src:local("Arial Bold");font-style:normal;font-weight:700;size-adjust:102.2012%;ascent-override:97.0634%;descent-override:30.3323%;line-gap-override:0%}:root{color:#e9edf3;background:#080d16;font-synthesis:none;scroll-behavior:smooth}*{box-sizing:border-box}html,body{overflow-x:clip}body{margin:0;min-width:320px}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:#3e5bbb;color:#fff}section{scroll-margin-top:88px}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:#e9edf3;color:#080d16;padding:12px 18px}.skip-link:focus{top:10px}:focus-visible{outline:2px solid #92aeff;outline-offset:4px}.site-header{height:76px;position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;gap:34px;padding:0 clamp(22px,4vw,76px);border-bottom:1px solid transparent;transition:background .35s,border-color .35s,box-shadow .35s}.site-header.scrolled{background:#080d16e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-color:#263042;box-shadow:0 12px 35px #0000001f}.brand{display:flex;gap:10px;align-items:center;flex:none}.brand-dot{color:#7695f5}.desktop-nav{display:flex;gap:clamp(12px,1.8vw,30px);justify-content:center;flex:1}.desktop-nav a,.header-link,.download-link{white-space:nowrap}.desktop-nav a{color:#aab4c2;transition:color .2s}.desktop-nav a:hover,.header-link:hover{color:#fff}.header-actions{display:flex;gap:18px;align-items:center}.header-link,.download-link{display:inline-flex;gap:5px;align-items:center}.download-link{border:1px solid #52617a;padding:11px 13px;transition:border-color .2s,background .2s}.download-link:hover{background:#182337;border-color:#889cd0}.menu-toggle{display:none;background:none;border:0;color:#fff;padding:8px}.mobile-menu{display:none}.hero{min-height:760px;height:100svh;max-height:1080px;position:relative;overflow:hidden;border-bottom:1px solid #263144;background:radial-gradient(ellipse at 75% 56%,#182440,#0c1524 35%,#080d16 72%)}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.48;background-image:linear-gradient(rgba(132,155,193,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(132,155,193,.08) 1px,transparent 1px);background-size:74px 74px;-webkit-mask-image:linear-gradient(to right,transparent 13%,#000 100%);mask-image:linear-gradient(to right,transparent 13%,#000 100%);pointer-events:none}.hero:after{content:"";position:absolute;width:44vw;height:44vw;border:1px solid #263750;border-radius:50%;right:-8vw;top:13%;opacity:.55;pointer-events:none}.hero-topline,.hero-footer{position:absolute;left:clamp(22px,4vw,76px);right:clamp(22px,4vw,76px);display:flex;justify-content:space-between;align-items:center;color:#9eabbf}.hero-topline{top:108px}.hero-topline>span:first-child{display:flex;align-items:center;gap:9px}.status-pulse{width:6px;height:6px;border-radius:50%;background:#94c7b2;box-shadow:0 0 0 5px #94c7b21a}.hero-footer{bottom:34px;border-top:1px solid #354154;padding-top:20px}.hero-footer a{display:inline-flex;gap:12px;align-items:center;color:#d7dce5}.hero-content{width:100%;position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.36fr) minmax(300px,.64fr);gap:3vw;align-items:center;padding:120px clamp(22px,4vw,76px) 86px;height:100%}.hero-copy{align-self:center;z-index:2}.eyebrow{color:#829df2}.hero-eyebrow{display:flex;gap:15px;align-items:center;color:#aab8cb;margin:0 0 25px}.rule{display:inline-block;height:1px;width:40px;background:#7b98f3}.small-cross{color:#6687ec}.hero h1{margin:0;white-space:nowrap}.hero h1 em{font-style:normal;color:#8ca6fa}.period{color:#c8d5ff}.hero-bottom{display:flex;gap:35px;justify-content:space-between;align-items:end;margin-top:58px;max-width:790px}.hero-kicker{color:#a0aec1;text-transform:uppercase}.hero-kicker span{color:#6286fc;margin:0 4px}.hero h2{margin:17px 0}.hero-description{color:#b1bccb;max-width:450px;margin:0}.hero-ctas{display:flex;flex-direction:column;align-items:flex-start;gap:17px;flex:none}.primary-button{background:#7795f4;color:#07101f;padding:15px 20px;display:inline-flex;align-items:center;gap:28px;transition:background .2s,transform .2s}.primary-button:hover{background:#a2b8ff;transform:translateY(-3px)}.text-button{display:inline-flex;gap:8px;align-items:center;color:#c6cfdd}.text-button:hover{color:#fff}.hero-portrait{height:min(60vh,620px);min-height:430px;position:relative;align-self:center;margin-top:22px}.portrait-frame{position:absolute;top:20px;right:25px;bottom:35px;left:30px;border:1px solid #7186ae;overflow:hidden;background:#142039;clip-path:polygon(8% 0,100% 0,100% 90%,92% 100%,0 100%,0 8%)}.portrait-frame:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(255,255,255,.16);z-index:2;pointer-events:none;clip-path:inherit}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 35%;filter:saturate(.62) contrast(1.08) brightness(.88);transform:scale(1.04)}.portrait-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,rgba(5,13,25,.52),transparent 45%),linear-gradient(90deg,#12203747);mix-blend-mode:multiply}.portrait-index{position:absolute;left:0;bottom:5px;z-index:2;display:flex;gap:14px;align-items:center;background:#e4ebf6;color:#142034;padding:12px 14px}.portrait-index span{color:#57677d}.portrait-corner{position:absolute;right:0;top:0;z-index:2;background:#101a2b;border:1px solid #465979;padding:13px;color:#b8c4d4}.section-label{display:flex;justify-content:space-between;border-top:1px solid #394355;padding-top:14px;color:#93a3b8}.intro-section,.projects-intro{padding:120px clamp(22px,7vw,130px);background:#0a111c}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;margin-top:90px}.intro-grid h2,.projects-intro h2{margin:0}.intro-grid h2 em,.projects-intro h2 em{font-style:normal;color:#8299e3}.intro-grid p{color:#b3bfce;margin:0 0 20px}.inline-link{display:inline-flex;align-items:center;gap:10px;color:#dce6fb;border-bottom:1px solid #6078ad;padding-bottom:7px;margin-top:14px;transition:gap .2s}.inline-link:hover{gap:18px}.projects-intro{background:#0d1624;padding-bottom:70px}.projects-intro-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:end;margin-top:74px}.projects-intro-grid>p{color:#aebccd;max-width:370px;margin:0 0 6px}@media(max-width:1250px){.desktop-nav{gap:12px}.header-actions{gap:10px}.header-link{display:none}.hero-bottom{flex-direction:column;align-items:start;gap:22px;margin-top:40px}.hero-ctas{flex-direction:row;align-items:center}}@media(max-width:950px){.desktop-nav,.header-actions{display:none}.menu-toggle{display:block;margin-left:auto}.site-header{height:70px}.mobile-menu{display:block;position:fixed;z-index:40;top:70px;left:0;right:0;background:#101a2a;border-bottom:1px solid #34415a;padding:22px;transform:translateY(-120%);opacity:0;visibility:hidden;transition:transform .3s,opacity .3s,visibility .3s}.mobile-menu.open{transform:translateY(0);opacity:1;visibility:visible}.mobile-menu nav{display:grid}.mobile-menu nav a{padding:12px 0;border-bottom:1px solid #2e3c50;display:flex;align-items:center;gap:18px}.mobile-menu nav a span{color:#8097df}.mobile-menu nav a svg{margin-left:auto}.mobile-menu>a{display:flex;justify-content:space-between;padding:24px 0 4px}.hero-content{grid-template-columns:1.1fr .9fr}.hero-portrait{height:48vh;min-height:370px}.portrait-frame{top:15px;right:5px;bottom:35px;left:15px}.intro-grid{gap:35px}}@media(max-width:700px){.hero{height:auto;min-height:0;max-height:none}.hero-topline{top:95px}.hero-topline>span:last-child{display:none}.hero-content{display:flex;flex-direction:column;align-items:stretch;padding-top:156px;padding-bottom:106px;gap:33px}.hero-eyebrow{gap:8px}.rule{width:20px}.hero-bottom{margin-top:30px}.hero-ctas{margin-top:6px}.hero-portrait{width:100%;height:390px;min-height:0;margin:0;max-width:500px}.portrait-frame{top:0;right:16px;bottom:28px;left:16px}.portrait-index{bottom:0}.portrait-corner{right:0}.hero-footer{bottom:27px}.hero-footer>span{display:none}.hero-footer a{margin-left:auto}.intro-section,.projects-intro{padding:70px 22px}.intro-grid,.projects-intro-grid{display:block;margin-top:50px}.intro-grid h2,.projects-intro h2{margin-bottom:30px}.section-label span:last-child{display:none}.projects-intro-grid>p{margin-top:28px}}@media(max-width:380px){.hero-ctas{flex-wrap:wrap}.hero-portrait{height:330px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.development{display:inline-flex;align-items:center;gap:8px;color:#a8c7bc}.development>span{width:6px;height:6px;background:#8dbfae;border-radius:50%}.experience-tools>span{color:#819cec}@keyframes detailIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.experience-section,.skills-section,.os-section,.education-section,.contact-section{padding:112px clamp(22px,7vw,130px);background:#0a111c}.section-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end;margin:75px 0 65px}.section-heading h2,.os-intro h2,.education-grid h2{margin:14px 0 0}.section-heading h2 em,.os-intro h2 em,.education-grid h2 em{font-style:normal;color:#849cec}.section-heading>p{color:#aebccd;max-width:400px;margin:0 0 7px}.experience-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;border-top:1px solid #37465b;padding-top:36px}.experience-rail{display:flex;flex-direction:column}.experience-nav-item{position:relative;display:grid;grid-template-columns:20px 25px 1fr 20px;align-items:center;gap:18px;min-height:116px;padding:13px 12px 13px 0;text-align:left;color:#8593a6;background:none;border:0;border-bottom:1px solid #2a384c;transition:color .25s}.experience-nav-item:hover,.experience-nav-item.active{color:#e8f0fb}.experience-line{width:2px;height:100%;background:#27384e;position:relative}.experience-nav-item.active .experience-line{background:#8da9fa;box-shadow:0 0 14px #607bcb}.experience-index{align-self:center;color:#8299e4}.experience-nav-item strong{display:block}.experience-nav-item small{display:block;margin-top:8px}.experience-nav-item svg{opacity:0;transform:translate(-8px);transition:opacity .25s,transform .25s}.experience-nav-item.active svg,.experience-nav-item:hover svg{opacity:1;transform:translate(0)}.experience-detail{background:#101d2e;border:1px solid #35455d;padding:40px 45px;min-height:430px;animation:detailIn .4s ease}.experience-detail-top{display:flex;justify-content:space-between;color:#92a6c5}.current-pill{color:#a4d3bf;background:#204235;border:1px solid #3d6a59;padding:7px 10px}.experience-detail h3{margin:32px 0 7px}.experience-role{color:#93aaf2;margin:0}.experience-description{color:#adbbcb;max-width:520px;margin:28px 0}.experience-tasks{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}.experience-tasks>div{display:flex;gap:9px;color:#d4deeb}.task-mark{width:5px;height:5px;border:1px solid #8fa8f1;transform:rotate(45deg);margin-top:7px;flex:none}.experience-tools{display:flex;align-items:center;gap:20px;border-top:1px solid #324359;margin-top:32px;padding-top:18px}.experience-tools>div{display:flex;gap:8px;flex-wrap:wrap}.experience-tools>div span{color:#c3d0e2;border:1px solid #42546c;padding:6px 8px}.skills-section{background:#0d1725}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #35465d;border-bottom:1px solid #35465d}.skill-group{padding:26px 28px 38px 0;min-height:370px}.skill-group+.skill-group{border-left:1px solid #35465d;padding-left:28px}.skill-group-top{display:flex;justify-content:space-between;align-items:center;color:#8ca5ed}.skill-group h3{margin:56px 0 13px}.skill-group p{color:#9baec1;min-height:67px;margin:0 0 25px}.skill-tags{display:flex;gap:7px;flex-wrap:wrap}.skill-tags span{padding:7px 9px;background:#17263b;color:#c8d5e4;border:1px solid #30455e}.tools-band{display:grid;grid-template-columns:.55fr 1.45fr;gap:40px;padding-top:50px}.tools-band p{color:#b5c2d0;margin:12px 0}.tools-list{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.tools-list span{border:1px solid #465773;color:#d2dcea;padding:11px 14px;transition:background .2s,transform .2s}.tools-list span:hover{background:#223550;transform:translateY(-3px)}.os-section{background:#08111e}.os-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:8vw;align-items:center;margin-top:80px}.os-intro>p:last-child{color:#aebfce;max-width:440px;margin-top:27px}.os-interface{border:1px solid #40536b;background:#101d2b;box-shadow:0 40px 80px #0003}.os-interface-top{display:flex;justify-content:space-between;padding:17px 20px;border-bottom:1px solid #36495f;color:#b9cbe0}.os-symbol{color:#86a4f3;margin-right:7px}.os-interface-top>span:last-child{color:#8094ac}.os-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #36495f}.os-tabs button{background:none;border:0;border-right:1px solid #36495f;color:#93a5b9;padding:17px 10px;transition:background .2s,color .2s}.os-tabs button:last-child{border-right:0}.os-tabs button span{display:block;color:#7189a5;margin-bottom:8px}.os-tabs button.active,.os-tabs button:hover{background:#1e314d;color:#eef4fb}.os-tabs button.active{box-shadow:inset 0 -2px #88a5f8}.os-panel{padding:40px;min-height:250px;animation:detailIn .3s ease}.os-panel>span{color:#89a5f4}.os-panel h3{margin:17px 0 10px}.os-panel p{color:#a6b8cb;max-width:440px;margin:0}.os-panel>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:29px}.os-panel>div span{color:#cbd9ea;border:1px solid #435875;padding:8px 10px}.os-interface-bottom{display:flex;align-items:center;gap:13px;padding:17px 20px;border-top:1px solid #36495f;color:#89a0bc}.os-connector{height:1px;flex:1;background:#445d85;position:relative}.os-connector:after{content:"";position:absolute;right:0;top:-3px;height:7px;width:7px;border:1px solid #87a3ee;transform:rotate(45deg);background:#101d2b}.education-section{background:#0c1522}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;margin-top:72px}.education-content{border-top:1px solid #3a4b60}.degree{padding:30px 0 36px;border-bottom:1px solid #34455a}.degree>span,.language>span{color:#8fa5ee}.degree-status{color:#a7c8bb;border:1px solid #4c786b;padding:6px 8px;margin-left:14px}.degree h3{margin:18px 0 10px}.degree p{color:#acbbcc;margin:0}.language{display:flex;justify-content:space-between;align-items:center;padding:25px 0;border-bottom:1px solid #34455a}.language p{margin:0;color:#d4deea}.language strong{color:#9eb6eb}.courses>button{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:none;color:#e0eaf5;padding:27px 0;text-align:left}.courses small{color:#8196ad;margin-left:12px}.courses svg{transition:transform .3s}.courses svg.rotated{transform:rotate(180deg)}.courses-list{border-top:1px solid #34455a;animation:detailIn .3s ease}.courses-list>div{display:grid;grid-template-columns:50px 1fr auto;gap:18px;border-bottom:1px solid #2a3a4e;padding:13px 0;align-items:center}.courses-list>div span:first-child{color:#8199dc}.courses-list>div span:last-child{color:#93a8bd;text-align:right}.contact-section{background:radial-gradient(circle at 20% 60%,#1b2a49,#0b1422 47%,#080e18 75%);padding-block:88px 90px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:10vw;margin-top:56px}.contact-layout h2{margin:18px 0 24px}.contact-layout h2 em{font-style:normal;color:#91aafa}.contact-layout h2 em span{color:#e8eef8}.contact-layout>div:first-child>p:last-child{color:#b4c1d0;max-width:440px}.contact-links{border-top:1px solid #475671}.contact-links a{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #42516b;padding:20px 5px;transition:padding .2s,background .2s}.contact-links a:hover{padding-left:15px;background:#1b2c48}.contact-links a>span{display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}.contact-links small{color:#8fa8ea}.contact-links svg{flex:none;color:#91a9e9}.contact-phone{color:#8fa5bf}.site-footer{background:#070c14;border-top:1px solid #2d3a4c;padding:38px clamp(22px,7vw,130px);display:flex;justify-content:space-between;gap:30px;color:#8fa0b5}.site-footer>div{display:flex;align-items:center;gap:20px}.footer-brand{color:#eaf0f9}.footer-brand span{color:#839df0}.site-footer p{margin:0}.site-footer>div:last-child{gap:28px}.site-footer a:not(.footer-brand){display:inline-flex;gap:3px;align-items:center;color:#bac9dc}.site-footer a:hover{color:#fff}@media(max-width:1100px){.section-heading,.experience-layout{gap:30px}.experience-detail{padding:30px}.skills-section,.os-section,.education-section,.contact-section,.experience-section{padding-left:4vw;padding-right:4vw}}@media(max-width:800px){.section-heading,.experience-layout,.os-layout,.education-grid,.contact-layout{grid-template-columns:1fr;gap:35px}.section-heading{margin:55px 0 45px}.section-heading>p{max-width:550px}.experience-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.experience-nav-item{grid-template-columns:1fr;min-height:100px;padding:12px;border:1px solid #394a60}.experience-line,.experience-index,.experience-nav-item svg{display:none}.experience-nav-item.active{background:#1b2c47;border-color:#7994d7}.experience-detail{min-height:0}.skills-grid{grid-template-columns:1fr}.skill-group{min-height:0;padding:25px 0!important}.skill-group+.skill-group{border-left:0;border-top:1px solid #35465d}.skill-group h3{margin:22px 0 10px}.skill-group p{min-height:0}.tools-band{grid-template-columns:1fr;gap:15px}.os-layout,.education-grid{margin-top:50px}.contact-layout{margin-top:36px;gap:28px}.site-footer>div:last-child{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:600px){.experience-section,.skills-section,.os-section,.education-section,.contact-section{padding:70px 22px}.contact-section{padding-block:56px}.experience-rail{gap:6px}.experience-nav-item{min-height:96px;padding:9px}.experience-detail{padding:24px}.experience-tasks{grid-template-columns:1fr}.experience-tools{align-items:flex-start;flex-direction:column;gap:11px}.os-tabs button{padding:12px 2px}.os-panel{padding:25px;min-height:260px}.os-interface-bottom{padding:14px}.courses-list>div{grid-template-columns:40px 1fr;gap:6px 12px}.courses-list>div span:last-child{grid-column:2;text-align:left}.site-footer{padding:30px 22px;display:block}.site-footer>div:last-child{justify-content:flex-start;margin-top:25px;gap:20px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.portrait-frame picture{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.os-tabs button span{color:#afc3df}.hero h1::selection,.hero h1 *::selection{background-color:transparent;color:#c9d6ff}.os-panels{display:grid}.os-panels>.os-panel{grid-area:1/1;visibility:hidden;opacity:0;animation:none;transition:opacity .2s ease}.os-panels>.os-panel.active{visibility:visible;opacity:1}.contact-layout h2 em span{display:inline-block;margin-left:.055em;vertical-align:baseline}.brand-icon{display:block;flex:none;color:#91a9e9}@media(min-width:951px)and (max-width:1250px){.site-header{gap:16px}.desktop-nav{gap:clamp(8px,1vw,12px)}.header-actions{gap:8px}.header-link{display:inline-flex}.header-link svg{width:20px;height:20px}.download-link{padding:9px}}@media(max-width:950px){.site-header .header-actions{display:flex;margin-left:auto}.header-actions .download-link{display:none}.menu-toggle{margin-left:0}}.experience-detail-stack{display:grid;min-width:0}.experience-detail-stack>.experience-detail{grid-area:1/1;visibility:hidden;opacity:0;pointer-events:none;animation:none;transition:opacity .25s ease}.experience-detail-stack>.experience-detail.active{visibility:visible;opacity:1;pointer-events:auto}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:#91a9ff;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.desktop-nav a:hover:after{transform:scaleX(.5)}.desktop-nav a.is-active{color:#eaf0ff}.desktop-nav a.is-active:after{transform:scaleX(1)}.mobile-menu nav a.is-active,.mobile-menu nav a.is-active span{color:#a9bbff}@media(prefers-reduced-motion:reduce){.experience-detail-stack>.experience-detail,.desktop-nav a:after{transition:none}}.brand-logo{display:block;position:relative;flex:none;width:36px;height:30px;overflow:hidden}.brand-logo img{position:absolute;left:50%;top:50%;width:43px;height:43px;max-width:none;transform:translate(-50%,-50%)}:root{--font-body: "DM Sans", "DM Sans Fallback", sans-serif;--font-heading: Manrope, "Manrope Fallback", sans-serif;--type-display-size: clamp(51px, 5.44vw, 98.6px);--type-display-line: 1.08;--type-display-tracking: -.02em;--type-display-word: .02em;--type-display-weight: 800;--type-h1-size: clamp(2.6rem, 4.4vw, 4.6rem);--type-h1-line: 1.1;--type-h1-tracking: -.025em;--type-h1-word: .02em;--type-h1-weight: 800;--type-h2-size: clamp(2.1rem, 3.3vw, 3.6rem);--type-h2-line: 1.16;--type-h2-tracking: -.02em;--type-h2-word: .025em;--type-h2-weight: 800;--type-h3-size: clamp(1.35rem, 1.8vw, 1.85rem);--type-h3-line: 1.24;--type-h3-tracking: -.012em;--type-h3-word: .025em;--type-h3-weight: 700;--type-subtitle-size: clamp(1.25rem, 1.7vw, 1.75rem);--type-subtitle-line: 1.35;--type-subtitle-tracking: -.005em;--type-subtitle-word: .025em;--type-subtitle-weight: 600;--type-body-size: clamp(.875rem, .22vw + .825rem, 1rem);--type-body-line: 1.7;--type-body-tracking: 0em;--type-body-word: .02em;--type-body-weight: 400;--type-small-size: clamp(.8125rem, .15vw + .78rem, .9rem);--type-small-line: 1.6;--type-small-tracking: 0em;--type-small-word: .02em;--type-small-weight: 400;--type-caption-size: clamp(.75rem, .15vw + .7rem, .8125rem);--type-caption-line: 1.5;--type-caption-tracking: .015em;--type-caption-word: .02em;--type-caption-weight: 400;--type-label-size: clamp(.625rem, .18vw + .54rem, .72rem);--type-label-line: 1.5;--type-label-tracking: .13em;--type-label-word: .035em;--type-label-weight: 700;--type-ui-size: clamp(.75rem, .2vw + .68rem, .85rem);--type-ui-line: 1.45;--type-ui-tracking: .01em;--type-ui-word: .025em;--type-ui-weight: 600;--type-mini-size: clamp(.56rem, .14vw + .52rem, .64rem);--type-mini-line: 1.45;--type-mini-tracking: .1em;--type-mini-word: .02em;--type-mini-weight: 700;--type-punctuation-size: .82em;--type-contact-title-size: calc(var(--type-h1-size) * .85);--type-contact-link-size: clamp(1.125rem, 1.25vw, 1.375rem)}@media(max-width:1250px){:root{--type-display-size: clamp(49.3px, 5.1vw, 67.15px)}}@media(max-width:950px){:root{--type-display-size: clamp(39.95px, 5.61vw, 49.3px)}}@media(max-width:700px){:root{--type-display-size: clamp(30.6px, 8.67vw, 59.5px)}}body{font:var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--font-body);letter-spacing:var(--type-body-tracking);word-spacing:var(--type-body-word)}button,a{font-family:inherit}strong,b{font-weight:var(--type-h3-weight)}.language strong,.courses-list strong{font-weight:var(--type-ui-weight)}h1,h2,h3,.case-lead{text-wrap:balance}p{text-wrap:pretty}em{font-style:normal}.hero h1{font:var(--type-display-weight) var(--type-display-size)/var(--type-display-line) var(--font-heading);letter-spacing:var(--type-display-tracking);word-spacing:var(--type-display-word)}.case-copy h2,.contact-layout h2{font:var(--type-h1-weight) var(--type-h1-size)/var(--type-h1-line) var(--font-heading);letter-spacing:var(--type-h1-tracking);word-spacing:var(--type-h1-word)}.contact-layout h2{font-size:var(--type-contact-title-size)}.contact-links a>span{font:var(--type-subtitle-weight) var(--type-contact-link-size)/var(--type-subtitle-line) var(--font-heading);letter-spacing:var(--type-subtitle-tracking);word-spacing:var(--type-subtitle-word)}.intro-grid h2,.projects-intro h2,.section-heading h2,.os-intro h2,.education-grid h2,.project-dialog h2{font:var(--type-h2-weight) var(--type-h2-size)/var(--type-h2-line) var(--font-heading);letter-spacing:var(--type-h2-tracking);word-spacing:var(--type-h2-word)}.experience-detail h3,.skill-group h3,.os-panel h3,.degree h3{font:var(--type-h3-weight) var(--type-h3-size)/var(--type-h3-line) var(--font-heading);letter-spacing:var(--type-h3-tracking);word-spacing:var(--type-h3-word)}.hero h2,.case-lead,.cert-title h3,.mobile-menu nav a{font:var(--type-subtitle-weight) var(--type-subtitle-size)/var(--type-subtitle-line) var(--font-heading);letter-spacing:var(--type-subtitle-tracking);word-spacing:var(--type-subtitle-word)}.intro-grid p,.projects-intro-grid>p,.section-heading>p,.os-intro>p:last-child,.contact-layout>div:first-child>p:last-child,.tools-band p,.project-dialog .process-steps{font:var(--type-body-weight) var(--type-body-size)/var(--type-body-line) var(--font-body);letter-spacing:var(--type-body-tracking);word-spacing:var(--type-body-word)}.hero-description,.case-body,.case-facts p,.experience-description,.experience-role,.experience-tasks>div,.skill-group p,.os-panel p,.degree p,.language p{font:var(--type-small-weight) var(--type-small-size)/var(--type-small-line) var(--font-body);letter-spacing:var(--type-small-tracking);word-spacing:var(--type-small-word)}.experience-role{font-weight:var(--type-ui-weight)}.desktop-nav a,.header-link,.download-link,.primary-button,.text-button,.inline-link,.case-explore,.case-actions>a,.tools-list span,.courses>button,.project-counter,.experience-nav-item strong,.os-tabs button,.cert-company strong{font:var(--type-ui-weight) var(--type-ui-size)/var(--type-ui-line) var(--font-body);letter-spacing:var(--type-ui-tracking);word-spacing:var(--type-ui-word)}.hero-topline,.hero-footer,.section-label,.eyebrow,.hero-kicker,.portrait-index,.portrait-corner,.case-topline,.case-footnote,.case-facts span,.mockup-caption,.experience-tools>span,.experience-detail-top,.skill-group-top,.os-interface-top,.os-panel>span,.os-interface-bottom,.degree>span,.language>span,.contact-links small,.project-dialog .process-steps strong{font:var(--type-label-weight) var(--type-label-size)/var(--type-label-line) var(--font-body);letter-spacing:var(--type-label-tracking);word-spacing:var(--type-label-word)}.brand-name,.portrait-index span,.mobile-menu nav a span,.current-pill,.degree-status,.courses small,.cert-mockup-header strong,.cert-mockup-header small,.cert-header-meta,.cert-title small,.cert-company span,.cert-list-label>span,.cert-options strong,.cert-options small,.cert-bottom,.preview-browser,.os-tabs button span{font:var(--type-mini-weight) var(--type-mini-size)/var(--type-mini-line) var(--font-body);letter-spacing:var(--type-mini-tracking);word-spacing:var(--type-mini-word)}.experience-index,.experience-nav-item small,.experience-tools>div span,.skill-tags span,.os-panel>div span,.courses-list>div,.contact-phone,.site-footer p,.site-footer>div:last-child,.detail-disclaimer,.cert-title p,.cert-company small,.cert-list-label{font:var(--type-caption-weight) var(--type-caption-size)/var(--type-caption-line) var(--font-body);letter-spacing:var(--type-caption-tracking);word-spacing:var(--type-caption-word)}.contact-layout h2 em span{font-size:var(--type-punctuation-size)}.hero-description,.case-body,.intro-grid p,.experience-description,.os-panel p{max-width:62ch}.case-lead{max-width:34ch}.section-heading>p,.contact-layout>div:first-child>p:last-child{max-width:48ch}:root{--header-height: 76px;--page-gutter: clamp(22px, 4vw, 76px)}@media(max-width:950px){:root{--header-height: 70px}}.projects-section{--project-progress: 0;position:relative;scroll-margin-top:var(--header-height);background:#0d1624}.projects-sticky{position:relative}.projects-viewport{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.projects-viewport::-webkit-scrollbar{display:none}.projects-viewport:focus-visible{outline-offset:-4px}.projects-track{display:flex}.project-slide{--slide-distance: 0;--slide-offset: 0;flex:0 0 100%;min-width:0;padding:26px var(--page-gutter) 0;scroll-snap-align:start;scroll-snap-stop:always;background:#0d1624}.case-topline,.case-footnote{display:flex;justify-content:space-between;align-items:center;gap:18px;color:#afbed1}.case-topline{border-top:1px solid #41516a;padding-top:15px}.development{display:inline-flex;align-items:center;gap:8px;color:#b7d1c3}.development>span{flex:none;height:6px;width:6px;background:#9ccbaf;border-radius:50%}.case-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,4vw,70px);align-items:center;padding-block:28px 22px;min-height:570px}.case-copy{min-width:0}.case-identity{display:flex;gap:12px;align-items:center}.case-identity img,.project-lettermark{width:38px;height:38px;flex:none;object-fit:contain;border-radius:8px}.case-identity .eyebrow{margin:0;color:var(--project-accent)}.project-lettermark{display:grid;place-items:center;background:#076448;color:#fff;font:var(--type-h3-weight) var(--type-h3-size)/var(--type-h3-line) var(--font-heading)}.case-copy h2{margin:20px 0 15px}.case-copy h2 span,.case-copy h2 i{color:var(--project-accent)}.case-lead{margin:0 0 15px}.case-body{margin:0;color:#bdcad8}.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px;border-top:1px solid #35475e;padding-top:18px}.case-facts span{color:var(--project-accent)}.case-facts p{margin:7px 0 0;color:#bac9da}.case-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 20px;margin-top:22px}.case-explore,.case-actions>a{display:inline-flex;align-items:center;gap:10px;padding:0 0 7px;border:0;border-bottom:1px solid #91a6d1;background:none;color:#eef2fa}.case-actions>a{color:#c0cdf5}.case-explore:hover,.case-actions>a:hover{color:#fff;border-color:#fff}.case-footnote{border-top:1px solid #35475e;padding-top:15px}.mockup-wrap{min-width:0;width:100%;max-width:900px;margin:0;padding:0 38px 18px}.mockup-caption{display:flex;gap:8px;align-items:center;min-height:20px;margin:0 0 56px;color:#bdcde4}.mockup-caption svg{flex:none}.mockup-stage{position:relative;isolation:isolate;transition:transform .4s ease}.mockup-stage:before{content:"";position:absolute;top:-13px;right:-12px;bottom:-13px;left:-12px;z-index:-1;border:1px solid var(--project-frame);background:#101a2b;rotate:var(--frame-rotation);transform:translate3d(calc(var(--slide-offset) * -6px),calc(var(--slide-distance) * 4px),0);transition:rotate .45s ease,border-color .4s ease;pointer-events:none}.project-slide.is-active .mockup-stage:before{animation:frameFloat 8s ease-in-out infinite}.mockup-wrap:hover .mockup-stage,.mockup-wrap:focus-within .mockup-stage{transform:translateY(-6px)}.mockup-wrap:hover .mockup-stage:before,.mockup-wrap:focus-within .mockup-stage:before{rotate:var(--frame-hover-rotation);border-color:var(--project-frame-hover)}@keyframes frameFloat{0%,to{translate:0 0}50%{translate:0 -3px}}.project-screen,.cert-mockup{position:relative;border:1px solid #61728d;box-shadow:0 22px 45px #0004;overflow:hidden;background:#14283a}.project-screen img{display:block;width:100%;height:auto}.project-screen-link{display:block}.preview-browser{height:30px;padding:0 12px;display:flex;align-items:center;gap:12px;background:#eef2fa;color:#536783}.preview-browser>span:first-child{display:flex;gap:4px}.preview-browser i{width:5px;height:5px;border-radius:50%;background:#91a2be}.preview-browser>span:nth-child(2){margin:auto}.preview-browser.is-dark{background:#132135;color:#b5c4d6;border-bottom:1px solid #34465d}.cert-mockup{color:#182b4a;background:#f6f8fd}.cert-mockup-header{height:52px;padding:0 16px;display:flex;align-items:center;gap:9px;background:#fff;border-bottom:1px solid #d4def0}.cert-mockup-header img{border-radius:7px}.cert-mockup-header>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.cert-mockup-header small{color:#607293}.cert-header-meta{margin-left:auto;color:#607293}.cert-mockup-body{padding:22px 24px;background:linear-gradient(145deg,#f9faff,#edf2fb)}.cert-title small{color:#3957bb}.cert-title h3{margin:8px 0;color:#13284d}.cert-title h3 span{color:#466ce1}.cert-title p{color:#526887;margin:0 0 20px}.cert-company{border:1px solid #c1cfe8;border-radius:7px;background:#fff;padding:11px 13px;display:flex;flex-direction:column;gap:4px}.cert-company span,.cert-company small{color:#526887}.cert-list-label{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px;gap:8px}.cert-list-label>span{color:#526887}.cert-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cert-options>div{display:grid;grid-template-columns:17px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;min-height:50px;padding:8px;border:1px solid #c3d1eb;border-radius:7px;background:#fff}.cert-options>div>span{grid-row:1 / 3;width:17px;height:17px;display:grid;place-items:center;border-radius:4px;background:#4c68da;color:#fff}.cert-options>div>span svg{display:block;flex:none;width:12px;height:12px}.cert-options small{color:#526887;letter-spacing:var(--type-body-tracking)}.cert-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:16px;margin-top:18px;border-top:1px solid #c9d6ed;color:#42629b;letter-spacing:var(--type-body-tracking)}.cert-bottom svg{flex:none;width:13px}.project-controls{position:relative;padding:10px var(--page-gutter) 16px;min-height:68px;display:flex;align-items:center;gap:20px;background:#0d1624}.project-counter{min-width:64px;font-variant-numeric:tabular-nums;color:#eaf0fc}.project-counter>span{color:#a3b3ce}.project-dots{position:relative;display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.project-dots button{flex:0 0 44px}.project-dots button,.project-arrows button{display:grid;place-items:center;width:44px;height:44px;background:none;border:0;color:#cbd7ee}.project-dots button>span{height:3px;width:18px;background:#506179;transition:background .2s,width .2s}.project-dots button[aria-current]>span{width:28px;background:#a7baff}.project-arrows{display:flex;margin-left:auto;gap:4px}.project-arrows button{border:1px solid #475a78}.project-arrows button:disabled{opacity:.35;cursor:default}.project-progress{position:absolute;bottom:0;left:var(--page-gutter);right:var(--page-gutter);height:2px;background:#283750;overflow:hidden}.project-progress>span{display:block;width:100%;height:100%;background:#99adf4;transform:scaleX(var(--project-progress));transform-origin:left}.projects-section[data-mode=pinned]{height:calc(var(--project-viewport) + var(--project-scroll-distance))}.projects-section[data-mode=pinned] .projects-sticky{position:sticky;top:var(--header-height);height:var(--project-viewport);display:flex;flex-direction:column}.projects-section[data-mode=pinned] .projects-viewport{flex:1;min-height:0;overflow:hidden}.projects-section[data-mode=pinned] .projects-track{height:100%;will-change:transform}.projects-section[data-mode=pinned] .project-slide{display:flex;flex-direction:column;height:100%}.projects-section[data-mode=pinned] .case-grid{flex:1;min-height:0;padding-block:20px}.projects-section[data-mode=pinned] .case-footnote{padding-bottom:10px}.projects-section[data-mode=pinned] .case-copy>*{opacity:calc(1 - var(--slide-distance) * var(--enter-fade, .45));transform:translateY(calc(var(--slide-distance) * var(--enter-shift, 12px)))}.case-copy>:nth-child(1){--enter-shift: 6px;--enter-fade: .25}.case-copy>:nth-child(2){--enter-shift: 10px;--enter-fade: .35}.case-copy>:nth-child(3){--enter-shift: 14px;--enter-fade: .45}.case-copy>:nth-child(4){--enter-shift: 18px;--enter-fade: .55}.case-copy>:nth-child(5),.case-copy>:nth-child(6){--enter-shift: 22px;--enter-fade: .65}.projects-section[data-mode=pinned] .mockup-wrap{transform:translate3d(calc(var(--slide-offset) * 10px),0,0);opacity:calc(1 - var(--slide-distance) * .18)}.projects-section[data-mode=pinned] .project-screen img{max-height:var(--preview-image-height);object-fit:contain}.project-dialog{width:min(860px,calc(100% - 32px));max-height:calc(100svh - 48px);overflow:auto;overscroll-behavior:contain;padding:0;border:1px solid #5a6e94;background:#101d30;color:#e9eef7}.project-dialog::backdrop{background:#040a13bb;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.project-dialog-content{padding:clamp(24px,4vw,52px);position:relative}.dialog-close{position:absolute;right:12px;top:12px;height:44px;width:44px;display:grid;place-items:center;background:none;border:1px solid #475a78;color:#dce8ff}.project-dialog h2{padding-right:24px;max-width:24ch}.process-steps{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0}.process-steps>div{display:flex;gap:14px;color:#c5d2e2}.process-steps strong{color:#a6b9ff}.detail-disclaimer{border-top:1px solid #41536d;padding-top:20px;color:#b2c2d7}.project-dialog .inline-link{display:inline-flex;margin-right:24px;margin-top:16px}@media(max-width:1099px),(max-height:719px),(pointer:coarse){.case-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;min-height:590px}.mockup-wrap{padding-inline:34px}.case-topline .development{max-width:45%;text-align:right}.case-footnote>span:last-child{display:none}}@media(max-height:900px){.projects-section[data-mode=pinned] .case-grid{padding-block:16px}.projects-section[data-mode=pinned] .case-copy h2{margin-block:14px 10px}.projects-section[data-mode=pinned] .case-lead{margin-bottom:10px}.projects-section[data-mode=pinned] .case-facts{margin-top:16px;padding-top:14px}.projects-section[data-mode=pinned] .case-actions{margin-top:16px}.projects-section[data-mode=pinned] .mockup-caption{margin-bottom:42px}.projects-section[data-mode=pinned] .cert-mockup-header{height:44px}.projects-section[data-mode=pinned] .cert-mockup-body{padding-block:14px}.projects-section[data-mode=pinned] .cert-title small{display:block}.projects-section[data-mode=pinned] .cert-title h3{margin-block:6px}.projects-section[data-mode=pinned] .cert-title p{margin-bottom:10px}.projects-section[data-mode=pinned] .cert-company{padding-block:7px;gap:3px}.projects-section[data-mode=pinned] .cert-list-label{margin-top:12px}.projects-section[data-mode=pinned] .cert-options>div{min-height:42px;padding-block:4px}.projects-section[data-mode=pinned] .cert-bottom{margin-top:12px;padding-top:10px}}@media(max-width:800px){.case-grid{grid-template-columns:1fr;min-height:0;gap:28px;padding-block:30px}.case-copy{max-width:66ch}.mockup-wrap{max-width:640px;margin-inline:auto}.project-slide{padding-top:22px}.case-topline{align-items:flex-start}.case-topline .development{display:none}.case-copy h2{margin-block:18px}.mockup-caption{margin-bottom:42px}.process-steps{grid-template-columns:1fr}}@media(max-width:600px){.mockup-caption{min-height:calc(var(--type-label-size) * var(--type-label-line) * 2)}.case-facts{gap:18px}.case-actions{gap:14px}.case-grid{gap:25px}.mockup-wrap{padding-inline:30px;padding-bottom:12px}.mockup-stage:before{top:-8px;right:-8px;bottom:-8px;left:-8px}.cert-mockup-body{padding:16px 14px}.cert-header-meta,.cert-list-label>span{display:none}.cert-options{gap:6px}.cert-options>div{gap:3px;padding:6px}.cert-bottom{display:grid;grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr) 13px minmax(0,1fr);gap:6px}.cert-bottom>span{min-width:0;overflow-wrap:anywhere;text-wrap:balance;text-align:center}.project-controls{gap:8px}.project-dots button{width:34px;flex-basis:34px;min-height:44px}.project-arrows button{width:38px}.case-footnote{min-height:46px}}@media(prefers-reduced-motion:reduce){.projects-viewport{scroll-behavior:auto}.project-dots button>span{transition:none}.project-slide.is-active .mockup-stage:before{animation:none}.mockup-stage,.mockup-stage:before{transition:none}.mockup-wrap:hover .mockup-stage,.mockup-wrap:focus-within .mockup-stage{transform:none}}.hero-line{display:block;width:fit-content}.hero h1::selection,.hero h1 *::selection{background:#3e5bbb;color:#fff}.hero-bottom{display:block;max-width:62ch;margin-top:32px}.hero-ctas{flex-direction:row;flex-wrap:wrap;align-items:center;gap:22px;margin-top:24px}.hero-portrait{width:100%;max-width:400px;height:450px;min-height:0;margin-left:auto}.portrait-frame img{filter:saturate(.82) contrast(1.02)}.portrait-shade{opacity:.35}.intro-grid p,.projects-intro-grid>p,.contact-layout>div:first-child>p:last-child{color:#bdcadb}.skill-group p{min-height:0}.hero-eyebrow{flex-wrap:wrap}.os-interface-bottom{color:#b0c0d9}.os-interface-top>span:last-child{color:#a8bad2}.contact-layout h2 em span{margin-left:.06em}@media(max-width:700px){.hero-portrait{margin-inline:auto;height:360px}.hero-content{padding-top:148px}.hero-bottom{margin-top:28px}.hero-ctas{margin-top:22px}}
