Jury {year}
The {strandKey} jury.
{available.map(s => {
const c = (strandColors || {})[s] || {};
const active = strandKey === s;
return (
);
})}
{member && (
{/* Photo — carousel slide */}
{member.photo
?

:
}
{hasMultiple && (
)}
{hasMultiple && (
)}
{/* Text */}
{strandKey} Jury
{member.name}
{member.bio && (() => {
const LIMIT = 240;
const isLong = isMobile && member.bio.length > LIMIT;
const displayBio = !isLong || bioExpanded ? member.bio : member.bio.slice(0, LIMIT).replace(/\s+\S*$/, '') + '…';
return (
{displayBio.split("\n\n").map((para, i) => (
{para}
))}
{isLong && (
)}
);
})()}
{hasMultiple && (
{String(active+1).padStart(2,"0")} / {String(members.length).padStart(2,"0")}
)}
)}