@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--ink:#102b50;--green:#091d3e;--paper:#f5f8fd;--line:#d4e0f1;--muted:#506583;--lime:#79d3ff;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,.node:focus-visible{outline:3px solid #1688df;outline-offset:5px}.skip{position:fixed;top:-100px;left:20px;z-index:20;background:var(--lime);padding:10px}.skip:focus{top:10px}header{height:96px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:800;letter-spacing:.09em}.brand small{display:block;font:9px var(--mono);letter-spacing:.14em;margin-top:3px}.mark{font-size:26px;letter-spacing:-3px;border:1px solid var(--ink);padding:0 9px;position:relative}.mark span{position:absolute;right:-7px;top:-15px;font:18px var(--mono);background:var(--paper)}nav{display:flex;gap:32px;font-size:13px}nav a:hover,.text-link:hover{color:#1462cf}.nav-contact{border-bottom:1px solid var(--ink)}.hero{display:grid;grid-template-columns:1.12fr 1fr;max-width:1600px;margin:auto;min-height:710px}.hero-copy{padding:68px 8% 30px 9%}.eyebrow,.mini-label{font:10px/1.6 var(--mono);letter-spacing:.1em}.eyebrow{margin:0 0 28px}.status{display:inline-block;width:6px;height:6px;border-radius:50%;background:#1688df;margin-right:6px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',sans-serif}h1{font-size:clamp(45px,4.8vw,76px);font-weight:500;line-height:1.08;letter-spacing:-.065em;margin-bottom:29px}em{font-style:normal;color:#1f6cda}h1 em{font-size:.82em;letter-spacing:-.055em}.intro{max-width:430px;font-size:16px;color:var(--muted);line-height:1.8}.actions{display:flex;gap:27px;align-items:center;margin-top:33px}.button{background:var(--ink);color:#fff;padding:15px 20px;font-size:12px;display:flex;gap:28px;align-items:center}.button:hover{background:#174d96}.button span{color:var(--lime);font-size:22px}.text-link{font-size:12px;border-bottom:1px solid}.hero-foot{display:flex;gap:16px;font:8px var(--mono);letter-spacing:.04em;margin-top:58px;flex-wrap:wrap}.hero-foot span+span:before{content:'+';margin-right:16px;color:#587da7}.drawing{background:var(--green);color:#e6f3ff;margin:28px 28px 28px 0;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.drawing-head{display:flex;justify-content:space-between;gap:15px;padding:24px 25px 0;font:9px var(--mono);color:#b9d4f2}.drawing svg{width:100%;max-height:510px}.node{cursor:pointer}.node rect{fill:#123765;stroke:#75b8f6;stroke-width:1}.node text{fill:#f0f8ff;pointer-events:none}.node text.dim{fill:#b4d9ff;font-size:9px}.node:hover rect,.node.selected rect{fill:#19548a;stroke:var(--lime);stroke-width:2}.signal-path{stroke-dasharray:8 4;animation:flow 16s linear infinite}@keyframes flow{to{stroke-dashoffset:-120}}.drawing-note{display:flex;gap:17px;margin:0 27px;border-top:1px solid #3b6090;padding-top:15px}.drawing-note>span{font:22px var(--mono);color:var(--lime)}.drawing-note strong{font-size:12px;font-weight:500}.drawing-note p{font-size:11px;color:#bed7f4;margin:5px 0}.diagram-hint{font:9px var(--mono);color:#bed7f4;margin:15px 27px 22px}.employer-strip{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:30px 5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.employer-strip p{font:9px var(--mono);max-width:130px;margin:0}.employer-strip span{font-family:'Manrope',sans-serif;font-size:20px;font-weight:600;letter-spacing:-.04em}.section{padding:100px 6%;max-width:1600px;margin:auto}.section-heading{display:grid;grid-template-columns:1fr 1fr;column-gap:80px}.section-heading .eyebrow{grid-column:1/-1}h2{font-size:clamp(32px,3.6vw,54px);line-height:1.15;font-weight:500;letter-spacing:-.05em;margin-bottom:38px}.section-heading>p:last-child{max-width:400px;color:var(--muted);align-self:center;font-size:14px}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.filters button{padding:9px 15px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:11px}.filters button:hover{border-color:var(--ink)}.filters button.active{background:var(--ink);color:white;border-color:var(--ink)}.result-count{font:9px var(--mono);color:var(--muted);margin:20px 0 12px}.project-row{border-top:1px solid var(--line);display:grid;grid-template-columns:55px 1fr 180px 32px;gap:20px;padding:27px 0;align-items:center}.project-row:last-child{border-bottom:1px solid var(--line)}.project-number{font:11px var(--mono);color:var(--muted)}.project-row h3{font-size:20px;line-height:1.4;font-weight:500;letter-spacing:-.025em;margin:0}.project-meta{font:9px var(--mono);color:var(--muted);margin-top:7px}.scope{font:10px var(--mono);justify-self:start;border:1px solid #b6cee9;padding:5px 10px}.project-row details{grid-column:2/4;font-size:12px;color:var(--muted)}.project-row summary{cursor:pointer;font:10px var(--mono);list-style:none}.project-row summary:before{content:'+ ';color:var(--ink)}.project-row details[open] summary:before{content:'− '}.project-row details p{margin:12px 0 0;max-width:650px}.row-icon{font:23px var(--mono);color:#3679c6}.experience{background:#eaf1fb;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:90px}.section-lead{font-size:14px;max-width:355px;color:var(--muted)}.education{border-top:1px solid #c9daf1;margin-top:55px;padding-top:25px;max-width:400px}.education h3{margin:12px 0 4px;font-weight:500;font-size:20px}.education p{font-size:13px;margin:0}.education small{display:block;font-size:12px;margin-top:15px;max-width:330px;color:var(--muted)}.timeline{border-left:1px solid #aac6ed;padding-left:33px}.timeline article{position:relative;padding:0 0 35px}.timeline article:before{content:'';position:absolute;width:9px;height:9px;background:#2873db;left:-38px;top:5px;border:2px solid #eaf1fb;box-shadow:0 0 0 1px #2873db}.timeline .date{font:10px var(--mono);margin-bottom:10px}.timeline h3{font-size:21px;margin-bottom:3px;font-weight:600;letter-spacing:-.035em}.timeline .role{font-size:12px;color:var(--ink);margin-bottom:10px}.timeline p:last-child{color:var(--muted);font-size:13px;max-width:450px;margin-bottom:0}.process{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:15px 0 70px}.process article{border-top:1px solid var(--line);padding-top:20px}.process article>span{font:10px var(--mono);color:#226bc9}.process h3{font-size:23px;line-height:1.35;font-weight:500;margin:25px 0 15px;letter-spacing:-.035em}.process p{color:var(--muted);font-size:13px}.toolkit{border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:180px 1fr}.toolkit>p:last-child{font-size:17px;line-height:2.1;max-width:840px}.toolkit b{font-weight:400;color:#658dbb;margin:0 12px}.toolkit small{font-size:11px}.contact{background:var(--green);color:#f0f6ff;max-width:none;padding-bottom:25px}.contact .eyebrow{color:#9ec9f8}.contact-top{display:flex;justify-content:space-between;align-items:center}.contact h2{font-size:clamp(65px,9vw,138px);line-height:1.05;letter-spacing:-.06em}.contact h2 em{color:var(--lime)}.contact-arrow{font-size:100px;line-height:1;color:var(--lime);border:1px solid #4c78aa;width:140px;height:140px;text-align:center}.contact-arrow:hover{background:#153d6e}.contact-links{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;margin:30px 0 80px;border-top:1px solid #35547e;padding-top:28px}.contact-links a{font-size:16px;overflow-wrap:anywhere}.contact-links span{display:block;color:#adcff4;font:10px var(--mono);margin-bottom:14px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #35547e;padding-top:22px;font:9px var(--mono);color:#bad2ee}footer a:hover{color:var(--lime)}
@media(min-width:1600px){.experience,.contact{padding-left:max(6%,calc((100vw - 1400px)/2));padding-right:max(6%,calc((100vw - 1400px)/2))}}@media(max-width:1000px){nav{gap:18px}.hero{min-height:0}.hero-copy{padding:45px 8%}.hero-foot{margin-top:35px}h1{font-size:49px}.drawing{margin:20px 20px 20px 0}.drawing-head{font-size:8px;padding:18px 15px 0}.actions{gap:15px;flex-wrap:wrap}.employer-strip span{font-size:16px}.section{padding:75px 5%}.experience{gap:50px}.project-row{grid-template-columns:35px 1fr 130px 20px}.contact-links a{font-size:13px}}@media(max-width:700px){header{height:82px;padding:0 6%}.brand{font-size:10px}.brand small{font-size:8px}nav a:not(.nav-contact){display:none}.nav-contact{font-size:11px}.hero{grid-template-columns:1fr}.hero-copy{padding:40px 6% 30px}h1{font-size:clamp(46px,10.7vw,74px)}.eyebrow{font-size:9px}.intro{font-size:15px}.hero-foot{font-size:7px;gap:9px}.hero-foot span+span:before{margin-right:9px}.drawing{margin:0 6% 30px}.drawing svg{max-height:410px}.drawing-head{padding:22px 20px 0}.employer-strip{display:grid;grid-template-columns:1fr 1fr;padding:25px 6%;gap:20px}.employer-strip span{font-size:15px}.employer-strip p{font-size:8px}.section{padding:60px 6%}.section-heading{display:block}.section-heading>p:last-child{font-size:13px}.section-heading h2{margin-bottom:22px}h2{font-size:35px}.filters{gap:6px}.filters button{padding:8px 10px;font-size:10px}.project-row{grid-template-columns:25px 1fr 20px;gap:10px;padding:22px 0}.project-row h3{font-size:17px}.scope{grid-column:2;font-size:9px}.row-icon{grid-column:3;grid-row:1}.project-row details{grid-column:2/4}.project-meta{font-size:8px}.experience{display:block}.timeline{margin-top:50px;padding-left:25px}.timeline article:before{left:-30px}.education{margin-top:30px}.process{grid-template-columns:1fr;gap:25px;margin-bottom:35px}.process h3{margin:12px 0;font-size:24px}.process p{max-width:400px}.toolkit{grid-template-columns:1fr}.toolkit>p:last-child{font-size:15px}.contact h2{font-size:62px}.contact-arrow{font-size:58px;width:75px;height:80px}.contact-links{grid-template-columns:1fr;gap:25px;margin:25px 0 45px}.contact-links a{font-size:16px}.contact-links span{margin-bottom:7px}footer{flex-direction:column;gap:10px;line-height:1.8}.contact.section{padding-bottom:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.signal-path{animation:none}}@media print{header,nav,.filters,.contact-arrow{display:none}.hero,.experience{display:block}.drawing{max-width:500px}.section{break-inside:avoid}.contact{color:#102b50;background:white}.contact em{color:inherit}}
