/* Studio: wider resting portraits, restrained expansion. */
.team-strip{flex-basis:clamp(290px,27vw,360px);height:340px}.studio:has(.team-person:hover) .team-strip,.studio:has(.team-person:focus-within) .team-strip,.studio:has(.team-person.is-expanded) .team-strip{flex-basis:clamp(360px,34vw,440px)}.team-person.is-expanded,.team-person:focus-within{flex:2 1 0}.team-person.is-expanded .team-info{opacity:1}.studio-copy p{max-width:62ch;color:#bfbfb8;line-height:1.65}.studio-copy p:first-child{color:var(--ink);font-size:17px}.team-person .team-info{padding:16px}.team-person h3{font-size:20px}
@media(hover:hover) and (pointer:fine){.team-person:hover{flex:2 1 0}}
/* Continuous logo strip. Both copies have identical geometry for a seamless loop. */
.clients-head{display:block;margin-bottom:46px}.clients-head h2{font-size:clamp(28px,3vw,48px);max-width:34ch}.clients-marquee{overflow:hidden;margin-inline:calc(-1 * var(--pad));mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent)}.clients-track{display:flex;width:max-content;animation:client-drift 34s linear infinite;animation-play-state:paused}.clients-group{display:flex;align-items:center;gap:clamp(40px,5vw,80px);padding-right:clamp(40px,5vw,80px)}.clients-marquee.is-running .clients-track{animation-play-state:running}.clients-marquee .client-logo{flex:0 0 clamp(160px,15vw,230px);width:clamp(160px,15vw,230px);height:115px;min-height:0;padding:0;border:0}.clients-marquee .client-logo img{width:100%;max-width:210px;height:82px;max-height:82px;object-fit:contain;filter:brightness(0) invert(1);opacity:.86}.clients-controls{display:flex;justify-content:flex-end;margin-top:28px}.clients-pause{border:0;border-bottom:1px solid #ffffff50;background:none;padding:5px 0;color:#bababa;font-size:11px}.clients-pause:hover{color:#fff}@keyframes client-drift{to{transform:translateX(-50%)}}
/* Menu occupies the visual centre, leaving the fixed header clear. */
.menu{display:flex;flex-direction:column;justify-content:center;padding:110px var(--pad) 70px}.menu ol{width:min(780px,100%);margin-inline:auto}.menu a{text-transform:uppercase;transition:color .2s ease,opacity .2s ease}.menu a span{font-size:clamp(36px,5.7vw,78px);font-weight:600;transition:transform .25s var(--ease)}.menu>p{width:min(780px,100%);margin:22px auto 0}.menu li{border-color:#ffffff26}.menu a:focus-visible{color:#fff}.menu a:focus-visible span{transform:translateX(12px)}
@media(hover:hover) and (pointer:fine){.menu ol:has(a:hover) a{opacity:.3}.menu ol a:hover{opacity:1;color:#fff}.menu a:hover span{transform:translateX(12px)}}
/* Word masks retain the site's typeface and accessible text. */
.stagger-mask{display:inline-block;overflow:clip;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}.stagger-word{display:inline-block}.intro{isolation:isolate}.intro-particles{position:absolute;inset:0;width:100%;height:100%;z-index:-1;opacity:.75}#intro-mark{position:relative;z-index:1}
/* Footer appreciation and return navigation. */
.footer-appreciation{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:55px;padding-bottom:25px;border-bottom:1px solid #0003}.footer-appreciation>div>p:first-child{font-size:18px;margin:0 0 8px}.like-feedback{min-height:1.5em;margin:0;font-size:11px;color:#555}.pulse-heart{display:flex;align-items:center;gap:15px;flex-shrink:0;background:transparent;color:#111;border:1px solid #1115;border-radius:40px;padding:13px 19px;min-width:166px;justify-content:center;font-size:12px;transition:background .2s ease,color .2s ease}.heart-icon{position:relative;display:grid;place-items:center;width:24px;height:24px}.pulse-heart svg{width:23px;height:23px;fill:transparent;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;transition:fill .15s ease}.pulse-heart[aria-pressed=true]{background:#111;color:#ecece7}.pulse-heart[aria-pressed=true] svg{fill:currentColor}.pulse-heart:hover{border-color:#111}.heart-ring{position:absolute;inset:-4px;border:1px solid currentColor;border-radius:50%;opacity:0;pointer-events:none}.footer-bottom{align-items:center}.back-to-top{display:flex;align-items:center;gap:12px;color:#fff;font-size:10px}.back-to-top .icon{width:18px;height:18px;animation:top-arrow 2s var(--ease) infinite;animation-play-state:paused}.back-to-top:hover .icon,.back-to-top:focus-visible .icon{animation-play-state:running}@keyframes top-arrow{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:1000px) and (min-width:701px){.studio{gap:25px}.team-strip{flex-basis:270px}.studio:has(.team-person:hover) .team-strip,.studio:has(.team-person:focus-within) .team-strip,.studio:has(.team-person.is-expanded) .team-strip{flex-basis:340px}}
@media(max-width:700px){.team-strip{flex-basis:auto;width:100%;height:290px}.studio:has(.team-person:hover) .team-strip,.studio:has(.team-person:focus-within) .team-strip,.studio:has(.team-person.is-expanded) .team-strip{flex-basis:auto}.studio-copy p:first-child{font-size:15px}.studio-copy p{font-size:14px}.clients-marquee .client-logo{width:145px;flex-basis:145px;height:90px}.clients-marquee .client-logo img{height:65px}.clients-group{gap:40px;padding-right:40px}.menu{padding:90px var(--pad) 45px}.menu a{grid-template-columns:35px 1fr;padding-block:13px}.menu a span{font-size:clamp(30px,8vw,44px)}.footer-appreciation{align-items:flex-start;gap:16px;margin-bottom:40px}.footer-appreciation>div>p:first-child{font-size:16px}.pulse-heart{padding:12px;min-width:135px;gap:8px}.like-feedback{max-width:24ch}.footer-bottom{gap:18px}.back-to-top{margin-left:auto}}
@media(prefers-reduced-motion:reduce){body:not(.motion-full) .clients-track{animation:none!important}body:not(.motion-full) .clients-group[aria-hidden=true]{display:none}body:not(.motion-full) .clients-marquee{overflow-x:auto}body:not(.motion-full) .clients-pause{display:none}body:not(.motion-full) .back-to-top .icon{animation:none}}
body.reduce-motion .clients-track{animation:none!important}body.reduce-motion .clients-group[aria-hidden=true]{display:none}body.reduce-motion .clients-marquee{overflow-x:auto}body.reduce-motion .clients-pause{display:none}body.reduce-motion .back-to-top .icon{animation:none}
.back-to-top,.language-picker{font-size:11px}.back-to-top{min-height:30px}
/* Text entered on separate lines stays on separate lines, including staggered titles. */
h1,h2,h3,p,.service-description,.service-items,address{white-space:pre-line}.services-title{max-width:none}.services-desktop-title,.services-mobile-title{white-space:pre-line}
/* Services use the actual portfolio imagery rather than grey slabs. */
.service-card{background:#111;color:#fff;border:0;min-height:168px;padding:22px;justify-content:space-between}.service-card:before{background-image:linear-gradient(180deg,#080808a8,#080808db),var(--service-image);filter:none;opacity:1;inset:0;transition:transform .6s var(--ease),opacity .3s ease}.service-heading{font-size:clamp(21px,2vw,30px);max-width:none}.service-trigger .icon{display:block;width:20px;height:20px;flex-shrink:0;transform:rotate(-45deg);transition:transform .25s var(--ease)}.service-description{color:#ecece7;max-width:44ch;font-size:12px;line-height:1.5}.service-details{position:relative;margin-top:28px}.service-card:focus-within:before{transform:scale(1.055)}.service-card:focus-within .service-trigger .icon{transform:rotate(0)}
@media(hover:hover) and (pointer:fine){.service-card:hover:before{transform:scale(1.055)}.service-card:hover .service-trigger .icon{transform:rotate(0)}}
/* A fixed centre line keeps the studio copy from shifting with the portraits. */
.studio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4vw;align-items:center;justify-content:normal}.studio .team-strip,.studio:has(.team-person:hover) .team-strip,.studio:has(.team-person:focus-within) .team-strip,.studio:has(.team-person.is-expanded) .team-strip{width:min(100%,465px);flex-basis:auto}.studio-copy{justify-self:start;width:100%;max-width:55ch;padding-right:clamp(20px,3vw,48px)}.studio-copy p{max-width:none}
.clients-head h2{font-size:clamp(38px,4.5vw,72px);max-width:28ch;line-height:1.08}.clients-controls{margin-top:44px}.clients-pause{font-size:11px;border:0;padding:4px 0;min-height:28px;color:#aaa}
/* The like sits precisely at the transition from the light contact to the dark footer. */
.contact-layout{margin-bottom:55px}.footer-appreciation{background:#101010;color:#fff;margin:0 calc(-1 * var(--pad));padding:20px var(--pad);border:0;border-bottom:1px solid #ffffff20;align-items:center}.footer-appreciation>div>p:first-child{font-size:15px;margin-bottom:5px}.footer-appreciation .like-feedback{color:#b5b5af}.footer-appreciation .pulse-heart{color:#fff;border-color:#ffffff60;padding:10px 16px;min-width:150px}.footer-appreciation .pulse-heart[aria-pressed=true]{background:#fff;color:#101010}.footer-appreciation .pulse-heart:hover{border-color:#fff}.footer-grid{padding-top:30px}
.depth-surface{isolation:isolate}.depth-surface:not(.menu){position:relative}.depth-particles,.logo-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.depth-particles{z-index:-1}.logo-particles{z-index:2}.intro-particles{pointer-events:none}
@media(max-width:700px){.services-title{font-size:32px}.service-card{min-height:0;padding:0;background:transparent;color:#080808;border-top:1px solid #0004}.service-card:before{opacity:0}.service-card .service-trigger{padding:18px 0}.service-card .service-description{color:inherit}.service-details{margin-top:0}.service-card.is-expanded{color:#fff}.service-card.is-expanded:before{opacity:1}.service-trigger .icon{transform:rotate(0)}.service-card.is-expanded .service-trigger .icon{transform:rotate(90deg)}.studio{display:flex;flex-direction:column;align-items:stretch;gap:30px}.studio .team-strip,.studio:has(.team-person:hover) .team-strip,.studio:has(.team-person:focus-within) .team-strip,.studio:has(.team-person.is-expanded) .team-strip{width:100%;flex-basis:auto}.studio-copy{max-width:none;padding-right:0}.clients-head h2{font-size:34px}.clients-controls{margin-top:30px}.footer-appreciation{padding-block:18px;gap:14px}.footer-appreciation .pulse-heart{min-width:130px;padding:10px}.footer-appreciation>div>p:first-child{font-size:14px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-full) .depth-particles,body:not(.motion-full) .logo-particles{display:none}}
body.reduce-motion .depth-particles,body.reduce-motion .logo-particles{display:none}
#services-title{text-wrap:balance}
.scroll-reveal-source{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.scroll-reveal-word,.scroll-reveal-mask,.scroll-reveal-char{display:inline-block}
.scroll-reveal-mask{overflow:clip;vertical-align:bottom;padding-bottom:.08em;margin-bottom:-.08em}
.process.section{background:#ecece7;color:#080808;padding-block:clamp(100px,10vw,162.5px)}
.process .process-list li{padding-block:31.25px;border-color:#08080833}
.process .process-list span,.process .process-list p{color:#080808}
@media(max-width:700px){.process.section{padding-block:81.25px}.process .process-list li{padding-block:25px}}

.motion-opt-in{position:fixed;z-index:145;left:16px;bottom:max(16px,env(safe-area-inset-bottom));min-height:44px;padding:12px 18px;border:1px solid #fff8;background:#111;color:#fff;font-size:12px;font-weight:600;box-shadow:0 4px 20px #0003}.motion-opt-in[hidden]{display:none}

/* Mobile: two independently looping rows, with different client selections. */
.clients-track-secondary{display:none}
@media(max-width:700px){
 .clients-track{animation-duration:24s}
 .clients-track-secondary{display:flex;animation-direction:reverse;margin-top:12px}
 #clients-track .client-logo[data-mobile-row="2"],.clients-track-secondary .client-logo[data-mobile-row="1"]{display:none}
 .clients-marquee .client-logo{width:125px;flex-basis:125px;height:80px}
 .clients-marquee .client-logo img{height:60px;max-height:60px}
 .clients-group{gap:28px;padding-right:28px}
}

/* Mobile navigation: brand, language/contact, then the menu at the outer edge. */
.site-header>.brand{grid-column:1;grid-row:1}
.site-header>.menu-toggle{grid-column:2;grid-row:1}
.site-header>.header-actions{grid-column:3;grid-row:1}
.menu-icon{display:none}
@media(max-width:700px){
 .site-header{display:flex;gap:8px;padding-inline:var(--pad)}
 .site-header>.brand{flex-shrink:0;margin-right:auto}
 .site-header>.header-actions{gap:8px;min-width:0}
 .site-header .language-picker summary{display:grid;place-items:center;min-width:32px;min-height:44px;padding:0}
 .site-header .header-contact{min-height:36px;padding:8px 10px;font-size:9.5px!important;gap:6px}
 .site-header .header-contact span{max-width:none;white-space:nowrap;line-height:1.1}
 .site-header .header-contact .icon{width:12px;height:12px}
 .site-header>.menu-toggle{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0}
 .site-header .menu-label{display:none}
 .menu-icon{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
 .menu-icon path{transform-origin:center;transition:transform .2s var(--ease),opacity .2s ease}
 .menu-open .menu-icon path:first-child{transform:translateY(6px) rotate(45deg);transform-origin:12px 6px}
 .menu-open .menu-icon path:nth-child(2){opacity:0}
 .menu-open .menu-icon path:last-child{transform:translateY(-6px) rotate(-45deg);transform-origin:12px 18px}
}
@media(prefers-reduced-motion:reduce){body:not(.motion-full) .menu-icon path{transition:none}}
body.reduce-motion .menu-icon path{transition:none}
