:root{--navy:#102b3b;--ink:#172f3c;--muted:#526570;--line:#d5dfe4;--blue:#cae2ed;--paper:#f2f6f8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font:16px/1.65 'Segoe UI',Arial,sans-serif}a{color:inherit}button{font:inherit}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #2282aa;outline-offset:5px}header{display:flex;justify-content:space-between;align-items:center;padding:20px 5%;gap:25px;background:white;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:14px;font-weight:650;text-decoration:none;font-size:18px}.monogram{display:grid;place-items:center;width:43px;height:43px;background:var(--navy);color:white;font:23px Georgia,serif}nav{display:flex;gap:28px;align-items:center}nav a{text-decoration:none;font-size:14px;font-weight:600}nav a:hover{text-decoration:underline;text-underline-offset:7px}.nav-contact{border-bottom:1px solid var(--ink);padding-bottom:4px}.menu{display:none}.hero{background:var(--navy);color:white;display:grid;grid-template-columns:1.5fr 1fr;min-height:690px}.hero-main{padding:76px 8% 45px 9%}.eyebrow,.side-label{font-size:12px;font-weight:700;letter-spacing:.16em;margin:0 0 22px}.hero .eyebrow{color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{font:clamp(42px,4.55vw,70px)/1.08 Georgia,serif;letter-spacing:-.045em;margin-bottom:28px}h1 em{color:var(--blue);font-weight:400}.intro{font-size:19px;max-width:590px;color:#d9e4e9;line-height:1.7}.actions{display:flex;align-items:center;gap:28px;margin-top:34px}.button{display:inline-block;text-decoration:none;padding:13px 22px;font-weight:650;font-size:14px;border:1px solid transparent}.light{background:white;color:var(--navy)}.button:hover{background:var(--blue)}.text-link{text-underline-offset:6px;font-size:14px}.location{font-size:13px;color:#bed0d9;margin:54px 0 0}.location span{margin:0 10px}.hero-aside{background:#183748;border-left:1px solid #3c5360;padding:50px 12% 35px;display:flex;flex-direction:column;justify-content:center}.side-label{color:#b7ceda;margin-bottom:35px}.path{border-left:1px solid #698493;padding-left:28px}.path>div{position:relative;margin-bottom:32px}.path>div:before{content:'';position:absolute;left:-33px;top:9px;width:9px;height:9px;background:var(--blue)}.path small{font-size:11px;letter-spacing:.1em;color:#b7ceda}.path h2{font:25px/1.3 Georgia,serif;margin:9px 0}.path p{font-size:14px;color:#c3d4dd;line-height:1.6;max-width:320px}.aside-footer{font-size:10px;letter-spacing:.13em;color:#b7ceda;border-top:1px solid #48616e;padding-top:22px}.section{padding:90px 6%}.section-heading{margin-bottom:42px}.section h2{font:clamp(32px,3.2vw,48px)/1.15 Georgia,serif;letter-spacing:-.035em;margin-bottom:20px}.section-heading>p:last-child,.section-heading.split>p{color:var(--muted);max-width:510px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.metrics article{border-top:1px solid var(--line);padding-top:25px}.metrics strong{font:clamp(38px,4vw,60px)/1.2 Georgia,serif;display:block;margin-bottom:17px}.metrics strong span{font-size:.65em}.metrics h3{font-size:15px;margin-bottom:8px}.metrics p{font-size:14px;color:var(--muted)}.work{background:var(--paper)}.split{display:flex;justify-content:space-between;align-items:end;gap:40px}.split>p{width:34%}.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}.case{background:white;padding:28px;border-top:3px solid #254d65}.case-top{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:.08em;margin-bottom:27px;font-weight:700;color:var(--muted)}.case h3{font:28px/1.2 Georgia,serif;letter-spacing:-.025em}.case>p{font-size:15px;color:var(--muted);min-height:100px}.case-result{border-top:1px solid var(--line);padding:20px 0}.case-result strong{display:block;font:35px Georgia,serif}.case-result span{display:block;font-size:12px;color:var(--muted);margin-top:7px}details{border-top:1px solid var(--line)}summary{cursor:pointer;padding-top:17px;font-size:14px;font-weight:650}.case-detail{margin-top:22px;font-size:14px;color:var(--muted)}h4{font-size:14px;margin:17px 0 5px;color:var(--ink)}.note{font-size:12px;border-left:2px solid var(--line);padding-left:12px}.expertise{display:grid;grid-template-columns:1fr 1fr;gap:30px 8%}.expertise-intro{max-width:430px;color:var(--muted)}.capabilities article{display:flex;gap:24px;border-top:1px solid var(--line);padding:22px 0}.capabilities article>span{font-size:12px;color:var(--muted)}.capabilities h3{font-size:19px;margin-bottom:6px}.capabilities p{font-size:14px;color:var(--muted);margin:0}.tools{grid-column:1/-1;border-top:1px solid var(--line);padding-top:30px;display:flex;gap:35px;align-items:baseline}.tools>span,.education>span{font-size:11px;letter-spacing:.12em;font-weight:700;white-space:nowrap}.tools p{font-size:14px;color:var(--muted)}.career{background:var(--paper)}.timeline{margin-left:25%}.timeline article{display:grid;grid-template-columns:190px 1fr;gap:35px;border-top:1px solid var(--line);padding:25px 0}.timeline time{font-size:12px;font-weight:600;letter-spacing:.03em;padding-top:4px}.timeline h3{font-size:20px;margin-bottom:7px}.timeline p{color:var(--muted);font-size:15px;max-width:620px;margin:0}.education{display:flex;gap:45px;border-top:1px solid var(--line);padding-top:28px;margin-top:30px}.education h3{font-size:17px;margin-bottom:5px}.education p{font-size:14px;color:var(--muted);margin:0}.contact{background:var(--navy);color:white;display:grid;grid-template-columns:1.5fr 1fr;gap:65px}.contact .eyebrow{color:var(--blue)}.contact p{color:#c3d4dd;max-width:510px}.email{display:inline-block;font:clamp(22px,3vw,34px) Georgia,serif;text-underline-offset:8px;margin-top:18px;overflow-wrap:anywhere}.contact-card{border:1px solid #4b6473;padding:32px}.contact-card .monogram{background:var(--blue);color:var(--navy);margin-bottom:22px}.contact-card h3{font:28px Georgia,serif;margin-bottom:8px}.contact-card .button{margin:12px 16px 16px 0}.contact-card .text-link{display:inline-block}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 6%;font-size:12px;color:var(--muted)}.skip{position:fixed;top:-80px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1000px){nav{gap:18px}.hero-main{padding:60px 8%}.hero-aside{padding:45px 9%}.hero{grid-template-columns:1.3fr 1fr}.case{padding:22px}.case h3{font-size:24px}.timeline{margin-left:10%}.metrics{gap:20px}}@media(max-width:760px){header{padding:15px 6%;flex-wrap:wrap}.menu{display:block;background:white;border:1px solid var(--line);padding:7px 13px;font-size:14px}nav{display:none;width:100%;flex-wrap:wrap;padding:10px 0}nav.open{display:flex}.hero{grid-template-columns:1fr;min-height:0}.hero-main{padding:55px 6% 40px}.hero-aside{padding:35px 6%;border-left:0;border-top:1px solid #4b6473}.hero h1{font-size:clamp(38px,8vw,62px)}.intro{font-size:17px}.location{margin-top:35px}.hero-aside .path{display:grid;grid-template-columns:1fr;gap:0}.path p{max-width:none}.section{padding:58px 6%}.metrics{grid-template-columns:1fr 1fr;gap:25px}.metrics strong{font-size:43px}.split{display:block}.split>p{width:auto}.cases{grid-template-columns:1fr}.case>p{min-height:0}.case h3{font-size:29px}.expertise{grid-template-columns:1fr}.tools{display:block}.tools p{margin-top:13px}.timeline{margin:0}.timeline article{grid-template-columns:1fr;gap:7px}.education{display:block}.education>span{display:block;margin-bottom:15px}.contact{grid-template-columns:1fr;gap:30px}.contact-card{max-width:500px}footer{flex-wrap:wrap}footer span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{header,.hero-aside,.menu,footer,.actions{display:none}.hero,.contact{background:white;color:black;display:block}.hero-main,.section{padding:25px}.hero p,.contact p{color:#333}.cases,.metrics{display:block}.case{break-inside:avoid}.contact-card{display:none}}
.dark{background:var(--navy);color:white}.dark:hover{background:#28556e;color:white}nav [aria-current=page]{text-decoration:underline;text-underline-offset:7px}.project-intro{max-width:850px;margin-bottom:32px;color:var(--muted)}.personal-teaser{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:60px}.personal-teaser img{width:100%;height:270px;object-fit:cover}.personal-teaser p{max-width:630px}.about-hero{display:grid;grid-template-columns:1.15fr 1fr;background:var(--navy);color:white;gap:8%;padding:70px 7%;align-items:center}.about-hero h1{font-size:clamp(40px,5vw,72px)}.about-hero em{color:var(--blue)}.about-hero>div>p:not(.eyebrow){color:#d4e1e8;max-width:580px}.about-hero figure{margin:0}.about-hero img{width:100%;height:auto;max-height:650px;object-fit:cover}.about-hero figcaption{font-size:13px;color:#c3d4dd;padding-top:12px}figure{margin:0}figcaption{font-size:14px;padding-top:12px;color:var(--muted)}.story{display:grid;grid-template-columns:1fr 1.25fr;gap:8%}.story p{font-size:18px;color:var(--muted)}.life{background:var(--paper)}.life-gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px}.life-gallery img{width:100%;height:360px;object-fit:cover}.interest-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.interest-list span{border:1px solid #b6c6cf;padding:8px 17px;border-radius:30px;font-size:14px}.project-hero{padding:76px 7%;background:var(--navy);color:white}.project-hero h1{font-size:clamp(38px,5vw,68px)}.project-hero .intro{max-width:800px}.project-layout{display:grid;grid-template-columns:270px 1fr;gap:7%;padding:65px 7%}.project-index{align-self:start;position:sticky;top:115px}.project-index a{display:flex;gap:15px;font-size:11px;letter-spacing:.04em;text-decoration:none;border-top:1px solid var(--line);padding:13px 0}.project-index a:hover{text-decoration:underline}.project-index span{color:var(--muted)}.project-story{padding:0 0 60px;margin-bottom:55px;border-bottom:1px solid var(--line);scroll-margin-top:115px;max-width:860px}.project-story h2{font:clamp(29px,3vw,43px)/1.2 Georgia,serif;letter-spacing:-.025em}.project-story h3{font-size:15px;margin:25px 0 8px}.project-story p,.project-story li{color:var(--muted)}.project-context{font-size:19px}.project-story li{margin:7px 0}.project-outcome{background:var(--paper);border-left:3px solid #60899f;padding:2px 25px 10px;margin-top:25px}.project-close{background:var(--paper)}.project-close p{max-width:680px}.resume-shell{background:#edf2f5;padding:32px 5% 75px}.resume-toolbar{max-width:1160px;margin:0 auto 22px;display:flex;justify-content:space-between;gap:25px;align-items:center}.resume-toolbar>span{font-size:12px;letter-spacing:.14em;font-weight:700}.resume-toolbar>div{display:flex;gap:22px;align-items:center}.resume-toolbar a{font-size:13px}.resume-toolbar button{cursor:pointer}.resume-paper{background:white;max-width:1160px;margin:auto;box-shadow:0 16px 60px #102b3b12;border-top:6px solid var(--navy)}.resume-masthead{display:grid;grid-template-columns:1fr 180px;gap:35px;padding:48px 55px 35px;align-items:center}.resume-masthead h1{font:clamp(42px,5vw,64px)/1.1 Georgia,serif;margin-bottom:12px;letter-spacing:-.04em}.resume-masthead .eyebrow{font-size:11px;color:#4e6a7c;margin-bottom:20px}.resume-masthead img{width:180px;height:215px;object-fit:cover;object-position:center 35%}.resume-title{font-size:21px;margin-bottom:15px}.resume-contact{font-size:14px;color:var(--muted);margin-bottom:0}.resume-profile{padding:0 55px 22px}.resume-paper h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#31586d;margin-bottom:15px}.resume-profile p{font-size:16px;color:var(--muted)}.resume-highlights{display:grid;grid-template-columns:repeat(3,1fr);margin:0 55px 35px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:30px}.resume-highlights strong{font:35px Georgia,serif;display:block}.resume-highlights span{display:block;font-size:12px;color:var(--muted);max-width:180px;margin-top:8px}.resume-columns{display:grid;grid-template-columns:230px 1fr;gap:42px;padding:0 55px 48px}.resume-sidebar{border-right:1px solid var(--line);padding-right:25px}.resume-sidebar section{margin-bottom:32px}.resume-sidebar ul{list-style:none;padding:0}.resume-sidebar p,.resume-sidebar li{font-size:13px;line-height:1.7;color:var(--muted)}.resume-sidebar li{margin-bottom:9px}.resume-sidebar h3{font-size:15px;margin-bottom:10px}.employer{font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:25px}.resume-role{margin-bottom:30px;break-inside:avoid}.role-date{font-size:12px;color:var(--muted);margin-bottom:5px}.resume-role h3{font:23px/1.25 Georgia,serif;margin-bottom:14px}.resume-role ul{padding-left:18px}.resume-role li{font-size:14px;line-height:1.65;color:#3d5360;margin-bottom:9px}.resume-projects{padding-top:20px;border-top:1px solid var(--line)}.resume-projects p{font-size:14px;color:var(--muted)}.resume-projects a{font-size:14px}.strava-card{background:var(--navy);color:white;padding:35px;margin-top:40px;display:flex;justify-content:space-between;align-items:center;gap:30px}.strava-card p{color:#c3d4dd;max-width:620px;margin-bottom:0}.strava-card h3{font:28px Georgia,serif;margin-bottom:12px}.strava-card .button{white-space:nowrap}
@media(max-width:900px){.resume-columns{grid-template-columns:190px 1fr;gap:25px}.resume-masthead,.resume-profile{padding-left:30px;padding-right:30px}.resume-columns{padding-left:30px;padding-right:30px}.resume-highlights{margin-left:30px;margin-right:30px}.project-layout{grid-template-columns:210px 1fr;gap:5%}.life-gallery img{height:280px}}
@media(max-width:760px){.about-hero{grid-template-columns:1fr;padding:45px 6%;gap:30px}.about-hero figure{max-width:500px}.about-hero img{max-height:none}.story{grid-template-columns:1fr;gap:20px}.life-gallery{grid-template-columns:1fr}.life-gallery img{height:auto}.personal-teaser{grid-template-columns:130px 1fr;gap:25px}.personal-teaser img{height:180px}.personal-teaser h2{font-size:28px}.personal-teaser p{font-size:15px}.project-layout{display:block;padding:40px 6%}.project-index{position:static;margin-bottom:45px}.project-index a{font-size:12px}.project-hero{padding:50px 6%}.resume-shell{padding:25px 3% 40px}.resume-toolbar{align-items:start;flex-direction:column;gap:12px}.resume-masthead{padding:30px 25px;grid-template-columns:1fr 95px;gap:15px}.resume-masthead img{width:95px;height:130px}.resume-masthead h1{font-size:36px}.resume-masthead .eyebrow{font-size:9px;letter-spacing:.07em}.resume-title{font-size:17px}.resume-contact{font-size:12px}.resume-profile{padding:0 25px 15px}.resume-profile p{font-size:15px}.resume-highlights{margin:0 25px 28px;gap:14px}.resume-highlights strong{font-size:28px}.resume-highlights span{font-size:11px}.resume-columns{display:flex;flex-direction:column;padding:0 25px 30px}.resume-sidebar{order:2;border:0;border-top:1px solid var(--line);padding:25px 0 0}.resume-sidebar ul{display:flex;flex-wrap:wrap;gap:0 20px}.resume-sidebar section{margin-bottom:23px}.strava-card{display:block;padding:25px}.strava-card .button{margin-top:24px}}
@media print{@page{size:letter;margin:.5in}.resume-shell{padding:0;background:white}.resume-toolbar,.resume-paper .resume-masthead img{display:none}.resume-paper{box-shadow:none;border-top:3px solid #102b3b;max-width:none}.resume-masthead{display:block;padding:15px 0}.resume-masthead h1{font-size:30pt}.resume-title{font-size:14pt}.resume-contact{font-size:10pt}.resume-profile{padding:0}.resume-profile p{font-size:10pt}.resume-highlights{margin:15px 0;padding:12px 0}.resume-highlights strong{font-size:20pt}.resume-highlights span{font-size:9pt}.resume-columns{display:block;padding:0}.resume-experience{display:block}.resume-sidebar{border:0;padding:0;display:block}.resume-sidebar section{display:inline-block;vertical-align:top;width:47%;margin:0 2% 12px 0}.resume-sidebar section:last-child{display:block;width:100%}.resume-sidebar p,.resume-sidebar li{font-size:9pt;margin-bottom:3px}.resume-sidebar ul{display:block;margin:0}.resume-sidebar li{display:inline}.resume-sidebar li:not(:last-child):after{content:' · '}.resume-paper h2{font-size:10pt;break-after:avoid}.resume-role{break-inside:auto;margin-bottom:15px}.resume-role h3{font-size:14pt;break-after:avoid}.resume-role li,.resume-projects p{font-size:10pt;line-height:1.4}.resume-role li{break-inside:avoid}.resume-role ul{margin-top:5px}.resume-projects a{display:none}.role-date{break-after:avoid}body{color:#111}a{text-decoration:none}.resume-projects{break-inside:avoid}.resume-sidebar section{break-inside:avoid}}
