/* Brand finishing: the same spacing, image and action grammar across every route. */
:root{--pink:#f2a8cf;--link-pink:#493bd0;--content-gutter:var(--page-gutter,5.1vw)}
body{font-size:17px}
.lead,.intro .lead,.immersive .page-intro .lead{font-size:21px;line-height:1.5}
.story-copy p,.team-section p,.section-head>p,.contact-grid p,.three-cols p,.principle p{font-size:18px;line-height:1.55}
.editorial p,.case-story article p,.editorial li,.service-practice .three-cols p{font-size:18px;line-height:1.65}
.button.action-primary,.textlink.action-primary,.cta .button.action-primary,.contact-grid .button.action-primary{background:#19171d;color:#fff;border-color:transparent;box-shadow:none}
.action-primary:hover,.cta .button.action-primary:hover{background:#333038;color:#fff;filter:none;transform:none}
.hero-action,.hero-action .textlink.action-secondary{width:fit-content;max-width:100%}
.hero-action .textlink.action-secondary{background:transparent;color:#fff;border:1px solid #ffffffc0;border-radius:8px;min-height:48px;padding:13px 20px;gap:24px;font-size:17px;justify-content:space-between}
.hero-action .textlink.action-secondary:hover{background:#ffffff12}
.collection-kicker>a,.news-read,.textlink.action-tertiary{color:var(--link-pink);text-decoration:none;display:inline-flex;align-items:center;gap:9px;min-height:44px}
.collection-kicker>a .arrow-icon,.news-read .arrow-icon{width:18px;height:18px;flex:none}
.collection-kicker>a:hover,.textlink.action-tertiary:hover,.news-card a:hover .news-read{color:#30269b;text-decoration:none}
.collection-kicker>a:hover svg,.textlink.action-tertiary:hover svg{transform:translate(2px,-2px)}
.story-reading .textlink{border:0;font-size:16px}
.method-section.section{width:100%;margin:32px 0 64px;padding:80px var(--content-gutter);border-radius:0;background:#ebe6df}
.method-section .method-graph{margin:0}
.method-section .section-head{gap:40px}
.home .story-grid.people-only{display:block}
.people-only .people-story{display:grid;grid-template-columns:1.1fr 1fr}
.people-only .people-figure{margin:0;height:100%}.people-only .people-photo{height:100%;min-height:480px;aspect-ratio:auto}
.technology-story.technology-chapter{width:100%;margin:0;border-radius:0;padding:85px var(--content-gutter);display:block}
.technology-chapter .story-copy{padding:0;max-width:none;display:grid;grid-template-columns:1.05fr 1fr;column-gap:9%;align-items:start}
.technology-kicker{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 30px}
.technology-kicker .eyebrow{margin:0}.technology-chapter h3{grid-column:1;grid-row:2/6;margin:0;font-size:clamp(60px,6vw,90px)}
.technology-chapter .story-copy>p,.technology-chapter .story-copy>a{grid-column:2}
.technology-chapter .story-copy>a{margin-top:8px;color:#fff;background:transparent;border:1px solid #ffffffa0;font-size:16px;min-height:46px;max-width:100%}
.small-motion,.footer .footer-motion.small-motion{position:static;inset:auto;border:0;background:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;color:inherit;line-height:1;font-size:20px;text-decoration:none;flex:none;cursor:pointer}
.footer .footer-motion.small-motion{margin-top:24px;align-self:flex-start;color:#f2a8cf}
.footer-motion.small-motion[hidden]{display:none}
.technology-chapter .ambient-toggle{color:var(--pink)}
.home .story-reading.section{padding:35px var(--content-gutter) 55px;margin:0}
.footer.section,.home .footer{padding-top:100px}
.news.section{padding-left:var(--content-gutter);padding-right:var(--content-gutter)}
.news-heading.collection-heading{margin-left:0;margin-right:0;width:100%}
.news-image,.news-card:not(:first-child) .news-image{border-radius:3px}
.news-copy,.news-card:not(:first-child) .news-copy{padding-left:0;padding-right:0}
.news-read{font-size:16px}
/* Full-height case art, authentic marks on the image rather than separate rails. */
.source-case .case-image.source-image{position:relative;display:block;padding:0;isolation:isolate;background:#100624}
.source-case .source-image .case-art{display:block;height:100%;width:100%;object-fit:cover;filter:none}
.source-case .client-strip{position:absolute;z-index:2;top:0;left:0;right:0;background:transparent;padding:25px 28px;height:100px;color:white;mix-blend-mode:normal}
.source-case .client-strip img{height:auto;max-height:55px;max-width:180px;object-fit:contain;filter:brightness(0) invert(1);mix-blend-mode:normal}
.source-image:not(.concept-art):after{content:'';position:absolute;inset:0 0 auto;height:155px;background:linear-gradient(#1006249c,transparent);z-index:1;pointer-events:none}
.source-visual{display:block}.source-visual .interior-image{height:100%;width:100%;object-fit:cover}
.source-visual .hero-client{position:absolute;top:100px;left:var(--content-gutter);bottom:auto;height:85px;width:auto;max-width:250px;background:transparent;padding:10px 0;z-index:2;color:white}
.source-visual .hero-client img{filter:brightness(0) invert(1);mix-blend-mode:normal;max-width:200px;max-height:65px}
.source-visual:not(.concept-visual):after{height:220px;background:linear-gradient(#100624b3,transparent)}
/* The complete original artwork replaces the sparse wide video poster on interiors. */
.organic-visual .interior-image{object-position:var(--art-position,50% 50%);transform:scale(var(--art-scale,1.2)) rotate(var(--art-turn,0deg));object-fit:cover;width:100%;height:100%}
.organic-visual:before{background:linear-gradient(0deg,#100624ad,transparent 75%)}
.organic-visual:after{height:130px;background:linear-gradient(#10062470,transparent)}
.immersive .page-intro{padding-top:40px;padding-bottom:36px}
.immersive .page-intro+.section{padding-top:40px}
.expertise-introduction p{max-width:790px;font-size:18px;line-height:1.6;margin:0 0 20px}
.expertise-introduction p.lead{font-size:24px;line-height:1.45;margin-bottom:25px}
.expertise-links{padding-top:25px!important;padding-bottom:65px}
.principle.section{padding-top:65px;padding-bottom:65px}
.book-feature.section{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:35px;padding-bottom:80px}
.book-feature figure{margin:0;background:#1e0645;overflow:hidden;aspect-ratio:1.1}
.book-feature img{width:100%;height:100%;object-fit:cover}
.book-feature h2{font-size:clamp(55px,6vw,90px);margin-bottom:25px}
.book-feature p{font-size:18px;line-height:1.55;margin-bottom:22px}.book-feature a{margin-top:10px}
.immersive main>.cta{margin-top:40px;margin-bottom:25px}
@media(max-width:760px){
 :root{--content-gutter:27px}
 .lead,.intro .lead,.immersive .page-intro .lead{font-size:19px;line-height:1.5}
 .story-copy p,.team-section p,.section-head>p,.contact-grid p,.three-cols p,.principle p,.editorial p,.case-story article p,.editorial li,.service-practice .three-cols p,.expertise-introduction p,.book-feature p{font-size:17px;line-height:1.55}
 .hero-action{width:fit-content;margin-top:23px}.hero-action .textlink.action-secondary{font-size:16px;min-height:48px;padding:12px 18px;gap:26px}
 .method-section.section{margin:28px 0 48px;padding:48px 27px 55px;border-radius:0;width:100%}
 .method-section h2{font-size:52px}
 .people-only .people-story{display:flex}.people-only .people-photo{height:auto;min-height:0;aspect-ratio:1.65}
 .technology-story.technology-chapter{padding:36px 27px 52px}
 .technology-chapter .story-copy{display:block;padding:0}
 .technology-kicker{margin-bottom:28px}.technology-chapter h3{font-size:54px;max-width:600px;margin-bottom:28px}
 .technology-chapter .story-copy>p{max-width:55ch}.technology-chapter .story-copy>a{margin-top:8px}
 .home .story-reading.section{display:flex;flex-direction:column;gap:8px;padding:28px 27px 40px}
 .news.section{padding-left:27px;padding-right:27px}.news-copy,.news-card:not(:first-child) .news-copy{padding:18px 0 0}.news-heading.collection-heading{margin-left:0;margin-right:0;width:100%}
 .news-image,.news-card:not(:first-child) .news-image{width:100%;aspect-ratio:1.25;border-radius:3px}
 .news-copy h3,.news-card:not(:first-child) .news-copy h3{font-size:27px}
 .source-case .client-strip{padding:22px;height:85px}.source-case .client-strip img{max-width:150px;max-height:46px}
 .source-visual .hero-client{top:85px;left:27px;width:auto;height:70px;padding:8px 0}.source-visual .hero-client img{max-width:155px;max-height:54px}
 .organic-visual .interior-image{object-position:var(--art-position,50% 50%)}
 .expertise-introduction p.lead{font-size:21px}.expertise-introduction{padding-bottom:10px!important}.expertise-links{padding-top:25px!important;padding-bottom:50px}
 .principle.section{padding-top:45px;padding-bottom:50px}
 .book-feature.section{grid-template-columns:1fr;gap:28px;padding:20px 27px 45px}.book-feature figure{aspect-ratio:1.3}.book-feature h2{font-size:59px}
 .immersive main>.cta{margin-top:32px;margin-bottom:25px}
 .footer.section,.home .footer{padding-top:85px;min-height:630px}
 .collection-kicker>a{font-size:14px;gap:6px}
}

/* v24: monochrome primary actions, cool accents and large off-centre art details. */
.organic-visual .interior-image{transform-origin:var(--art-origin,25% 65%)}
.organic-visual:before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#10062470 0%,#10062488 40%,#100624cf 100%)}
.organic-visual:after{height:150px;background:linear-gradient(#10062470,transparent)}
.news-image,.news-card:not(:first-child) .news-image{aspect-ratio:16/9}
.news-image img{object-fit:contain;background:#1b093a}
.insights-index .page-intro{padding-bottom:12px}
.insights-index .page-intro+.news.section{padding-top:24px}
.news-heading.collection-heading{margin-bottom:32px}
@media(max-width:760px){
 .news-image,.news-card:not(:first-child) .news-image{aspect-ratio:16/9}
 .insights-index .page-intro{padding-top:26px;padding-bottom:8px}
 .insights-index .page-intro+.news.section{padding-top:20px}
 .news-heading.collection-heading{margin-bottom:26px}
}

/* v25: fill image frames, generous process spacing and calm navigation. */
.news-image img{width:100%;height:100%;object-fit:cover}
.people-only .people-figure,.people-story .people-figure{display:block;margin:0;padding:0;line-height:0;flex-shrink:0}
.people-only .people-photo,.people-figure img{display:block;width:100%;height:100%;object-fit:cover}
.method-layout .steps{padding-top:48px}
.mobile-nav a:last-child{border-bottom:0}
.menu-backdrop{position:fixed;inset:0;z-index:45;background:#10062480;border:0;padding:0;touch-action:pan-y;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.menu-open .menu-backdrop{opacity:1;visibility:visible}
body:has(.locations) main{padding-bottom:0}
.locations{margin-bottom:0}
.journey-art{position:fixed;inset:0;pointer-events:none;z-index:3;overflow:hidden;contain:strict}
.journey-organism{position:absolute;top:0;left:0;width:380px;height:280px;object-fit:contain;max-width:none;will-change:transform,opacity;opacity:0}
body:has(.journey-art) .edge-paint{visibility:hidden}
.menu-open .journey-art{visibility:hidden}
.home .hero-v2{border-radius:0 0 var(--shore-right,0px) var(--shore-left,0px)}
.footer{border-radius:var(--shore-left,0px) var(--shore-right,0px) 0 0;overflow:hidden}
@media(max-width:760px){
 .people-only .people-figure{height:auto;aspect-ratio:16/9}
 .people-only .people-photo{height:100%;aspect-ratio:auto;object-fit:cover}
 .method-layout{row-gap:32px}.method-layout .steps{padding-top:20px}
 .journey-organism{width:280px;height:210px}
}
@media(prefers-reduced-motion:reduce){.journey-art{display:none}.menu-backdrop{transition:none}}

/* Continuous liquid shorelines; the canvas only carries original brand texture. */
.home .hero-v2,.footer{border-radius:0}
.fluid-journey{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.menu-open .fluid-journey{visibility:hidden}
body:has(.fluid-journey) .edge-paint{visibility:hidden}
.home .hero-v2 .hero-bottom{padding-bottom:76px}
.technology-chapter{padding-top:110px!important;padding-bottom:105px!important}
.footer{padding-top:125px!important}
@media(max-width:760px){.home .hero-v2 .hero-bottom{padding-bottom:65px}.technology-chapter{padding-top:76px!important;padding-bottom:80px!important}.footer{padding-top:105px!important}}
@media(prefers-reduced-motion:reduce){.fluid-journey{display:none}}

/* Shared organism world: the same textured forms cross every shoreline. */
.unified-world{position:relative;isolation:isolate;background:#1e0645!important}
.unified-world>.world-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.unified-world .hero-art,.unified-world .hero-film,.unified-world #aquatic-motion,.unified-world>.interior-image,.unified-world .technology-art,.unified-world .footer-film{visibility:hidden!important}
.unified-world .hero-top,.unified-world .hero-bottom,.unified-world .interior-caption,.unified-world .story-copy,.unified-world .footer-top,.unified-world .footer-bottom{position:relative;z-index:2}
.unified-world .interior-caption{position:absolute}
.unified-world:before,.unified-world:after{pointer-events:none}
.technology-chapter{padding-top:90px!important;padding-bottom:85px!important}
@media(max-width:760px){.technology-chapter{padding-top:62px!important;padding-bottom:65px!important}}

.unified-world:before,.unified-world:after{display:none!important}

/* v29: one rendering plane removes asynchronous shoreline seams. */
.fluid-journey{z-index:1}
.unified-world{background:transparent!important;isolation:auto!important;clip-path:none!important;overflow:visible!important}
body:has(.fluid-journey) .edge-section{isolation:auto}
body:has(.fluid-journey) main>.section>:not(.edge-paint):not(.technology-art){position:relative;z-index:2}
body:has(.fluid-journey) .unified-world .interior-caption{position:absolute;z-index:2}
body:has(.fluid-journey) .footer-top,body:has(.fluid-journey) .footer-bottom{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.fluid-journey{display:block}}

.unified-world .footer-art{display:none}

/* v30: raise whole content surfaces, including their painted backgrounds. */
body:has(.fluid-journey) :is(.people-story,.method-section,.cta,.book-feature,.thought,.case-card,.news-card){position:relative;z-index:2}

/* v32: shoreline appears after the first viewport; inset standalone CTA cards. */
.home .hero-v2{margin-bottom:100px!important}
main>.cta.section,.immersive main>.cta.section{width:auto;max-width:1440px;margin-left:max(5.1vw,27px);margin-right:max(5.1vw,27px);padding-left:clamp(28px,4vw,64px);padding-right:clamp(28px,4vw,64px)}
@media(min-width:1604px){main>.cta.section,.immersive main>.cta.section{margin-left:auto;margin-right:auto}}
@media(max-width:760px){.home .hero-v2{margin-bottom:72px!important}main>.cta.section,.immersive main>.cta.section{margin-left:27px;margin-right:27px;padding-left:27px;padding-right:27px}}

/* v33: preserve the official mark's complete outline and intrinsic ratio. */
.header .wordmark svg,.footer .wordmark svg{height:auto!important;aspect-ratio:53/37;overflow:visible;flex-shrink:0}

/* v35: water belongs to its section and scrolls on the same compositor layer. */
.unified-world>.section-water{position:absolute!important;left:0;top:0;z-index:0!important;max-width:none;pointer-events:none;display:block}
.edge-paint,.journey-art{display:none!important}
.section-water-ready .unified-world{isolation:isolate!important}

/* v36: remove space formerly reserved for travelling edge artwork. */
.home .edge-section{padding-top:88px}
.home .method-section.section{margin-bottom:0}
.home .expertise.section{padding-top:88px;padding-bottom:40px}
.home .thinking.section{padding-top:48px}
.home .header,body.immersive .header{background:rgb(244 244 244 / var(--nav-reveal,0));box-shadow:0 7px 24px rgb(16 6 36 / calc(var(--nav-reveal,0) * .12));transition:background-color .35s ease,box-shadow .35s ease,color .35s ease}
.home .header.is-scrolled,body.immersive .header.is-scrolled{background:rgb(244 244 244 / var(--nav-reveal,0));box-shadow:0 7px 24px rgb(16 6 36 / calc(var(--nav-reveal,0) * .12))}
body.menu-open .header{background:#f4f4f4;box-shadow:none;z-index:60}
body .mobile-nav,.home .mobile-nav{z-index:59}
.menu-backdrop{z-index:45}
.motion-toggle{display:none!important}
@media(max-width:760px){.home .edge-section{padding-top:56px}.home .expertise.section{padding-top:56px;padding-bottom:24px}.home .thinking.section{padding-top:40px}}
/* Keep scrollport width stable while the menu opens; backdrop handles dismissal. */
body.menu-open .site-scroll{overflow-y:auto}

/* v37: a focused desktop column, vivid accents and an attached hero action. */
:root{--page-gutter:max(5.1vw,calc((100vw - 1240px)/2));--content-gutter:var(--page-gutter);--link-pink:#df007b;--action-accent:#e6007e}
@media(min-width:761px){
 .section,.edge-section,.footer,.home .header,body.immersive .header{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
 .home .hero-v2 .hero-top,.home .hero-v2 .hero-bottom{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
 main>.cta.section,.immersive main>.cta.section{max-width:1240px;margin-left:var(--page-gutter);margin-right:var(--page-gutter)}
}
.logos{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.logos img{width:100%;height:auto;aspect-ratio:1.65;object-fit:contain}
.home .hero-v2 .hero-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.home .hero-action{width:auto;margin:0}
.button.action-primary,.textlink.action-primary,.cta .button.action-primary,.contact-grid .button.action-primary,.hero-action .textlink.action-primary{background:var(--action-accent);color:#fff;border-color:transparent}
.hero-action .textlink.action-primary{min-height:52px;padding:15px 24px;font-size:17px}
.action-primary:hover{filter:none;background:#c90070}
@media(max-width:1000px){.logos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){:root{--content-gutter:27px}.logos{gap:8px}.logos img{aspect-ratio:1.4}.home .hero-v2 .hero-bottom{gap:20px}}
.collection-kicker>a:hover,.textlink.action-tertiary:hover,.news-card a:hover .news-read{color:#bc006a}
.cta .button.action-primary:hover,.contact-grid .button.action-primary:hover,.hero-action .textlink.action-primary:hover{background:#c90070}

/* v38: one artwork loading state, electric-blue actions, balanced closing copy. */
:root{--link-pink:#2545ff;--action-accent:#2545ff}
.hero-v2 .hero-art,.hero-v2 .hero-film,.hero-v2 #aquatic-motion,.organic-visual>.interior-image,.technology-art,.footer-art{visibility:hidden!important}
.water-fallback .hero-art,.water-fallback .organic-visual>.interior-image,.water-fallback .technology-art,.water-fallback .footer-art{visibility:visible!important}
.hero-v2,.organic-visual{background:#21004d!important}
.organic-visual:before,.organic-visual:after{display:none!important}
.home .hero-v2 .hero-bottom{flex-direction:row;align-items:center;justify-content:flex-start;gap:42px}
.home .hero-v2 .hero-bottom>p{flex:none}
.home .hero-action{flex:none}
.button.action-primary,.textlink.action-primary,.cta .button.action-primary,.contact-grid .button.action-primary,.hero-action .textlink.action-primary{line-height:1.2;padding-top:17px;padding-bottom:13px}
.textlink.action-secondary,.header .nav-contact.action-secondary{padding-top:13px;padding-bottom:9px;line-height:1.2}
.collection-kicker>a:hover,.textlink.action-tertiary:hover,.news-card a:hover .news-read{color:#1231d5}
.action-primary:hover,.cta .button.action-primary:hover,.contact-grid .button.action-primary:hover,.hero-action .textlink.action-primary:hover{background:#1231d5}
.home .header,.home .header.is-scrolled,body.immersive .header,body.immersive .header.is-scrolled{box-shadow:0 3px 14px rgb(16 6 36 / calc(var(--nav-reveal,0) * .065))}
.cta.section{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,1fr);column-gap:64px;align-items:center}
.cta>.eyebrow{grid-column:1/-1}
.cta>h2{grid-column:1;grid-row:2}
.cta-conversation{grid-column:2;grid-row:2;max-width:360px;justify-self:end}
.cta-conversation p{font-size:18px;line-height:1.55;margin:0 0 24px;color:#554c61}
.cta .cta-conversation .button.action-primary{margin:0;width:fit-content;min-width:180px;min-height:52px}
@media(max-width:760px){
 .home .hero-v2 .hero-bottom{flex-direction:column;align-items:flex-start;gap:20px}
 .cta.section{display:block}.cta-conversation{max-width:none;margin-top:28px}.cta-conversation p{font-size:17px;margin-bottom:22px}
 .cta .cta-conversation .button.action-primary{width:100%}
}
.hero-v2.unified-world,.organic-visual.unified-world{background:transparent!important}

/* v39: consistent action alignment and a generous rhythm within coloured bands. */
.technology-story.technology-chapter{padding-top:150px!important;padding-bottom:150px!important}
.organic-visual .interior-caption{bottom:100px}
.button.action-primary,.textlink.action-primary,.cta .button.action-primary,.contact-grid .button.action-primary,.hero-action .textlink.action-primary{padding-top:15.8px;padding-bottom:14.2px}
.textlink.action-secondary,.header .nav-contact.action-secondary,.hero-action .textlink.action-secondary{padding-top:11.8px;padding-bottom:10.2px;line-height:1.2;min-height:46px;border-radius:9px;font-size:16px}
.before-color{margin-bottom:0!important}
.joins-color{margin-top:0!important}
.footer.joins-color,.footer.joins-color.unified-world{background:var(--joining-color)!important}
@media(min-width:761px){.insights-index .news-grid{column-gap:40px;row-gap:76px}.insights-index .page-intro+.news.section{padding-top:38px}}
@media(max-width:760px){.technology-story.technology-chapter{padding-top:88px!important;padding-bottom:94px!important}.organic-visual .interior-caption{bottom:76px}}

/* v40 — bounded openings and a consistent editorial reading surface. */
.home .hero-v2{height:min(var(--opening-height,100svh),800px);min-height:650px;max-height:none}
@media(min-width:761px){
 :root{--nav-height:88px}
 .home .hero-v2 .hero-top{padding-top:138px}
}
@media(min-width:761px) and (max-width:1100px) and (orientation:portrait){
 .home .hero-v2{height:min(var(--opening-height,100svh),720px);min-height:650px}
 .home .hero-v2 .hero-top h1{font-size:clamp(100px,15vw,150px)}
}
@media(max-width:760px){.home .hero-v2{height:min(var(--opening-height,100svh),780px);min-height:600px}}
.work-index .case-image{aspect-ratio:1.25;height:auto;min-height:0}
.work-index .case-image>.case-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.thought.book .textlink.action-tertiary,.thought.book:hover .textlink.action-tertiary{color:#fff}
a.action-primary,a.action-secondary,a.action-tertiary,.editorial a.action-secondary,.immersive a.back{ text-decoration:none!important }
.immersive a.back{display:inline-flex;align-items:center;gap:10px;color:#2545ff;min-height:44px;margin-bottom:28px;border:0}
body.text-opening .header,body.text-opening .header.is-scrolled{background:#f4f4f4;color:#20172e}
body.text-opening .page-intro{padding-top:calc(var(--nav-height) + 56px)}
.perspective-article .page-intro,.perspective-article .editorial{max-width:840px;margin-inline:auto;padding-inline:32px}
.perspective-article .page-intro{padding-bottom:32px}
.perspective-article .page-intro h1{font-size:clamp(52px,6.5vw,90px)}
.perspective-article .editorial h2:first-child{margin-top:24px}
.method-section + .proof-of-direction{background:transparent;margin-top:64px!important;padding-top:64px}
@media(max-width:760px){
 .work-index .case-image{aspect-ratio:1.12}
 body.text-opening .page-intro{padding-top:calc(var(--nav-height) + 32px)}
 .perspective-article .page-intro,.perspective-article .editorial{padding-inline:27px}
 .method-section + .proof-of-direction{margin-top:36px!important;padding-top:40px}
}

@media(min-width:1001px){body.home{--nav-height:88px}}

/* Contextual reading belongs to the discipline and Method it explains. */
.expertise-perspective{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;row-gap:20px;margin-top:48px;padding-top:12px}
.expertise-perspective h3{font-size:32px;line-height:1.2;grid-row:1 / 3}
.expertise-perspective p,.method-book-note p{font-size:17px;line-height:1.55;color:#625b6b;max-width:580px}
.expertise-perspective .textlink{justify-self:start}
.method-book-note{margin-top:36px;padding-top:28px;border-top:1px solid #20132e22}
.method-book-note .textlink{margin-top:12px}
@media(max-width:760px){.expertise-perspective{display:block;margin-top:32px}.expertise-perspective h3{font-size:28px;margin-bottom:18px}.expertise-perspective .textlink{margin-top:16px}}

/* v42 — full first viewport with a ceiling for unusually tall windows. */
.home .hero-v2{height:min(var(--opening-height,100svh),1200px);min-height:650px}
@media(min-width:761px) and (max-width:1100px) and (orientation:portrait){.home .hero-v2{height:min(var(--opening-height,100svh),1280px)}}
@media(max-width:760px){.home .hero-v2{height:min(var(--opening-height,100svh),1000px);min-height:600px}}
@media(min-width:761px){.technology-story.technology-chapter{padding-top:215px!important;padding-bottom:215px!important}}
.home #news .news-heading{border-top:0;padding-top:0}
#offices{scroll-margin-top:100px}
@media(min-width:1001px){.header nav{gap:24px}.header{gap:28px}}

/* Clean footer typography: contrast comes from the background. */
.footer,.footer *{text-shadow:none!important}

/* v44 — real people and concrete technical depth */
.contact-people>h2,.restored-detail>h2{margin:22px 0 40px}.contact-intro{max-width:650px;margin-bottom:42px}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 32px}.person-card{min-width:0;scroll-margin-top:125px}.person-photo{aspect-ratio:4/3;background:#ebe8ee;border-radius:8px;overflow:hidden;margin-bottom:22px}.person-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 25%}.person-card h3{font-size:26px;margin:0 0 6px}.person-card>p{margin:0 0 14px;color:var(--muted,#625d6b)}.person-card>a{font-size:16px;overflow-wrap:anywhere;text-decoration:none}.person-card#janne-aaltonen img{object-position:50% 34%}.restored-detail .three-cols{row-gap:44px}.restored-detail article{scroll-margin-top:125px}.restored-detail p{max-width:55ch}.restored-detail p a{display:inline-flex;margin-top:12px}.talent-people{max-width:790px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px}.locations a{overflow-wrap:anywhere}.locations p{line-height:1.65}
@media(max-width:900px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 22px}}
@media(max-width:520px){.people-grid{grid-template-columns:1fr;gap:36px}.person-photo{aspect-ratio:4/3}.person-card h3{font-size:25px}.restored-detail>h2{margin-bottom:30px}.restored-detail .three-cols{gap:28px}}

@media(min-width:761px) and (max-width:1000px){.restored-detail .three-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v46 — contextual case introductions and clear link affordance */
.related-work-intro{max-width:43ch;margin-top:26px;color:#625d6b;font-size:18px;line-height:1.6;text-wrap:pretty}
a.case-card{display:block;cursor:pointer}a.case-card .case-read{display:inline-flex;align-items:center;gap:14px;margin-top:20px;color:#2545ff;font-size:16px;line-height:1.35;font-weight:600}a.case-card .case-read>span{font-size:24px;line-height:1;transition:transform .22s ease}a.case-card:hover .case-read>span,a.case-card:focus-visible .case-read>span{transform:translate(3px,-3px)}a.case-card:focus-visible{outline:2px solid #2545ff;outline-offset:8px;border-radius:3px}
@media(max-width:760px){.related-work-intro{font-size:17px;margin-top:20px}.related-work{gap:32px}a.case-card .case-read{margin-top:16px}}
@media(prefers-reduced-motion:reduce){a.case-card .case-read>span{transition:none;transform:none!important}}
