
:root{--paper:#f1f0e9;--ink:#20221f;--red:#e7472b;--line:#c6c6bc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:6px}::selection{background:var(--red);color:var(--paper)}.wrap{max-width:1600px;margin:auto;padding:0 4.5%}.mono{font-family:'Courier New',monospace;font-size:11px;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}header{height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink)}.brand{font-size:29px;font-weight:750;letter-spacing:-1.6px}.brand sup{font-size:12px;vertical-align:top;display:inline-block;margin:4px 0 0 4px;color:var(--red)}nav{display:flex;gap:36px;align-items:center;font-size:13px}nav a:hover{color:var(--red)}nav .contact-nav{border-bottom:1px solid var(--ink);padding:8px 0}.hero-top{display:flex;justify-content:space-between;margin-top:29px}.status{display:flex;align-items:center;gap:8px}.dot{width:7px;height:7px;background:var(--red);border-radius:50%}.hero{padding-top:63px;padding-bottom:55px;position:relative}.hero h1{font-size:clamp(70px,9.5vw,145px);line-height:.92;letter-spacing:-.075em;font-weight:500;margin:0;position:relative;z-index:1;max-width:1000px}.hero h1 span{color:var(--red)}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:53px;align-items:end}.hero-copy{max-width:440px;font-size:19px;line-height:1.5;letter-spacing:-.35px;margin:0}.hero-link{justify-self:end;font-size:13px;display:flex;align-items:center;gap:47px;padding-bottom:10px;border-bottom:1px solid var(--ink)}.arrow{font-size:25px;font-weight:400}.section{padding:72px 0;border-bottom:1px solid var(--ink)}.section-heading{display:grid;grid-template-columns:1fr 3fr;gap:25px;margin-bottom:50px}.section-heading h2{font-size:clamp(32px,4.1vw,60px);line-height:1.05;letter-spacing:-.05em;font-weight:500;margin:0;max-width:780px}.index{display:flex;gap:20px;padding-top:8px}.index span:first-child{color:var(--red)}.service{display:grid;grid-template-columns:1fr 1.3fr 1.7fr;gap:25px;border-top:1px solid var(--line);padding:27px 0}.service-number{font-family:'Courier New',monospace;font-size:12px;color:var(--muted)}.service h3{font-size:25px;font-weight:500;letter-spacing:-.7px;margin:0}.service p{font-size:16px;line-height:1.6;max-width:480px;margin:0;color:var(--muted)}.team-grid{display:grid;grid-template-columns:1fr 1.5fr 1.5fr;gap:25px}.team-note{font-size:14px;line-height:1.6;max-width:180px;color:var(--muted)}.person{border-top:1px solid var(--ink);padding-top:22px}.person-top{display:flex;align-items:center;justify-content:space-between}.person h3{font-size:34px;letter-spacing:-1px;font-weight:500;margin:0}.initial{font-size:12px;border:1px solid var(--line);width:40px;height:40px;display:grid;place-items:center}.person .role{color:var(--red);margin:13px 0 28px}.person p{max-width:360px;line-height:1.6;font-size:16px;color:var(--muted)}.approach{display:grid;grid-template-columns:1fr 3fr;gap:25px;padding:43px 0 0}.approach p{font-size:23px;line-height:1.4;letter-spacing:-.5px;margin:0;max-width:770px}.contact{padding:63px 0 66px}.contact-head{display:flex;justify-content:space-between}.contact h2{font-size:clamp(58px,8vw,115px);font-weight:500;letter-spacing:-.065em;line-height:.97;margin:44px 0 35px}.email{font-size:clamp(18px,2.8vw,36px);letter-spacing:-.04em;display:inline-flex;gap:35px;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:9px}.email:hover{color:var(--red);border-color:var(--red)}.contact-foot{display:flex;justify-content:space-between;align-items:end;gap:30px}.contact-foot p{max-width:260px;line-height:1.5;font-size:14px;color:var(--muted);margin:0}footer{background:var(--ink);color:var(--paper)}.footer-inner{padding-top:26px;padding-bottom:26px;display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-brand{font-size:19px;letter-spacing:-.7px}.footer-inner a:hover{color:var(--red)}@media(min-width:1600px){.hero h1{font-size:145px}}@media(max-width:760px){.wrap{padding:0 6%}header{height:85px}.brand{font-size:25px}nav{gap:18px}nav a:not(.contact-nav){display:none}.hero-top{font-size:9px;gap:18px}.hero{padding-top:55px;padding-bottom:35px}.hero h1{font-size:clamp(57px,12vw,90px)}.hero-bottom{grid-template-columns:1fr;margin-top:32px;gap:25px}.hero-copy{font-size:17px;max-width:370px}.hero-link{justify-self:start;gap:60px}.section{padding:45px 0}.section-heading{grid-template-columns:1fr;gap:25px;margin-bottom:32px}.section-heading h2{font-size:38px}.service{grid-template-columns:28px 1fr;gap:16px}.service p{grid-column:2}.service h3{font-size:23px}.team-grid{grid-template-columns:1fr;gap:28px}.team-note{max-width:310px;margin:0}.person p{max-width:100%}.approach{grid-template-columns:1fr;gap:20px}.approach p{font-size:22px}.contact{padding:43px 0}.contact h2{font-size:62px}.contact-foot{align-items:start;flex-direction:column;gap:27px}.footer-inner{flex-wrap:wrap;padding-top:25px;padding-bottom:25px}.footer-inner .mono{font-size:9px}.contact-head .mono:last-child{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Full-bleed landscape; content stays aligned to the page grid. */
body{overflow-x:clip}
.hero{margin-top:28px;padding:70px 0 60px;min-height:590px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;inset:0 calc((100% - 100vw)/2);background:linear-gradient(180deg,var(--paper) 0%,rgba(var(--paper-rgb),0) 24%,rgba(var(--paper-rgb),0) 72%,var(--paper) 100%),linear-gradient(90deg,rgba(var(--paper-rgb),.9) 0%,rgba(var(--paper-rgb),.68) 42%,rgba(var(--paper-rgb),.08) 100%),url("arctic-mountains.png") center center / cover no-repeat}
.hero-bottom{position:relative;z-index:1}
.hero-link{padding:12px 0;border-bottom:1px solid var(--ink)}
@media(max-width:760px){.hero{padding:48px 0 42px;min-height:570px}.hero::before{background:linear-gradient(180deg,var(--paper) 0%,rgba(var(--paper-rgb),0) 20%,rgba(var(--paper-rgb),0) 74%,var(--paper) 100%),linear-gradient(90deg,rgba(var(--paper-rgb),.92),rgba(var(--paper-rgb),.6)),url("arctic-mountains.png") 47% center / cover no-repeat}.hero h1{font-size:clamp(57px,12vw,90px)}.hero-bottom{gap:24px}.hero-copy{font-size:17px}.hero-link{padding:10px 0}}

/* Motion and interaction system */
:root{--paper-rgb:241,240,233;--muted:#56594f;--ease-out:cubic-bezier(.22,1,.36,1)}
.scroll-progress{position:fixed;top:0;left:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;z-index:20;pointer-events:none}
.brand{display:inline-flex;align-items:baseline}.brand sup{transition:transform .4s var(--ease-out)}.brand:hover sup{transform:translateX(3px)}
nav a{position:relative}nav a:not(.contact-nav)::after{content:"";position:absolute;bottom:-7px;left:0;width:100%;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}nav a:hover::after{transform:scaleX(1)}
.hero{min-height:650px}.hero::before{transform:translateY(var(--landscape-shift,0px));will-change:transform}
.hero h1{max-width:1100px}.hero-line{display:block;overflow:hidden;color:var(--ink)!important}.hero-line>span{display:block;color:var(--ink)!important}.hero-line .period{display:inline;color:var(--red)!important}
.hero-bottom{margin-top:45px}.hero-link{transition:color .25s,border-color .25s}.hero-link:hover{color:var(--red);border-color:var(--red)}.hero-link .arrow{transition:transform .4s var(--ease-out)}.hero-link:hover .arrow{transform:translateY(5px)}
.hero-detail{display:flex;align-items:center;gap:12px;margin-top:30px;color:var(--muted)}.hero-detail::before{content:"";width:30px;height:1px;background:var(--red)}
.service{position:relative;transition:padding .4s var(--ease-out),background .4s var(--ease-out)}.service::before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out)}.service:hover::before{transform:scaleX(1)}.service:hover{background:rgba(231,71,43,.035)}.service h3{transition:color .3s}.service:hover h3{color:var(--red)}
.person .initial{position:relative;overflow:hidden;transition:background .4s,color .4s,border-color .4s}.person:hover .initial{background:var(--red);color:var(--paper);border-color:var(--red)}.person{transition:border-color .4s}.person:hover{border-color:var(--red)}
.contact{position:relative;overflow:hidden}.contact h2{position:relative;z-index:1}.contact-mark{position:absolute;right:0;top:110px;font-size:clamp(100px,20vw,270px);line-height:1;color:var(--red);opacity:.12;pointer-events:none;transition:transform .8s var(--ease-out),opacity .8s}.contact:hover .contact-mark{transform:translateX(10px);opacity:.25}.email span{transition:transform .4s var(--ease-out)}.email:hover span{transform:translateX(5px)}
.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .85s var(--ease-out),transform .85s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:no-preference){.motion-ready .hero-line>span{animation:headline-in 1.15s var(--ease-out) both}.motion-ready .hero-line:nth-child(2)>span{animation-delay:.13s}.motion-ready .hero-copy,.motion-ready .hero-link,.motion-ready .hero-detail{animation:detail-in 1s var(--ease-out) .35s both}@keyframes headline-in{from{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes detail-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}}
@media(min-width:761px){.service:hover{padding-left:12px;padding-right:12px}}
@media(max-width:760px){.hero{min-height:610px}.hero-detail{font-size:9px}.contact-mark{top:100px;right:-15px}.scroll-progress{height:2px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.hero::before{transform:none;will-change:auto}.motion-ready .reveal{opacity:1;transform:none}.contact:hover .contact-mark{transform:none}}

/* Keep the hero action legible over every part of the landscape. */
.hero .hero-link{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:14px 20px;min-height:48px;font-weight:600;gap:40px;transition:background .25s,color .25s,border-color .25s}
.hero .hero-link:hover{background:var(--paper);color:var(--ink);border-color:var(--ink)}
.hero .hero-link:focus-visible{outline:3px solid var(--red);outline-offset:4px}


/* Scroll-driven service showcase. Static layout is the default and fallback. */
.expertise-orbit,.expertise-rail{display:none}
@media(min-width:900px) and (min-height:700px) and (prefers-reduced-motion:no-preference){
#expertise.scroll-showcase{height:360vh;padding:0;position:relative;border-bottom:0}
.scroll-showcase .expertise-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding:38px 0;overflow:hidden;perspective:1200px}
.scroll-showcase .section-heading{margin-bottom:22px;position:relative;z-index:5;align-items:center}
.scroll-showcase .section-heading h2{font-size:clamp(40px,5vw,76px);max-width:none}
.scroll-showcase .expertise-stage{position:relative;flex:1;max-height:580px;min-height:420px;isolation:isolate}
.scroll-showcase .expertise-orbit{display:block;position:absolute;width:350px;height:350px;right:4%;top:8%;border:1px solid var(--red);border-radius:50%;opacity:.25;transform:rotate(var(--orbit-turn,0deg)) scale(var(--orbit-scale,1));pointer-events:none}
.scroll-showcase .expertise-orbit::before,.scroll-showcase .expertise-orbit::after{content:"";position:absolute;inset:30px -45px;border:1px solid var(--red);border-radius:50%;transform:rotate(55deg)}
.scroll-showcase .expertise-orbit::after{transform:rotate(-55deg)}
.scroll-showcase .service{position:absolute;inset:15px 0 20px;display:flex;flex-direction:column;justify-content:center;gap:26px;border:0;padding:40px 6%;background:var(--ink);color:var(--paper);transform-origin:50% 90%;will-change:transform,opacity;transition:none;overflow:hidden}
.scroll-showcase .service:nth-of-type(3){background:var(--red);color:var(--ink)}
.scroll-showcase .service:nth-of-type(4){background:var(--paper);color:var(--ink);border:1px solid var(--ink)}
.scroll-showcase .service::before{display:none}
.scroll-showcase .service-number{position:absolute;right:2%;bottom:-.17em;font-family:Arial,Helvetica,sans-serif;font-size:clamp(220px,28vw,440px);line-height:1;font-weight:700;letter-spacing:-.09em;color:currentColor;opacity:.09;pointer-events:none;transform:translateX(var(--number-shift,0px));}
.scroll-showcase .service h3{font-size:clamp(40px,5.8vw,86px);line-height:.98;letter-spacing:-.055em;max-width:850px;color:inherit;position:relative;transform:translateX(var(--title-shift,0px));transition:none}
.scroll-showcase .service p{font-size:18px;max-width:550px;color:inherit;position:relative;line-height:1.6}
.scroll-showcase .expertise-rail{display:flex;align-items:center;gap:25px;margin-top:12px}
.scroll-showcase .expertise-meter{height:2px;flex:1;background:var(--line);overflow:hidden}
.scroll-showcase .expertise-meter i{height:100%;display:block;background:var(--red);transform:scaleX(var(--service-progress,0));transform-origin:left}
}

.brand .brand-logo{display:block;width:210px;height:auto}
@media(max-width:760px){.brand .brand-logo{width:175px}}

/* Accessibility baseline: readable contrast, reflow, keyboard focus, optional motion. */
:root{--accent-text:#b42d17}
::selection{background:var(--ink);color:var(--paper)}
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:4px;box-shadow:0 0 0 7px var(--paper)}
.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--ink);color:var(--paper);padding:16px;transform:translateY(-180%)}.skip-link:focus{transform:none}
main:focus{outline:none}
nav a{min-height:44px;display:inline-flex;align-items:center}nav{flex-wrap:wrap;gap:24px}
nav a:hover,.person .role,.index span:first-child,.service:hover h3,.email:hover{color:var(--accent-text)}
.scroll-showcase .service:hover h3{color:inherit}
.footer-inner a:hover{color:var(--paper);text-decoration:underline}

.hero-line{overflow:visible}.hero h1{font-size:clamp(48px,8.5vw,130px);line-height:1.05}
.hero-line .period{color:var(--accent-text)!important}

.accessibility-note{padding:35px 0 50px;border-top:1px solid var(--line)}.accessibility-note h2{font-size:22px;font-weight:500}.accessibility-note p{max-width:760px;line-height:1.65;font-size:16px}.accessibility-note a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.email{overflow-wrap:anywhere;display:block}.contact-foot{min-width:0}.contact h2{font-size:clamp(38px,7vw,100px);overflow-wrap:anywhere}
.mono{font-size:12px}.footer-inner .mono{font-size:12px}.hero-top{flex-wrap:wrap;gap:12px}
@media(max-width:760px){header{height:auto;min-height:85px;flex-wrap:wrap;padding:12px 0;gap:10px}nav{width:100%;gap:8px 20px}nav a:not(.contact-nav){display:inline-flex}.hero h1{font-size:clamp(36px,9vw,68px)}.hero{min-height:0;padding:35px 0}.hero-copy{font-size:17px}.hero-detail,.hero-top{font-size:11px}.section-heading h2{font-size:34px}.contact h2{font-size:clamp(34px,9vw,62px)}.service h3{overflow-wrap:anywhere}.email{font-size:clamp(17px,5vw,26px)}}
@media print{.scroll-progress,.skip-link{display:none}#expertise.scroll-showcase{height:auto}.scroll-showcase .expertise-pin{position:static;height:auto;overflow:visible;display:block}.scroll-showcase .service{position:static;transform:none!important;opacity:1!important;background:white;color:black;display:block;padding:20px 0}.scroll-showcase .service h3{transform:none!important}.expertise-orbit,.expertise-rail,.service-number{display:none}.hero::before{display:none}}
.scroll-showcase .service:nth-of-type(3){color:#111111}
.person:hover .initial{background:var(--accent-text);color:var(--paper)}
.hero .hero-link:focus-visible{outline-color:var(--ink)}
@media(forced-colors:active){.hero::before,.expertise-orbit{display:none}.hero .hero-link{border:2px solid LinkText}}

.team-grid{grid-template-columns:minmax(0,1fr) repeat(2,minmax(0,1.5fr))}
.person{min-width:0}
.person-top{min-height:128px;gap:16px}
.person-photo{display:block;width:96px;max-width:100%;height:auto;flex:0 0 96px;border:1px solid var(--line)}
@media(max-width:760px){.team-grid{grid-template-columns:minmax(0,1fr)}.person-top{min-height:0}}


/* Equal partners: editorial portraits and simple-by-design statement. */

.people-editorial{padding-top:90px;padding-bottom:80px}
.people-editorial .section-heading{margin-bottom:54px}
.people-editorial .section-heading h2{font-size:clamp(45px,5.5vw,76px);line-height:1;letter-spacing:-.06em}
.people-intro{font-size:17px;line-height:1.65;max-width:590px;margin:26px 0 0;color:var(--muted)}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.partner{border-top:1px solid var(--ink);padding-top:28px;min-width:0;display:flex;flex-direction:column}
.partner-top{display:flex;justify-content:space-between;align-items:center;gap:18px}
.partner-label{color:var(--accent-text);margin:0 0 22px;font-size:10px}
.partner h3{font-size:clamp(35px,3.7vw,54px);font-weight:500;line-height:1;letter-spacing:-.055em;margin:0 0 12px}
.partner-discipline{font-size:14px;margin:0;color:var(--muted)}
.portrait{width:134px;height:158px;flex:0 0 134px;overflow:hidden;position:relative;background:#deded7}
.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%;filter:grayscale(.9);transition:filter .6s}
.portrait-lu img{position:absolute;width:430%;max-width:none;height:auto;left:-163%;top:50%;transform:translateY(-36%)}
.partner:hover .portrait img{filter:grayscale(0)}
.partner-bio{font-size:16px;line-height:1.75;color:var(--muted);margin:28px 0;max-width:470px;flex:1}
.partner-bottom{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:18px;border-top:1px solid var(--line);font-size:10px}
.partner-bottom span::before{content:'+';color:var(--accent-text);margin-right:9px}
.simple-statement{margin-top:64px;background:var(--ink);color:var(--paper);padding:44px;display:grid;grid-template-columns:1fr 1.25fr;gap:60px}
.simple-statement h3{font-size:clamp(44px,5.6vw,78px);line-height:.98;font-weight:500;letter-spacing:-.055em;margin:26px 0 0}
.simple-statement h3 em{font-style:normal;color:#ff8b72}
.simple-body{align-self:center}.simple-body .simple-lead{font-size:clamp(23px,2.4vw,32px);line-height:1.2;letter-spacing:-.025em;margin:0 0 22px;color:var(--paper)}
.simple-body p{font-size:15px;line-height:1.7;color:#d1d1c9;margin:0}
.simple-principles{display:flex;flex-wrap:wrap;gap:14px 25px;margin-top:28px;padding-top:20px;border-top:1px solid #66675f;font-size:10px}
@media(max-width:900px){.partners{gap:32px}.portrait{width:100px;height:130px;flex-basis:100px}.partner-label{max-width:170px}.simple-statement{gap:32px;padding:32px}}
@media(max-width:620px){.people-editorial{padding-top:45px}.partners{grid-template-columns:1fr;gap:36px}.partner-top{gap:15px}.portrait{width:110px;height:132px;flex-basis:110px}.partner h3{font-size:40px}.simple-statement{grid-template-columns:1fr;padding:28px;gap:32px;margin-top:42px}.simple-statement h3{font-size:58px}.partner-bio{max-width:none}.people-editorial .section-heading{margin-bottom:34px}}
@media(prefers-reduced-motion:reduce){.portrait img{transition:none}}

/* Portrait mounts: offset colour and restrained print registration details. */
.portrait-frame{position:relative;flex:0 0 134px;width:134px;margin:15px 12px 14px 8px;isolation:isolate}
.portrait-frame::before{content:"";position:absolute;inset:9px -9px -9px 9px;background:#b9bcb3;z-index:-1;transition:transform .45s ease}
.portrait-frame .portrait{width:100%;box-shadow:0 0 0 4px var(--paper)}
.portrait-registration{position:absolute;top:-20px;left:0;font:9px/1 'Courier New',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.portrait-corners{position:absolute;inset:-6px;pointer-events:none;background:linear-gradient(var(--ink),var(--ink)) left top/15px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) left top/1px 15px no-repeat,linear-gradient(var(--ink),var(--ink)) right bottom/15px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) right bottom/1px 15px no-repeat}
@media(hover:hover){.partner:hover .portrait-frame::before{transform:translate(3px,3px)}}
@media(max-width:900px){.portrait-frame{width:100px;flex-basis:100px}}
@media(max-width:620px){.portrait-frame{width:110px;flex-basis:110px}}
@media(prefers-reduced-motion:reduce){.portrait-frame::before{transition:none}}
@media(forced-colors:active){.portrait-frame{outline:1px solid CanvasText}}

html[lang^="fr"] .simple-statement h3{font-size:clamp(36px,4.2vw,60px)}
.partner-top>div:first-child{min-width:0}
