@font-face{font-family:Inter;src:url('/assets/inter.woff') format('woff');font-weight:100 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:#fff;color:#24272b;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}:root{--ink:#24272b;--dark:#181c22;--accent:#4e84c4;--muted:#535455;--line:#d6dadd;--pale:#edf0f1;--pad:clamp(24px,5vw,88px)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;line-height:1.08;letter-spacing:-.045em}p{max-width:68ch}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #3569a5;outline-offset:7px}.skip{position:fixed;left:20px;top:-80px;padding:12px 20px;background:var(--accent);z-index:100}.skip:focus{top:15px}.wrap{padding-left:var(--pad);padding-right:var(--pad);max-width:1920px;margin:auto}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;display:flex;gap:15px;align-items:center}.eyebrow .num{opacity:.55}.arrow{display:inline-block;width:20px;height:20px;flex-shrink:0;transition:transform .25s}.arrow svg{width:100%;height:100%}.text-link{display:inline-flex;align-items:center;gap:32px;font-size:15px;font-weight:500;padding:10px 0;border-bottom:1px solid currentColor}.text-link:hover .arrow{transform:translate(4px,-4px)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:38px;padding:17px 24px;background:var(--accent);color:var(--ink);font-size:15px;font-weight:600;border:1px solid transparent;transition:background .2s}.button:hover{background:#6b99d1}.button.outline{background:transparent;border-color:var(--line)}.button.outline:hover{background:var(--pale)}.header{height:104px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:white;padding:0 var(--pad);position:relative;z-index:30;border-bottom:1px solid rgba(30,36,45,.12)}.brand{display:block;width:225px;flex-shrink:0}.brand img{max-height:65px;width:auto;max-width:100%}.nav{display:flex;align-items:center;gap:clamp(20px,2.4vw,40px)}.nav>a{font-size:14px;position:relative;padding:9px 0}.nav>a:not(.nav-contact):after{content:'';height:1px;background:var(--ink);position:absolute;bottom:4px;left:0;width:0;transition:width .25s}.nav>a:hover:after,.nav>a[aria-current=page]:after{width:100%}.nav .nav-contact{display:flex;align-items:center;gap:22px;margin-left:12px;padding:13px 18px;border:1px solid var(--line)}.nav .nav-contact:hover{background:var(--pale)}.menu-toggle{display:none;background:none;border:0;align-items:center;gap:14px;padding:10px 0;color:var(--ink);font-size:14px}.menu-lines{width:24px;height:14px;border-top:1px solid;border-bottom:1px solid;transition:transform .25s}.mobile-nav{display:none}.hero{position:relative;min-height:650px;height:calc(100svh - 104px);max-height:1000px;isolation:isolate;overflow:hidden;background:var(--dark);color:white;display:flex;flex-direction:column;justify-content:space-between;padding-top:48px;padding-bottom:28px}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;object-position:center 50%;animation:hero-in 1.4s ease-out both}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,18,27,.84),rgba(12,18,27,.45) 52%,rgba(12,18,27,.08)),linear-gradient(0deg,rgba(12,18,27,.72),transparent 40%);z-index:-2}.hero-top{display:flex;justify-content:space-between;gap:24px}.hero-top .location{font-size:13px;letter-spacing:.06em}.hero h1{font-size:clamp(62px,7.6vw,128px);line-height:1.01;letter-spacing:-.057em;margin-top:35px;max-width:1120px}.hero h1 span{display:block;color:var(--accent)}.hero-copy{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-top:32px;margin-bottom:52px}.hero-copy p{font-size:18px;line-height:1.6;max-width:460px;color:#f1f4f7}.hero-copy .text-link{color:white;min-width:200px;justify-content:space-between}.hero-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff45;padding-top:22px;gap:24px;font-size:13px}.hero-credit{display:flex;align-items:center;gap:16px}.hero-credit b{font-weight:500}.hero-credit .caption-type{font-size:12px;color:#e2e7ee;letter-spacing:.08em;text-transform:uppercase}.hero-bottom .scroll-cue{display:flex;gap:14px;align-items:center}.hero-bottom .scroll-cue .arrow{transform:rotate(90deg)}.client-strip{padding-top:31px;padding-bottom:31px;display:flex;gap:50px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.client-strip>span{font-size:12px;line-height:1.5;text-transform:uppercase;letter-spacing:.1em;min-width:122px;color:var(--muted)}.client-names{display:flex;gap:35px;align-items:center;justify-content:space-between;width:100%;flex-wrap:wrap}.client-names span{font-size:clamp(14px,1.4vw,22px);font-weight:600;letter-spacing:-.03em;line-height:1.15}.section{padding-top:100px;padding-bottom:100px}.intro-grid{display:grid;grid-template-columns:1fr 2.15fr;gap:65px}.intro-grid h2{font-size:clamp(36px,4.3vw,68px);max-width:970px}.intro-copy{margin-top:32px;display:grid;grid-template-columns:1.25fr 1fr;gap:65px;align-items:start}.intro-copy p{color:var(--muted);font-size:18px}.intro-copy .text-link{justify-self:end;margin-top:9px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:48px}.section-heading h2{font-size:clamp(40px,4.5vw,72px);margin-top:22px}.work-section{background:var(--pale)}.work-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:65px 40px;align-items:start}.project-card{display:block;min-width:0}.project-card:nth-child(2n){margin-top:100px}.project-image{position:relative;overflow:hidden;background:#e1e5e9;aspect-ratio:1.45}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.3,1)}.project-card:hover img{transform:scale(1.045)}.card-arrow{position:absolute;bottom:0;right:0;width:62px;height:62px;background:var(--accent);display:flex;align-items:center;justify-content:center;transition:background .2s}.project-card:hover .card-arrow{background:white}.project-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;letter-spacing:.04em;margin-top:20px;color:var(--muted)}.project-card h3{font-size:clamp(25px,2.4vw,38px);margin-top:8px;letter-spacing:-.035em}.project-card p{font-size:15px;margin-top:12px;color:var(--muted);max-width:520px}.expertise-section{background:var(--ink);color:white}.expertise-section .eyebrow{color:var(--accent)}.expertise-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:end;margin:28px 0 65px}.expertise-intro h2{font-size:clamp(42px,4.9vw,78px)}.expertise-intro p{color:#dfe5ec;font-size:18px;max-width:460px}.expertise-row{display:grid;grid-template-columns:70px 1.3fr 1fr 35px;gap:30px;align-items:center;padding:32px 0;border-top:1px solid #ffffff35;transition:color .2s}.expertise-row:last-of-type{border-bottom:1px solid #ffffff35}.expertise-row:hover{color:var(--accent)}.expertise-row .index{font-size:13px;color:var(--accent)}.expertise-row h3{font-size:clamp(24px,2.6vw,40px)}.expertise-row p{font-size:15px;color:#dfe5ec;max-width:400px}.expertise-bottom{margin-top:45px;display:flex;justify-content:flex-end}.expertise-bottom .text-link{color:var(--accent)}.people-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.people-images{display:grid;grid-template-columns:1fr 1fr;gap:16px}.people-images a:nth-child(2){margin-top:65px}.people-images img{aspect-ratio:.75;object-fit:cover;object-position:center;background:var(--pale);filter:grayscale(1)}.people-images .person-caption{margin-top:13px;font-size:15px}.people-images .person-caption span{display:block;color:var(--muted);font-size:13px}.people-copy h2{font-size:clamp(38px,4.1vw,66px);margin-top:25px}.people-copy p{margin:28px 0;color:var(--muted);font-size:18px}.quality{padding-top:28px;padding-bottom:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:40px;align-items:center}.quality p{font-size:15px;color:var(--muted)}.quality strong{font-size:18px;font-weight:500}.cta{background:var(--accent);padding-top:75px;padding-bottom:75px;display:flex;align-items:center;justify-content:space-between;gap:35px}.cta h2{font-size:clamp(42px,5.4vw,84px);max-width:930px}.cta .round-link{width:100px;height:100px;flex-shrink:0;border:1px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .25s}.cta .round-link:hover{background:white}.cta .arrow{width:32px;height:32px}.footer{background:var(--dark);color:white;padding-top:66px;padding-bottom:25px}.footer-top{display:grid;grid-template-columns:1.25fr 1fr 1fr .65fr;gap:45px;padding-bottom:70px}.footer-brand{font-size:35px;line-height:1.05;font-weight:500;letter-spacing:-.05em}.footer-brand img{max-width:240px;filter:brightness(0) invert(1);height:auto}.footer .footer-brand p{font-size:14px;line-height:1.5;color:var(--accent);margin-top:24px;letter-spacing:0}.footer h3{font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:#bac3ce;margin-bottom:22px}.footer p,.footer a{font-size:15px;line-height:1.9}.footer a:hover{color:var(--accent)}.footer-social{display:flex;flex-direction:column;align-items:start}.footer-bottom{border-top:1px solid #ffffff30;padding-top:24px;display:flex;justify-content:space-between;gap:25px}.footer-bottom p,.footer-bottom a{font-size:12px;line-height:1.8;color:#bcc5d0}.footer-legal{max-width:870px}.footer-meta{display:flex;gap:22px;flex-wrap:wrap;align-items:start;justify-content:end}.page-hero{padding-top:58px;padding-bottom:75px}.breadcrumb{font-size:13px;color:var(--muted);display:flex;gap:13px;flex-wrap:wrap}.breadcrumb a:hover{text-decoration:underline}.page-hero h1{font-size:clamp(54px,6.5vw,106px);margin-top:44px;max-width:1180px}.page-hero h1 em{font-style:normal;color:#4e84c4}.page-intro{margin-top:32px;font-size:20px;line-height:1.65;color:var(--muted);max-width:750px}.page-hero-row{display:flex;justify-content:space-between;align-items:end;gap:65px}.page-hero-row .side-note{font-size:14px;max-width:270px;color:var(--muted)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:55px 30px;padding-bottom:90px}.portfolio-grid .project-card:nth-child(n){margin-top:0}.portfolio-grid .project-image{aspect-ratio:1.32}.portfolio-grid .project-card h3{font-size:26px}.portfolio-grid .project-meta{font-size:12px}.portfolio-grid .project-card p{font-size:15px}.project-hero-img{height:clamp(330px,53vw,750px);width:100%;object-fit:cover;background:var(--pale)}.project-detail{display:grid;grid-template-columns:1fr 2fr;gap:100px}.project-facts{padding:0;margin:0}.project-facts>div{border-top:1px solid var(--line);padding:18px 0}.project-facts dt{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.project-facts dd{margin:8px 0 0;font-size:17px}.article h2{font-size:clamp(30px,3vw,47px);margin-bottom:28px}.article h3{font-size:28px;margin:38px 0 16px}.article p,.article li{font-size:18px;color:var(--muted);line-height:1.8}.article p+p{margin-top:23px}.article ul{padding-left:21px}.article li+li{margin-top:10px}.project-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:85px}.project-gallery img{width:100%;height:100%;max-height:550px;object-fit:cover;aspect-ratio:1.5}.project-gallery img:first-child:last-child{grid-column:1/-1;aspect-ratio:2;max-height:650px}.related{border-top:1px solid var(--line)}.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.related-grid .project-card:nth-child(n){margin:0}.service-block{display:grid;grid-template-columns:1fr 1.6fr;gap:100px;padding-top:65px;padding-bottom:65px;border-top:1px solid var(--line);scroll-margin-top:30px}.service-title .eyebrow{margin-bottom:22px}.service-title h2{font-size:clamp(34px,3.5vw,55px)}.service-block .article p{font-size:18px}.service-block .article h3{font-size:23px}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:15px 40px;margin-top:25px;padding:0;list-style:none}.service-list li{border-top:1px solid var(--line);padding-top:15px;font-size:16px;line-height:1.6;color:var(--muted)}.jump-links{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:60px}.jump-links a{padding:12px 18px;border:1px solid var(--line);font-size:14px}.jump-links a:hover{background:var(--accent);border-color:var(--accent)}.feature-image{margin-top:30px;max-height:570px;object-fit:cover}.sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:35px}.sector{font-size:23px;line-height:1.2;padding:24px 0;border-top:1px solid var(--line);letter-spacing:-.025em}.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:50px 25px;padding-bottom:100px}.person-card .portrait{overflow:hidden;background:var(--pale)}.person-card img{aspect-ratio:.78;object-fit:cover;transition:transform .7s;filter:grayscale(1)}.person-card:hover img{transform:scale(1.035);filter:grayscale(0)}.person-card h2{font-size:23px;margin-top:20px}.person-card p{color:var(--muted);font-size:15px;margin-top:7px}.person-intro{display:grid;grid-template-columns:1fr 1.35fr;gap:90px;align-items:start;padding-bottom:100px}.person-intro .portrait img{max-height:700px;object-fit:cover;filter:grayscale(1)}.person-intro h1{font-size:clamp(48px,5vw,80px);margin:30px 0 15px}.person-intro .role{font-size:22px;color:var(--muted);margin-bottom:38px}.person-intro .article p{font-size:18px}.contact-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:95px;padding-bottom:100px}.contact-detail{border-top:1px solid var(--line);padding:27px 0}.contact-detail .eyebrow{margin-bottom:18px;color:var(--muted)}.contact-detail>a{font-size:clamp(22px,2.5vw,38px);letter-spacing:-.03em;overflow-wrap:anywhere}.contact-detail>a:hover{text-decoration:underline}.contact-detail address{font-style:normal;font-size:24px;line-height:1.5;letter-spacing:-.025em}.contact-aside{background:var(--pale);padding:40px;align-self:start}.contact-aside h2{font-size:37px}.contact-aside p{color:var(--muted);font-size:17px;margin:25px 0}.contact-aside .text-link{font-size:15px}.policy{max-width:900px;margin:auto;padding-bottom:100px}.policy h2{font-size:28px;margin-top:35px}.policy p{margin-top:20px}.reveal{transition:opacity .7s ease,transform .7s ease}.js-motion .reveal:not(.visible){opacity:0;transform:translateY(24px)}@keyframes hero-in{from{transform:scale(1.025);opacity:.65}to{transform:scale(1);opacity:1}}@media(min-width:1700px){.hero h1{font-size:140px}.hero-copy p{font-size:20px}}@media(max-width:1100px){.header{height:90px}.brand{width:200px}.nav{gap:20px}.nav .nav-contact{margin:0;padding:10px 13px}.nav>a{font-size:13px}.hero{height:calc(100svh - 90px);min-height:620px}.intro-grid{gap:35px;grid-template-columns:1fr 2.4fr}.intro-copy{gap:35px}.people-section{gap:45px}.expertise-intro{gap:50px}.expertise-row{grid-template-columns:35px 1.2fr 1fr 24px;gap:22px}.footer-top{grid-template-columns:1.1fr 1fr 1fr;gap:40px}.footer-social{grid-column:2/-1;flex-direction:row;gap:25px}.footer-social h3{display:none}.team-grid{grid-template-columns:repeat(3,1fr)}.project-detail,.service-block{gap:60px}.person-intro{gap:55px}.client-strip{gap:28px}.client-names{gap:25px}}@media(max-width:800px){.nav{display:none}.menu-toggle{display:flex}.header{height:85px}.brand{width:195px}.mobile-nav{display:none;position:fixed;z-index:25;inset:85px 0 0;background:var(--dark);color:white;padding:40px var(--pad);overflow:auto}.mobile-nav.open{display:flex;flex-direction:column;gap:12px}.mobile-nav a{font-size:clamp(32px,7vw,50px);line-height:1.3;letter-spacing:-.04em;padding:13px 0;border-bottom:1px solid #ffffff30}.mobile-nav p{font-size:14px;line-height:1.5;margin-top:30px;color:var(--accent)}.hero{height:calc(100svh - 85px);min-height:650px;padding-top:30px}.hero h1{font-size:clamp(58px,9vw,85px);margin-top:40px}.hero-top .location{display:none}.hero-copy{margin-bottom:44px;gap:30px}.hero-copy p{font-size:17px;max-width:400px}.hero-copy .text-link{min-width:160px;font-size:14px}.client-strip{align-items:start;gap:30px}.client-names{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.client-names span{font-size:17px}.section{padding-top:70px;padding-bottom:70px}.intro-grid{grid-template-columns:1fr;gap:32px}.intro-copy{grid-template-columns:1.5fr 1fr}.work-grid{gap:48px 25px}.project-card:nth-child(2n){margin-top:65px}.project-image{aspect-ratio:1.1}.project-meta{flex-direction:column;gap:2px}.project-card h3{font-size:28px}.expertise-intro{grid-template-columns:1fr;gap:28px;margin-bottom:45px}.expertise-row{grid-template-columns:25px 1fr 24px;gap:20px;padding:27px 0}.expertise-row p{display:none}.expertise-row h3{font-size:29px}.people-section{grid-template-columns:1fr;gap:50px}.people-images{max-width:640px}.people-copy{grid-row:1}.people-copy h2{max-width:540px}.quality{gap:25px;align-items:start}.cta{padding-top:58px;padding-bottom:58px}.cta .round-link{width:75px;height:75px}.footer-top{grid-template-columns:1fr 1fr;gap:45px}.footer-brand{grid-column:1/-1}.footer-social{grid-column:1/-1}.footer-bottom{flex-direction:column}.footer-meta{justify-content:start}.page-hero{padding-top:38px;padding-bottom:55px}.page-hero-row{display:block}.page-hero-row .side-note{margin-top:25px;max-width:500px}.page-intro{font-size:18px}.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:42px 25px}.portfolio-grid .project-card h3{font-size:24px}.project-detail{grid-template-columns:1fr;gap:50px}.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.service-block{grid-template-columns:1fr;gap:32px}.sectors{grid-template-columns:1fr 1fr}.team-grid{grid-template-columns:repeat(2,1fr)}.person-intro{grid-template-columns:1fr;gap:35px}.person-intro .portrait{max-width:470px}.contact-grid{grid-template-columns:1fr;gap:45px}.contact-detail>a{font-size:31px}.contact-aside{max-width:none}.hero-credit .caption-type{display:none}}@media(max-width:520px){.hero{min-height:670px;max-height:850px;padding-bottom:22px}.hero h1{font-size:clamp(51px,12vw,65px);line-height:1.04;letter-spacing:-.055em}.hero-copy{display:block;margin-top:27px;margin-bottom:32px}.hero-copy p{font-size:16px;max-width:315px}.hero-copy .text-link{margin-top:22px;min-width:190px}.hero-bottom{font-size:12px;gap:20px;align-items:start;padding-top:20px}.hero-credit{display:block;max-width:240px}.hero-credit b{display:block;margin-top:4px}.hero-bottom .scroll-cue{font-size:0;gap:0}.hero-bottom .scroll-cue .arrow{width:22px;height:22px}.eyebrow{font-size:12px;letter-spacing:.09em}.client-strip{display:block;padding-top:24px;padding-bottom:27px}.client-strip>span{display:block;font-size:11px;margin-bottom:24px}.client-strip>span br{display:none}.client-names{grid-template-columns:repeat(3,1fr);gap:23px 17px}.client-names span{font-size:15px}.intro-grid h2{font-size:37px}.intro-copy{display:block;margin-top:25px}.intro-copy p{font-size:17px}.intro-copy .text-link{margin-top:25px}.section-heading{align-items:start;gap:28px;flex-direction:column;margin-bottom:34px}.section-heading h2{font-size:43px;margin-top:18px}.section-heading>.text-link{font-size:14px}.work-grid{grid-template-columns:1fr;gap:38px}.project-card:nth-child(2n){margin:0}.project-image{aspect-ratio:1.3}.project-meta{flex-direction:row;gap:15px;font-size:12px}.project-card h3{font-size:29px}.card-arrow{height:50px;width:50px}.expertise-intro h2{font-size:43px}.expertise-intro p{font-size:17px}.expertise-row{gap:14px}.expertise-row h3{font-size:25px}.people-images{gap:12px}.people-images a:nth-child(2){margin-top:38px}.people-copy h2{font-size:39px}.people-images .person-caption{font-size:14px}.people-images .person-caption span{font-size:12px}.quality{display:block}.quality p{margin-top:12px}.cta h2{font-size:42px}.cta .round-link{width:55px;height:55px}.cta .arrow{width:23px;height:23px}.footer-top{gap:37px 25px;padding-bottom:45px}.footer h3{font-size:12px}.footer p,.footer a{font-size:14px}.footer-social{gap:20px}.footer-bottom p,.footer-bottom a{font-size:12px}.page-hero h1{font-size:54px;margin-top:30px}.page-intro{font-size:17px}.portfolio-grid{grid-template-columns:1fr;gap:40px}.portfolio-grid .project-image{aspect-ratio:1.35}.portfolio-grid .project-card h3{font-size:29px}.project-facts{grid-template-columns:1fr}.project-gallery{grid-template-columns:1fr;padding-bottom:60px}.project-detail{gap:38px}.article p,.article li{font-size:17px}.related-grid{grid-template-columns:1fr;gap:35px}.service-list{grid-template-columns:1fr}.jump-links{gap:8px;padding-bottom:45px}.jump-links a{font-size:13px;padding:10px 12px}.service-block{padding-top:42px;padding-bottom:42px}.sector{font-size:21px}.team-grid{gap:35px 17px}.person-card h2{font-size:22px}.person-card p{font-size:14px}.contact-aside{padding:28px}.contact-detail>a{font-size:clamp(22px,6vw,30px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal:not(.visible){opacity:1;transform:none}}

/* GE brand palette: supplied blue with the original neutral family. */
:root{--blue:#4e84c4;--blue-deep:#3569a5;--blue-light:#9abde8;--grey:#717171;--pale:#edf0f1}
.brand{width:255px}.brand img{width:100%;height:auto;max-height:none}.header{gap:24px}.nav{gap:clamp(16px,1.8vw,32px)}
.hero h1 span{color:var(--blue-light)}.button{color:#10151d}.button:hover{color:#10151d}.expertise-section .eyebrow,.expertise-row .index,.expertise-bottom .text-link{color:var(--blue-light)}.expertise-row:hover{color:var(--blue-light)}.mobile-nav p{color:var(--blue-light)}
.cta{color:#fff}.cta .round-link{border-color:#fff}.cta .round-link:hover{color:var(--ink)}
.footer{background:#edf0f1;color:var(--ink)}.footer-brand img{filter:none;max-width:270px}.footer .footer-brand p{color:var(--blue-deep)}.footer h3{color:#62666b}.footer a:hover{color:var(--blue-deep)}.footer-bottom{border-color:#cfd3d7}.footer-bottom p,.footer-bottom a{color:#62666b}
@media(max-width:1100px){.brand{width:220px}.nav{gap:16px}.nav>a{font-size:13px}}
@media(max-width:900px){.nav{display:none}.menu-toggle{display:flex}.header{height:85px}.mobile-nav{display:none;position:fixed;z-index:25;inset:85px 0 0;background:var(--dark);color:white;padding:40px var(--pad);overflow:auto}.mobile-nav.open{display:flex;flex-direction:column;gap:12px}.mobile-nav a{font-size:clamp(32px,7vw,50px);line-height:1.3;letter-spacing:-.04em;padding:13px 0;border-bottom:1px solid #ffffff30}.mobile-nav p{font-size:14px;line-height:1.5;margin-top:30px;color:var(--blue-light)}.hero{height:calc(100svh - 85px)}}
@media(max-width:520px){.brand{width:215px}}
/* New project records and the expanded team directory. */
.image-credit{font-size:12px;color:var(--muted);max-width:1920px;padding-top:12px;padding-bottom:0;line-height:1.6}.project-lettering{height:100%;padding:30px;display:flex;flex-direction:column;justify-content:space-between;background:#e0e8f2;color:var(--ink)}.project-lettering>span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-deep)}.project-lettering strong{font-weight:500;font-size:clamp(27px,2.4vw,38px);letter-spacing:-.04em;line-height:1.15;max-width:15ch;padding-bottom:35px}.person-type{padding:28px;min-height:340px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;background:var(--pale);border-top:3px solid var(--blue)}.person-type .eyebrow{color:var(--blue-deep);font-size:12px;margin-bottom:auto;padding-bottom:55px}.person-type h2{font-size:clamp(26px,2.3vw,36px);line-height:1.15;margin-top:0;overflow-wrap:anywhere}.person-type p{margin-top:16px;font-size:15px}.person-read{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;border-top:1px solid var(--line);padding-top:18px;margin-top:28px}.person-text-card:hover .person-type{background:#e3eaf4}.person-text-card article{cursor:default}.text-biography{display:block;max-width:1050px;margin:auto}.qualifications{font-size:16px;color:var(--blue-deep);margin:-20px 0 35px}.contain-image{height:auto;max-height:none;object-fit:contain}.project-image.contain-image-card{background:#edf0f1}.project-image.contain-image-card img{object-fit:contain}
/* Sports and leisure: a readable chronology rather than a raster slide. */
.sports-intro{padding-top:48px;padding-bottom:50px}.sports-heading{display:grid;grid-template-columns:1fr 1.4fr;gap:65px;align-items:center;padding-top:65px;padding-bottom:55px}.experience-number{font-size:clamp(140px,22vw,345px);font-weight:500;letter-spacing:-.095em;line-height:.85;color:var(--blue);display:flex;align-items:flex-start}.experience-number span{font-size:.33em;letter-spacing:0;margin:12px 0 0 8px;font-weight:400}.sports-heading h1{font-size:clamp(42px,4.8vw,76px);margin-top:24px;max-width:840px}.sports-heading p{font-size:18px;color:var(--muted);margin-top:28px;max-width:620px}.history-jumps{display:flex;gap:45px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px}.history-jumps .text-link{font-size:14px;border:0;gap:20px}.sports-feature{margin:0;position:relative;background:var(--dark);color:white}.sports-feature>img{height:clamp(330px,39vw,580px);width:100%;object-fit:cover}.sports-feature figcaption{padding:20px var(--pad);display:flex;justify-content:space-between;gap:30px;font-size:13px;background:var(--dark)}.sports-feature figcaption span:last-child{color:#ccd5e0}.history-chapter{display:grid;grid-template-columns:1fr 3.4fr;gap:60px;padding-top:95px;padding-bottom:95px;border-bottom:1px solid var(--line)}.chapter-marker{border-top:3px solid var(--blue);padding-top:23px}.year{display:block;font-size:clamp(48px,5vw,80px);line-height:1;font-weight:500;letter-spacing:-.06em;color:var(--blue)}.year-caption{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:20px;max-width:160px}.chapter-content>h2{font-size:clamp(36px,4vw,64px);margin-top:23px}.chapter-lead{color:var(--muted);font-size:18px;line-height:1.7;margin-top:28px;max-width:810px}.attribution-note{margin-top:24px;font-size:15px;color:var(--muted);line-height:1.6}.career-projects{display:grid;grid-template-columns:1fr 1fr;gap:0 38px;margin-top:38px}.career-project{border-top:1px solid var(--line);padding:20px 0}.career-project h3{font-size:22px;letter-spacing:-.025em;line-height:1.3}.career-project span{display:block;margin-top:6px;font-size:14px;color:var(--muted)}.practice-chapter{background:#f5f7f9}.history-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px;margin-bottom:42px}.history-project-grid .project-card:nth-child(n){margin:0}.history-project-grid .project-card h3{font-size:24px}.history-project-grid .project-image{aspect-ratio:1.15}.history-project-grid .project-meta{flex-direction:column;gap:4px}.history-project-grid .card-arrow{width:45px;height:45px}.practice-list{display:grid;grid-template-columns:1fr 1fr;column-gap:38px}.practice-record{border-top:1px solid var(--line);padding:23px 0;display:flex;justify-content:space-between;gap:25px}.practice-record h3{font-size:22px;line-height:1.25;letter-spacing:-.025em}.practice-record p{margin-top:8px;font-size:15px;color:var(--muted)}.practice-record>span{color:var(--blue-deep)}.practice-record:hover h3{color:var(--blue-deep)}.next-projects{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px}.next-project{border-top:2px solid var(--blue);padding-top:24px}.next-project h3{font-size:27px;line-height:1.2}.next-project p{font-size:16px;color:var(--muted);margin-top:18px;line-height:1.7}.next-project .text-link{font-size:14px;margin-top:16px}.experience-band{display:grid;grid-template-columns:1fr 1.65fr .9fr;gap:45px;align-items:center;padding-top:70px;padding-bottom:70px;background:#e9eff7}.band-number{font-size:clamp(70px,9vw,145px);line-height:1;color:var(--blue);letter-spacing:-.065em}.experience-band h2{font-size:clamp(30px,3.3vw,50px)}.experience-band p{font-size:15px;color:var(--muted);margin-top:15px}.experience-band>.text-link{justify-self:end;gap:20px;font-size:14px}.portfolio-note{display:flex;justify-content:space-between;gap:25px;align-items:center;border-top:1px solid var(--line);padding-top:20px;padding-bottom:32px;font-size:15px}.portfolio-note .text-link{font-size:14px}
@media(max-width:1100px){.sports-heading{grid-template-columns:1fr 1.5fr;gap:45px}.history-chapter{gap:40px;grid-template-columns:1fr 4fr}.history-project-grid{grid-template-columns:1fr 1fr}.history-project-grid .project-card:last-child{display:none}.history-project-grid .project-card h3{font-size:25px}.experience-band{grid-template-columns:1fr 2fr;gap:35px}.experience-band>.text-link{grid-column:2;justify-self:start}.person-type{padding:23px}}
@media(max-width:800px){.sports-heading{grid-template-columns:1fr;gap:35px;padding-top:50px}.experience-number{font-size:190px;max-width:400px}.sports-heading h1{font-size:54px}.history-jumps{gap:10px 25px}.sports-feature figcaption{display:block}.sports-feature figcaption span{display:block}.sports-feature figcaption span+span{margin-top:7px}.history-chapter{grid-template-columns:1fr;gap:35px;padding-top:65px;padding-bottom:65px}.chapter-marker{display:flex;align-items:end;gap:30px}.year{font-size:65px}.year-caption{margin-top:0;max-width:220px;padding-bottom:5px}.history-project-grid{grid-template-columns:1fr 1fr}.experience-band{grid-template-columns:1fr 2fr}.portfolio-note{display:block}.portfolio-note .text-link{margin-top:10px}}
@media(max-width:520px){.sports-intro{padding-top:32px;padding-bottom:35px}.sports-heading{padding-top:40px;padding-bottom:35px}.experience-number{font-size:160px}.sports-heading h1{font-size:42px}.sports-heading p{font-size:17px}.history-jumps{display:block}.history-jumps .text-link{display:flex;justify-content:space-between;max-width:330px}.chapter-content>h2{font-size:37px}.chapter-lead{font-size:17px}.career-projects,.practice-list,.next-projects{grid-template-columns:1fr}.career-project h3,.practice-record h3{font-size:22px}.history-project-grid{grid-template-columns:1fr;gap:30px}.history-project-grid .project-image{aspect-ratio:1.4}.history-project-grid .project-card:last-child{display:block}.next-projects{gap:34px}.experience-band{grid-template-columns:1fr;gap:23px;padding-top:45px;padding-bottom:45px}.experience-band>.text-link{grid-column:auto}.band-number{font-size:90px}.experience-band h2{font-size:35px}.person-type{padding:18px;min-height:310px}.person-type h2{font-size:25px}.person-type .eyebrow{font-size:11px;letter-spacing:.04em}.person-type p{font-size:14px}.person-read{font-size:13px}.project-lettering{padding:25px}.project-lettering strong{font-size:33px}.sports-feature>img{height:310px}}

/* Staff portraits and branded initials for colleagues without photographs. */
.person-card{min-width:0}
.person-card h2{overflow-wrap:anywhere;line-height:1.18}
.person-avatar{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:.78;background:#e4ecf6!important;color:var(--blue-deep);border-top:3px solid var(--blue)}
.person-avatar>span{font-size:clamp(48px,7vw,116px);font-weight:400;letter-spacing:-.055em;line-height:1}
.person-card .person-avatar .avatar-brand{position:absolute;bottom:22px;right:22px;width:25px;height:32px;aspect-ratio:auto;object-fit:contain;opacity:.42;transform:none;filter:none}
/* Images pair service descriptions with the places and systems behind them. */
.service-block{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(40px,6vw,100px)}
.service-figure{margin:30px 0 0}
.service-figure>img{aspect-ratio:4/3;object-fit:cover;background:var(--pale)}
.service-figure figcaption{font-size:14px;line-height:1.5;color:var(--muted);padding-top:13px}
.service-figure figcaption a{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.service-figure figcaption a:hover{color:var(--blue-deep)}
.service-figure figcaption .arrow{width:17px;height:17px;margin-top:2px}
.analysis-figure>img{object-fit:contain;background:#101416}
@media(max-width:800px){.service-block{grid-template-columns:1fr;gap:32px}.service-figure>img{aspect-ratio:16/9}.person-avatar>span{font-size:clamp(52px,12vw,100px)}}
@media(max-width:520px){.person-card .person-avatar .avatar-brand{width:20px;height:25px;bottom:14px;right:14px}.service-figure{margin-top:24px}.service-figure>img{aspect-ratio:4/3}}
/* Persistent navigation with a full-screen menu on every screen size. */
:root{--bar-height:88px;--header-height:calc(var(--bar-height) + env(safe-area-inset-top,0px));--motion-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-padding-top:calc(var(--header-height) + 24px);scrollbar-gutter:stable}
.wrap{padding-left:max(var(--pad),env(safe-area-inset-left,0px));padding-right:max(var(--pad),env(safe-area-inset-right,0px))}
.header{position:sticky;top:0;z-index:100;height:var(--header-height);padding-top:env(safe-area-inset-top,0px);padding-left:max(var(--pad),env(safe-area-inset-left,0px));padding-right:max(var(--pad),env(safe-area-inset-right,0px));background:#fff;transition:box-shadow .25s,border-color .25s}
.header.is-scrolled{box-shadow:0 5px 22px #181c2212;border-bottom-color:#c9d0d8}
.brand{width:210px}.nav{margin-left:auto;gap:clamp(15px,1.6vw,30px)}.nav .nav-contact{margin-left:0;padding:10px 13px;gap:15px}
.menu-toggle{display:flex;min-width:90px;min-height:48px;justify-content:flex-end;padding:10px 0;flex-shrink:0}
.menu-lines{position:relative;width:25px;height:20px;border:0;transform:none}
.menu-lines:before,.menu-lines:after{content:'';position:absolute;left:0;width:25px;height:2px;background:currentColor;transition:transform .28s var(--motion-ease),top .28s var(--motion-ease)}
.menu-lines:before{top:6px}.menu-lines:after{top:13px}
.menu-toggle[aria-expanded=true] .menu-lines:before{top:9px;transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-lines:after{top:9px;transform:rotate(-45deg)}
.mobile-nav,.mobile-nav.open{display:flex;position:fixed;inset:var(--header-height) 0 auto;z-index:90;height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));flex-direction:column;gap:0;padding:clamp(22px,4vh,45px) max(var(--pad),env(safe-area-inset-right,0px)) max(30px,env(safe-area-inset-bottom,0px)) max(var(--pad),env(safe-area-inset-left,0px));background:var(--dark);color:white;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;visibility:hidden;opacity:0;transform:translateY(-14px);pointer-events:none;transition:opacity .3s,transform .42s var(--motion-ease),visibility 0s .42s}
.mobile-nav.open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
.mobile-nav a{display:flex;align-items:center;font-size:clamp(28px,5.2vh,62px);font-size:clamp(28px,5.2dvh,62px);line-height:1.16;letter-spacing:-.04em;padding:clamp(12px,2vh,22px) 0;border-bottom:1px solid #ffffff30;min-height:48px;max-width:1000px;transform:translateY(14px);opacity:0;transition:transform .45s var(--motion-ease),opacity .35s}
.mobile-nav.open a{transform:none;opacity:1;transition-delay:calc(var(--menu-order,0) * 40ms + 80ms)}
.mobile-nav a:nth-child(2){--menu-order:1}.mobile-nav a:nth-child(3){--menu-order:2}.mobile-nav a:nth-child(4){--menu-order:3}.mobile-nav a:nth-child(5){--menu-order:4}.mobile-nav a:nth-child(6){--menu-order:5}
.mobile-nav a[aria-current=page]{color:var(--blue-light)}
.mobile-nav p{font-size:14px;line-height:1.5;color:var(--blue-light);padding-top:30px;margin-top:auto;flex-shrink:0}
body.menu-open{position:fixed;left:0;right:0;width:auto;overflow:hidden}
body.menu-open .header{position:fixed;inset:0 0 auto}
body.menu-open main,body.menu-open .footer{pointer-events:none}
html.restoring-scroll{scroll-behavior:auto!important}
.hero{height:calc(100svh - var(--header-height))}
.hero-photo{inset:-5% 0;width:100%;height:110%;animation:none;transform:translate3d(0,var(--hero-shift,0px),0) scale(1.015)}
/* Staged headings and scroll reveals, inspired by the reference's pacing. */
.motion-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.motion-line>span{display:block;transition:transform .95s var(--motion-ease);transition-delay:var(--line-delay,0ms)}
.reveal{transition:opacity .8s ease,transform .95s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
.js-motion .reveal:not(.visible){transform:translateY(30px)}
.js-motion .line-reveal.reveal{opacity:1;transform:none}
.js-motion .line-reveal:not(.visible) .motion-line>span{transform:translateY(112%)}
.js-motion .line-reveal.visible .motion-line>span{transform:none}
.js-motion .reveal:focus-within{opacity:1;transform:none;transition:none}
.service-figure{overflow:hidden}.service-figure>img{transition:transform 1.1s var(--motion-ease)}
.project-card img{transition:transform 1s var(--motion-ease)}
@media(hover:hover) and (pointer:fine){.project-card:hover img{transform:scale(1.035)}.service-figure:has(a:hover)>img{transform:scale(1.025)}.mobile-nav a:hover{color:var(--blue-light)}}
@media(max-width:1100px){:root{--bar-height:76px}.nav{display:none}.brand{width:210px}.header{gap:20px}.hero{height:calc(100svh - var(--header-height))}}
@media(max-width:520px){.brand{width:clamp(175px,49vw,215px)}.header{gap:12px}.menu-toggle{min-width:70px;gap:10px}.mobile-nav a{font-size:clamp(28px,7vw,40px)}.hero h1{font-size:clamp(43px,10vw,62px)}.hero-copy{max-width:100%}}
@media(hover:none){.project-card:hover img,.person-card:hover img{transform:none}.person-card:hover img{filter:grayscale(1)}.hero-photo{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-photo{transform:none}.reveal,.motion-line>span,.mobile-nav,.mobile-nav a,.menu-lines:before,.menu-lines:after,.header,.project-card img,.service-figure>img,.arrow{animation:none!important;transition:none!important}.js-motion .reveal:not(.visible),.js-motion .line-reveal:not(.visible) .motion-line>span{opacity:1;transform:none}}
/* The sector directory leads to relevant project experience. */
a.sector{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;min-height:76px;transition:color .2s,border-color .2s}a.sector .arrow{width:20px;height:20px;margin-top:4px}a.sector:hover,a.sector:focus-visible{color:var(--blue-deep);border-top-color:var(--blue)}a.sector:hover .arrow{transform:translate(3px,-3px)}
.sector-experience{padding-bottom:90px}.sector-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 40px}.sector-projects .project-card:nth-child(n){margin:0}.sector-projects.single-project{grid-template-columns:minmax(0,1100px)}.sector-history{padding-bottom:70px}
@media(max-width:800px){.sector-projects{gap:40px 25px}}
@media(max-width:520px){.sector-projects{grid-template-columns:1fr}.sector-experience{padding-bottom:60px}a.sector{gap:12px}}

.hero h1 .motion-line{color:white}.hero h1 .motion-line:last-child{color:var(--blue-light)}.hero h1 .motion-line>span{color:inherit}
/* Detailed flagship case studies: scope, engineering decisions and benefits. */
.case-label{margin:35px 0 22px;color:var(--blue-deep)}.case-hero h1{max-width:1200px}.case-hero .page-intro{max-width:860px}.case-cover{margin:0}.case-highlights{padding-top:40px;padding-bottom:42px;background:#edf2f8}.case-highlights>.eyebrow{font-size:13px;color:var(--blue-deep)}.case-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin:28px 0 0}.case-metrics>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;border-top:1px solid #c9d5e4;padding-top:22px;gap:13px}.case-metrics dd{margin:0;color:var(--blue-deep);font-size:clamp(38px,4.3vw,70px);line-height:1.05;letter-spacing:-.05em;font-weight:500}.case-metrics dt{font-size:16px;line-height:1.5;color:var(--muted)}.case-jumps{display:flex;gap:40px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.case-jumps .text-link{font-size:14px;border:0;gap:18px}.case-introduction .article h2{font-size:clamp(30px,3vw,44px);margin:44px 0 20px}.case-introduction .article .case-lead{font-size:clamp(22px,2vw,29px);line-height:1.5;color:var(--ink);letter-spacing:-.025em}.case-disciplines{margin-top:42px}.case-disciplines h2{font-size:17px;letter-spacing:0;margin-bottom:14px}.case-disciplines .text-link{display:flex;justify-content:space-between;font-size:14px;gap:15px;max-width:310px}.case-response{background:#f5f7f9}.case-response>h2{font-size:clamp(34px,4vw,62px);margin-top:25px;max-width:800px}.case-response-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;margin-top:50px}.case-response-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.case-response-item{border-top:2px solid var(--blue);padding-top:22px}.case-index{display:block;font-size:14px;color:var(--blue-deep);margin-bottom:24px}.case-response-item h3{font-size:clamp(25px,2.5vw,35px);line-height:1.15;max-width:22ch}.case-response-item p{font-size:17px;line-height:1.7;color:var(--muted);margin-top:24px}.case-system{margin:50px 0 0;background:white;padding:clamp(24px,4vw,50px)}.case-system h3{font-size:26px}.system-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;list-style:none;padding:0;margin:30px 0}.system-flow li{position:relative;display:flex;align-items:center;min-height:110px;background:#e4ecf6;padding:22px;font-size:18px;line-height:1.45}.system-flow li+li:before{content:'→';position:absolute;left:-30px;color:var(--blue-deep);font-size:25px}.case-system figcaption,.case-benefits figcaption{font-size:14px;line-height:1.6;color:var(--muted)}.case-benefits{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:65px;align-items:start}.case-benefits figure{margin:0}.case-benefits figure>img{height:auto;width:100%}.case-benefits figcaption{padding-top:14px}.case-benefits h2{font-size:clamp(32px,3.3vw,52px);margin:25px 0 30px}.case-benefits ul{list-style:none;padding:0;margin:0}.case-benefits li{border-top:1px solid var(--line);padding:18px 0;font-size:17px;line-height:1.65}.case-status{font-size:14px;line-height:1.6;color:var(--muted);margin-top:24px}.case-discuss{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:center;gap:60px;background:var(--blue);color:white;padding-top:65px;padding-bottom:65px}.case-discuss h2{font-size:clamp(34px,4vw,62px);margin-top:25px;max-width:900px}.case-discuss p{font-size:17px;margin-top:25px}.case-discuss>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.case-discuss a{font-size:16px}.case-discuss .eyebrow{color:white}
@media(max-width:1000px){.case-benefits{gap:35px}.case-response-grid.three-columns{grid-template-columns:1fr}.case-response-item h3{max-width:none}.case-response-item p{max-width:70ch}.case-metrics{gap:25px}}
@media(max-width:800px){.case-benefits,.case-discuss{grid-template-columns:1fr;gap:35px}.case-response-grid{grid-template-columns:1fr;gap:35px}.case-metrics dd{font-size:40px}.case-metrics dt{font-size:15px}.case-jumps{gap:10px 25px}.system-flow{grid-template-columns:1fr;gap:35px}.system-flow li{min-height:80px}.system-flow li+li:before{content:'↓';top:-34px;left:calc(50% - 8px)}.case-discuss{padding-top:45px;padding-bottom:45px}}
@media(max-width:520px){.case-metrics{grid-template-columns:1fr;gap:22px}.case-metrics>div{gap:8px;padding-top:18px}.case-metrics dd{font-size:46px}.case-highlights{padding-top:30px;padding-bottom:32px}.case-jumps{display:block}.case-jumps a{display:flex;justify-content:space-between}.case-label{margin-top:25px}.case-response-grid{margin-top:35px}}

/* End-of-sector navigation stays in the reading flow on every device. */
.sector-return{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:28px;padding-bottom:40px;border-top:1px solid var(--line)}.sector-return .text-link{min-height:48px;font-size:16px;gap:28px}.sector-return .sector-back .arrow{transform:rotate(-135deg)}
@media(max-width:600px){.sector-return{flex-direction:column;align-items:stretch;gap:12px;padding-top:24px;padding-bottom:32px}.sector-return .text-link{justify-content:space-between;padding:14px 0}}
.innovation-intro{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding-bottom:64px;align-items:start}.innovation-intro figure{margin:0}.innovation-intro img{width:100%;height:auto;display:block}.innovation-intro figcaption{font-size:14px;line-height:1.6;color:var(--muted);margin-top:12px}.innovation-method,.innovation-promo{padding-top:48px;padding-bottom:56px;border-top:1px solid var(--line)}.innovation-method h2,.innovation-promo h2{font-size:clamp(28px,3vw,40px);margin-bottom:24px}.innovation-promo p{font-size:18px;line-height:1.6;max-width:720px;margin-bottom:24px}.innovation-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.innovation-steps h3{font-size:22px;margin-bottom:12px}.innovation-steps p{font-size:16px;line-height:1.7;max-width:540px}@media(max-width:760px){.innovation-intro,.innovation-steps{grid-template-columns:1fr;gap:28px}.innovation-intro{padding-bottom:40px}}

/* Preserve the full proportions of supplied project imagery. */
.project-gallery--supplied{align-items:start;gap:36px}.project-gallery--supplied figure{margin:0}.project-gallery--supplied img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}.project-gallery--supplied .project-gallery-portrait{max-width:480px;justify-self:center;width:100%}

/* Per-person framing applies only to the People directory. */
.team-grid .person-card .portrait{position:relative;aspect-ratio:.78}.team-grid .person-card .portrait>img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;transform-origin:center top;transform:translateY(var(--portrait-shift-y,0%)) scale(var(--portrait-scale,1))}

/* Match the soft blue-charcoal tone already baked into older portraits. */
.team-grid .portrait--tone-match::after{content:"";position:absolute;inset:0;background:rgb(29 40 63 / var(--portrait-mask-opacity));filter:grayscale(1);pointer-events:none}
.team-grid .person-card:hover .portrait--tone-match::after{filter:grayscale(0)}

/* Feedback review: brighter directors without changing their crop or source. */
img[src="/assets/person-russel-evans.webp"]{filter:grayscale(1) brightness(1.22)!important}
img[src="/assets/person-david-griffiths.webp"]{filter:grayscale(1) brightness(1.14)!important}
.person-card:hover img[src="/assets/person-russel-evans.webp"]{filter:grayscale(0) brightness(1.22)!important}
.person-card:hover img[src="/assets/person-david-griffiths.webp"]{filter:grayscale(0) brightness(1.14)!important}
.team-grid .person-card[href="/team/samuel-travis-cavell"] .portrait--tone-match::after{filter:grayscale(1)}
.recruitment-portrait{display:grid;place-items:center;border:1px solid var(--line);background:#f5f7f8!important}
.recruitment-portrait span{font-size:clamp(64px,8vw,120px);font-weight:200;color:var(--accent);line-height:1}
.recruitment-card:hover .recruitment-portrait{background:var(--pale)!important}
@media(hover:none){.person-card:hover img[src="/assets/person-russel-evans.webp"]{filter:grayscale(1) brightness(1.22)!important}.person-card:hover img[src="/assets/person-david-griffiths.webp"]{filter:grayscale(1) brightness(1.14)!important}}

.recognition-section{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:clamp(32px,6vw,90px);align-items:center;border-bottom:1px solid var(--line)}
.recognition-section img{width:100%;height:auto;max-width:220px;object-fit:contain}
.recognition-section h2{font-size:clamp(30px,3.5vw,54px);margin:22px 0}
.recognition-section p{color:var(--muted);font-size:18px}
@media(max-width:600px){.recognition-section{grid-template-columns:1fr}.recognition-section img{max-width:160px}}

/* Supplied Malini portrait: retain the existing profile crop and charcoal treatment. */
.person-intro .portrait--malini-retouched{position:relative;overflow:hidden}.person-intro .portrait--malini-retouched img{width:100%;aspect-ratio:630/750;object-fit:cover;object-position:center}.person-intro .portrait--malini-retouched::after{content:"";position:absolute;inset:0;background:rgb(29 40 63 / .38);filter:grayscale(1);pointer-events:none}

/* Updated Russ portrait: retain grayscale, colour hover and the lighter director treatment. */
.portrait--russ-retouched{position:relative;overflow:hidden}.portrait--russ-retouched::after{content:"";position:absolute;inset:0;background:rgb(29 40 63 / .28);filter:grayscale(1);pointer-events:none}.person-intro .portrait--russ-retouched img{width:100%;aspect-ratio:630/750;object-fit:cover;object-position:center}

/* Approved approximate colourisation: preserve Sam's original monochrome resting image. */
.team-grid .person-card[href="/team/samuel-travis-cavell"] .portrait>.portrait-hover-colour{position:absolute;inset:0;opacity:0;filter:none;transition:opacity .35s ease;pointer-events:none}
.team-grid .person-card[href="/team/samuel-travis-cavell"]:focus-visible .portrait>.portrait-hover-colour{opacity:1}
@media(hover:hover) and (pointer:fine){.team-grid .person-card[href="/team/samuel-travis-cavell"]:hover .portrait>.portrait-hover-colour{opacity:1}}
@media(prefers-reduced-motion:reduce){.team-grid .person-card[href="/team/samuel-travis-cavell"] .portrait>.portrait-hover-colour{transition:none}}

/* Bound portrait frames to their layout, independently of source pixel dimensions. */
.people-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.people-section>*{min-width:0}
.people-images{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0}
.people-images>a{min-width:0}
.people-images .director-portrait{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden}
.people-images .director-portrait>img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.person-intro{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)}
.person-intro>*{min-width:0}
.person-intro .portrait--russ-retouched{width:100%;max-width:588px;aspect-ratio:3/4}
.person-intro .portrait--russ-retouched>img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover}
img[src="/assets/person-russel-evans-20261006.webp"]{object-position:50% 0%;filter:grayscale(1)}
.team-grid .person-card[href="/team/russel-evans"]:focus-visible img{filter:grayscale(0)}
@media(hover:hover) and (pointer:fine){.team-grid .person-card[href="/team/russel-evans"]:hover img{filter:grayscale(0)}}
@media(max-width:800px){.people-section,.person-intro{grid-template-columns:minmax(0,1fr)}.person-intro .portrait--russ-retouched{max-width:470px}}

/* Homepage credentials: recognition shown in greyscale; lapsed certification remains explicit. */
.quality-credentials{display:block;padding-top:32px;padding-bottom:38px}
.quality-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}
.quality-heading .text-link{font-size:14px}
.credential-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:32px;align-items:center}
.credential-item{min-width:0}
.credential-item h3{font-size:20px;line-height:1.25;font-weight:500;letter-spacing:-.025em}
.credential-item p{font-size:14px;line-height:1.55;margin-top:8px}
.credential-item .credential-status{display:inline-block;border:1px solid var(--line);padding:4px 9px;font-size:14px;font-weight:500;color:var(--ink);margin-top:10px}
.credential-recognition{display:flex;align-items:center;gap:22px}
.credential-recognition .credential-badge{display:block;width:88px;height:auto;max-width:88px;flex:none;object-fit:contain;filter:grayscale(1)}
@media(max-width:800px){.credential-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.credential-recognition{grid-column:1/-1;border-top:1px solid var(--line);padding-top:26px}}
@media(max-width:520px){.quality-heading{align-items:flex-start;flex-direction:column;gap:16px}.credential-row{grid-template-columns:1fr;gap:24px}.credential-item+.credential-item{border-top:1px solid var(--line);padding-top:24px}.credential-recognition{grid-column:auto}.credential-recognition .credential-badge{width:76px;max-width:76px}}

/* Home director portraits use their own relative framing against David's unzoomed portrait. */
.people-images .portrait--russ-retouched>img{transform-origin:center top;transform:translateY(-1.3%) scale(1.1)}
.sports-feature>img[src="/assets/aviva-arena-exterior-1337.webp"]{object-position:62% 52%}
@media(max-width:520px){.sports-feature figcaption{flex-direction:column;gap:8px}}

/* Pinned homepage feature: retain Aviva's sign and entrance through responsive crops. */
.hero-photo[src="/assets/aviva-arena-exterior-1337.webp"]{object-position:62% 52%}
@media(max-width:520px){.hero-photo[src="/assets/aviva-arena-exterior-1337.webp"]{object-position:66.5% 52%}}

/* Source links supporting the practice's publicly credited project appointments. */
.project-credits{margin-top:36px;padding-top:26px;border-top:1px solid var(--line)}
.project-credits h3{font-size:21px;margin:0 0 18px}
.project-credits ul{list-style:none;padding:0;margin:0}
.project-credits li+li{margin-top:20px}
.project-credits a{font-size:17px;text-decoration:underline;text-underline-offset:4px;line-height:1.6}
.project-credits li p{font-size:14px;color:var(--muted);margin:7px 0 0;line-height:1.6}

.expertise-project-links{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:26px}.expertise-project-links .text-link{font-size:15px;line-height:1.6}
img[src="/assets/cricket-shield-1800.webp"],img[src="/assets/cricket-shield-900.webp"]{object-position:50% 48%}

/* A single blue-grey resting treatment, with the untouched colour pixels on interaction. */
:root{--photo-rest-filter:grayscale(1) sepia(.18) hue-rotate(170deg) saturate(.75) brightness(.86)}
:root img.photo-image{filter:var(--photo-rest-filter)!important;transition:filter .3s ease}
.photo-interaction:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.photo-interaction .portrait::after,.photo-interaction .director-portrait::after,.photo-interaction.portrait::after{opacity:0!important;pointer-events:none}
.portrait{position:relative;overflow:hidden}
.portrait>.portrait-hover-colour{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity .3s ease}
:root .photo-interaction:focus-within img.photo-image,:root img.photo-image.photo-interaction:focus-visible{filter:none!important}
.photo-interaction:focus-within .portrait-hover-colour{opacity:1!important}
@media(hover:hover) and (pointer:fine){:root .photo-interaction:hover img.photo-image,:root img.photo-image.photo-interaction:hover{filter:none!important}.photo-interaction:hover .portrait-hover-colour{opacity:1!important}}
@media(hover:none),(pointer:coarse){:root img.photo-image{filter:none!important}.photo-interaction .portrait-hover-colour{opacity:1!important}}
@media(prefers-reduced-motion:reduce){:root img.photo-image,.portrait>.portrait-hover-colour{transition:none!important}}

/* Compact review credentials on one desktop strip, with the review qualification separate. */
.quality-strip{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(125px,.85fr) minmax(125px,.85fr) minmax(245px,1.55fr) auto;gap:24px;align-items:center}
.quality-strip>strong{font-size:17px;line-height:1.4}
.quality-strip .credential-item h3{font-size:16px;line-height:1.35}
.quality-strip .credential-item p{font-size:14px;line-height:1.45;margin-top:5px}
.quality-strip .credential-recognition{gap:14px}
.quality-strip .credential-badge{width:60px;max-width:60px}
.quality-strip>.text-link{font-size:14px;white-space:nowrap}
.quality-credentials .credential-review-note{font-size:13px;line-height:1.5;margin-top:17px;color:var(--muted)}
@media(max-width:1100px){.quality-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.quality-strip>strong{grid-column:1/-1}.quality-strip .credential-recognition{grid-column:auto;padding:0;border:0}.quality-strip>.text-link{justify-self:start}}
@media(max-width:520px){.quality-strip{grid-template-columns:minmax(0,1fr)}.quality-strip .credential-item+.credential-item{padding-top:0;border-top:0}}
.hero:before{pointer-events:none}

/* Approved engineering models retain colour coding and a readable, uncropped landscape panel. */
.service-block--model>.service-figure{grid-column:1/-1;width:100%;max-width:none;margin-top:24px}
.service-block--model>.service-figure img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain;background:#fff}

/* Professional institutions are original brand artwork, separate from company certification. */
.quality-with-institutions{grid-template-columns:minmax(150px,.65fr) minmax(0,2.65fr);gap:50px}
.quality-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:48px;align-items:start}
.quality-detail-layout h2{font-size:clamp(32px,3.2vw,56px)}
.professional-institutions{padding-left:24px;border-left:1px solid var(--line)}
.professional-institutions h3{font-size:15px;line-height:1.5;font-weight:500}
.institutions-caption,.institution-review-note{font-size:13px;line-height:1.6;color:var(--muted);margin-top:10px}
.institution-marks{display:flex;flex-direction:column;align-items:center;gap:38px;margin:30px 0}
.institution-marks .institution-logo{display:block;width:100%;height:auto;max-width:220px;object-fit:contain;filter:none;opacity:1}
@media(max-width:1100px){.quality-with-institutions{grid-template-columns:1fr;gap:30px}}
@media(max-width:760px){.quality-detail-layout{grid-template-columns:1fr;gap:34px}.professional-institutions{padding-left:0;padding-top:24px;border-left:0;border-top:1px solid var(--line);max-width:330px}.institution-marks{align-items:flex-start;gap:28px}}

.service-model-pair{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.service-model-pair .service-figure{width:100%;max-width:none;margin-top:24px}
.service-model-pair .service-figure img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
@media(max-width:760px){.service-model-pair{grid-template-columns:minmax(0,1fr);gap:6px}}

/* Clearly distinguish each venue's role and project phase in the combined lighting case. */
.floodlighting-venue{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.floodlighting-venue h3{margin-top:0}
.article .floodlighting-phase{font-size:14px;line-height:1.5;color:var(--muted);margin:10px 0 16px}
.article .floodlighting-note{font-size:14px;line-height:1.65;color:var(--muted);margin-top:30px}

/* Homepage photography stays naturally colourful, without a hover requirement. */
:root .page-home img.photo-image{filter:none!important}
.page-home .director-portrait::after{opacity:0!important;pointer-events:none}
.page-home .hero:before{background:linear-gradient(90deg,rgba(12,12,12,.84),rgba(12,12,12,.45) 52%,rgba(12,12,12,.08)),linear-gradient(0deg,rgba(12,12,12,.72),transparent 40%)}

/* Projects index: match the existing website's translucent navy wash over real colour. */
:root .portfolio-grid img.photo-image{filter:none!important}
.portfolio-grid .project-image:has(img.photo-image)::after{content:"";position:absolute;inset:0;z-index:1;background:rgb(20 59 89 / .44);opacity:1;pointer-events:none;transition:opacity .3s ease}
.portfolio-grid .card-arrow{z-index:2}
.portfolio-grid .project-card:focus-within .project-image::after{opacity:0}
@media(hover:hover) and (pointer:fine){.portfolio-grid .project-card:hover .project-image::after{opacity:0}}
@media(hover:none),(pointer:coarse){.portfolio-grid .project-image:has(img.photo-image)::after{opacity:0}}
@media(prefers-reduced-motion:reduce){.portfolio-grid .project-image:has(img.photo-image)::after{transition:none}}

/* Within a case study the photography is always full colour, including galleries. */
:root .page-project img.photo-image{filter:none!important}
.project-hero-img--natural{height:auto;max-height:none;object-fit:contain}
.portfolio-grid img[src="/assets/bbc-earth-experience-exterior-1000.webp"]{object-position:45% 50%}

/* User-requested monochrome-grey institution display; source artwork stays unchanged. */
.institution-marks .institution-logo{filter:grayscale(1);opacity:.68}
.project-gallery--single{grid-template-columns:minmax(0,1fr)}
.project-gallery--single figure{max-width:1200px;width:100%;justify-self:center}
@media(max-width:900px){.page-home .hero-photo[src="/assets/hero-wembley-colour-20261006.webp"]{object-position:72% 50%}}

/* Match Russel’s homepage portrait to David’s softer, muted colour treatment. */
:root .page-home .people-images .director-portrait.portrait--russ-retouched>img.photo-image{filter:saturate(.5) brightness(1.13) contrast(.9)!important}

/* Keep every sports showcase card visible at tablet widths. */
.history-project-grid .project-card:last-child{display:block}

/* Supplied theatrical-effects photograph in the cooling research section. */
.innovation-study-image{grid-column:1/-1;width:100%;margin:0}
.innovation-study-image img{display:block;width:100%;height:auto}
:root .innovation-study-image img.photo-image{filter:none!important}

/* Portrait treatment: shared homepage veil, colour reveal for People cards. */
:root .page-home .people-images .director-portrait>img.photo-image{filter:grayscale(1) brightness(.98) contrast(.94)!important;transition:filter .3s ease}
:root .page-home .people-images .director-portrait::after{content:"";position:absolute;inset:0;background:rgba(20,59,89,.24);opacity:1!important;pointer-events:none}
:root .team-grid .person-card .portrait.portrait-photo>img.photo-image{filter:grayscale(1)!important;transition:filter .3s ease}
:root .team-grid .person-card .portrait.portrait-photo::after{content:"";position:absolute;inset:0;background:rgba(20,59,89,.24);opacity:1!important;filter:none;pointer-events:none;transition:opacity .3s ease}
:root .team-grid .person-card .portrait.portrait-photo>.portrait-hover-colour{opacity:0!important}
:root .team-grid .person-card:hover .portrait.portrait-photo>img.photo-image,
:root .team-grid .person-card:focus-within .portrait.portrait-photo>img.photo-image{filter:none!important}
:root .team-grid .person-card:hover .portrait.portrait-photo::after,
:root .team-grid .person-card:focus-within .portrait.portrait-photo::after{opacity:0!important}
:root .team-grid .person-card:hover .portrait.portrait-photo>.portrait-hover-colour,
:root .team-grid .person-card:focus-within .portrait.portrait-photo>.portrait-hover-colour{opacity:1!important}
@media(prefers-reduced-motion:reduce){:root .team-grid .person-card .portrait.portrait-photo::after,:root .team-grid .person-card .portrait.portrait-photo>img.photo-image{transition:none}}

/* Balance the two differently lit source portraits under one homepage treatment. */
:root .page-home .people-images .director-portrait>img.photo-image{filter:grayscale(1) brightness(.98) contrast(.9)!important}
:root .page-home .people-images .director-portrait.portrait--russ-retouched>img.photo-image{filter:grayscale(1) brightness(1.18) contrast(.78)!important;transform:none;object-position:center top}
:root .page-home .people-images .director-portrait::after{background:rgba(20,59,89,.32);opacity:1!important}

/* Neutralise inherited filtering on the tint itself, so both director overlays stay blue. */
:root .page-home .people-images .director-portrait::after{filter:none!important;mix-blend-mode:normal!important;background:rgba(20,59,89,.32)!important;opacity:1!important}

.recognition-section .recognition-link{margin-top:22px}

/* Source-specific crop windows keep crown-to-chin size consistent at every breakpoint. */
:root .team-grid .person-card .portrait-normalized,:root .people-images .director-portrait.portrait-normalized,:root .person-intro .portrait-normalized{position:relative;aspect-ratio:3/4;overflow:hidden;background:#e3e6e8}
:root .team-grid .person-card .portrait-normalized>img,:root .page-home .people-images .director-portrait.portrait-normalized>img,:root .person-intro .portrait-normalized>img{position:absolute;width:var(--portrait-width)!important;height:auto!important;max-width:none;max-height:none;left:var(--portrait-left);top:var(--portrait-top);aspect-ratio:auto;transform:none!important;object-fit:initial;object-position:initial}
