/* Targeted refinements. Original portrait pixels and background geometry stay intact. */
:root{--muted:#626568}
body{font-size:1rem;line-height:1.7}
main:focus,section[tabindex="-1"]:focus{outline:none}
:focus-visible{outline:2px solid currentColor;outline-offset:6px}
[hidden]{display:none!important}
p,li{overflow-wrap:break-word;text-wrap:pretty}
h1,h2,h3{overflow-wrap:break-word}
.overline,.eyebrow{font-size:.75rem;line-height:1.55;letter-spacing:.12em}
.hero-art-label{font-size:.75rem;color:#626568}
.hero-copy h1{line-height:.95;letter-spacing:-.05em}
.hero-copy h1:first-child{margin-top:0}
.hero-copy .overline{max-width:38ch}
.degree{margin-top:1.5rem;margin-bottom:2rem;font-size:1.125rem;line-height:1.5}
.hero-role{max-width:46ch;font-size:.875rem;font-weight:650;line-height:1.8;letter-spacing:.025em}
.hero-role span{display:block}.hero-role span+span{margin-top:.5rem}
.arrow-link{min-height:44px;margin-top:2rem;font-size:.875rem;line-height:1.5;letter-spacing:.08em}
/* Keep each complete portrait inside its black composition. */
.hero-person{right:22%;clip-path:none}
.profile-black{height:90%;background:#1c1c1c}
.profile-visual img{right:12%;clip-path:none}
.intro-word{line-height:.84}.intro-word span{color:#696c68}
.intro-strip>p{font-size:1.125rem;line-height:1.7}
.expertise{grid-template-columns:clamp(90px,7vw,126px) minmax(0,1fr)}
.expertise-main{padding-left:clamp(32px,4vw,72px);padding-right:clamp(32px,4vw,72px)}
.expertise-main{padding-top:clamp(36px,4vw,56px)}
.section-rail span,.section-rail p{font-size:.75rem;line-height:1.5}
.section-heading{grid-template-columns:minmax(0,1.15fr) minmax(0,.7fr);column-gap:clamp(32px,4vw,64px);row-gap:1.5rem;margin-bottom:var(--s7)}
.section-heading h2{max-width:13ch;font-size:clamp(2.75rem,4.6vw,5.75rem);line-height:1.04;letter-spacing:-.045em;text-wrap:balance}
.section-heading>p:last-child{max-width:48ch;font-size:1rem;line-height:1.8}
.discipline{grid-template-columns:36px minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,3vw,48px);padding-block:clamp(36px,4vw,56px)}
.discipline>*{min-width:0}
.discipline-number,.discipline-title p{font-size:.75rem;line-height:1.5}
.discipline-title p{margin-bottom:1rem;letter-spacing:.08em}
.discipline-title h3{max-width:21ch;font-size:clamp(1.5rem,2.05vw,2.15rem);line-height:1.2;letter-spacing:-.025em;hyphens:auto;text-wrap:balance}
.discipline ul{width:100%;max-width:64ch}
.discipline li{max-width:none;padding-block:.75rem;font-size:1rem;line-height:1.75}
.sv-section{grid-template-columns:minmax(0,1fr) minmax(0,.86fr)}
.sv-statement{isolation:isolate;gap:clamp(2.25rem,3.5vw,3.25rem);padding-right:clamp(40px,5vw,80px);padding-bottom:var(--s8)}
.sv-statement::after{content:none}
.sv-identity{display:grid;grid-template-columns:minmax(0,1fr) clamp(150px,12vw,190px);gap:clamp(2rem,3vw,3.5rem);align-items:start}
.sv-statement h2{max-width:18ch;margin:0;padding:0;font-size:clamp(2.15rem,2.65vw,3rem);font-weight:800;line-height:1.04;letter-spacing:-.032em;font-kerning:normal;text-rendering:geometricPrecision;text-wrap:balance}
.sv-logo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin-top:.2rem;padding:clamp(9px,1vw,13px);background:#fff;border:1px solid rgba(255,255,255,.18);border-radius:12px;box-shadow:0 16px 36px rgba(0,0,0,.22)}
.sv-statement>p:last-of-type{max-width:43ch;margin:0;font-size:1rem;line-height:1.8;color:#d0d1d2}
.sv-list>div{grid-template-columns:60px minmax(0,1fr);gap:1.25rem;padding-block:1.75rem}
.sv-list span{font-size:.8125rem;line-height:1.65;letter-spacing:.06em}
.sv-list strong{font-size:clamp(1rem,1.35vw,1.3rem);line-height:1.5;hyphens:auto;overflow-wrap:break-word}
.profile-copy{z-index:3}
.profile-copy h2{font-size:clamp(3.25rem,5.4vw,6.25rem);line-height:.98;letter-spacing:-.045em;margin-block:1rem 1.5rem}
.profile-name{font-size:1.25rem;line-height:1.45;margin-bottom:1.5rem}
.profile-name span{font-size:.875rem;line-height:1.6;margin-top:.375rem}
.profile-copy>p:not(.overline):not(.profile-name){font-size:1rem;line-height:1.75;margin-bottom:1.25rem;max-width:49ch}
.profile-copy>p:last-child{margin-bottom:0}
.profile-word{left:auto;right:calc(var(--gutter) + 1rem);bottom:.09em;z-index:0;font-size:clamp(5rem,8vw,9rem);line-height:.85;letter-spacing:-.065em;color:#8d908d}
.contact-head{grid-template-columns:140px minmax(0,1fr);gap:2rem}
.contact-head h2{max-width:none;font-size:clamp(2.2rem,6.3vw,7.5rem);line-height:1.02;letter-spacing:-.045em}
.contact-grid small{font-size:.75rem;line-height:1.5;letter-spacing:.1em}
.contact-grid strong{padding-right:1.5rem;font-size:clamp(1.125rem,1.8vw,1.65rem);line-height:1.45}
.contact-grid p{margin-top:1.25rem;font-size:1rem;line-height:1.7}
.contact-grid>a:hover strong{text-decoration:underline;text-underline-offset:.2em}
.contact-grid>a span{top:26px;right:16px}
.footer-bottom{grid-template-columns:1fr auto;align-items:center;font-size:.75rem;line-height:1.7;letter-spacing:.04em;row-gap:.75rem}
.footer-bottom p:last-child{grid-column:1/-1;text-align:left}
.footer-bottom nav{gap:.5rem 1.5rem;flex-wrap:wrap}
.footer-bottom nav a{display:inline-flex;align-items:center;min-height:44px}
.legal h1{font-size:clamp(2.5rem,7vw,6.5rem);line-height:1.08;overflow-wrap:anywhere}
.legal h2{font-size:1rem;line-height:1.5;letter-spacing:.08em}
.legal p,.legal li{font-size:1rem;line-height:1.8}
.legal-addresses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 3rem;max-width:70ch;color:#55575a;font-style:normal;line-height:1.8}
.legal-addresses span{display:block}
.legal .text-link,.button{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;line-height:1.5}
.error-code{color:#a5a7a8}.error-wrap h1{line-height:1.1}
.menu-panel{width:100%;transform:none}
.menu-panel-inner{width:calc(100% - 2*var(--gutter));max-width:1120px;padding-top:calc(var(--header-h) + 2rem);gap:0}
.menu-kicker{font-size:.8125rem;line-height:1.5;color:#b9bbbd}
.menu-panel-inner>a{grid-template-columns:48px minmax(0,1fr);font-size:clamp(1.75rem,5.8vw,6rem);line-height:1.12;letter-spacing:-.04em;overflow-wrap:anywhere;hyphens:auto}
.menu-panel-inner>a>span{font-size:.75rem;color:#b9bbbd;line-height:1.5}
.menu-meta{font-size:.875rem;line-height:1.5;letter-spacing:.025em;flex-wrap:wrap;gap:.5rem 1.75rem;color:#d0d1d2}
.menu-meta a{display:inline-flex;align-items:center;min-height:44px}
.menu-open .header-shell{position:relative;z-index:1020;background:var(--ink)}
.menu-open .menu-toggle:focus-visible{color:#fff}
/* First paint and no-JS browsing never depend on reveal animations. */
.reveal{opacity:1;transform:none}.reveal.reveal-pending{opacity:0;transform:translateY(14px)}.reveal.visible{opacity:1;transform:none}
@media(max-width:1100px){
 .section-heading{grid-template-columns:minmax(0,1fr)}
 .section-heading h2{max-width:16ch;font-size:clamp(2.75rem,5.7vw,4.5rem)}
 .discipline{grid-template-columns:32px minmax(0,1fr);gap:1.25rem}.discipline ul{grid-column:2}
 .discipline-title h3{max-width:30ch;font-size:1.75rem}
 .sv-section{grid-template-columns:minmax(0,1fr)}.sv-statement{padding-right:var(--gutter)}
 .sv-statement h2{max-width:22ch;font-size:clamp(2.35rem,4.7vw,3.25rem)}
 .profile-copy h2{font-size:clamp(2.6rem,5.8vw,4rem)}
 .contact-head{grid-template-columns:minmax(0,1fr)}.footer-bottom{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){
 .hero-person{right:18%}.hero-copy h1{font-size:clamp(3.1rem,16.5vw,5.8rem);line-height:.98}
 .hero-role{font-size:.875rem;line-height:1.75}.hero-copy .overline{max-width:30ch}
 .intro-strip{gap:2rem}.intro-word{font-size:clamp(4rem,21vw,7rem);line-height:.88}.intro-strip>p{font-size:1rem}
 .expertise{grid-template-columns:minmax(0,1fr)}.expertise-main{padding-inline:var(--gutter)}
 .section-heading h2{font-size:clamp(2.3rem,10.5vw,4rem);line-height:1.06;max-width:15ch}.section-heading>p:last-child{font-size:1rem}
 .discipline{grid-template-columns:24px minmax(0,1fr);gap:1rem;padding-block:2rem}.discipline ul{grid-column:1/-1;padding-left:0}
 .discipline-title h3{font-size:clamp(1.4rem,6vw,1.75rem);line-height:1.25}.discipline li{font-size:1rem;line-height:1.75}
 .sv-statement{min-width:0;padding-bottom:var(--s7)}.sv-identity{grid-template-columns:minmax(0,1fr);gap:2rem;align-items:start}.sv-statement h2{max-width:18ch;font-size:clamp(2.1rem,9.4vw,3.25rem);line-height:1.04;letter-spacing:-.025em}.sv-logo{width:min(165px,46vw);margin-top:0}
 .sv-list>div{grid-template-columns:48px minmax(0,1fr);gap:1rem;padding-block:1.4rem}
 .profile{grid-template-columns:minmax(0,1fr)}.profile-copy h2{font-size:clamp(2.8rem,12.5vw,5rem);line-height:1}
 .profile-black{left:calc(0px - var(--gutter));right:calc(0px - var(--gutter));top:0;width:auto;height:100%}.profile-visual img{right:8%}
 .contact-head h2{font-size:clamp(2rem,8.9vw,4.3rem);line-height:1.08}
 .contact-grid>a,.contact-grid>div{min-height:148px;padding-block:1.5rem!important}
 .contact-grid strong{font-size:1.35rem}.contact-grid small{margin-bottom:1rem}
 .menu-panel-inner>a{grid-template-columns:28px minmax(0,1fr);font-size:clamp(1.65rem,6.8vw,3.25rem);padding-block:1.15rem}.menu-meta{align-items:flex-start}
 .legal-addresses{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal.reveal-pending{opacity:1;transform:none}}
/* Reflow when text is enlarged independently of the viewport. */
.arrow-link{max-width:100%;min-width:0;overflow-wrap:anywhere;flex-wrap:wrap}
.intro-strip>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.section-rail p{min-width:0;overflow-wrap:anywhere}
.footer-top>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
@media(max-width:760px){.intro-strip{grid-template-columns:minmax(0,1fr)}}

/* Customer content corrections: deliberate title grouping and safe technical terms */
.discipline-title h3{hyphens:none;overflow-wrap:normal;word-break:normal;text-wrap:wrap}
.discipline-heading-line{display:block}
.sv-list strong{hyphens:none;overflow-wrap:normal;word-break:normal}
@media(min-width:1101px){
 /* Use the actual section width (excluding the scrollbar) for the SV divider anchor.
    Number column 36px + two gaps 48px = 84px before the list border. */
 .expertise{container-type:inline-size}
 .discipline{grid-template-columns:36px calc(50cqw + clamp(32px,3.5vw,52px) - clamp(90px,7vw,126px) - clamp(32px,4vw,72px) - 84px) minmax(0,1fr);column-gap:24px;row-gap:0}
 .discipline-title{grid-column:auto}
 .discipline-title h3{max-width:none;white-space:normal}
 .discipline-heading-line{white-space:nowrap}
 .discipline ul{grid-column:auto;grid-row:auto}
 /* Preserve the original 64ch text measure; match only the divider length to SV. */
 .discipline li{border-bottom-color:transparent}
 .discipline li::after{content:"";position:absolute;left:0;bottom:-1px;width:calc(50cqw - clamp(32px,3.5vw,52px) - var(--gutter));border-bottom:1px solid var(--line);pointer-events:none}
 .sv-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 /* Keep the longest heading word intact and size the square logo to its column. */
 .sv-statement{container-type:inline-size}
 .sv-identity{grid-template-columns:minmax(0,1fr) minmax(0,24%);gap:clamp(12px,3cqi,24px)}
 .sv-statement h2{max-width:none;font-size:clamp(1.5rem,6.5cqi,3rem);hyphens:none;overflow-wrap:normal;word-break:normal}
 .sv-logo{width:100%;height:auto;aspect-ratio:1;object-fit:contain;padding:clamp(10px,2cqi,16px)}
 .sv-list{padding-left:clamp(32px,3.5vw,52px)}
 .sv-list strong{white-space:nowrap}
}
