@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#101c2c;--paper:#f5f8fb;--mint:#72f2ca;--muted:#5b6878;--line:#dce3eb;--max:1180px;--heading:'Manrope',sans-serif;--body:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--body)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:5px}button{font:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #08765b;outline-offset:5px}h1,h2,h3{font-family:var(--heading);line-height:1.13;letter-spacing:-.045em;margin:0}h2{font-size:clamp(2.1rem,4.2vw,3.5rem);font-weight:700}h3{font-size:1.45rem;font-weight:700}p{margin:0 0 1.3rem}.wrap{max-width:var(--max);margin:auto;padding-inline:36px}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:700;line-height:1.5;margin-bottom:24px}.nav{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 max(36px,calc((100vw - 1108px)/2));background:rgba(245,248,251,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.wordmark{font:800 2rem var(--heading);letter-spacing:-.13em}.wordmark span{color:#0b8d70}.nav nav{display:flex;align-items:center;gap:30px;font-size:.875rem}.nav-contact{border:1px solid var(--ink);padding:10px 18px;border-radius:4px}.menu-toggle{display:none}.hero{padding-block:76px 70px;display:grid;grid-template-columns:1.55fr 1fr;gap:68px;align-items:center}.hero h1{font-size:clamp(4.5rem,8.2vw,7.5rem);font-weight:800;line-height:.99;letter-spacing:-.075em;margin:0 0 32px}.hero h1 span{color:#0b9f7d}.hero-lead{font-family:var(--heading);font-size:1.35rem;line-height:1.45;font-weight:600;letter-spacing:-.025em}.hero-copy{max-width:520px;color:var(--muted);font-size:1rem}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{padding:13px 20px;display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--ink);font-weight:600;font-size:.875rem;border-radius:4px;min-height:48px;transition:background .2s,color .2s;white-space:normal}.button:hover{text-decoration:none;background:#233951;color:#fff}.primary{background:var(--ink);color:white}.secondary{background:transparent}.hero-aside{padding-top:18px}.dossier{background:var(--ink);color:#fff;padding:34px;border-radius:5px;box-shadow:13px 13px 0 #e0e8ed;position:relative}.dossier:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:var(--mint)}.dossier .eyebrow{color:var(--mint)}.dossier h2{font-size:1.8rem;line-height:1.3;letter-spacing:-.04em}.dossier h2 span{color:var(--mint)}dl{margin:32px 0 20px}dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #334254;padding:15px 0;font-size:.875rem}dt{color:#aab9c8}dd{margin:0;font-weight:500;text-align:right}.small{font-size:.8125rem;line-height:1.6}.dossier .small{color:#aab9c8}.dossier>a{font-size:.875rem;color:var(--mint);text-decoration:underline}.aside-note{font-size:.8125rem;line-height:1.6;color:var(--muted);margin:28px 0 0 13px}.strip{background:#e8eef3;border-block:1px solid var(--line)}.strip .wrap{display:flex;justify-content:space-between;gap:20px;padding-block:19px;color:#526272;font-size:.875rem;font-weight:500}.section{padding-block:90px}.section-head{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:end;margin-bottom:44px}.section-head>p{color:var(--muted);margin:0;max-width:440px}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 25px}.filter{border:1px solid var(--line);background:transparent;border-radius:30px;padding:8px 18px;font-size:.875rem}.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:24px}.project{background:#fff;border:1px solid var(--line);border-radius:5px;overflow:hidden;display:flex;flex-direction:column;min-width:0}.project[hidden]{display:none}.feature{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.project-body{padding:32px;display:flex;flex-direction:column;align-items:flex-start;flex:1}.project-body .eyebrow{color:var(--muted);font-size:.75rem;margin-bottom:14px}.project-body h3{margin-bottom:18px;font-size:1.65rem}.project-body p{color:var(--muted);font-size:1rem}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 25px}.tags span{border:1px solid var(--line);padding:4px 9px;border-radius:3px;font-size:.75rem;color:#425164}.text-button{border:0;padding:0 0 3px;background:none;border-bottom:1px solid currentColor;color:inherit;font-weight:600;font-size:.875rem}.project-body .text-button{margin-top:auto}.project-top{background:#edf3f7;display:flex;justify-content:space-between;align-items:center;padding:22px 32px}.project-number{font:500 2.3rem var(--heading);letter-spacing:-.05em;color:#7b91a4}.project-type{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.project-visual{min-height:330px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;background:#13263b;color:white}.visual-label,.visual-caption{font-size:.75rem;letter-spacing:.08em;color:#9db3c7}.flow{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px;font-size:.875rem}.flow strong{padding:13px 22px;border:1px solid #72f2ca;color:var(--mint);font-family:var(--heading);font-size:1.3rem;line-height:1.4;border-radius:4px}.flow-line{height:26px;width:1px;background:#668597}.dark-section{background:var(--ink);color:#fff}.dark-section .eyebrow{color:var(--mint)}.dark-section .section-head>p{color:#aab9c8}.timeline{border-top:1px solid #334254}.timeline details{border-bottom:1px solid #334254}.timeline summary{list-style:none;display:grid;grid-template-columns:190px 1fr 25px;gap:20px;padding:29px 0;align-items:start;cursor:pointer}.timeline summary::-webkit-details-marker{display:none}.date{font-size:.75rem;letter-spacing:.05em;color:#aab9c8;line-height:2}.position{display:flex;flex-direction:column;gap:7px}.position strong{font:600 1.3rem/1.4 var(--heading);letter-spacing:-.025em}.position>span{font-size:.875rem;color:#aab9c8}.detail-sign{font-size:1.5rem;color:var(--mint)}details[open] .detail-sign{transform:rotate(45deg)}.experience-content{padding:0 40px 30px 210px;max-width:980px;color:#c5d0dc}.experience-content ul{padding-left:20px}.experience-content li{margin:9px 0}.experience-content p:last-child{margin:0}.skill-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.skill-grid article{padding:30px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.skill-index{font-size:.75rem;font-weight:600;letter-spacing:.1em;color:#0a8064;display:block;margin-bottom:23px}.skill-grid h3{margin-bottom:20px}.skill-grid p{color:var(--muted)}.skill-grid .skill-context{font-size:.875rem;color:#526576;border-top:1px solid var(--line);padding-top:17px;margin:24px 0 0}.progression{background:#e8eef3}.education{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:0 90px}.degree{margin-top:35px}.degree>span{font-size:.75rem;color:var(--muted);letter-spacing:.1em}.degree h3{font-size:1.2rem;margin:10px 0}.degree p{color:var(--muted);font-size:.875rem}.language-line{padding-top:18px;font-size:.875rem}.certificates{background:#fff;border:1px solid var(--line);padding:34px;align-self:center;border-radius:5px}.certificates h3{margin-bottom:18px}.certificates p{color:var(--muted);font-size:.875rem}.certificates>a{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;gap:20px;font-size:.875rem}.certificates>a:last-child{padding-bottom:0}.certificates>a span:last-child{color:var(--muted)}.contact-section{background:#162b3f;color:#fff}.contact-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;padding-block:80px}.contact-section .eyebrow{color:var(--mint)}.contact-section h2 span{color:var(--mint)}.contact-section h2{margin-bottom:30px}.contact-section p:not(.eyebrow){color:#afc0d0;max-width:580px}.contact-email{font:500 clamp(1rem,2vw,1.55rem) var(--heading);display:inline-block;border-bottom:1px solid var(--mint);padding-bottom:6px;overflow-wrap:anywhere}.contact-links{display:flex;gap:24px;flex-wrap:wrap;font-size:.875rem;margin-top:25px;color:#c5d0dc}.contact-dossier{align-self:center;border-left:1px solid #476077;padding-left:40px}.contact-dossier h3{font-size:1.2rem;margin-bottom:25px}.contact-dossier .button{display:flex;margin-bottom:10px;color:#fff;border-color:#71869b}.contact-dossier .primary{background:var(--mint);color:var(--ink);border-color:var(--mint)}.qr-link{display:flex;align-items:center;gap:20px;padding-top:18px;font-size:.875rem}.qr-link img{background:white;padding:7px;border-radius:4px}.qr-link small{color:#aab9c8;font-size:.75rem}footer{display:flex;justify-content:space-between;gap:20px;padding-block:28px;color:var(--muted);font-size:.8125rem}footer .text-button{font-size:.8125rem}dialog{border:0;border-radius:6px;padding:35px;max-width:740px;width:calc(100% - 32px);max-height:85vh;overflow:auto;color:var(--ink);background:var(--paper);box-shadow:0 25px 100px #0006}dialog::backdrop{background:#081726ba;backdrop-filter:blur(4px)}.dialog-close{display:block;margin-left:auto;margin-bottom:24px;background:white;border:1px solid var(--line);padding:8px 14px;border-radius:4px;font-size:.875rem}dialog h2{font-size:2rem;margin-bottom:25px}dialog h3{font-size:1.1rem;margin:25px 0 12px}dialog p,dialog li{color:var(--muted)}dialog li{margin:10px 0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:fixed;left:15px;top:-80px;z-index:30;background:white;padding:10px}.skip:focus{top:15px}
@media(max-width:900px){.hero{gap:32px;grid-template-columns:1.2fr 1fr;padding-top:50px}.dossier{padding:25px}.dossier h2{font-size:1.4rem}dl div{flex-direction:column;gap:3px}dd{text-align:left}.section-head{gap:35px}.education{gap:35px}.contact-inner{gap:35px}.nav nav{gap:20px}.strip .wrap{flex-wrap:wrap;justify-content:center}.experience-content{padding-left:140px}.timeline summary{grid-template-columns:120px 1fr 25px}}
@media(max-width:680px){.wrap{padding-inline:22px}.nav{padding-inline:22px;height:70px}.menu-toggle{display:block;background:none;border:1px solid var(--line);padding:7px 14px;border-radius:3px;font-size:.875rem}.nav nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px;align-items:stretch}.nav nav.open{display:flex;flex-direction:column;gap:15px}.hero{grid-template-columns:1fr;gap:35px;padding-block:43px 50px}.hero h1{font-size:clamp(4rem,18vw,6rem)}.hero-lead{font-size:1.2rem}.hero-aside{padding:0 12px 0 0}.dossier{padding:25px}.dossier h2{font-size:1.8rem}.dossier dl div{flex-direction:row;font-size:.875rem}.eyebrow{margin-bottom:20px}.section{padding-block:60px}.section-head{grid-template-columns:1fr;gap:25px;margin-bottom:30px}.projects,.feature,.skill-grid,.education,.contact-inner{grid-template-columns:1fr}.project-body{padding:25px}.project-visual{min-height:280px;padding:24px}.project-top{padding:20px 25px}.timeline summary{grid-template-columns:1fr 22px;gap:10px;padding-block:23px}.timeline .date{grid-column:1/-1}.position strong{font-size:1.15rem}.experience-content{padding:0 0 25px}.skill-grid article{padding:25px}.education{padding-bottom:60px;gap:30px}.contact-inner{padding-block:60px;gap:40px}.contact-dossier{border-left:0;border-top:1px solid #476077;padding:30px 0 0}.contact-email{font-size:clamp(1rem,5.3vw,1.4rem)}footer{flex-direction:column;gap:10px;align-items:flex-start}.certificates{padding:25px}dialog{padding:24px}.strip .wrap{gap:12px 25px;font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{.nav,.filters,.contact-section,footer,.actions,.text-button{display:none}.hero,.section,.education{padding-block:25px}.dark-section{background:white;color:var(--ink)}.timeline details:not([open]) .experience-content{display:block}.dark-section .section-head>p,.experience-content{color:var(--muted)}.project,details,.skill-grid article{break-inside:avoid}}
