
:root{--ink:#111111;--body-text:#1c1c1c;--muted:#5b5f66;--rule:#e2e6ec;--paper:#fff;--tint:#eef1f6;--accent:#256abf;--accent-deep:#1c5cab;--accent-tint:#cde2fb;--max:1200px}
html{scroll-padding-top:110px}body{font-size:18px}.wrap{max-width:var(--max);padding-inline:clamp(24px,5vw,64px)}
:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.nav{min-height:82px}.nav .logo-lockup{font-size:18px}.eyebrow{font-size:13px;letter-spacing:.12em}
.hero{padding:clamp(64px,8vw,112px) 0 72px}.hero h1{font-size:clamp(52px,6.8vw,88px);letter-spacing:-.045em;line-height:1.04}.hero .role{font-size:clamp(22px,2.2vw,28px);line-height:1.35;max-width:650px}.hero p.lede{font-size:20px;line-height:1.6;max-width:620px}.btn,.nav .cta{transition:background .2s,color .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn-secondary:hover{background:var(--tint)}.location-note{max-width:560px;line-height:1.5}
.section{padding:88px 0}.section h2{font-size:clamp(34px,4vw,48px);line-height:1.15;letter-spacing:-.025em;margin:12px 0 36px}.quote-band{padding:56px 24px}.quote-band p{font-size:clamp(24px,3vw,32px);line-height:1.45}.stats{padding:48px 0}.stat .num{font-size:clamp(32px,4vw,46px);letter-spacing:-.04em}.stat .label{font-size:16px}.cap-card{padding:32px;border-radius:8px;background:var(--paper)}.cap-card h3{font-size:23px}.cap-grid{gap:20px}.job{grid-template-columns:240px 1fr;padding:40px 0;gap:48px}.job-meta .dates,.article .meta{color:var(--muted)}.job-meta .company{font-family:Fraunces,serif;font-size:26px}.job-points{max-width:720px}.proof{padding:88px 0}.proof h2{font-size:clamp(32px,4vw,48px);line-height:1.2;letter-spacing:-.02em}.proof-grid{grid-template-columns:repeat(2,1fr);gap:40px 56px}.proof-col h3{color:#fff;font-size:14px}.proof-col p,.proof-note{color:#e3edfa;font-size:18px}.article{padding:26px 0}.article h3{font-family:Fraunces,serif;font-weight:500;font-size:25px;line-height:1.35;max-width:850px}.article .tag{font-size:13px}.award-card{padding:26px 0}.award-card h3{font-size:21px}.awards-grid{gap:28px 48px}.skills-list{gap:10px}.skill-pill{border-radius:6px;padding:8px 14px}.contact{padding:88px 0}.contact h2{font-size:clamp(44px,6vw,72px);letter-spacing:-.04em}footer{color:#dbe9fb}
@media(max-width:860px){.job{grid-template-columns:1fr;gap:20px}.section,.proof{padding:64px 0}.stats-grid{grid-template-columns:repeat(2,1fr)}.nav ul{display:none}.hero{padding-top:56px}}
@media(max-width:560px){.cap-grid,.proof-grid,.awards-grid{grid-template-columns:1fr}.stats-grid{gap:32px 20px}.hero .role{font-size:23px}.hero p.lede{font-size:18px}.nav{padding-block:16px}.nav .logo-lockup{font-size:15px}.nav .cta{padding:8px 15px}.cap-card{padding:24px}.hero-actions{gap:12px}.btn{padding:12px 20px}.contact-actions{gap:18px}.quote-band{text-align:left}.quote-band p{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.scroll-story{position:relative}.story-stage{padding:48px 0 24px;background:#fff}.story-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}.story-copy h1,.story-copy h2{font-family:Fraunces,Georgia,serif;font-size:clamp(38px,4.5vw,62px);font-weight:500;line-height:1.07;letter-spacing:-.04em;margin:20px 0}.story-copy .lede{font-size:19px;line-height:1.55;max-width:490px}.story-copy .eyebrow{font-size:12px;max-width:390px}.story-copy .location-note{font-size:14px}.story-link{font-size:16px;font-weight:600;align-self:center;text-underline-offset:5px}.story-media{position:relative;margin:0;align-self:stretch;min-height:470px;overflow:hidden;border-radius:3px}.story-media img{position:absolute;inset:0;width:100%;height:calc(100% - 32px);object-fit:cover;object-position:43% center}.story-media figcaption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}.story-media figcaption span{font-size:12px}.story-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:28px;font-size:14px}.skip-story{color:var(--muted);text-decoration:none}.story-progress-label{color:var(--accent);letter-spacing:.04em}.story-enhanced{height:235vh}.story-enhanced .story-stage{position:sticky;top:82px;height:calc(100vh - 82px);display:flex;flex-direction:column;justify-content:center;padding-top:24px}.story-enhanced .story-layout{width:100%;min-height:0;flex:1;max-height:650px}.story-enhanced .story-media{min-height:0}.story-enhanced .story-bottom{width:100%;margin-top:24px}.chapter[hidden]{display:none}.chapter{transition:opacity .2s}.story-enhanced .story-copy{position:relative}.story-enhanced .story-copy{transition:opacity .18s}.story-enhanced .story-media{transition:transform .3s}
@media(max-width:1050px){.story-layout{gap:28px}.story-copy h1,.story-copy h2{font-size:42px}.story-copy .lede{font-size:18px}}
@media(max-width:760px),(max-height:650px){.story-layout{grid-template-columns:1fr}.story-stage{padding-top:40px}.story-media{min-height:360px;aspect-ratio:1.3}.story-copy h1,.story-copy h2{font-size:clamp(36px,7vw,52px);max-width:630px}.story-copy .lede{max-width:600px}.story-media img{object-position:center}.story-copy .location-note{margin-bottom:32px}.story-bottom{margin-top:18px}.story-progress-label{display:none}}

.story-layout>.chapter-closing{grid-column:1/-1;padding:40px 0 12px;border-top:1px solid var(--rule);margin-top:12px;max-width:780px}.story-layout>.chapter-closing h2{font-size:clamp(30px,4vw,44px);line-height:1.18}.story-layout>.chapter-closing .lede{font-size:19px;max-width:640px}
.story-layout>*{min-width:0}.story-media{width:100%}.story-media figcaption{flex-wrap:wrap}.stat{min-width:0}.stat .num{overflow-wrap:anywhere}
@media(max-width:760px),(max-height:650px){.story-media{aspect-ratio:auto;height:360px;min-height:0}.story-media img{height:calc(100% - 44px)}}
.proof-col h3{font-family:'Source Sans 3',sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}

/* Photographic scroll treatment: only the image moves inside its fixed crop. */
.story-media{overflow:visible}.story-media img{clip-path:inset(0);transform-origin:center;transition:none}
.story-enhanced .story-stage{top:var(--header-height,82px);height:calc(100vh - var(--header-height,82px))}
.story-enhanced .story-copy{transition:none}.story-enhanced .story-copy h1,.story-enhanced .story-copy h2{font-size:clamp(36px,3.8vw,52px);margin:16px 0}
.story-enhanced .story-copy .lede{font-size:18px;line-height:1.5}.story-enhanced .story-layout{max-height:580px}.story-enhanced .story-media{overflow:hidden;padding-bottom:32px}
.story-enhanced .story-media figcaption{background:white;z-index:1;padding-top:6px;min-height:32px}.story-enhanced .story-media img{will-change:transform}
@media(prefers-reduced-motion:reduce){.story-poster{transform:none!important}}

/* Keep faces and the shared notebook visible in both desktop and mobile crops. */
.story-media .story-poster{object-position:50% 60%}
