.people-page{background:#f2ede4;color:#25231f}.people-section{padding:clamp(60px,8vw,130px) clamp(24px,6vw,100px)}.people-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:60px;border-bottom:1px solid #b69a6355;padding-bottom:36px}.people-kicker{font-size:10px;letter-spacing:.22em;color:#8b7047;margin:0 0 22px}.people-heading h1,.people-heading h2{font:400 clamp(40px,5vw,76px)/1.05 Georgia,serif;letter-spacing:-.04em;margin:0;color:inherit}.people-heading>p{max-width:280px;font:400 17px/1.7 Georgia,serif;margin:0;color:#716b60}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 30px}.people-card{min-width:0}.people-photo{aspect-ratio:4/5;overflow:hidden;background:#e4dccf}.people-photo img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .7s ease}.people-card:hover .people-photo img{transform:scale(1.035)}.people-caption{padding:24px 0;border-bottom:1px solid #b69a6355}.people-caption h3{font:400 28px/1.2 Georgia,serif;color:inherit;margin:0 0 12px;overflow-wrap:anywhere}.people-caption p{font-size:13px;line-height:1.8;color:#716b60;white-space:normal;overflow-wrap:anywhere;margin:0}.people-partners{background:#191813;color:#f2ede4}.people-partners .people-heading>p,.people-partners .people-caption p{color:#bcb3a4}.people-partners .people-photo{aspect-ratio:4/3;background:#faf8f4;padding:30px}.people-partners .people-photo img{object-fit:contain;object-position:center}.people-empty{font:20px/1.6 Georgia,serif;padding:35px 0;color:#95856b}
@media(max-width:1100px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.people-heading{display:block}.people-heading>p{margin-top:24px;max-width:480px}}
@media(max-width:600px){.people-grid{grid-template-columns:1fr;gap:32px}.people-heading{margin-bottom:32px}.people-caption h3{font-size:26px}}
@media(prefers-reduced-motion:reduce){.people-photo img{transition:none}.people-card:hover .people-photo img{transform:none}}

/* Independent reveals keep cards stable in the layout while their contents move. */
.people-page{overflow-x:clip}
.people-heading{position:relative}
.people-heading::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:#aa8650;transform-origin:left}
.people-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em;margin-bottom:-.1em}
.people-word>span{display:inline-block}
.people-motion .people-heading:not(.people-in-view) .people-word>span{transform:translateY(110%)}
.people-motion .people-heading.people-in-view .people-word>span{animation:people-word-rise 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--word-delay,0ms)}
@keyframes people-word-rise{from{transform:translateY(110%)}to{transform:translateY(0)}}
.people-motion .people-heading::after{transform:scaleX(0);transition:transform 1.25s cubic-bezier(.16,1,.3,1)}
.people-motion .people-heading.people-in-view::after{transform:scaleX(1)}
.people-motion .people-heading .people-kicker,.people-motion .people-heading>p{opacity:0;translate:0 18px;transition:opacity .8s,translate 1s cubic-bezier(.16,1,.3,1)}
.people-motion .people-heading.people-in-view .people-kicker,.people-motion .people-heading.people-in-view>p{opacity:1;translate:0 0}
.people-motion .people-heading.people-in-view>p{transition-delay:.25s}
.people-motion .people-card>.people-photo{opacity:0;transform:translate(var(--card-direction,0px),30px);clip-path:inset(8% 4% 8% 4%);transition:opacity .8s,transform 1.2s cubic-bezier(.16,1,.3,1),clip-path 1.25s cubic-bezier(.16,1,.3,1)}
.people-motion .people-card.people-in-view>.people-photo{opacity:1;transform:none;clip-path:inset(0);transition-delay:var(--card-delay,0ms)}
.people-motion .people-caption>*{opacity:0;translate:0 20px;transition:opacity .75s,translate .9s cubic-bezier(.16,1,.3,1)}
.people-motion .people-in-view .people-caption>*{opacity:1;translate:0 0;transition-delay:calc(var(--card-delay,0ms) + 170ms)}
.people-motion .people-in-view .people-caption>p{transition-delay:calc(var(--card-delay,0ms) + 260ms)}
.people-caption{position:relative}
.people-caption::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:#ae8b53;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.people-photo{position:relative}
.people-photo::after{content:"";position:absolute;inset:12px;border:1px solid #fff7;opacity:0;transition:opacity .5s;pointer-events:none}
.people-photo img{translate:var(--photo-x,0px) var(--photo-y,0px);transition:transform .8s cubic-bezier(.16,1,.3,1),translate .35s ease}
.people-partners .people-photo::after{border-color:#b69a6370}
.people-motion .people-empty{opacity:0;translate:0 20px;transition:opacity .8s,translate 1s}
.people-motion .people-empty.people-in-view{opacity:1;translate:0 0}
@media(hover:hover) and (pointer:fine){.people-card:hover .people-caption::after{transform:scaleX(1)}.people-card:hover .people-photo::after{opacity:1}.people-partners .people-card:hover .people-photo img{transform:scale(1.045)}}
@media(max-width:600px){.people-motion .people-card>.people-photo{transform:translateY(24px)}.people-motion .people-card.people-in-view>.people-photo{transform:none}}
@media(prefers-reduced-motion:reduce){.people-page *,.people-page *::after{animation:none!important;transition:none!important}.people-motion .people-heading .people-word>span,.people-motion .people-card>.people-photo{opacity:1;transform:none;clip-path:none}.people-motion .people-heading .people-kicker,.people-motion .people-heading>p,.people-motion .people-caption>*,.people-motion .people-empty{opacity:1;translate:none}.people-photo img,.people-card:hover .people-photo img,.people-partners .people-card:hover .people-photo img{transform:none;translate:none}.people-motion .people-heading::after{transform:none}}
@media print{.people-motion .people-heading .people-word>span,.people-motion .people-card>.people-photo{opacity:1;transform:none;clip-path:none;animation:none}.people-motion .people-heading .people-kicker,.people-motion .people-heading>p,.people-motion .people-caption>*,.people-motion .people-empty{opacity:1;translate:none}}
