.about-clients-page{padding:140px 0 30px;background:#000;overflow:hidden}
.about-intro{display:grid;grid-template-areas:"portrait bio";grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr);align-items:start;gap:clamp(32px,6vw,80px);max-width:1250px;margin:auto;padding:0 6vw 85px}
.about-portrait{--cinema-duration:4.8s;grid-area:portrait;justify-self:start;position:relative;isolation:isolate;container-type:inline-size;width:100%;max-width:380px;aspect-ratio:2/3;overflow:hidden;background:#171717}
.about-portrait>img{width:100%;height:100%;object-fit:cover;transform-origin:50% 32%;animation:cinema-portrait-reveal var(--cinema-duration) cubic-bezier(.22,.61,.36,1) 1 both}
.about-portrait::before{content:"";position:absolute;inset:-20% -70%;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 38%,#fff1 47%,#fff3 50%,#fff1 53%,transparent 62%);animation:cinema-light-sweep var(--cinema-duration) ease-in-out 1 both}
.cinema-aura{position:absolute;inset:-8%;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 28%,transparent 17%,#e4eaff17 31%,#ffffff0c 39%,transparent 60%);animation:cinema-aura-glow var(--cinema-duration) ease-in-out 1 both}
.cinema-curtain{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.cinema-curtain>span{position:absolute;left:0;right:0;height:56%;animation-duration:var(--cinema-duration);animation-timing-function:cubic-bezier(.76,0,.24,1);animation-iteration-count:1;animation-fill-mode:both}
.cinema-curtain>span:first-child{top:0;background:linear-gradient(#050505 78%,#050505bb 90%,transparent);transform:translateY(-101%);animation-name:cinema-curtain-top}
.cinema-curtain>span:last-child{bottom:0;background:linear-gradient(0deg,#050505 78%,#050505bb 90%,transparent);transform:translateY(101%);animation-name:cinema-curtain-bottom}
.cinema-quiet .about-portrait>img,.cinema-quiet .about-portrait::before,.cinema-quiet .cinema-curtain>span,.cinema-quiet .cinema-aura{animation-play-state:paused}
/* Start only when the portrait is visible; the completed entrance stays static. */
.about-clients-page:not(.cinema-entering) .about-portrait>img,
.about-clients-page:not(.cinema-entering) .about-portrait::before,
.about-clients-page:not(.cinema-entering) .cinema-aura,
.about-clients-page:not(.cinema-entering) .cinema-curtain>span{animation:none}
@keyframes cinema-portrait-reveal{
 0%,5%{opacity:0;transform:scale(1.1);filter:brightness(.3) saturate(.75) blur(2px)}
 45%{opacity:1;transform:scale(1.045);filter:brightness(.75) saturate(.9) blur(0)}
 100%{opacity:1;transform:scale(1);filter:brightness(1) saturate(1) blur(0)}
}
@keyframes cinema-aura-glow{0%,10%{opacity:0;transform:scale(.96)}55%{opacity:.85;transform:scale(1)}100%{opacity:0;transform:scale(1.06)}}
@keyframes cinema-curtain-top{0%,5%{transform:translateY(0)}80%,100%{transform:translateY(-101%)}}
@keyframes cinema-curtain-bottom{0%,5%{transform:translateY(0)}80%,100%{transform:translateY(101%)}}
@keyframes cinema-light-sweep{
 0%,18%{opacity:0;transform:translateX(-42%)}
 55%{opacity:.4}
 90%,100%{opacity:0;transform:translateX(42%)}
}
.about-bio{grid-area:bio;align-self:start;min-width:0}
.about-bio h1{margin:0 0 26px}
.about-name{display:inline-block}
.name-entering .about-name{animation:cinema-name-reveal 4.8s cubic-bezier(.22,.61,.36,1) 1 both}
.name-quiet .about-name{animation-play-state:paused}
@keyframes cinema-name-reveal{
 0%,8%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(.55em);filter:blur(5px);text-shadow:none}
 55%{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0);filter:blur(0);text-shadow:0 0 18px #fff6}
 100%{opacity:1;clip-path:inset(0 0 0 0);transform:none;filter:none;text-shadow:none}
}
.about-bio p{margin:0 0 21px;font-size:13px;line-height:1.95;color:#b7b7b7}
.about-bio p:last-of-type{color:#f1f1f1}
/* Preserve each supplied logo inside its own viewport; move complete rows horizontally. */
.client-wall{padding:62px 0 60px;scroll-margin-top:100px;border-top:1px solid #252525;background:#000;color:#f8f6f3}
.client-wall-inner{max-width:1250px;margin:0 auto;padding:0 6vw}
.client-wall-heading{margin:0 0 36px;text-align:left}
.client-wall-heading h2{max-width:900px;margin:0 0 25px;font-family:var(--serif);font-size:clamp(36px,4.6vw,64px);font-weight:400;line-height:1.1;letter-spacing:-1.5px}
.client-experience{display:flex;flex-wrap:wrap;gap:35px;color:#aaa;font-size:11px}
.client-experience>span{display:flex;align-items:baseline;gap:9px}
.client-experience strong{color:#f8f6f3;font-size:23px;font-weight:500;letter-spacing:-.6px}
.client-marquees{--client-visible:8;display:grid;gap:14px;width:100%;min-width:0}
.client-marquee{container-type:inline-size;overflow:hidden;min-width:0;width:100%}
.client-track{display:flex;width:max-content;will-change:transform}
.client-group{display:flex;flex:none;list-style:none;padding:0;margin:0}
.client-logo{flex:none;display:flex;align-items:center;justify-content:center;width:calc(100cqw / var(--client-visible));height:clamp(68px,12svh,112px);padding:10px 12px}
.client-logo svg{display:block;width:100%;height:100%;overflow:hidden}
.client-logo-monochrome svg{filter:grayscale(1) invert(1) brightness(2) contrast(1.4)}
.clients-ready .client-track{animation:client-row-scroll var(--client-duration,100s) linear infinite}
.clients-quiet .client-track{animation-play-state:paused}
@keyframes client-row-scroll{from{transform:translateX(0)}to{transform:translateX(-33.333333%)}}
@media(min-width:1450px){.about-intro,.client-wall-inner{padding-left:60px;padding-right:60px}}
@media(max-width:900px){.about-intro{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:30px;padding-left:30px;padding-right:30px}.about-bio p{font-size:13px;line-height:1.85}.client-wall-inner{padding-left:30px;padding-right:30px}}
/* Leave room for the fixed header, title, counts and all four logo rows on laptops. */
@media(min-width:701px) and (max-height:900px){
 .client-wall{padding-top:24px;padding-bottom:32px;scroll-margin-top:100px}
 .client-wall-heading{margin-bottom:20px}
 .client-wall-heading h2{font-size:clamp(32px,3.4vw,46px);margin-bottom:14px}
 .client-experience{line-height:1.5}
}
@media(min-width:701px) and (max-width:900px){.client-marquees{--client-visible:5}.client-logo{height:100px}}
@media(max-width:700px){
 .about-clients-page{padding-top:108px;padding-bottom:15px}
 .about-intro{gap:24px;padding:0 24px 48px}
 .about-portrait{max-width:290px}
 .about-bio{max-width:570px;margin:0}.about-bio h1{margin-bottom:22px}.about-bio p{font-size:13px;line-height:1.9;margin-bottom:20px}
 .client-wall{padding:40px 0 30px;scroll-margin-top:92px}
 .client-wall-inner{padding:0 24px}.client-wall-heading{margin-bottom:25px}.client-wall-heading h2{font-size:38px;letter-spacing:-1px;max-width:350px;margin-bottom:22px}
 .client-experience{gap:28px;font-size:10px}.client-experience strong{font-size:21px}
 .client-marquees{--client-visible:3;gap:10px}
 .client-logo{height:100px;padding:10px}
}
@media(max-width:560px){
 .about-intro{grid-template-areas:"portrait" "bio";grid-template-columns:minmax(0,1fr);gap:30px}
}
@media(prefers-reduced-motion:reduce){
 .about-portrait>img{animation:none!important;opacity:1;transform:none;filter:none}
 .about-portrait::before,.cinema-curtain,.cinema-aura{display:none}
 .name-entering .about-name{animation:none;opacity:1;clip-path:none;transform:none;filter:none;text-shadow:none}
 .clients-ready .client-track{animation:none;transform:none;will-change:auto}
 .client-track{display:block;width:100%}
 .client-group{display:grid;grid-template-columns:repeat(var(--client-visible),minmax(0,1fr));width:100%}
 .client-group[aria-hidden="true"]{display:none}
 .client-logo{width:auto}
}
