:root{
  --orange:#F5821F;
  --led-grey:#414446;
  --ink:#111111;
  --paper:#f3f0ea;
  --white:#ffffff;
  --muted:#b7b2aa;
  --pad:clamp(24px,5vw,76px);
  --line:1px solid rgba(17,17,17,.22);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.25}
a{color:inherit;text-decoration:none}
img,video{display:block;width:100%}
figure{margin:0}
.site-header{position:absolute;z-index:30;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:24px var(--pad);color:#fff;mix-blend-mode:difference}
.brand{display:inline-flex;align-items:center}
.brand-logo{display:block;width:clamp(170px,16vw,255px);height:auto;filter:invert(1);transform-origin:left center}
.footer .brand-logo{width:clamp(165px,14vw,230px)}
.site-nav{display:flex;gap:clamp(18px,2.5vw,40px);font-size:.88rem}
.site-nav a{position:relative}.site-nav a:after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:.25s}.site-nav a:hover:after{width:100%}
.menu-toggle{display:none;border:0;background:none;color:inherit;font:inherit}
.hero{height:100svh;min-height:650px;position:relative;overflow:hidden;background:#222;color:#fff}

.hero-video{height:100%;object-fit:cover}
.media-load-fade{opacity:0;transition:opacity .25s ease}.media-load-fade.is-loaded{opacity:1}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.05) 70%),linear-gradient(0deg,rgba(0,0,0,.25),transparent 40%)}
.hero-copy{position:absolute;left:var(--pad);bottom:clamp(74px,12vh,140px);max-width:1100px}
.hero h1{font-size:clamp(3.8rem,8.8vw,9.5rem);letter-spacing:-.075em;line-height:.84;margin:.14em 0 0;font-weight:500}
.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:700}
.scroll-cue{position:absolute;right:var(--pad);bottom:32px;font-size:.78rem;border-bottom:1px solid currentColor;padding-bottom:3px}
.home-identity{background:#fff;padding:clamp(58px,8vw,110px) var(--pad);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(36px,5vw,68px)}
.home-led-logo{display:block;width:min(78vw,760px);height:auto}
.home-accreditations{display:flex;align-items:center;gap:clamp(28px,5vw,68px);padding-top:clamp(28px,4vw,48px);border-top:var(--line);width:min(100%,760px)}
.home-accreditations img{width:auto;max-width:44%;max-height:105px;object-fit:contain;filter:grayscale(1);opacity:.78}
.home-accreditations .riba-logo{max-height:78.75px}
.section-pad{padding:clamp(80px,12vw,180px) var(--pad)}
.section-pad-small{padding:30px var(--pad)}
.intro{background:var(--paper)}
.display{font-size:clamp(2.65rem,5.7vw,6.2rem);line-height:.94;letter-spacing:-.065em;font-weight:500;margin:.2em 0 0;max-width:1300px}
.display-xl{font-size:clamp(3rem,7.3vw,8.7rem);line-height:.9;letter-spacing:-.07em;font-weight:500;margin:.2em 0 0;max-width:1500px}
.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;margin-top:70px;padding-top:28px;border-top:var(--line);font-size:clamp(1.05rem,1.6vw,1.5rem)}
.intro-grid p{margin:0;max-width:760px}.text-link{justify-self:end;align-self:end;border-bottom:1px solid currentColor;padding-bottom:5px}
.orange-statement{background:var(--orange);color:#111;min-height:75vh;display:flex;flex-direction:column;justify-content:space-between}
.project-feature{background:#111;color:#fff;overflow:hidden}.media-frame{width:100%;height:auto;overflow:hidden}.media-frame img{width:100%;height:auto;object-fit:contain;transition:transform 1s ease}.project-feature:hover img{transform:scale(1.01)}
.project-meta{display:flex;justify-content:space-between;align-items:end;gap:30px}.project-meta>div{display:flex;gap:28px;align-items:baseline}.project-meta h3{font-size:clamp(1.8rem,4vw,4.6rem);letter-spacing:-.055em;margin:0;font-weight:500}.project-meta p{margin:0;color:#aaa}.index{font-size:.75rem;color:#999}
.split-feature{display:grid;grid-template-columns:1fr .8fr;gap:8vw;align-items:center}.split-copy .display{font-size:clamp(2.6rem,5vw,5.6rem)}.portrait-frame{height:60vw;max-height:850px;overflow:hidden}.portrait-frame img{height:100%;object-fit:cover}
.dark-project{background:#111;color:#fff;overflow:hidden}.dark-copy{min-height:72vh;display:flex;flex-direction:column;justify-content:space-between}.project-deck{max-width:700px;font-size:clamp(1.15rem,2vw,1.8rem);color:#c8c8c8;margin:50px 0 0}.wide-frame{width:100%;height:auto;overflow:hidden}.wide-frame img{width:100%;height:auto;object-fit:contain}.marcus-home-image{aspect-ratio:3/2;background:#111}.marcus-home-image a{display:block;width:100%;height:100%}.marcus-home-image img{display:block;width:100%;height:100%;object-fit:cover}
.services{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.service-list{border-top:var(--line)}.service-list a{display:flex;justify-content:space-between;padding:22px 0;border-bottom:var(--line);font-size:clamp(1.3rem,2.5vw,2.6rem);letter-spacing:-.04em}.service-list span{font-size:.7rem;letter-spacing:.08em;color:#777;margin-top:.55em}.service-list a:hover{padding-left:12px;transition:.2s}
.image-band{width:100%;height:auto;overflow:hidden}.image-band img{width:100%;height:auto;object-fit:contain}
.practice-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw}.body-copy{align-self:end;font-size:clamp(1.15rem,1.8vw,1.65rem)}.body-copy p{margin:0 0 45px}
.people-block{display:grid;grid-template-columns:1.05fr .95fr;background:var(--orange);min-height:80vh}.people-image{margin:0;min-height:680px;overflow:hidden}.people-image img{height:100%;object-fit:cover}.people-copy{display:flex;flex-direction:column;justify-content:space-between}.people-copy .display{font-size:clamp(2.5rem,4.7vw,5.6rem)}.light{align-self:flex-start}
.contact{background:#fff}.contact-title{font-size:clamp(4rem,10vw,11rem);line-height:.79;letter-spacing:-.085em;font-weight:500;margin:.35em 0 .65em}.contact-row{border-top:var(--line);padding-top:24px;display:flex;justify-content:space-between;font-size:clamp(1rem,1.6vw,1.4rem)}
.footer{background:#111;color:#fff;display:grid;grid-template-columns:minmax(170px,.75fr) minmax(0,1.45fr) minmax(230px,.9fr);align-items:start;gap:clamp(20px,3vw,48px)}
.footer-contact{margin:0;color:#fff;font-style:normal;font-size:.82rem;line-height:1.5;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:0}
.footer-contact a{color:#fff}
.footer-legal{font-size:.68rem;line-height:1.55;color:#fff;opacity:.78;text-align:left}
.footer-address{display:block}
.footer-phone{white-space:nowrap}
.scroll-top{position:fixed;z-index:60;top:clamp(16px,2vw,28px);right:clamp(16px,2vw,28px);width:34px;height:34px;padding:0;border:0;background:transparent;color:#fff;mix-blend-mode:difference;display:grid;place-items:center;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.scroll-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.scroll-top:hover{transform:translateY(-2px)}
.scroll-top:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.scroll-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}.reveal-media{clip-path:inset(0 0 100% 0);transition:clip-path 1.05s cubic-bezier(.2,.75,.2,1)}.reveal-media.is-visible{clip-path:inset(0)}
@media (max-width:800px){
  .site-header{padding-top:18px}.menu-toggle{display:block;cursor:pointer}.site-nav{display:none;position:absolute;top:60px;left:0;right:0;background:#111;color:#fff;mix-blend-mode:normal;padding:24px var(--pad);flex-direction:column;gap:20px}.site-nav.open{display:flex}
  .hero{min-height:600px}.hero h1{font-size:clamp(3.3rem,15vw,6rem)}.home-led-logo{width:min(100%,560px);height:auto}.home-accreditations img{max-height:82px}.home-accreditations .riba-logo{max-height:61.5px}
  .intro-grid,.split-feature,.services,.practice-grid,.people-block{grid-template-columns:1fr}.intro-grid{gap:30px;margin-top:45px}.text-link{justify-self:start}.project-meta{align-items:start;flex-direction:column}.project-meta>div{gap:14px}.portrait-frame{height:115vw}.services{gap:60px}.image-band{height:auto}.people-image{min-height:0;height:100vw}.contact-row{gap:20px;flex-direction:column}.footer{grid-template-columns:1fr;align-items:flex-start;gap:20px}.footer-contact{align-items:flex-start;text-align:left;width:100%;gap:0}.footer-address,.footer-phone{align-self:flex-start}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal-media{opacity:1;transform:none;clip-path:none;transition:none}.hero-video{display:none}.media-load-fade,.scroll-top{transition:none}}


/* Practice page */
.page-practice{background:var(--paper)}
.practice-hero{position:relative;min-height:92svh;background:var(--paper);color:#fff;overflow:hidden}
.practice-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 53%}
.practice-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.48),rgba(0,0,0,.06) 70%),linear-gradient(0deg,rgba(0,0,0,.28),transparent 45%)}
.practice-hero-copy{position:absolute;z-index:2;left:var(--pad);bottom:clamp(70px,10vh,120px);max-width:1250px}
.practice-hero-copy h1{font-size:clamp(4.3rem,10vw,11rem);line-height:.82;letter-spacing:-.08em;font-weight:500;margin:.12em 0 0}
.practice-intro-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:end}
.practice-intro-copy{font-size:clamp(1.18rem,1.8vw,1.65rem);max-width:700px}
.practice-intro-copy p{margin:0 0 1.2em}
.practice-history{background:var(--orange);min-height:78vh;display:flex;flex-direction:column;justify-content:space-between}
.practice-history .display-xl{max-width:1400px}
.practice-location{background:#fff}
.location-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}
.location-copy{font-size:clamp(1.15rem,1.75vw,1.55rem);max-width:760px;align-self:end}
.location-copy p{margin:0 0 1.25em}
.practice-image-full{margin:0;overflow:hidden;background:#111}
.practice-image-full img{width:100%;height:auto;max-height:none;object-fit:cover}
.practice-image-caption{display:flex;justify-content:space-between;gap:30px;padding:18px var(--pad) 38px;background:#111;color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.partners{background:var(--paper)}
.partners-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;margin-bottom:clamp(70px,10vw,140px)}
.partner-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,8vw,130px);border-top:var(--line)}
.partner-card{padding-top:28px}
.partner-number{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#777}
.partner-card h3{font-size:clamp(2.4rem,4.6vw,5.3rem);line-height:.9;letter-spacing:-.06em;font-weight:500;margin:.4em 0 .18em}
.partner-role{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#666;margin-bottom:40px}
.partner-card p{font-size:clamp(1.05rem,1.45vw,1.35rem);line-height:1.45;max-width:720px}
.studio-life{display:grid;grid-template-columns:1.15fr .85fr;background:var(--led-grey);color:#fff;min-height:80vh}
.studio-life figure{margin:0;min-height:680px;overflow:hidden}.studio-life figure img{height:100%;object-fit:cover}
.studio-copy{display:flex;flex-direction:column;justify-content:space-between}
.studio-copy p{font-size:clamp(1.05rem,1.6vw,1.4rem);max-width:580px;color:#e7e7e7}
.dog-detail{display:grid;grid-template-columns:.85fr 1.15fr;background:#fff;align-items:stretch}
.dog-detail figure{margin:0;min-height:700px;overflow:hidden}.dog-detail figure img{height:100%;object-fit:cover}
.dog-detail-copy{display:flex;align-items:center}
.client-section{background:var(--paper)}
.client-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:70px}
.client-col{border-top:var(--line);padding-top:24px}
.client-col h3{font-size:clamp(1.8rem,3vw,3.4rem);letter-spacing:-.045em;font-weight:500;margin:0 0 28px}
.client-col p{font-size:clamp(1.05rem,1.45vw,1.3rem);line-height:1.45;max-width:620px}
.practice-cta{background:var(--orange);min-height:65vh;display:flex;flex-direction:column;justify-content:space-between}
.practice-cta a{font-size:clamp(2rem,5vw,5.7rem);letter-spacing:-.06em;border-bottom:2px solid currentColor;align-self:flex-start;padding-bottom:5px}
.site-header.on-light{color:var(--led-grey);mix-blend-mode:normal}
@media (max-width:800px){
  .practice-hero{min-height:78svh}.practice-hero-copy h1{font-size:clamp(4rem,19vw,7rem)}
  .practice-intro-grid,.location-grid,.partners-head,.partner-grid,.studio-life,.dog-detail,.client-grid{grid-template-columns:1fr}
  .practice-intro-grid,.location-grid{gap:50px}.partners-head{gap:35px}.partner-grid{gap:60px}
  .studio-life figure,.dog-detail figure{min-height:0;height:100vw}.dog-detail figure{order:1}.dog-detail-copy{order:2}
  .practice-image-caption{flex-direction:column;gap:8px}
}

/* Practice people additions */
.partner-photo{margin:46px 0 0;overflow:hidden;background:#ddd}
.partner-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center center}
.staff-group-photo{margin:clamp(70px,9vw,130px) auto 0;max-width:1400px;overflow:hidden;background:#ddd}
.staff-group-photo img{display:block;width:100%;height:auto}
.team-section{background:#fff}
.team-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;margin-bottom:clamp(70px,9vw,130px)}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(45px,5vw,85px) clamp(24px,3vw,48px)}
.team-card figure{margin:0 0 26px;overflow:hidden;background:#e9e6df;aspect-ratio:3/4}
.team-card figure img{width:100%;height:100%;object-fit:cover;object-position:center center}
.team-card h3{font-size:clamp(1.8rem,2.8vw,3.25rem);letter-spacing:-.05em;font-weight:500;line-height:.95;margin:0 0 12px}
.team-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#777;margin-bottom:22px}
.team-card p{font-size:clamp(1rem,1.2vw,1.16rem);line-height:1.5;margin:0;max-width:520px}
.photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--led-grey)!important;color:#fff;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
@media(max-width:1050px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.team-head,.team-grid{grid-template-columns:1fr}.team-head{gap:35px}.team-grid{gap:60px}.partner-photo{margin-top:34px}}

/* Projects + Services */
.page-projects,.page-services{background:var(--paper)}
.page-projects .site-header,.page-services .site-header{position:absolute}
.page-projects .site-header{mix-blend-mode:normal;color:#fff}
.page-services .site-header{mix-blend-mode:normal;color:var(--led-grey)}
.page-projects .site-header .brand-logo,.page-services .site-header .brand-logo{filter:none}
.listing-intro,.services-hero{padding-top:clamp(150px,18vw,240px);background:#fff}
.listing-copy{display:grid;grid-template-columns:1fr 1fr;gap:6vw;margin:70px 0 0 34%;padding-top:26px;border-top:var(--line);font-size:clamp(1.05rem,1.55vw,1.45rem)}
.listing-copy p{margin:0}
.project-filter{position:sticky;top:0;z-index:15;display:flex;flex-wrap:wrap;gap:clamp(22px,3vw,46px);background:var(--paper);border-top:var(--line);border-bottom:var(--line)}
.filter{border:0;background:transparent;padding:0;font:inherit;font-size:clamp(1.05rem,1.4vw,1.35rem);font-weight:600;line-height:1.2;color:var(--ink);cursor:pointer;transition:color .2s ease}.filter:hover,.filter.active{background:transparent;color:var(--orange)}.filter:focus-visible{outline:2px solid currentColor;outline-offset:5px}
.project-listing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#111;gap:1px}
.project-card{background:var(--paper);padding-bottom:clamp(40px,6vw,90px)}.project-card:first-child{grid-column:1/-1}.project-card:first-child figure{aspect-ratio:16/9}.project-card[hidden]{display:none}
.project-card figure{aspect-ratio:3/2;overflow:hidden;background:#222}.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.project-card:hover img{transform:scale(1.02)}
.project-card-meta{padding:24px var(--pad) 0}.project-card-meta p{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#777;margin:0 0 22px}.project-card-meta h2{font-size:clamp(2rem,3.5vw,4.3rem);line-height:.92;letter-spacing:-.055em;font-weight:500;margin:0 0 18px}.project-card-meta span{font-size:.95rem;color:#666}
.service-rows{background:#fff;padding-top:20px}.service-row{display:grid;grid-template-columns:70px .8fr 1fr;gap:4vw;padding:42px 0;border-top:var(--line);align-items:start}.service-row>span{font-size:.72rem;color:#777}.service-row h2{font-size:clamp(2rem,4vw,4.7rem);line-height:.92;letter-spacing:-.055em;font-weight:500;margin:0}.service-row p{font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.5;margin:0;max-width:650px}
.service-feature{display:grid;grid-template-columns:1.15fr .85fr;background:var(--led-grey);color:#fff}.service-feature>img{height:100%;min-height:700px;object-fit:cover}.service-feature-copy{display:flex;flex-direction:column;justify-content:center}.service-feature-copy p:last-child{font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.5;max-width:600px;color:#e7e7e7}
@media(max-width:800px){.listing-copy{grid-template-columns:1fr;margin:45px 0 0;gap:22px}.project-listing{grid-template-columns:1fr}.project-filter{position:relative}.service-row{grid-template-columns:40px 1fr}.service-row p{grid-column:2}.service-feature{grid-template-columns:1fr}.service-feature>img{min-height:0;height:90vw}}

/* Selected client logos */
.selected-clients{margin-top:clamp(70px,9vw,140px);border-top:var(--line);padding-top:28px}
.selected-clients .kicker{margin-bottom:36px}
.client-logo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:rgba(65,68,70,.16);border:1px solid rgba(65,68,70,.16)}
.client-logo{background:#fff;min-height:170px;padding:28px;display:flex;align-items:center;justify-content:center}
.client-logo img{display:block;width:100%;height:110px;object-fit:contain;object-position:center}
@media (max-width:980px){.client-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.client-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-logo{min-height:135px;padding:20px}.client-logo img{height:90px}}

/* V8 accreditation logos */
.accreditations{background:#fff;border-top:1px solid rgba(65,68,70,.18)}
.accreditation-grid{display:flex;align-items:center;gap:clamp(3rem,8vw,8rem);margin-top:2.5rem;flex-wrap:wrap}
.accreditation-logo{height:120px;display:flex;align-items:center;justify-content:flex-start}
.accreditation-logo img{max-height:100%;max-width:280px;width:auto;object-fit:contain}
@media(max-width:700px){.accreditation-logo{height:90px}.accreditation-logo img{max-width:220px}}

/* V9 services hero accreditation placement */
.services-intro-grid{display:grid;grid-template-columns:28% 1fr;gap:6%;margin-top:70px;align-items:start}
.services-intro-grid .listing-copy{margin:0;padding-top:26px}
.hero-accreditations{display:flex;gap:32px;align-items:center;padding-top:26px;border-top:var(--line)}
.hero-accreditations img{width:auto;max-width:46%;max-height:105px;object-fit:contain;filter:grayscale(1);opacity:.72}
@media(max-width:800px){.services-intro-grid{grid-template-columns:1fr;margin-top:45px;gap:35px}.hero-accreditations{max-width:520px}.services-intro-grid .listing-copy{margin:0}.hero-accreditations img{max-height:85px}}

/* Projects hero */
.projects-hero{position:relative;min-height:92svh;background:var(--paper);color:#fff;overflow:hidden}
.projects-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center}
.projects-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.46),rgba(0,0,0,.08) 70%),linear-gradient(0deg,rgba(0,0,0,.30),transparent 48%)}
.projects-hero-copy{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:clamp(70px,10vh,120px);max-width:1400px}
.projects-hero-copy h1{font-size:clamp(4rem,8.6vw,9.5rem);line-height:.88;letter-spacing:-.075em;font-weight:500;margin:.12em 0 0;max-width:13ch}
.page-projects .listing-intro{padding-top:clamp(70px,8vw,120px)}
@media(max-width:800px){.projects-hero{min-height:78svh}.projects-hero-copy h1{font-size:clamp(3.4rem,15vw,6.5rem);max-width:10ch}.projects-hero>img{object-position:center center}}


/* V12 project case studies + Journal */
.project-card{display:block;color:inherit;text-decoration:none}
.project-card:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
.project-detail-hero{position:relative;min-height:88svh;background:#111;color:#fff;overflow:hidden}
.project-detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.project-detail-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.58),rgba(0,0,0,.06) 70%)}
.project-detail-hero-copy{position:absolute;z-index:2;left:var(--pad);right:var(--pad);bottom:clamp(60px,9vh,110px)}
.project-detail-hero-copy h1{font-size:clamp(4rem,8vw,9rem);line-height:.88;letter-spacing:-.07em;font-weight:500;max-width:12ch;margin:.12em 0 .25em}
.project-detail-hero-copy>p:last-child{font-size:1rem}
.project-detail-intro{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;background:#fff}
.project-detail-summary h2{font-size:clamp(2rem,4.2vw,5rem);line-height:1.02;letter-spacing:-.055em;font-weight:500;margin:.3em 0 0;max-width:18ch}
.project-facts{border-top:var(--line)}.project-facts div{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:18px 0;border-bottom:var(--line)}.project-facts span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#777}.project-facts strong{font-weight:500}
.project-detail-gallery{background:#fff}.project-detail-gallery figure{margin:0;overflow:hidden;background:#ddd}.project-detail-gallery img{width:100%;height:100%;object-fit:cover}.project-detail-gallery .wide{aspect-ratio:16/9}.project-detail-copy{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw}.project-detail-copy>p{font-size:clamp(1.25rem,2vw,2rem);line-height:1.35;margin:0}.project-detail-copy ul{list-style:none;padding:0;margin:20px 0 0;border-top:var(--line)}.project-detail-copy li{padding:12px 0;border-bottom:var(--line)}.project-gallery-pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#fff}.project-gallery-pair figure:first-child{aspect-ratio:4/5}.project-gallery-pair figure:last-child{aspect-ratio:3/2;align-self:center}.project-next{display:flex;justify-content:space-between;gap:30px;background:var(--orange);font-size:clamp(1.2rem,2vw,2rem)}

.page-journal,.page-journal-article{background:#fff}.page-journal .site-header,.page-journal-article .site-header{position:absolute;color:var(--led-grey);mix-blend-mode:normal}.page-journal .site-header .brand-logo,.page-journal-article .site-header .brand-logo{filter:none}.journal-hero{padding-top:clamp(180px,18vw,260px);min-height:80vh;display:flex;flex-direction:column;justify-content:flex-end}.journal-hero h1{font-size:clamp(4rem,8vw,9rem);line-height:.88;letter-spacing:-.075em;font-weight:500;margin:.2em 0 .55em}.journal-hero-copy{display:grid;grid-template-columns:1fr 1fr;gap:6vw;margin-left:34%;border-top:var(--line);padding-top:24px;font-size:clamp(1.05rem,1.5vw,1.4rem)}.journal-hero-copy p{margin:0}.journal-filter{display:flex;gap:clamp(22px,3vw,46px);flex-wrap:wrap;border-top:var(--line);border-bottom:var(--line);background:var(--paper);position:sticky;top:0;z-index:12}.journal-filter-btn{border:0;background:transparent;padding:0;font:inherit;font-size:clamp(1.05rem,1.4vw,1.35rem);font-weight:600;line-height:1.2;color:var(--ink);cursor:pointer;transition:color .2s ease}.journal-filter-btn.active,.journal-filter-btn:hover{background:transparent;color:var(--orange)}.journal-filter-btn:focus-visible{outline:2px solid currentColor;outline-offset:5px}.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#111}.journal-card{background:#fff;color:inherit;text-decoration:none;padding-bottom:55px}.journal-card[hidden]{display:none}.journal-card figure{margin:0;aspect-ratio:3/2;overflow:hidden}.journal-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.journal-card:hover img{transform:scale(1.025)}.journal-card>div{padding:24px var(--pad) 0}.journal-card p{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#777}.journal-card h2{font-size:clamp(1.8rem,2.7vw,3.2rem);line-height:.98;letter-spacing:-.05em;font-weight:500;margin:16px 0}.journal-card span{font-size:1rem;line-height:1.45;color:#555}.publication-demo{display:grid;grid-template-columns:1fr .55fr;gap:8vw;background:var(--led-grey);color:#fff;align-items:center}.publication-demo p{max-width:700px}.publication-demo a{display:inline-block;margin-top:30px;border-bottom:1px solid currentColor;padding-bottom:4px}.publication-demo figure{margin:0;max-width:420px;justify-self:end}.publication-demo img{width:100%;height:auto}
.journal-article-head{padding-top:clamp(180px,18vw,250px)}.journal-article-head h1{font-size:clamp(4rem,8vw,9rem);line-height:.88;letter-spacing:-.075em;font-weight:500;margin:.18em 0 0;max-width:13ch}.journal-article-hero{margin:0;aspect-ratio:16/8;overflow:hidden}.journal-article-hero img{width:100%;height:100%;object-fit:cover}.journal-article-body{display:grid;grid-template-columns:1fr 280px;gap:10vw}.journal-reading{max-width:820px;font-size:clamp(1.15rem,1.55vw,1.45rem);line-height:1.6}.journal-reading p:first-child{font-size:clamp(1.5rem,2.4vw,2.5rem);line-height:1.3}.journal-article-body aside{border-top:var(--line);padding-top:20px}.journal-article-body aside a{display:inline-block;margin-top:30px;border-bottom:1px solid currentColor}
@media(max-width:900px){.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-intro,.project-detail-copy,.publication-demo,.journal-article-body{grid-template-columns:1fr}.journal-hero-copy{margin-left:0}.project-gallery-pair{grid-template-columns:1fr}.project-gallery-pair figure{aspect-ratio:3/2!important}.publication-demo figure{justify-self:start;max-width:300px}.journal-article-body aside{max-width:520px}}
@media(max-width:650px){.journal-grid{grid-template-columns:1fr}.journal-hero-copy{grid-template-columns:1fr}.project-detail-hero{min-height:72svh}.project-detail-hero-copy h1{font-size:clamp(3.5rem,15vw,6rem)}.journal-article-hero{aspect-ratio:4/3}}

/* V16 project case-study layout: editorial image rhythm inspired by architectural journals */
.page-project-detail .project-detail-intro{
  padding-top:clamp(70px,9vw,150px);
  padding-bottom:clamp(70px,9vw,150px);
}
.page-project-detail .project-detail-gallery{
  background:#fff;
  padding:clamp(50px,6vw,100px) var(--pad) clamp(90px,11vw,180px);
  display:flex;
  flex-direction:column;
  gap:clamp(55px,8vw,130px);
}
.page-project-detail .project-detail-gallery figure{
  margin:0;
  overflow:hidden;
  background:#f2f2f0;
}
.page-project-detail .project-detail-gallery figure img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.page-project-detail .project-detail-gallery > figure.wide{
  aspect-ratio:auto;
  width:min(88%,1480px);
}
.page-project-detail .project-detail-gallery > figure.wide:first-child{
  margin-left:2vw;
  margin-right:auto;
}
.page-project-detail .project-detail-gallery > figure.wide:last-child{
  width:min(78%,1260px);
  margin-left:auto;
  margin-right:3vw;
}
.page-project-detail .project-detail-copy{
  padding:0;
  margin:clamp(10px,1vw,20px) 6vw;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(250px,.65fr);
  gap:clamp(50px,8vw,150px);
  align-items:start;
}
.page-project-detail .project-gallery-pair{
  background:#fff;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(26px,4.5vw,80px);
  align-items:start;
  padding:0 4vw;
}
.page-project-detail .project-gallery-pair figure:first-child,
.page-project-detail .project-gallery-pair figure:last-child{
  aspect-ratio:auto;
}
.page-project-detail .project-gallery-pair figure:last-child{
  width:92%;
  justify-self:end;
  margin-top:clamp(40px,8vw,130px);
}
.page-project-detail .project-next{
  margin-top:0;
}
@media(max-width:900px){
  .page-project-detail .project-detail-gallery{padding-left:var(--pad);padding-right:var(--pad);gap:55px}
  .page-project-detail .project-detail-gallery > figure.wide,
  .page-project-detail .project-detail-gallery > figure.wide:first-child,
  .page-project-detail .project-detail-gallery > figure.wide:last-child{width:100%;margin-left:0;margin-right:0}
  .page-project-detail .project-detail-copy{margin:0;grid-template-columns:1fr;gap:40px}
  .page-project-detail .project-gallery-pair{grid-template-columns:1fr;gap:32px;padding:0}
  .page-project-detail .project-gallery-pair figure:last-child{width:100%;margin-top:0}
}

/* V17: optional second image pair for projects with larger galleries */
.page-project-detail .project-gallery-pair-extra{
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  padding:0 7vw 0 1vw;
}
.page-project-detail .project-gallery-pair-extra figure:first-child{
  width:88%;
  justify-self:start;
  margin-top:clamp(35px,6vw,95px);
}
.page-project-detail .project-gallery-pair-extra figure:last-child{
  width:100%;
  justify-self:end;
  margin-top:0;
}
@media(max-width:900px){
  .page-project-detail .project-gallery-pair-extra{grid-template-columns:1fr;padding:0;gap:32px}
  .page-project-detail .project-gallery-pair-extra figure:first-child,
  .page-project-detail .project-gallery-pair-extra figure:last-child{width:100%;margin-top:0}
}

/* V23: three-column editorial listing grids for Projects + Journal */
.page-projects .project-listing,
.page-journal .journal-grid{
  background:#fff;
  padding:clamp(42px,5vw,82px) var(--pad) clamp(80px,9vw,150px);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:clamp(24px,2.8vw,52px);
  row-gap:clamp(58px,6vw,105px);
  align-items:start;
}

.page-projects .project-card,
.page-journal .journal-card{
  background:#fff;
  padding:0;
  min-width:0;
}

.page-projects .project-card:first-child{grid-column:auto}
.page-projects .project-card:first-child figure,
.page-projects .project-card figure{
  aspect-ratio:4/5;
  background:#f2f2f2;
}
.page-projects .project-card-meta{
  padding:20px 0 0;
}
.page-projects .project-card-meta p{
  margin:0 0 13px;
  font-size:.68rem;
}
.page-projects .project-card-meta h2{
  font-size:clamp(1.65rem,2.15vw,2.55rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin:0 0 10px;
  font-weight:500;
}
.page-projects .project-card-meta span{
  display:block;
  font-size:clamp(.9rem,1vw,1rem);
  line-height:1.35;
}

.page-journal .journal-card figure{
  aspect-ratio:4/5;
  background:#f2f2f2;
}
.page-journal .journal-card>div{
  padding:20px 0 0;
}
.page-journal .journal-card p{
  margin:0 0 13px;
}
.page-journal .journal-card h2{
  font-size:clamp(1.65rem,2.15vw,2.55rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin:0 0 12px;
}
.page-journal .journal-card span{
  display:block;
  font-size:clamp(.9rem,1vw,1rem);
  line-height:1.45;
}

@media(max-width:1000px){
  .page-projects .project-listing,
  .page-journal .journal-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:clamp(22px,3vw,38px);
  }
}
@media(max-width:650px){
  .page-projects .project-listing,
  .page-journal .journal-grid{
    grid-template-columns:1fr;
    row-gap:52px;
  }
  .page-projects .project-card:first-child figure,
  .page-projects .project-card figure,
  .page-journal .journal-card figure{
    aspect-ratio:4/3;
  }
}

/* V27: Journal batch update */
.journal-hero-copy-single{grid-template-columns:1fr;max-width:980px}
.journal-inline-image{margin:clamp(42px,6vw,76px) 0}
.journal-inline-image img{display:block;width:100%;height:auto}
.journal-inline-image figcaption,.journal-image-caption{font-size:.78rem;line-height:1.45;color:#666;margin-top:10px}
.journal-article-hero-contained{width:min(820px,calc(100% - (2 * var(--pad))));height:auto;aspect-ratio:auto;margin:0 0 0 var(--pad);overflow:visible;background:#fff}
.journal-article-hero-contained img{display:block;width:100%;height:auto;object-fit:contain}
.journal-reading h2{font-size:clamp(2rem,3.2vw,3.5rem);line-height:1.02;letter-spacing:-.045em;font-weight:500;margin:2em 0 .7em}
.journal-article-list{margin:1.25em 0 1.75em;padding:0;list-style:none}
.journal-article-list li{margin:.45em 0}

/* Align partner portraits despite differing biography lengths. */
.partner-card{display:flex;flex-direction:column}
.partner-card .partner-photo{margin-top:auto;padding-top:46px;background:transparent}
@media(max-width:800px){.partner-card .partner-photo{padding-top:34px}}

/* Hold image-led page heroes on the plain page background until their image is ready. */
.hero-load-gated>img{opacity:0;transition:opacity .22s ease}
.hero-load-gated:after{opacity:0;transition:opacity .22s ease}
.hero-load-gated .hero-copy,
.hero-load-gated .practice-hero-copy,
.hero-load-gated .projects-hero-copy,
.hero-load-gated .scroll-cue{opacity:0!important;visibility:hidden!important;transform:none!important;transition:opacity .18s ease}
.hero-load-gated.hero-ready>img{opacity:1}
.hero-load-gated.hero-ready:after{opacity:1}
.hero-load-gated.hero-ready .hero-copy,
.hero-load-gated.hero-ready .practice-hero-copy,
.hero-load-gated.hero-ready .projects-hero-copy,
.hero-load-gated.hero-ready .scroll-cue{opacity:1!important;visibility:visible!important}


/* Prevent any hero text/image/video flash while above-fold media is loading. */
.hero.hero-load-gated{background:var(--paper)}
.hero-load-gated>video{opacity:0;transition:opacity .22s ease}
.hero-load-gated .hero-shade{opacity:0;transition:opacity .22s ease}
.hero-load-gated .hero-copy,
.hero-load-gated .practice-hero-copy,
.hero-load-gated .projects-hero-copy,
.hero-load-gated .scroll-cue{opacity:0!important;visibility:hidden!important;transform:none!important;transition:opacity .18s ease}
.hero-load-gated.hero-ready>video{opacity:1}
.hero-load-gated.hero-ready .hero-shade{opacity:1}
.hero-load-gated.hero-ready .hero-copy,
.hero-load-gated.hero-ready .practice-hero-copy,
.hero-load-gated.hero-ready .projects-hero-copy,
.hero-load-gated.hero-ready .scroll-cue{opacity:1!important;visibility:visible!important}
.hero.hero-load-gated.hero-ready{background:#222}
