@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#151719;--muted:#5b626d;--paper:#fafbfc;--blue:#2c52ed;--line:#dce0e5;--display:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.6 var(--body)}a{color:inherit;text-decoration:none}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}.skip{position:fixed;left:1rem;top:-100px;z-index:10;background:white;padding:12px}.skip:focus{top:1rem}.header{height:90px;padding:0 6%;display:flex;align-items:center;border-bottom:1px solid #36383a;background:var(--ink);color:#fff;gap:30px}.brand{font:700 2.4rem var(--display);letter-spacing:-3px}.brand span{color:#8297ff}.header nav{display:flex;gap:36px;margin:auto;font-size:.9375rem}.header nav a{padding:10px 0;transition:color .2s}.header nav a:hover{color:#a3b2ff}.location{font-size:.75rem;letter-spacing:.15em}.hero{background:var(--ink);color:#f7f8fa;padding:42px 6% 22px}.hero-top{display:flex;justify-content:space-between;gap:20px}.eyebrow,.hero-note{font-size:.8125rem;letter-spacing:.08em}.eyebrow{color:#abb9fd}.hero-note{color:#b0b5be;letter-spacing:0}.hero h1{font:500 clamp(4rem,12.2vw,12rem)/1.04 var(--display);letter-spacing:-.065em;margin:40px 0 42px}.hero h1>span:not(.name-period){color:#f7f8fa}.hero h1 .name-period{color:#7f94ff}.hero-bottom{display:grid;grid-template-columns:1.25fr 1fr;gap:50px;border-top:1px solid #44474b;padding-top:32px;padding-bottom:50px}.hero h2{font:400 clamp(1.8rem,3vw,3rem)/1.2 var(--display);letter-spacing:-.035em;margin:0}.hero-summary{max-width:460px}.hero-summary p{font-size:1.0625rem;color:#c2c6ce;margin:0 0 24px}.text-link{font-size:.9375rem;display:inline-flex;gap:34px;align-items:center;border-bottom:1px solid #727984;padding-bottom:8px}.text-link:hover{border-color:white}.hero-footer{border-top:1px solid #36383a;padding-top:18px;display:flex;justify-content:space-between;gap:24px;font-size:.75rem;letter-spacing:.09em;color:#b0b5be}.section{padding:96px 6%;scroll-margin-top:0}.section-label{font-size:.8125rem;color:var(--muted);letter-spacing:.09em}.about{display:grid;grid-template-columns:1fr 2fr;gap:60px;border-bottom:1px solid var(--line)}.about h2,.section-heading h2,.resume-sidebar h2{font:500 clamp(2rem,3.5vw,3.2rem)/1.15 var(--display);letter-spacing:-.05em;margin:0 0 30px}.about-body{max-width:740px}.about p{color:var(--muted);max-width:680px;margin:0 0 20px}.about p.intro{font-size:1.375rem;line-height:1.5;color:var(--ink)}.expertise{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.expertise span{border:1px solid #cdd3dc;border-radius:5px;padding:7px 13px;font-size:.875rem;color:#3f4754}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:36px}.section-heading h2{margin:18px 0 0}.section-heading>p{font-size:1rem;color:var(--muted);margin:0}.blue{color:var(--blue)}.project{border-top:1px solid #bfc7d2}.project:last-child{border-bottom:1px solid #bfc7d2}.project summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:70px 1fr 48px;gap:24px;padding:34px 0}.project summary::-webkit-details-marker{display:none}.project-number{font-size:.875rem;color:var(--muted);padding-top:4px;font-family:var(--display)}.project-category{color:var(--blue);font-size:.75rem;letter-spacing:.09em;font-weight:650}.project h3{font:500 clamp(1.4rem,2.4vw,2.2rem)/1.25 var(--display);letter-spacing:-.035em;margin:9px 0}.project summary p{margin:0;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.tags span{font-size:.8125rem;padding:3px 10px;background:#edf0f5;border-radius:4px;color:#515b6b}.expand{width:44px;height:44px;display:grid;place-items:center;background:transparent;border:1px solid #bdc4cf;border-radius:50%;font:400 1.6rem var(--body);align-self:center;transition:transform .2s,background .2s}.project summary:hover .expand,.project[open] .expand{background:var(--blue);color:#fff;border-color:var(--blue)}.project[open] .expand{transform:rotate(45deg)}.project-detail{margin:0 0 34px 94px;display:grid;grid-template-columns:.85fr 1.3fr;gap:40px;padding:28px 32px;background:#eef1f7;border-left:3px solid var(--blue);color:#515b6b}.project-detail h4{margin:0 0 10px;color:var(--ink);font-size:1rem;font-weight:600}.project-detail p,.project-detail ul{margin:0}.project-detail ul{padding-left:18px}.project-detail li+li{margin-top:6px}.resume{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;background:#f0f2f6;border-top:1px solid var(--line)}.resume-sidebar h2{margin:20px 0 30px}.print-button{padding:12px 18px;border:1px solid #bdc4cf;background:transparent;border-radius:5px;font-size:.9375rem;cursor:pointer;display:inline-flex;gap:28px;align-items:center}.print-button:hover{background:white;border-color:var(--ink)}.resume-group{font-size:.8125rem;letter-spacing:.08em;font-weight:500;color:var(--muted);margin:0 0 24px}.role{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid #ccd2dc}.role-sector{font-size:.75rem;color:var(--blue);letter-spacing:.08em}.role h3{font:500 1.65rem/1.3 var(--display);letter-spacing:-.03em;margin:8px 0}.role .company{color:var(--ink);font-weight:550;margin:0 0 18px}.role p{color:var(--muted);margin:0 0 12px}.role ul{color:var(--muted);padding-left:19px;margin:0}.role li+li{margin-top:5px}dl{margin:0}dl>div{display:grid;grid-template-columns:150px 1fr;gap:24px;padding:15px 0;border-top:1px solid #d9dfe7;font-size:.9375rem}dt{font-weight:550}dd{margin:0;color:var(--muted)}.print-heading{display:none}footer{padding:45px 6%;display:flex;gap:24px;align-items:center;background:var(--ink);color:white}.footer-name{font:500 1.45rem var(--display);letter-spacing:-.04em}.footer-name span{color:#8297ff}footer p{font-size:.875rem;color:#b0b5be}.top-link{margin-left:auto;font-size:.875rem;color:#d3d7de}
@media(min-width:1500px){.header,.hero,.section,footer{padding-left:max(6%,calc((100vw - 1360px)/2));padding-right:max(6%,calc((100vw - 1360px)/2))}}
@media(max-width:850px){.header{height:76px}.header nav{gap:24px}.location{display:none}.header nav{margin-right:0}.hero{padding-top:30px}.hero-top .hero-note{display:none}.hero h1{margin:42px 0; font-size:clamp(4rem,12.4vw,7rem)}.hero-bottom{gap:28px;grid-template-columns:1fr 1.2fr}.section{padding-top:65px;padding-bottom:65px}.about{grid-template-columns:1fr;gap:28px}.about-body{max-width:none}.section-heading{display:block}.section-heading>p{margin-top:20px}.section-heading>p br{display:none}.resume{grid-template-columns:1fr;gap:40px}.resume-sidebar h2 br{display:none}.project-detail{grid-template-columns:1fr;gap:20px;margin-left:0}.project summary{grid-template-columns:35px 1fr 44px;gap:15px}.project-number{padding-top:3px}}
@media(max-width:520px){.header,.hero,.section,footer{padding-left:6%;padding-right:6%}.header{gap:15px}.header nav{gap:19px;font-size:.875rem}.hero h1{line-height:.98;letter-spacing:-.065em;font-size:clamp(3.7rem,18.8vw,6rem);margin:35px 0}.hero h1>span:not(.name-period){display:block}.name-period{display:none}.hero-bottom{grid-template-columns:1fr;gap:22px;padding-top:24px;padding-bottom:30px}.hero h2{font-size:1.7rem}.hero h2 br{display:none}.hero-footer{font-size:.75rem;flex-direction:column;gap:5px}.hero-summary p{font-size:1rem}.section{padding-top:50px;padding-bottom:50px}.about h2,.section-heading h2,.resume-sidebar h2{font-size:2rem}.about p.intro{font-size:1.1875rem}.project summary{grid-template-columns:1fr 38px;gap:12px;padding:27px 0}.project-number{display:none}.expand{width:36px;height:36px}.project h3{font-size:1.5rem}.project-detail{padding:22px}.tags{gap:6px}.tags span{padding:3px 7px}.resume{gap:36px}dl>div{grid-template-columns:1fr;gap:5px}footer{align-items:flex-start;flex-wrap:wrap;padding-top:30px;padding-bottom:30px}footer p{width:100%;margin:0;order:3}.top-link{padding-top:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{@page{margin:16mm}body{background:#fff;color:#111;font:10pt/1.45 Arial,sans-serif}.header,.hero,.about,.projects,footer,.skip,.resume-sidebar{display:none!important}.section.resume{display:block;padding:0;background:#fff;border:0}.print-heading{display:block;margin-bottom:24px;border-bottom:2px solid #111;padding-bottom:12px}.print-heading h2{font:700 26pt Arial,sans-serif;margin:0}.print-heading p{margin:4px 0}.resume-group{margin-bottom:12px;color:#333;font-size:10pt}.role{break-inside:avoid;padding-bottom:18px;margin-bottom:18px}.role h3{font:700 14pt Arial,sans-serif}.role-sector{font-size:9pt;color:#333}.role p,.role ul,dd{color:#333}.skills{break-inside:avoid}dl>div{grid-template-columns:130px 1fr;font-size:10pt;padding:10px 0}}

.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:36px;font-size:1rem}.contact-details h3{font:500 1.15rem var(--display);margin:0 0 5px}.contact-details a{color:var(--blue);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.contact-details span{color:var(--muted)}.cv-note{font-size:.8125rem;color:var(--muted);margin-top:26px;max-width:240px}.education>.resume-group{margin-top:42px}@media print{.skills{break-inside:auto}.skills dl>div{break-inside:avoid}.education>.resume-group{margin-top:24px}.resume-group{break-after:avoid}}
