/* A shared meadow, two runners, and a quiet portrait gallery. */
body[data-route="people"] .site-header{background:var(--paper);border-bottom:0;height:88px}
.people-page{isolation:isolate;position:relative;height:auto;min-height:calc(100svh - 88px);overflow:hidden;padding:0 0 60px;background:var(--paper)}
.people-landscape{position:absolute;z-index:-1;inset:0 0 auto;height:600px;overflow:hidden;pointer-events:none}
.people-landscape img,.people-landscape canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.people-landscape canvas{opacity:0}.people-landscape.meadow-ready canvas{opacity:1}.people-landscape.meadow-ready img{visibility:hidden}
.people-landscape:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,var(--paper),transparent 21%,transparent 78%,var(--paper))}
.people-hero{height:450px;position:relative;max-width:1500px;margin:auto}
.people-page .page-heading{display:block;text-align:center;padding:36px 24px 0}
.people-page .page-heading h1{font:700 clamp(30px,3vw,44px)/1.5 var(--sans);color:#2c5032;letter-spacing:.02em;margin-top:12px}
.people-page .page-heading h1 span{display:inline-block;white-space:nowrap}
.people-page .page-heading .heading-note{display:block;font:400 16px/1.8 var(--sans);color:#64735c;margin-top:12px}
.running-pair{position:absolute;inset:0;pointer-events:none}
.runner{position:absolute;bottom:-8px;width:142px;height:190px;left:39%;filter:drop-shadow(1px 5px 2px #30472822)}
.runner i{display:block;width:100%;height:100%;background:url('assets/runners-cycle-v16.png') 0 0/400% 200%;animation:runner-cycle .72s steps(4) infinite}
.runner-man{left:67%;width:151px;height:202px;bottom:0}
.runner-man i{background-position-y:100%;animation-duration:.8s;animation-delay:-.4s}
@keyframes runner-cycle{to{background-position-x:133.333333%}}
.people-page:not(.people-moving) .runner i{animation-play-state:paused}
.people-gallery-panel{position:relative;z-index:2;margin:0 auto;max-width:1340px;width:90%;padding:30px 0 22px;border:1px solid #f8f7edcc;border-radius:28px;background:#faf9f2fc;box-shadow:0 16px 60px #34472f12}
.people-gallery-heading{display:flex;align-items:baseline;justify-content:space-between;padding:0 36px}
.people-gallery-heading h2{font:700 25px/1.5 var(--sans);color:#2c5032}.people-gallery-heading>span{font-size:12px;color:#77816e;letter-spacing:1px}
.people-page .gallery-toolbar{position:relative;top:auto;right:auto;margin:19px 0 0;padding:0 36px;gap:20px}
.people-page .gallery-stage{height:285px;margin:8px 0 0;perspective:1550px;touch-action:pan-y;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.people-page .member-card{width:180px;height:246px;margin-left:-90px;top:18px;padding:5px 5px 0;border-radius:10px;-webkit-box-reflect:unset;box-shadow:0 7px 18px #3b49231a}
.people-page .member-card img{height:202px;border-radius:6px}.people-page .member-card .card-caption{height:32px}.people-page .member-card .card-caption strong{font-size:13px}
.people-page .gallery-floor,.people-page .gallery-halo,.people-page .gallery-thread{display:none}
.people-page .gallery-description{margin:0;min-height:64px}.people-page .gallery-description h2{font:700 24px/1.5 var(--sans);margin:2px 0;color:#2c5032}.people-page .gallery-description p{font-size:13px}.people-page .gallery-description .tiny-label{display:none}
.people-page .gallery-controls{margin-top:14px;padding:0 36px}.people-page .member-ticks{margin-top:15px}.people-page .member-grid{padding:0 36px;margin-top:28px}
.people-page .gesture-label,.people-page .gallery-endnote{font-size:12px;color:#77816e}
@media(max-width:760px){
 body[data-route="people"] .site-header{height:auto;min-height:112px}
 .people-page{padding-bottom:28px}.people-landscape{height:530px}
 .people-hero{height:375px}.people-page .page-heading{padding-top:25px}.people-page .page-heading h1{font-size:30px;line-height:1.5;margin-top:10px}.people-page .page-heading h1 span{display:block}.people-page .page-heading .heading-note{font-size:14px;margin-top:10px}
 .runner{left:20%;height:130px;width:97.5px;bottom:0}.runner-man{left:63%;height:140px;width:105px;bottom:9px}
 .people-gallery-panel{width:calc(100% - 28px);border-radius:23px;padding:22px 0 19px}.people-gallery-heading{padding:0 20px;display:block}.people-gallery-heading h2{font-size:22px}.people-gallery-heading>span{display:block;font-size:11px;margin-top:5px}
 .people-page .gallery-toolbar{padding:0 16px;margin-top:17px;gap:8px}.people-page .gallery-stage{height:255px;margin-top:7px}
 .people-page .member-card{top:15px;width:164px;height:226px;margin-left:-82px}.people-page .member-card img{height:184px}.people-page .gallery-description{min-height:70px}.people-page .gallery-description h2{font-size:23px}.people-page .gallery-description p{font-size:12px;padding:0 18px;line-height:1.8}
 .people-page .gallery-controls{padding:0 20px;gap:13px;margin-top:15px}.people-page .gesture-label{font-size:11px}.people-page .member-grid{padding:0 18px}
}
@media(prefers-reduced-motion:reduce){.runner i{animation:none}}
/* Let transformed portrait buttons receive hits through their 3D container. */
.people-page .member-cards{pointer-events:none}
/* Match the source's full gait, including backswing and body weight shift. */
.runner{width:292px;height:250px;left:35%;bottom:-6px;filter:none}
.runner-man{width:280px;height:240px;left:60%;bottom:0}
.runner canvas{display:block;width:100%;height:100%}
#runnerMotion{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
@media(max-width:760px){.runner{width:194px;height:166px;left:5%;bottom:0}.runner-man{width:194px;height:166px;left:43%;bottom:6px}}
/* Portraits lead the page; the running meadow becomes a compact opening. */
.people-hero{height:270px}
.people-landscape{height:370px}
.people-page .page-heading{padding-top:18px}
.people-page .page-heading h1{font-size:32px;margin-top:6px}
.people-page .page-heading .heading-note{font-size:14px;margin-top:6px}
.runner{width:216px;height:185px;left:35%;bottom:-4px}
.runner-man{width:216px;height:185px;left:62%;bottom:0}
.people-gallery-panel{padding-top:27px}
.people-page .gallery-stage{height:320px}
.people-page .member-card{width:205px;height:278px;margin-left:-102.5px;top:19px}
.people-page .member-card img{height:234px}
@media(max-width:760px){
 .people-hero{height:260px}.people-landscape{height:350px}
 .people-page .page-heading{padding-top:16px}.people-page .page-heading h1{font-size:26px;line-height:1.4;margin-top:7px}.people-page .page-heading .heading-note{font-size:12px;margin-top:6px}
 .runner{width:156px;height:134px;left:8%;bottom:-4px}.runner-man{width:156px;height:134px;left:48%;bottom:0}
 .people-gallery-panel{padding-top:21px}.people-page .gallery-stage{height:282px}
 .people-page .member-card{width:184px;height:253px;margin-left:-92px;top:15px}.people-page .member-card img{height:211px}
}

/* Only the compact running scene uses the recording's original sky and slope. */
.people-source-sky{height:270px;background:#80b8d6}
.people-source-sky canvas{opacity:1}
.people-source-sky video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.people-source-sky:after{background:linear-gradient(to bottom,var(--paper),transparent 18%)}
@media(max-width:760px){.people-source-sky{height:260px}}

/* A single original scene, fading into the existing paper without mirrored joins. */
.people-source-sky{background:var(--paper)}
.people-source-sky:after{display:block;background:linear-gradient(to bottom,var(--paper),transparent 18%)}
