
.kudo-photo-hero{position:relative;min-width:0;border-radius:18px;overflow:hidden;align-self:stretch;min-height:460px;background:#111;box-shadow:0 24px 65px #0003}
.kudo-photo-hero>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:48% center}
.kudo-photo-stamp{position:absolute;bottom:0;left:0;right:0;padding:28px;display:flex;gap:14px;align-items:center;background:linear-gradient(transparent,#000c);color:white;font-size:12px;font-weight:800;letter-spacing:.12em;padding-top:65px}
.kudo-photo-stamp img{width:62px;height:62px;object-fit:contain;background:white;border-radius:50%;padding:5px}
.federation-intro .federation-team-photo{width:100%;height:auto;max-height:420px;object-fit:cover;border-radius:12px;grid-column:1/-1}
.program-panel{overflow:hidden}.program-panel .program-photo{width:100%;height:210px;object-fit:cover;border-radius:8px;margin-bottom:20px;display:block}
.federation-photo-strip{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:30px clamp(22px,5vw,80px) 65px;background:var(--cream)}
.federation-photo-strip>a:not(.photo-strip-link){overflow:hidden;border-radius:10px}.federation-photo-strip img{width:100%;height:240px;object-fit:cover;display:block;transition:transform .3s}.federation-photo-strip a:hover img{transform:scale(1.03)}
.photo-strip-link{position:absolute;bottom:24px;right:5vw;font-weight:800;color:var(--ink)}
@media(max-width:800px){.kudo-photo-hero{min-height:380px}.federation-photo-strip img{height:180px}}
@media(max-width:520px){.kudo-photo-hero{min-height:310px}.federation-photo-strip{gap:6px}.federation-photo-strip img{height:140px}.program-panel .program-photo{height:220px}}
