@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--paper:#f7f7f3;--ink:#152c48;--muted:#5d6874;--line:#d3d9de;--blue:#214d78}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #4e87bd;outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}.header,main,footer{max-width:1360px;margin:auto}.header{min-height:100px;padding:26px 64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:30px}.brand{font-size:25px;font-weight:800;display:flex;align-items:center;gap:18px}.brand span{font-size:14px;font-weight:600;border-left:1px solid var(--line);padding-left:18px}nav{display:flex;gap:32px;font-size:14px}.hero{padding:72px 64px 0;display:grid;grid-template-columns:1.4fr 1fr;gap:40px 70px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700;margin:0 0 28px}.hero h1{font-size:clamp(64px,7.3vw,102px);letter-spacing:-.055em;line-height:1.12;font-weight:500;margin:0 0 26px}.period{color:#547fa7}.lead{font-size:29px;line-height:1.35;font-weight:500;letter-spacing:-.03em;margin:0 0 22px}.intro{max-width:490px;color:var(--muted);margin:0 0 32px}.primary{background:var(--ink);color:white;display:inline-flex;gap:60px;padding:15px 23px;font-size:14px}.primary:hover{background:var(--blue);text-decoration:none}.portrait{margin:62px 0 0;align-self:start}.portrait img{display:block;width:100%;height:auto;aspect-ratio:1/1.14;object-fit:cover;object-position:50% 50%;filter:grayscale(100%);background:#fff}.portrait figcaption{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--ink);padding-top:15px;margin-top:20px;font-size:12px;color:var(--muted)}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:22px 0;font-size:12px;color:var(--muted);margin-top:25px}.expertise{margin:0 64px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:36px 0}.expertise>div{padding:0 30px;border-right:1px solid var(--line)}.expertise>div:first-child{padding-left:0}.expertise>div:last-child{border:0;padding-right:0}.num{font-size:12px;color:#67829e}.expertise h2{font-size:18px;font-weight:600;margin:14px 0 10px}.expertise p{font-size:14px;color:var(--muted);margin:0}.section{padding:100px 64px}.section-top{display:grid;grid-template-columns:.65fr 1.5fr 1fr;gap:30px;align-items:start;margin-bottom:42px}.section-top .eyebrow{margin-top:9px}.section h2{font-weight:500;font-size:42px;letter-spacing:-.04em;line-height:1.2;margin:0}.section-top>p:last-child{font-size:14px;color:var(--muted);margin:8px 0 0}.cases{display:grid;grid-template-columns:1fr 1fr;gap:22px}.case{padding:30px 32px;border:1px solid var(--line);display:flex;flex-direction:column}.featured{grid-column:1/-1;background:var(--ink);color:white;border:none}.case-meta{display:flex;justify-content:space-between;gap:16px;font-size:12px;margin-bottom:30px}.case-meta span{opacity:.65}.case h3{font-size:29px;line-height:1.3;font-weight:500;letter-spacing:-.035em;margin:0 0 20px}.case>p,.case-main p{color:var(--muted);margin:0 0 24px;max-width:570px}.featured p{color:#c1ceda}.case-main{display:grid;grid-template-columns:1.4fr 1fr;gap:50px}.metric{align-self:center;padding-left:35px;border-left:1px solid #617082}.metric>span{font-size:30px;white-space:normal;letter-spacing:-.04em}.metric p{font-size:12px;margin-top:12px}.case details{margin-top:auto;border-top:1px solid var(--line)}.featured details{border-color:#53647a}summary{padding-top:20px;cursor:pointer;display:flex;justify-content:space-between;font-size:14px;list-style:none}summary::-webkit-details-marker{display:none}details[open] summary span{transform:rotate(45deg)}.detail{max-width:850px;font-size:16px;padding-top:18px}.detail h4{margin:18px 0 8px;font-weight:600}.detail p{margin:0 0 20px}.detail a{text-decoration:underline;text-underline-offset:4px;font-size:14px}.publications{padding-top:10px}.publication{display:grid;grid-template-columns:180px 1fr 25px;gap:28px;padding:25px 0;border-top:1px solid var(--line);align-items:center}.publication:hover{text-decoration:none}.publication:hover h3{text-decoration:underline;text-underline-offset:5px}.publication .meta{font-size:12px;color:var(--muted)}.publication .meta span{display:block}.publication h3{font-size:20px;font-weight:500;line-height:1.5;margin:0}.publication:last-child{border-bottom:1px solid var(--line)}.text-link{font-size:14px;display:inline-block;margin-top:28px}.about{background:#eaf0f3;display:grid;grid-template-columns:1fr 1fr;gap:100px}.about .eyebrow{margin-bottom:32px}.about h2{font-size:46px;margin-bottom:28px}.about-copy{color:var(--muted);max-width:440px}.timeline article{border-top:1px solid #bccbd4;padding:23px 0}.timeline span,.education>span{font-size:12px;color:var(--muted)}.timeline h3{font-size:20px;font-weight:600;line-height:1.4;margin:10px 0}.timeline p{font-size:14px;color:var(--muted);margin:0}.education{border-top:1px solid #bccbd4;padding-top:24px}.contact{padding:95px 64px 75px}.contact h2{font-size:60px;font-weight:500;letter-spacing:-.045em;line-height:1.15;margin:0 0 30px}.mail{display:flex;justify-content:space-between;gap:20px;max-width:700px;border-bottom:1px solid var(--ink);padding:10px 0 16px;font-size:clamp(19px,3vw,33px);letter-spacing:-.025em;overflow-wrap:anywhere}.contact>p:last-child{font-size:14px;color:var(--muted);margin-top:26px}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 64px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.skip{position:absolute;left:20px;top:-100px;background:white;padding:15px;z-index:4}.skip:focus{top:10px}@media(min-width:1600px){.header,main,footer{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:1000px){.header{padding:24px 30px}.brand span{display:none}.hero{padding:50px 30px 0;gap:35px}.hero h1{font-size:76px}.portrait{margin-top:60px}.expertise{margin:0 30px}.section{padding:70px 30px}.section-top{grid-template-columns:1fr 2fr}.section-top>p:last-child{grid-column:2}.section h2{font-size:36px}.about{gap:45px}.case-main{gap:25px}.metric{padding-left:20px}.contact{padding:70px 30px}footer{padding:25px 30px}}@media(max-width:650px){.header{padding:20px;align-items:flex-start;gap:20px}nav{gap:13px;flex-wrap:wrap;justify-content:flex-end;font-size:12px;max-width:270px}.brand{font-size:23px}.hero{padding:38px 20px 0;grid-template-columns:1fr;gap:30px}.hero h1{font-size:74px}.eyebrow{font-size:12px;letter-spacing:.08em}.lead{font-size:27px}.portrait{margin:0;width:100%;max-width:430px}.portrait img{aspect-ratio:1.12}.hero-foot{margin:0;flex-direction:column;gap:8px}.expertise{margin:0 20px;grid-template-columns:1fr;padding:0}.expertise>div,.expertise>div:first-child,.expertise>div:last-child{padding:24px 0;border-right:none;border-bottom:1px solid var(--line)}.expertise>div:last-child{border-bottom:none}.section{padding:58px 20px}.section-top{display:block;margin-bottom:28px}.section-top .eyebrow{margin-bottom:20px}.section h2{font-size:35px}.section-top>p:last-child{margin-top:20px}.cases{grid-template-columns:1fr}.case{padding:25px 22px}.case-meta{flex-wrap:wrap;gap:8px;margin-bottom:24px}.case h3{font-size:26px}.case-main{display:block}.metric{border-left:none;border-top:1px solid #53647a;padding:20px 0 0}.metric>span{font-size:27px}.publication{grid-template-columns:1fr 20px;gap:8px 15px;padding:23px 0}.publication .meta{grid-column:1/-1;display:flex;gap:16px}.publication h3{font-size:19px}.publications{padding-top:0}.about{grid-template-columns:1fr;gap:28px}.contact{padding:58px 20px}.contact h2{font-size:43px}footer{padding:22px 20px;flex-wrap:wrap}footer>span:last-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Persistent navigation and interactive content states. */
html { scroll-padding-top: 124px; }
.header { position: sticky; top: 0; z-index: 20; background: var(--paper); }
.publication { transition: background-color 180ms ease; }
.publication:hover, .publication:focus-visible { background-color: #e4eef7; }
.case:not(.featured) { transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease; }
.case:not(.featured):hover, .case:not(.featured):focus-within { background-color: #1c3857; color: #fff; border-color: #1c3857; }
.case:not(.featured):hover > p, .case:not(.featured):focus-within > p,
.case:not(.featured):hover .detail p, .case:not(.featured):focus-within .detail p { color: #d1dce7; }
.case:not(.featured):hover .case-meta span, .case:not(.featured):focus-within .case-meta span { color: #d1dce7; opacity: 1; }
.case:not(.featured):hover details, .case:not(.featured):focus-within details { border-color: #657b91; }
.case:not(.featured):hover :focus-visible, .case:not(.featured):focus-within :focus-visible { outline-color: #b8daf6; }
@media (max-width: 650px) { html { scroll-padding-top: 140px; } }
@media (prefers-reduced-motion: reduce) { .publication, .case:not(.featured) { transition: none; } }

/* Resume details follow the case disclosure pattern. */
.timeline .experience-details { margin-top: 18px; border-top: 1px solid #bccbd4; }
.timeline .experience-details summary { padding: 15px 0 2px; gap: 18px; }
.timeline .experience-details summary > span { color: inherit; font-size: 18px; line-height: 1.4; flex-shrink: 0; }
.timeline .experience-details summary:hover { color: var(--blue); }
.timeline .experience-details .detail { padding-top: 14px; }
.timeline .experience-details h4 { margin: 16px 0 10px; font-size: 16px; }
.timeline .experience-details h4:first-child { margin-top: 0; }
.timeline .experience-details p, .timeline .experience-details li { font-size: 16px; line-height: 1.65; color: var(--muted); }
.timeline .experience-details p { margin: 0 0 16px; }
.timeline .experience-details ul { padding-left: 20px; margin: 0 0 18px; }
.timeline .experience-details li + li { margin-top: 12px; }
.timeline .experience-details .experience-tools { font-size: 14px; }
