/*
 * blok4 — "Twelve faces, one light" (demo14 .h17-people): the section pins and its track of
 * portraits slides through a fixed central light; each face goes from dim to colour as it passes,
 * with parallax inside the frame. Without JS (or with reduced motion) it is a plain horizontal
 * scroller with every face lit. ".h17-js-track" sits on the block root (set by js/blok4.js).
 */
.h17-people {
    --k-edge: clamp(16px, 3.4vw, 56px);
    --k-opsz: "opsz" 12;
    --k-ease: cubic-bezier(.2, .7, .15, 1);
    color: var(--k-ink); font-family: var(--k-sans); overflow-x: clip; font-variation-settings: var(--k-opsz);
}
.h17-people :where(*) { color: inherit; }
.h17-people ul { list-style: none; margin: 0; padding: 0; }
.h17-people .h17-title {
    margin: 0; font: 500 clamp(40px, 5vw, 88px)/1 var(--k-serif); font-variation-settings: var(--k-opsz);
    letter-spacing: -0.02em; text-wrap: balance;
}
.h17-people a:focus-visible, .h17-people button:focus-visible { outline: 2px solid var(--k-warm); outline-offset: 3px; }

/* ── the faces walk through a fixed light ─────────────────────────────────────────────── */
.h17-people { position: relative; background: #090d0b; }
.h17-people__stage { position: relative; overflow-x: auto; padding: 96px 0; scrollbar-width: none; }
.h17-people__stage::-webkit-scrollbar { display: none; }
.h17-people__beam {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(30% 46% at 50% 44%, rgb(255 200 140 / 0.13), transparent 72%),
        radial-gradient(26% 7% at 50% 90%, rgb(255 200 140 / 0.1), transparent 75%);
}
.h17-people .h17-people__track { position: relative; display: flex; align-items: center; gap: clamp(28px, 4vw, 72px); width: max-content; padding: 0 var(--k-edge) !important; }
.h17-people__intro { flex: none; width: min(34vw, 520px); padding-right: 2vw; }
.h17-people__intro p { margin: 24px 0 0; max-width: 32ch; font: 400 18px/1.55 var(--k-sans); color: var(--k-soft); }
.h17-people .h17-face { --fw: min(24vw, calc((100svh - var(--header-h, 70px) - 220px) / 1.5)); flex: none; width: max(var(--fw), 220px); }
.h17-people .h17-face:nth-child(odd) { transform: translateY(5vh); }
.h17-people .h17-face:nth-child(even) { transform: translateY(-5vh); }
.h17-face__frame { position: relative; display: block; aspect-ratio: 2 / 3; overflow: hidden; border-radius: 2px; background: #050706; }
.h17-face__pan { position: absolute; inset: 0 -9%; will-change: transform; }
.h17-face__pan img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.h17-face__dim { filter: grayscale(1) brightness(0.28) contrast(1.1); }
.h17-face__lit { transition: transform 900ms var(--k-ease); }
.h17-face__frame:hover .h17-face__lit { transform: scale(1.03); }
.h17-face__name { margin: 16px 0 0; font: 500 clamp(24px, 2vw, 30px)/1.1 var(--k-serif); }
.h17-js-track .h17-people__stage {
    position: sticky; top: var(--header-h, 70px); height: calc(100svh - var(--header-h, 70px));
    overflow: hidden; padding: 0; display: flex; align-items: center;
}
.h17-js-track .h17-people__track { will-change: transform; }
.h17-js-track .h17-face__lit { opacity: 0; }
.h17-js-track .h17-face__name { opacity: 0.2; }

/* ── tablet and phone ─────────────────────────────────────────────────────────────────── */
@media (max-width: 899px) {
    .h17-people__intro { width: 78vw; }
    .h17-people .h17-face { --fw: min(78vw, calc((100svh - var(--header-h, 70px) - 200px) / 1.5)); }
    .h17-people .h17-face:nth-child(odd), .h17-people .h17-face:nth-child(even) { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .h17-people *, .h17-people *::before, .h17-people *::after { transition-duration: 1ms !important; transition-delay: 0ms !important; }
}
