:root{--ink:#11110f;--paper:#f4f1e9;--blue:#1747e8;--line:rgba(17,17,15,.18);--serif:"Newsreader",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}.skip-link{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:10px 14px;z-index:100}.skip-link:focus{top:20px}.site-header{height:86px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20}.wordmark{font:500 1.5rem var(--sans);letter-spacing:-.08em}.wordmark span{color:var(--blue)}nav{display:flex;gap:2rem;font-size:.86rem}nav a{position:relative}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--blue);transition:right .25s}nav a:hover:after,nav a:focus:after{right:0}.menu-toggle{display:none;background:none;border:0;font:inherit}.hero{overflow:hidden}.hero-kicker{padding:3rem 4vw 1rem;text-transform:uppercase;letter-spacing:.15em;font-size:.76rem;color:#4a4a45}.hero-grid{padding:1rem 4vw 4.5rem;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:8vw;align-items:end}.hero h1{font:400 clamp(5rem,12vw,10.5rem)/.73 var(--serif);letter-spacing:-.065em;margin:0}.hero h1 em,.section h2 em,.contact h2 em{color:var(--blue);font-weight:400}.lede{font:400 clamp(1.35rem,2.3vw,2rem)/1.32 var(--serif);max-width:650px;margin:3rem 0 2.2rem}.hero-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);padding:.9rem 1.25rem;font-weight:500;font-size:.9rem;transition:.25s}.button:hover{background:var(--ink);color:white}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover{background:#0f35b9}.text-link{margin-left:.5rem;font-weight:500}.portrait{margin:0;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;border:1px solid var(--ink);display:block}.portrait figcaption{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin:.8rem 0 0}.marquee{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:.75rem 0;overflow:hidden;font:400 1rem var(--serif);white-space:nowrap}.marquee div{display:inline-block;animation:scroll 26s linear infinite}@keyframes scroll{to{transform:translateX(-50%)}}.section{padding:8rem 4vw;border-bottom:1px solid var(--line)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:600;margin:0 0 3rem}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.section h2{font:400 clamp(3rem,6vw,6rem)/.95 var(--serif);letter-spacing:-.045em;margin:0}.body-copy{font:400 clamp(1.15rem,1.8vw,1.5rem)/1.5 var(--serif);max-width:650px}.body-copy p:first-child{margin-top:0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2rem}.section-heading>p{max-width:390px}.filters{display:flex;gap:.7rem;flex-wrap:wrap;margin:0 0 3rem}.filter-button{appearance:none;background:transparent;border:1px solid var(--ink);border-radius:99px;padding:.65rem 1rem;font:500 .78rem var(--sans);cursor:pointer;transition:.2s}.filter-button:hover,.filter-button.active{background:var(--ink);color:var(--paper)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink)}.project-card{padding:2.5rem;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:560px;display:flex;flex-direction:column}.project-card.dark{background:var(--ink);color:var(--paper)}.project-card[hidden]{display:none}.client{text-transform:uppercase;letter-spacing:.13em;color:var(--blue);font-size:.72rem;font-weight:600;margin:0}.project-card.dark .client{color:#8ea7ff}.project-card h3{font:400 clamp(2rem,3.2vw,3.25rem)/1.04 var(--serif);letter-spacing:-.03em;margin:1rem 0 1.4rem}.project-copy{max-width:650px;margin:0 0 2rem}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:auto;padding-top:2rem}.metric-grid>div{border-top:1px solid currentColor;padding-top:.8rem}.metric-grid strong{display:block;font:400 2rem/1 var(--serif)}.metric-grid span{display:block;margin-top:.3rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.case-links{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.25rem;border-top:1px solid currentColor}.case-links a{font-size:.78rem;font-weight:600}.case-links a:hover{text-decoration:underline}.project-note{font-size:.82rem;opacity:.75;margin:1.5rem 0 0}.coverage{background:var(--ink);color:var(--paper)}.coverage-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:4rem;gap:3rem}.coverage-intro{max-width:420px;color:#bbb}.coverage-item{display:grid;grid-template-columns:1.1fr 1fr .8fr auto;gap:2rem;align-items:center;border-top:1px solid rgba(244,241,233,.25);padding:1.5rem 0;transition:padding .2s,color .2s}.coverage-item:last-child{border-bottom:1px solid rgba(244,241,233,.25)}.coverage-item:hover{padding-left:1rem;color:#8ea7ff}.publication{font:400 1.7rem var(--serif)}.coverage-title{font-size:.9rem}.coverage-type{font-size:.75rem;color:#aaa}.arrow{font-size:1.3rem}.timeline-item{display:grid;grid-template-columns:140px 1fr 1fr;gap:4vw;border-top:1px solid var(--ink);padding:2rem 0}.timeline-item:last-child{border-bottom:1px solid var(--ink)}.year{font:400 1rem var(--serif)}.timeline-item h3{font:400 1.8rem var(--serif);margin:0 0 .5rem}.timeline-item p{margin:.35rem 0}.timeline-item p span{color:#777;font-size:.78rem;margin-left:.6rem}.timeline-summary{max-width:480px;color:#555}.degree-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.degree{border-top:2px solid var(--ink);padding:1.5rem 0}.degree p{text-transform:uppercase;letter-spacing:.14em;font-size:.7rem}.degree h3{font:400 clamp(1.7rem,3vw,2.8rem)/1.1 var(--serif);margin:2.5rem 0 1rem;max-width:600px}.degree span{color:#555}.resume-card{background:var(--blue);color:white;padding:4rem;display:flex;align-items:flex-end;justify-content:space-between;gap:3rem}.resume-card p:not(.eyebrow){max-width:540px}.button.light{border-color:white}.button.light:hover{background:white;color:var(--blue)}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10vw}.contact h2{font:400 clamp(4rem,8vw,8rem)/.87 var(--serif);letter-spacing:-.055em}.contact-grid>div>p{max-width:600px;font:400 1.2rem var(--serif)}.contact-links{align-self:end}.contact-links a,.contact-links>div{display:flex;justify-content:space-between;gap:2rem;padding:1.3rem 0;border-top:1px solid var(--ink);font-size:.9rem}.contact-links>*:last-child{border-bottom:1px solid var(--ink)}.contact-links span{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:#666}footer{display:flex;justify-content:space-between;align-items:center;padding:2rem 4vw;font-size:.75rem}footer p{color:#666}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.site-header{height:70px}.menu-toggle{display:block}.site-header nav{position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--ink);padding:1.5rem 4vw;display:none;flex-direction:column;gap:1rem}.site-header nav.open{display:flex}.hero-grid{grid-template-columns:1fr;padding-bottom:3rem}.hero h1{font-size:clamp(5rem,22vw,8rem)}.portrait{max-width:310px}.section{padding:5.5rem 4vw}.section-grid,.contact-grid{grid-template-columns:1fr}.section-grid{gap:3rem}.section-heading,.coverage-head{align-items:start;flex-direction:column}.project-grid,.degree-grid{grid-template-columns:1fr}.project-card{min-height:auto}.coverage-item{grid-template-columns:1fr auto}.coverage-title,.coverage-type{grid-column:1}.arrow{grid-column:2;grid-row:1/4}.timeline-item{grid-template-columns:100px 1fr}.timeline-summary{grid-column:2}.resume-card{align-items:start;flex-direction:column}.contact-grid{gap:4rem}}
@media(max-width:520px){.hero-kicker{padding-top:2rem}.hero-grid{gap:3rem}.hero h1{font-size:5rem}.lede{margin-top:2rem}.hero-actions{align-items:stretch;flex-direction:column}.button{width:100%}.text-link{text-align:center;margin:.5rem 0}.filters{gap:.5rem}.filter-button{font-size:.7rem;padding:.55rem .8rem}.project-card{padding:2rem}.metric-grid{grid-template-columns:1fr 1fr}.timeline-item{grid-template-columns:1fr;gap:.5rem}.timeline-summary{grid-column:1}.resume-card{padding:2rem}.contact h2{font-size:4rem}.contact-links a,.contact-links>div{display:block}.contact-links span{display:block;margin-bottom:.35rem}footer{align-items:flex-start;flex-direction:column;gap:.7rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.marquee div{animation:none}}




/* Multi-story coverage cards */
.story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0 0 1.6rem;width:100%;min-width:0}
.story-grid.one{grid-template-columns:minmax(0,1fr)}
.story-tile{position:relative;display:block;min-width:0;overflow:hidden;border:1px solid currentColor;background:#e7e4dc;aspect-ratio:16/10}
.story-tile img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .25s ease}
.story-tile:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.82));pointer-events:none}
.story-tile span{position:absolute;z-index:2;left:.8rem;right:.8rem;bottom:.65rem;color:#fff;display:flex;align-items:end;justify-content:space-between;gap:.75rem;text-shadow:0 1px 7px rgba(0,0,0,.65)}
.story-tile strong{font-size:.74rem;line-height:1.15;max-width:72%}.story-tile b{font-size:.64rem;line-height:1.15;font-weight:500;white-space:nowrap}
.story-tile:hover img,.story-tile:focus img{transform:scale(1.02)}
.project-card{overflow:hidden}.project-card>*{min-width:0}.project-copy{min-height:0}.metric-grid{margin-top:0}.case-links{margin-top:1.4rem}
@media(max-width:520px){.story-grid{grid-template-columns:1fr}.story-tile b{display:none}.story-tile strong{max-width:100%}}
@media(prefers-reduced-motion:reduce){.story-tile img{transition:none}}
