@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--navy:#172c3f;--copper:#a55e33;--muted:#586570;--line:#d9e0e5;--pale:#eef2f5;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;color:var(--navy);background:white;font:16px/1.75 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--copper)}a:focus-visible{outline:3px solid var(--copper);outline-offset:5px}header{padding:24px 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:35px;background:white}.brand{display:flex;align-items:center;gap:16px;font-size:36px;font-weight:700;line-height:1;letter-spacing:-2px}.brand>span{font-size:13px;font-weight:600;line-height:1.5;letter-spacing:1px;border-left:1px solid var(--line);padding-left:16px}.brand small{font-size:10px;font-weight:400;letter-spacing:1.4px;color:var(--muted)}nav{display:flex;gap:28px;font-size:14px}nav a:last-child{color:var(--copper)}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:1.18;letter-spacing:-1px;font-weight:500}h2{font-size:38px}h3{font-size:25px}p{margin-bottom:18px}.eyebrow{font:12px/1.7 var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--copper)}.hero{padding:70px 6%;display:grid;grid-template-columns:1.5fr 1fr;gap:8%;background:var(--pale);border-bottom:1px solid var(--line)}.hero h1{font-size:clamp(45px,5vw,76px);margin:18px 0 23px;letter-spacing:-2.6px}.hero h1 span{color:var(--copper)}.hero-line{font-size:27px;line-height:1.35;font-weight:500;margin-bottom:18px}.intro{color:var(--muted);max-width:600px}.button{display:inline-block;background:var(--navy);color:#fff;padding:13px 23px;margin-top:9px;font-size:14px}.button:hover{background:#29465f;color:#fff}.hero-side{border-left:1px solid #cbd4dc;padding-left:40px;align-self:center}.hero-side blockquote{margin:24px 0 30px;font-size:26px;line-height:1.45;letter-spacing:-.5px}.hero-side>div{font:12px var(--mono);border-top:1px solid #cbd4dc;padding:17px 0}.hero-side>div span{display:block;font:14px 'DM Sans',Arial,sans-serif;color:var(--muted);margin-top:7px}.section{padding:75px 6%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}.section-heading h2{margin-top:12px}.section-heading>p{max-width:365px;color:var(--muted);margin:0}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:45px 32px}.project-card{border-bottom:1px solid var(--line);display:flex;flex-direction:column}.card-copy{padding:23px 0 28px;display:flex;flex-direction:column;flex:1}.card-copy h3{margin:10px 0 15px}.card-copy p{color:var(--muted);max-width:560px}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:14px;font-weight:600;width:fit-content;margin-top:auto;border-bottom:1px solid #b9c4ce;padding-bottom:4px}.text-link span{font-size:20px;font-weight:400}figure{margin:0}img{display:block;width:100%;height:auto}.card-image{background:#eff2f3}.card-image img{height:290px;object-fit:cover}.card-image figcaption{padding:7px 10px;font-size:12px;background:#e8edf1;color:#445564;min-height:35px}.type-panel{height:325px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;background:#e7edf2;border-top:3px solid #7b91a3}.type-panel>span{font:12px var(--mono);letter-spacing:1px}.type-panel strong{font-size:31px;line-height:1.3;font-weight:500;max-width:360px;letter-spacing:-.8px}.type-panel .panel-index{color:#637785}.project-card:nth-child(3) .type-panel{background:#20394e;color:white;border-top-color:#d3a079}.project-card:nth-child(3) .panel-index{color:#c1d0dc}.project-card:nth-child(4) .type-panel{background:#e7eeeb;border-color:#82998c}.project-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:32px}.project-card:last-child .card-copy{justify-content:center}.project-card:last-child .text-link{margin-top:8px}.experience{background:var(--pale);border-block:1px solid var(--line)}.timeline article{display:grid;grid-template-columns:25% 1fr;gap:40px;padding:30px 0;border-top:1px solid #ccd6de}.date{font:12px/1.7 var(--mono);color:var(--muted);padding-top:5px}.timeline h3{margin-bottom:8px}.employer{color:var(--copper);font-weight:500}.timeline p{max-width:760px}.international{display:grid;grid-template-columns:25% 1fr;gap:40px;padding-top:25px;border-top:1px solid #ccd6de}.international p{margin:0}.internships{display:flex;flex-wrap:wrap;gap:15px 28px;font-size:14px;color:var(--muted);margin-top:30px}.internships h4{color:var(--navy);font-weight:500}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.skills-grid article{border-top:2px solid var(--navy);padding-top:20px}.skill-number{font:12px var(--mono);color:var(--copper)}.skills-grid h3{font-size:22px;margin:13px 0 18px}.skills-grid p{font-size:14px;color:var(--muted);line-height:1.9}.education{border-top:1px solid var(--line);margin-top:40px;padding-top:32px;display:grid;grid-template-columns:1fr 1.4fr .7fr;gap:35px}.education h3{font-size:23px;margin:12px 0 7px}.education h4{font-size:14px;font-weight:500}.education p{font-size:14px}.education h4 span{font:12px var(--mono);color:var(--copper);margin-left:12px}.muted{margin-left:14px;color:var(--muted)}.contact{background:var(--navy);color:white}.contact .eyebrow{color:#dbab85}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:20px}.contact h2{font-size:50px}.contact h2 em{font-style:normal;color:#dbab85}.contact p{color:#c2cdd5}.email{font-size:clamp(16px,1.65vw,24px);border-bottom:1px solid #718393;padding:10px 0 16px;display:flex;justify-content:space-between;gap:14px;overflow-wrap:anywhere}.contact-links{display:flex;flex-wrap:wrap;gap:30px;font-size:14px;margin-top:22px}.contact-location{font-size:14px;margin-top:22px}.contact a:hover{color:#dbab85}footer{display:flex;justify-content:space-between;gap:25px;padding:24px 6%;font-size:12px;color:var(--muted)}.skip{position:absolute;left:15px;top:-70px;background:white;color:var(--navy);padding:10px;z-index:10}.skip:focus{top:15px}.case-intro{padding:48px 6% 42px;background:var(--pale)}.back{display:block;font-size:14px;margin-bottom:32px;width:fit-content}.case-intro h1{font-size:clamp(40px,5vw,68px);max-width:1000px;margin:13px 0 22px}.case-summary{font-size:21px;color:var(--muted);max-width:850px;line-height:1.6}.case-meta{display:flex;gap:65px;border-top:1px solid #ccd6de;padding-top:22px;margin-top:28px}.case-meta span{font:12px var(--mono);letter-spacing:1px;color:var(--copper)}.case-meta p{font-size:14px;margin:8px 0 0}.case-image{padding:35px 6% 0;max-width:1500px;margin:auto}.case-image img{max-height:560px;object-fit:contain;background:#edf1f4}.case-image figcaption,.gallery figcaption{font-size:12px;color:var(--muted);padding-top:9px}.case-content{display:grid;grid-template-columns:1fr 2fr;gap:8%;padding:60px 6%}.case-content aside h2{font-size:31px;line-height:1.4;margin:16px 0 28px}.case-content>div section{margin-bottom:35px}.case-content>div section h2{font-size:28px;margin:10px 0 18px}.case-content p,.case-content li{color:var(--muted);max-width:780px}.case-content ul{padding-left:22px}.case-content li{margin-bottom:13px}.case-content>div section:last-child{padding:25px;background:var(--pale);border-left:3px solid #b97c51;margin-bottom:0}.case-content>div section:last-child p{margin:0}.case-gallery{padding:0 6% 60px}.case-gallery h2{margin:12px 0 28px;font-size:32px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px}.gallery img{height:300px;object-fit:contain;background:var(--pale)}.gallery figure:last-child:nth-child(odd){grid-column:1/-1}.gallery figure:last-child:nth-child(odd) img{height:auto;max-height:500px}.case-end{padding:24px 6%;border-block:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:14px}@media(min-width:1600px){header,.hero,.section,footer,.case-intro,.case-content,.case-gallery,.case-end{padding-left:max(6%,calc((100% - 1400px)/2));padding-right:max(6%,calc((100% - 1400px)/2))}}@media(max-width:1000px){nav{gap:17px}.brand>span{display:none}.hero{gap:35px}.hero-side{padding-left:25px}.hero h1{font-size:51px;letter-spacing:-1.7px}.skills-grid{grid-template-columns:1fr 1fr}.card-image img{height:235px}.type-panel{height:270px;padding:24px}.type-panel strong{font-size:27px}.education{grid-template-columns:1fr 1.3fr}.education>div:last-child{grid-column:1/-1}.contact h2{font-size:42px}.case-content{gap:40px}.case-meta{gap:35px}}@media(max-width:640px){header{padding:20px 6%;flex-wrap:wrap;gap:18px}.brand>span{display:block}nav{justify-content:space-between;width:100%;gap:12px;flex-wrap:wrap;font-size:13px}.hero{grid-template-columns:1fr;padding:42px 6%;gap:30px}.hero h1{font-size:46px}.hero-line{font-size:24px}.hero-side{padding:24px 0 0;border-left:0;border-top:1px solid #ccd6de}.hero-side blockquote{font-size:23px;margin:16px 0 22px}.hero-side blockquote br{display:none}.hero-side>div{display:inline-block;width:100%;padding:12px 0}.section{padding:48px 6%}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:32px}.section-heading>p{margin-top:17px}.project-gallery{grid-template-columns:1fr;gap:32px}.card-image img{height:auto;aspect-ratio:1.6;object-fit:cover}.type-panel{height:250px}.project-card:last-child{display:flex;gap:0}.card-copy h3{font-size:25px}.timeline article,.international{grid-template-columns:1fr;gap:12px}.skills-grid{gap:20px}.skills-grid h3{font-size:21px}.education,.contact-grid{grid-template-columns:1fr;gap:25px}.contact h2{font-size:42px}.email{font-size:16px}footer{flex-wrap:wrap;gap:12px}footer>span:nth-child(2){display:none}.case-intro{padding-top:30px}.case-intro h1{font-size:39px;letter-spacing:-1.3px}.case-summary{font-size:18px}.case-meta{flex-direction:column;gap:17px}.case-content{grid-template-columns:1fr;padding-top:38px;gap:35px}.case-content aside{border-bottom:1px solid var(--line);padding-bottom:28px}.case-content aside h2{font-size:28px;margin:12px 0 17px}.gallery{grid-template-columns:1fr}.gallery img{height:auto;max-height:400px}.case-end{font-size:13px}.eyebrow{font-size:11px}.card-image figcaption{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.button,.text-link,.case-end,footer{display:none}.hero,.contact{background:white;color:black}.section{padding:25px 0}.project-card,.case-content section{break-inside:avoid}.contact p{color:#333}}
/* Portrait and personal profile */
.hero{grid-template-columns:1.25fr 1fr;align-items:center;gap:6%}.hero-copy{min-width:0}.hero h1{font-size:clamp(42px,4.6vw,70px)}.hero-portrait{margin:0;align-self:center;border-bottom:4px solid var(--copper);background:#dce3e8}.hero-portrait img{width:100%;height:auto;aspect-ratio:842/751;object-fit:contain}.skill-legend{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;border-block:1px solid var(--line);padding:16px 0;margin-bottom:32px;font-size:14px;color:var(--muted)}.skill-legend>span:first-child{font:12px var(--mono);letter-spacing:1px;color:var(--copper)}.rated-skills{display:grid;grid-template-columns:1fr 1fr;gap:38px 55px}.skill-category h3{font-size:25px;margin:10px 0 22px}.skill-category ul{list-style:none;padding:0;margin:0}.skill-category li{margin-bottom:21px}.skill-label{display:flex;align-items:baseline;justify-content:space-between;gap:18px;font-size:16px;line-height:1.5}.skill-level{font-size:14px;color:var(--muted);flex-shrink:0}.skill-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-top:9px}.skill-meter span{height:6px;background:#e0e6eb}.skill-meter .filled{background:#426079}.interests{background:var(--pale);border-top:1px solid var(--line)}.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 40px}.interest-grid article{display:flex;gap:17px;border-top:1px solid #cbd5de;padding-top:21px}.interest-number{font:12px var(--mono);color:var(--copper);padding-top:5px}.interest-grid h3{font-size:21px;line-height:1.35;margin-bottom:9px;letter-spacing:-.4px}.interest-grid p{font-size:14px;color:var(--muted);margin:0}@media(max-width:1000px){nav{gap:16px;font-size:13px}.hero h1{font-size:45px;letter-spacing:-1.5px}.rated-skills{gap:30px}.interest-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.hero{grid-template-columns:1fr;gap:30px}.hero h1{font-size:46px}.hero-portrait{width:100%;max-width:460px}.rated-skills{grid-template-columns:1fr;gap:25px}.skill-label{font-size:16px}.skill-level{font-size:14px}.skill-legend{gap:12px 18px}.interest-grid{grid-template-columns:1fr;gap:23px}.interest-grid h3{font-size:22px}.interest-grid p{font-size:16px}.skill-category h3{font-size:24px}}@media print{.hero-portrait{max-width:250px}.skill-meter .filled{print-color-adjust:exact}.interest-grid article{break-inside:avoid}}

.certificates{border-top:1px solid var(--line)}.certificate-card{display:grid;grid-template-columns:minmax(230px,.8fr) 1.6fr;gap:60px;align-items:center}.certificate-preview{display:block;background:var(--pale);padding:22px;border:1px solid var(--line)}.certificate-preview img{max-height:470px;width:100%;object-fit:contain}.certificate-copy h3{font-size:31px;margin:14px 0 20px}.certificate-copy>p{max-width:640px;color:var(--muted)}.certificate-standards{list-style:none;padding:0;margin:20px 0}.certificate-standards li{padding:10px 0;border-bottom:1px solid var(--line);font-weight:600}.certificate-standards li span{display:inline-block;font-weight:400;color:var(--muted);margin-left:16px;font-size:14px}.certificate-meta{font-size:14px}.certificate-facts{font-size:14px;margin:20px 0}.certificate-facts div{display:flex;gap:25px;margin-bottom:6px}.certificate-facts dt{width:115px;color:var(--muted)}.certificate-facts dd{margin:0}.certificate-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px}.certificate-actions .text-link{margin-top:9px}.certificate-actions .button{margin-top:9px}nav{gap:20px}@media(max-width:1100px){header{flex-wrap:wrap;gap:20px}nav{flex-wrap:wrap;gap:15px 24px}.certificate-card{gap:30px}}@media(max-width:640px){.certificate-card{grid-template-columns:1fr}.certificate-preview{max-width:330px;margin:auto;width:100%}.certificate-copy h3{font-size:28px}.certificate-standards li span{display:block;margin:3px 0 0}.certificate-actions{gap:18px}.skill-legend{font-size:13px}}
