/* Photographs stay inside the established About frame and its gradient. */
.fm-about .fm-about-slide { opacity: 0; transition: opacity 850ms ease; pointer-events: none; }
.fm-about .fm-about-slide.fm-slide-active { opacity: 1; }

.fm-speakers { --fm-visible: 3; --fm-gap: 24px; margin: 0 38px; }
.fm-speaker-track { display: flex; gap: var(--fm-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 4px 4px 14px; margin-inline: -4px; }
.fm-speaker-track::-webkit-scrollbar { display: none; }
.fm-speaker-track:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 5px; border-radius: 20px; }
.fm-speaker-card { flex: 0 0 calc((100% - (var(--fm-visible) - 1) * var(--fm-gap)) / var(--fm-visible)); min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.fm-speaker-portrait { position: relative; isolation: isolate; aspect-ratio: 4 / 5; overflow: hidden; border: 1px solid var(--border-soft); border-radius: 22px; background: radial-gradient(ellipse at 50% 25%, #b384d933, transparent 70%), var(--panel-raised); }
.fm-speaker-portrait:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 65%, #09081269); }
.fm-speaker-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fm-speaker-portrait img.fm-portrait-unavailable { visibility: hidden; }
.fm-speaker-initials { position: absolute; inset: 0; display: grid; place-items: center; color: var(--text-secondary); font-size: clamp(40px, 5vw, 70px); font-weight: 350; letter-spacing: -.06em; }
.fm-speaker-number { position: absolute; z-index: 1; left: 18px; bottom: 17px; color: #ffffffbd; font-size: 10px; letter-spacing: .13em; }
.fm-speaker-copy { padding: 22px 4px 4px; }
.fm-speaker-copy h3 { color: var(--text-primary); font-size: clamp(21px, 2vw, 27px); line-height: 1.25; letter-spacing: -.035em; }
.fm-speaker-copy p { margin-top: 9px; color: var(--text-secondary); font-size: 13px; line-height: 1.65; }
.fm-speaker-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 25px; margin-top: 18px; border-top: 1px solid var(--border-soft); }
.fm-speaker-count { font-size: 11px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.fm-speaker-controls { display: flex; gap: 10px; }
.fm-speaker-nav { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border-radius: 50%; background: var(--panel-bg); border: 1px solid var(--border-soft); color: var(--text-primary); transition: background .2s, opacity .2s; }
.fm-speaker-nav svg { width: 18px; height: 18px; }
.fm-speaker-nav:hover:not(:disabled) { background: var(--panel-raised); }
.fm-speaker-nav:disabled { opacity: .3; cursor: default; }
.fm-speaker-nav:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 4px; }
html[data-motion="off"] .fm-speaker-track { scroll-behavior: auto; }
html[data-motion="off"] .fm-about-slide { transition: none; }
@media (max-width: 1000px) { .fm-speakers { --fm-visible: 2; --fm-gap: 20px; margin-inline: 28px; } }
@media (max-width: 640px) {
  .fm-speakers { --fm-visible: 1; --fm-gap: 18px; margin-inline: 20px; }
  .fm-speaker-portrait { aspect-ratio: 4 / 4.7; border-radius: 18px; }
  .fm-speaker-copy { padding-top: 18px; }
  .fm-speaker-copy h3 { font-size: 24px; }
  .fm-speaker-copy p { font-size: 13px; }
  .fm-speaker-toolbar { margin-top: 10px; padding-top: 20px; }
}
@media (prefers-reduced-motion: reduce) { .fm-about-slide { transition: none !important; } .fm-speaker-track { scroll-behavior: auto; } }
