:root{--paper:#f7f7f4;--ink:#15171a;--navy:#14263d;--muted:#626872;--line:#d9dad6;--serif:"Source Serif 4",Georgia,serif;--sans:"Manrope",Arial,sans-serif;--wrap:min(1180px,calc(100% - 48px))}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #5d85b5;outline-offset:4px}.wrap{width:var(--wrap);margin-inline:auto}.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--navy);color:white;padding:10px 16px}.skip:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,247,244,.92);border-bottom:1px solid rgba(21,23,26,.1);backdrop-filter:blur(12px)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.wordmark{font:600 1.45rem var(--serif);letter-spacing:-.02em}.nav-links{display:flex;gap:32px;font-size:.84rem}.nav-links a,.profile-links a,.read,footer a{transition:color .2s}.nav-links a:hover,.profile-links a:hover,.read:hover,footer a:hover{color:#385a80}.menu-button{display:none;border:0;background:none;font:500 .84rem var(--sans)}.hero{min-height:700px;padding-block:92px 80px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.65fr);gap:9vw;align-items:center}.eyebrow,.section-kicker,.publication,.section-number{margin:0 0 18px;text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:600;color:var(--muted)}h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.035em}h1{font-size:clamp(4.5rem,8vw,7.5rem);line-height:.86;margin:0 0 34px}h2{font-size:clamp(3.25rem,6vw,5.6rem);line-height:.98;margin:0}.hero-title{max-width:760px;margin:0;font:500 clamp(1.35rem,2.2vw,2rem)/1.25 var(--serif)}.speciality{font-size:1.03rem;color:var(--navy);margin:18px 0 28px}.intro{max-width:720px;font-size:1.06rem;color:#454a51}.availability{display:flex;gap:10px;align-items:center;font-size:.85rem;font-weight:600;margin-top:28px}.availability>span:first-child{width:7px;height:7px;border-radius:50%;background:#56745e;box-shadow:0 0 0 4px #dde7df}.hero-actions,.contact-actions{display:flex;align-items:center;gap:28px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;background:var(--navy);color:white;font-size:.82rem;font-weight:600;border:1px solid var(--navy);transition:transform .2s,background .2s}.button:hover{background:#243d5c;transform:translateY(-2px)}.text-link{font-size:.85rem;font-weight:600}.profile-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:28px;font-size:.75rem;color:var(--muted)}.portrait{align-self:center;aspect-ratio:4/5.25;padding:28px;background:#e7e8e4;border:1px solid #d5d6d1;border-radius:3px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.portrait-mark{flex:1;display:grid;place-content:center;text-align:center;color:#9a9d99}.portrait-mark>span{font:500 clamp(5rem,9vw,8rem)/1 var(--serif);letter-spacing:-.08em}.portrait-mark small{margin-top:14px;text-transform:uppercase;letter-spacing:.18em;font-size:.6rem}.portrait>p{margin:0;padding-top:20px;border-top:1px solid #cfd0cc;font:500 1.25rem/1.2 var(--serif)}.portrait>p span{font:400 .7rem var(--sans);color:var(--muted)}.seen{border-block:1px solid var(--line);padding:31px 0}.seen .section-kicker{margin-bottom:20px}.publication-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.publication-grid span{min-height:64px;display:grid;place-items:center;text-align:center;background:var(--paper);padding:14px;font:500 .93rem var(--serif);color:#70746f;transition:color .2s,background .2s}.publication-grid span:hover{color:var(--ink);background:white}.section{padding-block:140px;border-bottom:1px solid var(--line)}.about{display:grid;grid-template-columns:1fr 2fr;gap:10vw}.about-copy{columns:2;column-gap:44px}.about-copy p{break-inside:avoid;margin:0 0 22px}.about-copy p:first-child{font:500 1.45rem/1.4 var(--serif);color:var(--navy)}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end;margin-bottom:65px}.section-heading>p{margin:0;max-width:480px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:72px 34px}.story{border-bottom:1px solid var(--line);padding-bottom:30px;transition:transform .22s}.story:hover{transform:translateY(-3px)}.story-image{position:relative;display:flex;align-items:flex-end;justify-content:space-between;aspect-ratio:16/8.5;padding:22px;overflow:hidden;background:var(--navy);color:white}.story-image:before{content:"";position:absolute;opacity:.45}.motif-profile:before{width:42%;height:85%;right:8%;bottom:-18%;border:1px solid white;border-radius:50% 50% 0 0}.motif-place:before{width:60%;height:50%;right:-5%;top:22%;border:1px solid white;transform:skew(-14deg)}.motif-studio:before{width:160px;height:160px;border:1px solid white;border-radius:50%;right:12%;top:12%}.motif-world:before{width:210px;height:110px;border:1px solid white;border-radius:50%;right:5%;top:18%}.motif-tech:before{width:45%;height:60%;border:1px solid white;right:9%;top:18%;box-shadow:-18px 18px 0 rgba(255,255,255,.08)}.motif-data:before{width:55%;height:65%;right:7%;bottom:10%;background:linear-gradient(135deg,transparent 49%,white 50%,transparent 51%)}.issue,.motif-title{position:relative;z-index:1;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}.issue{align-self:flex-start}.motif-title{font:500 1rem var(--serif);text-transform:none;letter-spacing:0}.story-body{padding-top:24px}.publication{color:#536d8a;margin-bottom:10px}.story h3{margin:0;font-size:clamp(1.55rem,2.5vw,2.15rem);line-height:1.15}.story h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.story-body>p:not(.publication){color:var(--muted);font-size:.9rem;max-width:580px}.read{display:inline-block;margin-top:9px;font-size:.78rem;font-weight:600}.services{display:grid;grid-template-columns:1fr 2fr;gap:10vw}.service-list{display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px}.service-list span{border:1px solid #cfd1cd;border-radius:99px;padding:9px 15px;background:rgba(255,255,255,.35);font-size:.82rem}.services-note{grid-column:2;margin:24px 0 0;color:var(--muted)}.newsletter{background:var(--navy);color:white;padding-block:120px}.newsletter-inner{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.newsletter h2{max-width:500px}.newsletter .section-kicker,.newsletter .note{color:#aeb9c8}.newsletter-lead{font:500 1.6rem/1.35 var(--serif);margin-top:0}.newsletter .button{margin-top:24px;background:white;color:var(--navy);border-color:white}.contact{padding-block:145px;text-align:center}.contact h2{font-size:clamp(4rem,9vw,8rem)}.contact-main{font:500 clamp(1.35rem,2.3vw,1.9rem) var(--serif);margin:30px 0 8px}.contact-secondary{color:var(--muted);max-width:660px;margin:0 auto 30px}.email{font:500 clamp(1.4rem,4vw,3rem) var(--serif);border-bottom:1px solid var(--ink)}.contact-actions{justify-content:center}.contact-actions .profile-links{margin:0}footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:.75rem}footer .wrap{display:flex;justify-content:space-between}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.revealed{opacity:1;transform:none}
@media(max-width:800px){:root{--wrap:min(100% - 32px,680px)}.nav{height:64px}.menu-button{display:block}.nav-links{display:none;position:absolute;top:64px;left:0;right:0;padding:22px 16px 28px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:18px}.nav-links.open{display:flex}.hero{min-height:0;padding-block:58px 70px;grid-template-columns:1fr;gap:52px}.hero h1{font-size:clamp(4.2rem,21vw,6.5rem)}.portrait{width:min(100%,430px);justify-self:center}.publication-grid{grid-template-columns:repeat(2,1fr)}.section{padding-block:90px}.about,.services,.section-heading,.newsletter-inner{grid-template-columns:1fr;gap:42px}.about-copy{columns:1}.work-grid{grid-template-columns:1fr;gap:52px}.services-note{grid-column:1}.newsletter{padding-block:85px}.contact{padding-block:100px}.contact h2{font-size:clamp(3.8rem,18vw,6rem)}.contact-actions{flex-direction:column}.contact-actions .profile-links{justify-content:center}}
@media(max-width:480px){.publication-grid{grid-template-columns:1fr 1fr}.publication-grid span{font-size:.78rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.section{padding-block:76px}.story-image{aspect-ratio:4/3}.email{font-size:1.25rem}footer .wrap{gap:16px;flex-direction:column}}
/* Editorial refinement: Newsreader + IBM Plex Sans, quieter hierarchy, one consistent label device */
:root{--serif:"Newsreader",Georgia,serif;--sans:"IBM Plex Sans",Arial,sans-serif}
body{font-size:1.0625rem;line-height:1.68}
.wordmark{font-size:1.55rem}.nav-links{font-size:.875rem}
h1{font-size:clamp(4.4rem,7.6vw,7rem);line-height:.9;margin-bottom:30px}
h2{font-size:clamp(2.75rem,4.6vw,4.25rem);line-height:1}
.hero{padding-block:80px 72px;gap:8vw}.hero-title{max-width:690px;font:500 clamp(1.1rem,1.5vw,1.35rem)/1.45 var(--sans);letter-spacing:-.015em}.speciality{margin:15px 0 25px}.intro{max-width:670px}
.section-label{display:flex;align-items:center;gap:12px;margin:0 0 20px;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:600;color:var(--muted)}.section-label:before{content:"";width:28px;height:2px;background:var(--navy)}
.seen{padding:34px 0}.publication-grid{display:flex;flex-wrap:wrap;align-items:center;gap:12px 0;background:none;border:0}.publication-grid span{position:relative;display:block;min-height:0;padding:0 22px;background:none;border:0;font:500 1.05rem var(--serif);color:#777b77}.publication-grid span:first-child{padding-left:0}.publication-grid span:not(:last-child):after{content:"/";position:absolute;right:-2px;color:#b1b3af;font-family:var(--sans);font-weight:400}.publication-grid span:hover{background:none;color:var(--ink)}
.section{padding-block:105px}.about{grid-template-columns:minmax(210px,.75fr) minmax(0,1.65fr);gap:8vw;align-items:start}.about-copy{columns:1;max-width:680px}.about-copy p{margin:0 0 18px}.about-copy p:first-child{font-size:1.35rem}
.section-heading{gap:8vw;margin-bottom:46px}.section-heading>p{align-self:end;padding-bottom:3px}
.work-grid{gap:58px 34px}.story-image{aspect-ratio:16/7.5;background:#e6e7e3;color:#8a8e89;display:grid;place-items:center;padding:0}.story-image span{font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}.story-image:before,.story-image:after{content:none!important}.story-body{padding-top:20px}.story h3{font-size:clamp(1.65rem,2.35vw,2.05rem);line-height:1.16}.story-body>p:not(.publication){font-size:.95rem}.story{padding-bottom:26px}
.services{grid-template-columns:minmax(210px,.75fr) minmax(0,1.65fr);gap:8vw;padding-block:100px}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 46px}.service-group{padding:0 0 28px;border-top:1px solid var(--line)}.service-group h3{margin:0;padding:16px 0 11px;font:500 1.1rem/1.3 var(--sans);letter-spacing:0;color:var(--navy)}.service-group ul{list-style:none;margin:0;padding:0}.service-group li{padding:5px 0;font-size:.96rem;color:#454a51}.services-note{grid-column:auto;margin:13px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.contact{padding-block:115px}.contact h2{font-size:clamp(3.5rem,7vw,6.3rem)}.contact .section-label{justify-content:center}.newsletter{padding-block:100px}
@media(max-width:800px){.hero{padding-block:58px 68px}.hero h1{font-size:clamp(4rem,19vw,6rem)}.section{padding-block:78px}.about,.services,.section-heading,.newsletter-inner{grid-template-columns:1fr;gap:32px}.section-heading{margin-bottom:38px}.service-list{grid-template-columns:1fr 1fr;gap:0 28px}.newsletter{padding-block:78px}.contact{padding-block:88px}}
@media(max-width:540px){.publication-grid{gap:12px 0}.publication-grid span{width:auto;padding:0 14px;font-size:.95rem}.service-list{grid-template-columns:1fr}.service-group{padding-bottom:24px}.story-image{aspect-ratio:16/8.5}.contact .section-label{justify-content:flex-start}.contact{text-align:left}.contact-secondary{margin-left:0}.contact-actions{align-items:flex-start}.contact-actions .profile-links{justify-content:flex-start}}
/* Final hierarchy and masthead strip */
.hero-copy{color:var(--ink)}.hero h1,.hero-title,.hero .speciality,.hero .intro{color:var(--ink)}.hero-title{margin-top:0}.hero .speciality{font-size:1rem;margin-top:14px}.hero .intro{color:var(--ink);max-width:660px}.availability{display:block;color:var(--navy);font-weight:500;margin-top:25px}.availability:before,.availability>span:first-child{content:none;display:none}
.seen{overflow:hidden;padding:34px 0 38px}.seen .wrap{margin-bottom:23px}.publication-marquee{display:flex;width:max-content;max-width:none;overflow:hidden}.publication-track{display:flex;align-items:center;flex-shrink:0;gap:clamp(46px,5vw,84px);padding-right:clamp(46px,5vw,84px);animation:masthead-scroll 38s linear infinite}.publication-marquee:hover .publication-track{animation-play-state:paused}.publication-item{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:max-content;height:45px;color:#696d69}.publication-item img{display:block;width:auto;max-width:180px;height:auto;max-height:38px;filter:grayscale(1);opacity:.62}.publication-item span{font:500 1.12rem/1 var(--serif);white-space:nowrap}.publication-item.has-logo span{display:none}@keyframes masthead-scroll{to{transform:translateX(-100%)}}
.about{align-items:start}.about>header,.about-copy{padding-top:0}.about h2{margin-top:0}.about-copy p:first-child{margin-top:3px}
@media(max-width:800px){.publication-track{gap:48px;padding-right:48px;animation-duration:32s}.about{gap:26px}.about-copy p:first-child{margin-top:0}}
/* Deliberate publication type scale and paired-column alignment */
:root{--type-display:clamp(4rem,7vw,6.5rem);--type-section:clamp(2.75rem,4.6vw,4.25rem);--type-article:clamp(1.65rem,2.35vw,2.05rem);--type-role:clamp(1.1rem,1.5vw,1.3rem);--type-body:1.0625rem;--type-small:.75rem}
body{font-size:var(--type-body);color:var(--ink)}h1{font-size:var(--type-display)}h2{font-size:var(--type-section)}.story h3{font-size:var(--type-article)}
.hero-title{font:500 var(--type-role)/1.45 var(--sans);color:var(--ink)}.hero .speciality{font-size:1rem;color:var(--muted)}.hero .intro,.hero .availability{font-size:var(--type-body);color:var(--ink)}.hero .availability{font-weight:500}
.portrait{padding:28px;display:grid;place-items:center;background:#e7e8e4;color:#858984;border:1px solid #d5d6d1;border-radius:3px}.portrait>span{font:500 var(--type-small)/1.3 var(--sans);letter-spacing:.13em;text-transform:uppercase}.portrait>img{width:100%;height:100%;object-fit:cover}.portrait:has(>img)>span{display:none}
.section-label{font-size:var(--type-small)}.about-copy{padding-top:39px}.about-copy p:first-child{margin-top:0}.newsletter .section-label{color:#aeb9c8}.newsletter .section-label:before{background:#aeb9c8}.newsletter-copy{padding-top:39px}
@media(max-width:800px){.about-copy,.newsletter-copy{padding-top:0}.portrait{min-height:420px}}
@media(max-width:480px){:root{--type-display:clamp(3.7rem,17vw,5rem);--type-section:clamp(2.65rem,14vw,3.8rem)}.portrait{min-height:0}}
.story-image img{width:100%;height:100%;object-fit:cover}
/* Neutral wordmarks are the deliberate fallback when an official logo is unavailable. */
.publication-item span{font-family:var(--sans);font-size:1rem;font-weight:500;letter-spacing:.015em}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.publication-marquee{width:auto;overflow-x:auto;scrollbar-width:thin;padding-bottom:8px}.publication-track{animation:none}.publication-track[aria-hidden="true"]{display:none}}

/* Full-colour publication marks; only light official lockups receive a backing. */
.publication-item{height:52px;color:var(--ink)}
.publication-item img{width:auto;height:36px;max-width:190px;max-height:36px;object-fit:contain;filter:none;opacity:1;mix-blend-mode:normal}
.publication-item.needs-backing{height:48px;padding:7px 13px;background:var(--navy);border-radius:3px}
.publication-item.needs-backing img{height:32px;max-height:32px}
.publication-item.compact-logo img{width:48px;height:48px;max-width:48px;max-height:48px;object-fit:cover;border-radius:2px}
.publication-item span{color:var(--ink);opacity:1}
.portrait.has-photo{padding:0;background:var(--paper)}
.portrait.has-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.publication-item.wide-logo img{width:210px;height:48px;max-width:210px;max-height:48px;object-fit:cover;object-position:center;border-radius:2px}

/* Selected Work: stable editorial rows without fixed-height clipping. */
#work{border-bottom:0;padding-bottom:88px}
.work-grid{align-items:stretch}
.story{display:grid;grid-template-rows:auto 1fr}
.story-body{display:grid;grid-template-rows:auto minmax(7.3rem,auto) minmax(6.7rem,1fr) auto;align-content:start}
.story-body .publication{align-self:start}
.story-body h3{align-self:start}
.story-description{align-self:start;margin:15px 0 0}
.story-body .read{align-self:end;justify-self:start;margin-top:22px}
@media(max-width:800px){
  #work{padding-bottom:70px}
  .story-body{grid-template-rows:auto auto auto auto}
  .story-description{margin-top:15px}
}

/* Divider hierarchy: full-width section boundaries and quieter card rules. */
:root{--line-major:#bfc2bd;--line-internal:#e2e3df}
.section{position:relative;border-bottom:0}
.section:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;border-bottom:1px solid var(--line-major);transform:translateX(-50%)}
.seen{border-color:var(--line-major)}
.story{border-bottom-color:var(--line-internal)}
.story:nth-last-child(-n+2){padding-bottom:0;border-bottom:0}
#work{padding-bottom:56px}
#services{padding-top:64px}
footer{border-top-color:var(--line-major)}
@media(max-width:800px){
  .story:nth-last-child(2){padding-bottom:26px;border-bottom:1px solid var(--line-internal)}
  .story:last-child{padding-bottom:0;border-bottom:0}
  #work{padding-bottom:48px}
  #services{padding-top:54px}
}

/* Hero copy rhythm. */
.hero{padding-block:72px 68px}
.hero-copy{max-width:720px}
.hero h1{margin-bottom:20px}
.hero-title{max-width:690px;margin:0;font-weight:500}
.hero .speciality{max-width:650px;margin:10px 0 0;color:var(--muted)}
.hero-body{max-width:660px;margin-top:28px;color:var(--ink);font-size:var(--type-body);line-height:1.68}
.hero-body p{margin:0}
.hero-body p+p{margin-top:14px}
.hero .availability{margin:27px 0 0;color:var(--ink);font-size:var(--type-body);font-weight:500}
@media(max-width:800px){
  .hero{padding-block:56px 64px}
  .hero h1{margin-bottom:18px}
  .hero-body{margin-top:24px}
  .hero .availability{margin-top:25px}
}

/* Services: one shared internal rule and a tighter editorial rhythm. */
.services :is(.service-group,.services-note){border-top:1px solid var(--line-internal)}
.services .service-group{padding-bottom:20px}
.services .services-note{margin-top:8px;padding-top:18px}
