/* Approved portrait directory; scoped to speakers.html. */
.speaker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:24px 0 60px}
.speaker-portrait-card{display:block;min-width:0;overflow:hidden;border:1px solid #ffffff17;border-radius:10px;background:#101010;text-decoration:none;transition:transform .3s,border-color .3s}
.speaker-portrait-card:hover,.speaker-portrait-card:focus-visible{transform:translateY(-4px);border-color:#d8b468}
.speaker-portrait-card:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.speaker-portrait-media{position:relative;aspect-ratio:4/5;background:radial-gradient(ellipse at 75% 25%,#44341c66,transparent 70%),#141414}
.speaker-portrait-media>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .25s}
.speaker-portrait-media>img.is-loaded{opacity:1}
.speaker-portrait-fallback{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;text-align:center;box-sizing:border-box}
.speaker-portrait-fallback[hidden]{display:none}
.speaker-portrait-fallback h2{font-size:clamp(16px,2vw,24px);margin:8px 0;overflow-wrap:anywhere}
.speaker-portrait-meta{display:flex;justify-content:space-between;gap:8px;color:#cfc6b2;font-size:13px;padding:14px 16px}
@media(max-width:900px){.speaker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:400px){.speaker-portrait-meta{font-size:11px;padding:12px 10px}}
@media(prefers-reduced-motion:reduce){.speaker-portrait-card,.speaker-portrait-media>img{transition:none}.speaker-portrait-card:hover,.speaker-portrait-card:focus-visible{transform:none}}
