/* Speaker carousel layout and controls. */
.tier-heading-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.tier-heading-row .tier-name{margin:0;min-width:0}
.tier[data-speaker-gallery]{position:relative}

/* Controls float beside the portraits rather than above the roster. JS pins the
   vertical position to the center of the first portrait in each section. */
.gallery-controls{
  position:absolute;
  left:-66px;
  right:-66px;
  z-index:8;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:0;
  pointer-events:none;
  transform:translateY(-50%);
}
.gallery-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:23px;
  height:23px;
  border:1px solid var(--purple);
  background:rgba(10,8,19,.18);
  color:var(--purple);
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1;
  border-radius:0;
  padding:0;
  pointer-events:auto;
  cursor:pointer;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:background .2s,color .2s,opacity .2s,border-color .2s;
}
.gallery-arrow:hover:not(:disabled){background:var(--purple);color:var(--ink)}
.gallery-arrow:disabled{opacity:.25;border-color:var(--cream-dim);cursor:default}
.gallery-arrow:focus-visible,.speaker-gallery:focus-visible,.speaker-gallery .speaker-card:focus-visible{outline:2px solid var(--purple);outline-offset:3px}

.roster-grid.speaker-gallery{
  display:grid!important;
  grid-template-columns:none!important;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 48px)/4);
  gap:16px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:0;
  scrollbar-width:none;
  padding:4px 0 8px;
  max-width:100%;
  -webkit-overflow-scrolling:touch;
}
.speaker-gallery::-webkit-scrollbar{display:none}
.roster-grid.speaker-gallery>.speaker-card{width:auto!important;min-width:0;scroll-snap-align:start;display:flex!important;flex-direction:column}
.speaker-gallery .card-body{flex:1;display:flex;flex-direction:column}
.speaker-gallery .card-cta{margin-top:auto;padding-top:14px}
.speaker-gallery .card-blurb{margin-bottom:14px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.mq-track:focus-within,.mq-track:hover{animation-play-state:paused}

@media(max-width:1420px){
  .gallery-controls{left:8px;right:8px}
  .gallery-arrow{background:rgba(10,8,19,.72)}
}
@media(max-width:1024px) and (min-width:769px){
  .roster-grid.speaker-gallery{grid-auto-columns:calc((100% - 16px)/2)}
}
@media(max-width:768px){
  .roster-grid.speaker-gallery{grid-auto-columns:100%}
  .tier-heading-row{gap:12px}
  .gallery-controls{left:10px;right:10px}
  .gallery-arrow{width:22px;height:22px;font-size:12px;background:rgba(10,8,19,.78)}
  .tier-heading-row .tier-name{font-size:clamp(30px,7vw,46px)}
}
@media(prefers-reduced-motion:reduce){
  .speaker-gallery,.speaker-card,.portrait img{scroll-behavior:auto!important;transition:none!important}
  .mq-track{animation:none!important}
}
