/* Neighbouring portraits follow a soft arc without moving their hit areas. */
.artist-collage{display:flex;align-items:center;gap:3px;margin:48px 0 0;padding:52px 16px;min-height:214px;isolation:isolate}
.collage-photo{position:relative;display:block;flex:1 1 0;min-width:0;height:100px;z-index:1;outline-offset:4px}
.collage-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1);pointer-events:none;transform:translateY(var(--lift,0px)) rotate(var(--tilt,0deg)) scale(var(--zoom,1));transform-origin:center;transition:transform .7s cubic-bezier(.22,1,.36,1),filter .6s ease;border-radius:2px}
.collage-photo.is-active{z-index:3}.collage-photo.is-active img{filter:grayscale(1) contrast(1.06)}
.collage-photo span{display:none}
.collage-caption{display:flex;justify-content:center;align-items:flex-start;text-align:center;min-height:46px;margin:0 0 20px;padding:0 20px;color:#FEF563;font-size:14px;line-height:1.4;overflow-wrap:anywhere;opacity:0;transition:opacity .25s ease}
.collage-caption.is-visible{opacity:1}
@media(max-width:700px){.artist-collage{overflow-x:auto;overflow-y:hidden;margin:24px -20px 0;padding:50px 24px;min-height:200px;gap:3px;-webkit-overflow-scrolling:touch}.collage-photo{flex:0 0 48px;height:90px}.collage-caption{font-size:14px;min-height:44px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.collage-photo img,.collage-caption{transition:none}.collage-photo img{transform:none}}

button.collage-photo{padding:0;border:0;background:none;color:inherit;appearance:none;cursor:pointer}
.festival-intro p.collage-caption{font-size:14px!important;line-height:1.4!important;max-width:none;margin:0 0 20px;padding:0 20px}
