/* Approved homepage motion. Fixed type metrics and guarded first paint. */
html.motion-ready{--motion-ease:cubic-bezier(.16,1,.3,1);--motion-strength:1}
.motion-ready body{overflow-x:clip}
.motion-ready main h1,.motion-ready main h2,.motion-ready main h3{font-family:Manrope,Arial,sans-serif}
.motion-ready[data-font=roboto] main h1,.motion-ready[data-font=roboto] main h2,.motion-ready[data-font=roboto] main h3{font-family:'Roboto Preview',Arial,sans-serif}
.motion-ready .hero{padding-top:76px;isolation:isolate;position:relative}
.motion-ready .hero>.wrap{position:relative;z-index:1}
.motion-ready .hero h1{font-size:clamp(42px,5.9vw,94px);font-weight:300;line-height:1.12;letter-spacing:-.058em;max-width:1350px}
.motion-ready .hero h1 .homepage-font-accent{color:var(--red);display:inline-block;font-weight:400}
.motion-ready[data-font=serif] .hero h1 .homepage-font-accent{font-family:Instrument,Georgia,serif}
.motion-ready .hero-bottom{margin-top:34px;margin-bottom:65px}
.motion-ready .hero-intro{width:57%;max-width:780px}
.motion-ready .hero-intro>p{max-width:760px;font-size:15px;line-height:1.8}
.motion-ready .hero-scroll{align-self:center}
.motion-ready .hero-scroll .circle-arrow{position:relative;overflow:hidden;width:62px;height:62px;border-color:#e4002b55;color:var(--red)}
.motion-ready[data-motion=cinematic] .hero-scroll .circle-arrow{animation:motion-nudge 2.6s ease-in-out infinite}
@keyframes motion-nudge{0%,70%,100%{transform:translateY(0)}85%{transform:translateY(8px)}}
.motion-word{display:inline-block;white-space:pre;transform-origin:50% 85%;will-change:auto}
.motion-word-mask{display:inline-block;padding-bottom:.12em;margin-bottom:-.12em;vertical-align:baseline}
.motion-type{perspective:900px}
.motion-type .motion-word{backface-visibility:hidden}
.motion-ready .hero-photo{--motion-aperture:12%;--motion-radius:0px;--motion-photo-y:0px;margin-inline:0!important;clip-path:inset(0 var(--motion-aperture) round var(--motion-radius));border-radius:0;background:#242528;height:clamp(590px,78svh,870px);isolation:isolate;transform:translateZ(0)}
.motion-ready .hero-photo>img{height:116%!important;top:-8%;transform:translate3d(0,var(--motion-photo-y),0) scale(var(--motion-photo-scale,1.02))!important;object-position:50% 43%;transition:opacity .4s ease;will-change:transform}
.motion-ready .hero-photo-shade{background:linear-gradient(0deg,#0c0e10ee 0%,#12141966 55%,#1010100a 100%)}
.motion-ready .hero-photo .photo-label{left:calc(6vw + var(--motion-aperture)*.4);max-width:860px;bottom:110px;transition:none}
.motion-ready #hero-caption{font-size:clamp(38px,4.5vw,70px);line-height:1.06;letter-spacing:-.048em;max-width:840px;font-weight:370}
.motion-ready #hero-description{font-size:15px;line-height:1.7;max-width:760px}
.motion-ready .hero-photo-controls{left:calc(6vw + var(--motion-aperture)*.4);right:calc(6vw + var(--motion-aperture)*.4);bottom:32px}
.motion-ready .hero-slides{gap:18px}
.motion-ready .hero-slides button{position:relative;overflow:visible;font-size:12px;width:45px;min-height:38px}
.motion-ready .hero-slides button.is-active{width:100px}
.motion-ready .hero-slides button::before{content:'';position:absolute;left:0;top:-1px;height:2px;background:white;width:0}
.motion-ready[data-motion=cinematic] .hero-slides button.is-active::before{animation:motion-slide-progress 9s linear infinite}
@keyframes motion-slide-progress{to{width:100%}}
.motion-ready .hero-photo .site-photo-credit{left:calc(var(--motion-aperture) + 16px);top:16px}
.motion-ready #approach{position:relative;background:#f7f5f1;padding-block:125px;overflow:clip}
.motion-ready #approach .pillars-intro{grid-template-columns:1.85fr 1fr;gap:6vw;align-items:center}
.motion-ready #approach .pillars-intro h2{font-size:clamp(33px,3.75vw,60px);line-height:1.2;letter-spacing:-.048em}
.motion-ready #approach .approach-heading-line{white-space:normal!important}
.motion-ready #approach .approach-heading-line:last-child{color:var(--red)}
.motion-ready #approach .pillars-intro>p{font-size:16px;line-height:1.8}
.motion-ready #approach .pillars-grid{margin-top:65px;gap:32px}
.motion-ready #approach .pillars-grid article{position:relative;border-top:0;padding-top:25px}
.motion-ready #approach .pillars-grid article::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--red);transform-origin:left;transform:scaleX(var(--line-progress,1))}
.motion-ready #approach .pillar-orbit{display:block;pointer-events:none;position:absolute;border:1px solid #e4002b10;border-radius:50%;width:58vw;height:58vw;left:70%;top:0;transform:translateY(var(--orbit-y,0))}
.motion-ready #expertise{padding-block:125px}
.motion-ready #expertise .expertise-visual{overflow:clip;clip-path:inset(var(--image-inset,0%) 0)}
.motion-ready .expertise-visual>img{transform:translate3d(0,var(--secondary-drift,0px),0) scale(1.075)!important;transition:filter .45s;will-change:transform}
.motion-ready .expertise-row>button{transition:padding-left .5s var(--motion-ease),color .35s;background:linear-gradient(90deg,#e4002b05,transparent)}
.motion-ready .expertise-row>button:hover{padding-left:10px;color:var(--red)}
.motion-ready .expertise-row h3{transition:color .4s;line-height:1.25}
.motion-ready .expertise-row.is-active h3{color:var(--red)}
.motion-ready .project-image{overflow:clip}
.motion-ready .project-image img{transform:scale(1.035);transition:transform 1.2s var(--motion-ease),filter .8s}
.motion-ready .project-card:hover .project-image img{transform:scale(1.09)}
.motion-ready .project-info h3{transition:color .5s;color:var(--red)}
.motion-ready .project-card:hover .project-info h3{color:var(--ink)}
.motion-ready #where-we-work .review-map-visual{overflow:clip}
.motion-ready #where-we-work .review-project-key{position:relative}
.motion-ready .partner-logo-card,.motion-ready .partner-logo-grid>*{transition:transform .6s var(--motion-ease)}
.motion-ready .partner-logo-grid>*:hover{transform:translateY(-7px)}
.motion-ready .insight-card .resource-image,.motion-ready .insight-card .insight-image{overflow:clip}
.motion-ready .insight-card img{transition:transform 1.1s var(--motion-ease);transform:scale(1.01)}
.motion-ready .insight-card:hover img{transform:scale(1.065)}
.motion-ready .button{position:relative;overflow:hidden;transition:color .35s,background .35s,transform .45s var(--motion-ease)}
.motion-ready .button:hover{transform:translateY(-4px)}
.motion-ready #partner{position:relative;isolation:isolate;overflow:clip}
.motion-ready #partner::before{content:'';position:absolute;width:65vw;height:65vw;border:1px solid #fff5;border-radius:50%;left:57%;top:50%;z-index:-1;transform:translateY(-50%) scale(var(--partner-ring,1));pointer-events:none}
.motion-ready #partner::after{content:'';position:absolute;width:80vw;height:80vw;border:1px solid #ffffff22;border-radius:50%;left:48%;top:50%;z-index:-1;transform:translateY(-50%) scale(var(--partner-ring,1));pointer-events:none}
.motion-ready #partner .partnership-heading h2{font-family:Manrope,Arial,sans-serif;font-weight:400}
.motion-reveal{will-change:auto}
.motion-studio{position:fixed;right:20px;bottom:20px;z-index:85;color:#26282c;font:400 12px/1.5 Manrope,Arial,sans-serif;letter-spacing:0;max-width:calc(100vw - 32px);filter:drop-shadow(0 8px 22px #0002)}
.motion-studio summary{display:flex;align-items:center;gap:10px;background:#22252a;color:#fff;padding:14px 18px;cursor:pointer;border-radius:4px;list-style:none;font-size:12px;min-height:46px}
.motion-studio summary::-webkit-details-marker{display:none}
.motion-studio summary::after{content:'+';font-size:20px;line-height:1;margin-left:14px}
.motion-studio[open] summary::after{content:'−'}
.motion-studio summary .motion-live-dot{height:6px;width:6px;border-radius:50%;background:#ff3158}
.motion-studio summary small{color:#c9c9c9;font-size:10px;padding-left:6px;border-left:1px solid #ffffff40}
.motion-studio-panel{width:350px;max-width:calc(100vw - 32px);background:#fff;border:1px solid #dedede;padding:22px;border-radius:4px;margin-bottom:8px;position:absolute;bottom:100%;right:0;max-height:calc(100svh - 110px);overflow:auto}
.motion-studio-panel h2{font:600 15px/1.4 Manrope,Arial,sans-serif;letter-spacing:-.02em;margin:0 0 8px}
.motion-studio-panel p{font-size:11px;line-height:1.65;margin:0 0 18px;color:#65676c}
.motion-studio-panel label{display:block;margin-bottom:6px;font-size:11px;font-weight:600}
.motion-studio-panel select{width:100%;padding:10px;border:1px solid #c7c7c7;background:white;border-radius:0;margin-bottom:15px;font-size:12px}
.motion-studio-actions{display:flex;gap:8px;margin-bottom:18px}
.motion-studio-actions button{border:1px solid #dedede;padding:9px 12px;font-size:11px;flex:1;min-height:42px;text-align:center}
.motion-studio-actions button:first-child{color:#fff;border-color:#E4002B;background:#E4002B}
.motion-studio-links{display:flex;flex-direction:column;gap:9px;border-top:1px solid #e5e5e5;padding-top:15px}
.motion-studio-links a{font-size:11px;text-decoration:underline;text-underline-offset:3px}
.motion-studio button:disabled{opacity:.5;cursor:default}
.motion-status{margin:12px 0 0!important;font-size:10px!important}
.motion-local-label{position:fixed;left:20px;bottom:22px;z-index:70;display:flex;align-items:center;gap:8px;font:500 9px/1.3 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.1em;background:#fffc;backdrop-filter:blur(8px);padding:9px 11px;color:#4e5055;border:1px solid #ddd}
.motion-local-label::before{content:'';height:5px;width:5px;background:#E4002B;border-radius:50%}
.motion-ready[data-motion=calm] .hero-scroll .circle-arrow,.motion-ready[data-motion=calm] .hero-slides button::before{animation:none}
.motion-ready[data-motion=off] .hero-photo{clip-path:none}
.motion-ready[data-motion=off] .hero-photo>img{transform:none!important}
.motion-ready[data-motion=off] .hero-scroll .circle-arrow,.motion-ready[data-motion=off] .hero-slides button::before{animation:none}
.motion-ready[data-motion=off] .expertise-visual>img{transform:none!important}
.motion-ready[data-motion=off] main *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
@media(max-width:899px){.motion-ready .hero{padding-top:50px}.motion-ready .hero h1{font-size:6vw}.motion-ready .hero-intro{width:85%}.motion-ready .hero-bottom{margin-bottom:38px}.motion-ready #approach{padding-block:80px}.motion-ready #approach .pillars-intro{grid-template-columns:1fr}.motion-ready #approach .pillars-intro>p{max-width:580px}.motion-ready #approach .pillars-intro h2{font-size:5vw}.motion-ready #expertise{padding-block:80px}.motion-ready .hero-photo{height:700px}.motion-ready .hero-photo .photo-label{left:6vw;right:6vw}.motion-ready #hero-caption{font-size:48px}.motion-ready #hero-description{font-size:14px}.motion-local-label{font-size:8px;left:12px;bottom:20px;max-width:125px}.motion-studio{right:12px;bottom:16px}}
@media(max-width:599px){.motion-ready .hero{padding-top:38px}.motion-ready .hero h1{font-size:9.4vw;line-height:1.15;letter-spacing:-.052em}.motion-ready .hero h1 br{display:none}.motion-ready .hero h1 .homepage-font-accent{display:block;margin-top:5px}.motion-ready .hero-intro{width:100%}.motion-ready .hero-intro>p{font-size:13px;line-height:1.8}.motion-ready .hero-bottom{margin-top:26px;margin-bottom:30px}.motion-ready .hero-photo{height:700px;min-height:0;max-height:none}.motion-ready .hero-photo>img{object-position:55% center}.motion-ready #hero-caption{font-size:37px;line-height:1.1}.motion-ready #hero-description{font-size:12px;line-height:1.75}.motion-ready .hero-photo .photo-label{bottom:100px}.motion-ready .hero-photo-controls{left:6vw;right:6vw}.motion-ready #approach{padding-block:65px}.motion-ready #approach .pillars-intro h2{font-size:9vw}.motion-ready #approach .pillars-intro>p{font-size:14px}.motion-ready #approach .pillars-grid{margin-top:42px}.motion-ready #approach .pillars-grid h3{margin-top:0}.motion-ready #expertise{padding-block:65px}.motion-local-label{display:none}.motion-studio summary{padding:12px 15px;font-size:11px}.motion-studio summary small{font-size:9px}.motion-studio-panel{padding:19px}.motion-ready .expertise-row>button:hover{padding-left:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-ready *, .motion-ready *::before,.motion-ready *::after{animation:none!important;transition:none!important}.motion-word,.motion-reveal{transform:none!important;filter:none!important;opacity:1!important}.motion-ready .hero-photo{clip-path:none!important}.motion-ready .hero-photo>img,.motion-ready .expertise-visual>img{transform:none!important}}

/* Arm entry effects before the first visible frame. Layout is static from HTML. */
html.motion-preparing:not([data-motion=off]):not(.motion-fallback) :is(main h1,.hero-intro,.hero-scroll,#hero-photo,#approach h2,#expertise .section-heading h2,#interventions .section-heading h2,#review-map-heading,#insights .section-heading h2,#partners h2,#partner h2,#approach .pillars-grid article,#expertise .expertise-row,#interventions .project-card,#insights .insight-card,#partners .partner-logo-grid>*){opacity:0}
html.motion-ready:not([data-motion=off]):not(.motion-fallback) .motion-type.motion-pending .motion-word,
html.motion-ready:not([data-motion=off]):not(.motion-fallback) .motion-reveal.motion-pending{opacity:0}
html.motion-fallback .motion-pending,html.motion-fallback .motion-pending .motion-word{opacity:1!important}
@media(prefers-reduced-motion:reduce){html.motion-preparing :is(main h1,.hero-intro,.hero-scroll,#hero-photo,#approach h2,#expertise .section-heading h2,#interventions .section-heading h2,#review-map-heading,#insights .section-heading h2,#partners h2,#partner h2,#approach .pillars-grid article,#expertise .expertise-row,#interventions .project-card,#insights .insight-card,#partners .partner-logo-grid>*),.motion-pending,.motion-pending .motion-word{opacity:1!important}}
