/* Shared speaker mosaic styles, copied by update-home-mosaic.cjs. */
  .mosaic-gallery {
    --mosaic-radius: clamp(0.9rem, 1.1vw, 1.35rem);
    position: relative !important;
    z-index: 20 !important;
    background: transparent !important;
    padding: clamp(2.5rem, 5vh, 4rem) 0 clamp(4rem,10vh,7rem) !important;
    margin-top: 0 !important;
  }
  .mosaic-gallery__head {
    display: flex !important;
    align-items: flex-end !important; 
    justify-content: space-between !important;
    gap: 1.5rem !important;
    padding: 0 6vw !important;
    margin-bottom: clamp(1.25rem, 2.5vh, 2rem) !important;
  }
  .mosaic-gallery__title {
    margin: 0 !important;
    font-family: var(--font-serif) !important;
    font-weight: 400 !important;
    font-size: 62px !important;
    line-height: 0.83 !important;
    text-transform: uppercase !important;
    letter-spacing: normal !important;
    color: #d8d9e3 !important;
  }
  .mosaic-gallery .slider-arrow-btn {
    border-color: rgba(216, 217, 227, 0.4) !important;
  }
  .mosaic-gallery .slider-arrow-btn svg {
    fill: #d8d9e3 !important;
  }
  .mosaic-gallery .slider-arrow-btn:hover {
    background: #d8d9e3 !important;
    border-color: #d8d9e3 !important;
  }
  .mosaic-gallery .slider-arrow-btn:hover svg {
    fill: #1a1a1e !important;
  }
  .mosaic-nav-btns {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
  }
  .mosaic-scroller {
    --row-h: clamp(8.5rem, 19vh, 13rem);
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(12px, 1.6vh, 22px) !important;
    overflow: hidden !important;
    width: calc(100% - 12vw) !important;
    margin-inline: 6vw !important;
    padding-inline: 0 !important;
    cursor: grab !important;
    touch-action: pan-y !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%) !important;
    mask-image: linear-gradient(to right, transparent 0, #000 28px, #000 calc(100% - 28px), transparent 100%) !important;
  }
  .mosaic-scroller.is-dragging,
  .mosaic-scroller.is-dragging .mosaic-item {
    cursor: grabbing !important;
  }
  .mosaic-scroller:focus-visible {
    outline: 2px solid rgba(216, 217, 227, 0.45) !important;
    outline-offset: 6px !important;
  }
  .mosaic-row {
    display: flex !important;
    flex: 0 0 auto !important;
    width: max-content !important;
    align-items: stretch !important;
    gap: clamp(14px, 1.6vw, 28px) !important;
    margin-left: var(--row-offset, 0px) !important;
    will-change: transform !important;
  }
  .mosaic-item {
    margin: 0 !important;
    flex: 0 0 auto !important;
    height: var(--row-h) !important;
    width: calc(var(--row-h) * var(--aspect)) !important;
    border-radius: var(--mosaic-radius) !important;
    overflow: hidden !important;
    position: relative !important;
    background: rgba(0, 0, 0, 0.12) !important;
    cursor: zoom-in !important;
  }
  .mosaic-item img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    -webkit-user-drag: none !important;
    user-select: none !important;
    transition: transform 0.65s var(--ease-out-expo, cubic-bezier(0.19, 1, 0.22, 1)) !important;
  }
  @media (hover: hover) {
    .mosaic-item:hover img {
      transform: scale(1.05) !important;
    }
  }
  .mosaic-scroller.is-dragging .mosaic-item img {
    transform: scale(1) !important;
    transition: none !important;
  }
  @media (max-width: 768px) {
    .mosaic-scroller {
      --row-h: clamp(5.5rem, 12vh, 7.5rem);
      width: calc(100% - 10vw) !important;
      margin-inline: 5vw !important;
      padding-inline: 0 !important;
      -webkit-mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%) !important;
      mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%) !important;
    }
    .mosaic-gallery {
      padding: clamp(2rem, 4vh, 3rem) 0 !important;
    }
    .mosaic-gallery__head {
      padding: 0 5vw !important;
    }
    .mosaic-gallery__title {
      font-size: 32px !important;
    }
    .mosaic-item {
      border-radius: 0.85rem !important;
    }
  }
  .mosaic-lightbox {
    --mosaic-radius: clamp(0.9rem, 1.1vw, 1.35rem);
    position: fixed;
    inset: 0;
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(1rem, 4vw, 3rem);
    opacity: 0;
    pointer-events: none;
    overscroll-behavior: contain;
    transition: opacity .35s var(--ease-out-expo, cubic-bezier(0.19, 1, 0.22, 1));
  }
  .mosaic-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  .mosaic-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26,26,30,.93);
    cursor: zoom-out;
  }
  .mosaic-lightbox__figure {
    position: relative;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    max-width: 92vw;
    transform: scale(.965);
    transition: transform .45s var(--ease-out-expo, cubic-bezier(0.19, 1, 0.22, 1));
  }
  .mosaic-lightbox.is-open .mosaic-lightbox__figure {
    transform: scale(1);
  }
  .mosaic-lightbox__img {
    display: block;
    width: auto;
    height: auto;
    max-width: 92vw;
    max-height: 78vh;
    object-fit: contain;
    border-radius: var(--mosaic-radius, 1.25rem);
  }
  .mosaic-lightbox__caption {
    max-width: 62ch;
    margin: 0;
    color: #d8d9e3;
    font-family: var(--font-sans);
    font-size: clamp(.9rem, 1.1vw, 1.05rem);
    line-height: 1.5;
    text-align: center;
  }
  .mosaic-lightbox__caption[hidden] {
    display: none;
  }
  .mosaic-lightbox__close {
    position: absolute;
    top: clamp(1rem, 3vh, 2rem);
    right: clamp(1rem, 3vw, 2rem);
    border-color: rgba(216, 217, 227, 0.45) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    transition: background-color .25s ease, border-color .25s ease !important;
    z-index: 10 !important;
  }
  .mosaic-lightbox__close svg {
    width: 14px;
    height: 14px;
    fill: #d8d9e3 !important;
    transition: fill .25s ease !important;
  }
  .mosaic-lightbox__close:hover {
    background: #d8d9e3 !important;
    border-color: #d8d9e3 !important;
  }
  .mosaic-lightbox__close:hover svg {
    fill: #1a1a1e !important;
  }
  .mosaic-lightbox__nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border-color: rgba(216, 217, 227, 0.45) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    transition: background-color .25s ease, border-color .25s ease, transform .2s ease !important;
    z-index: 10 !important;
  }
  .mosaic-lightbox__nav-btn svg {
    width: 1rem !important;
    height: 1rem !important;
    fill: #d8d9e3 !important;
    transition: fill .25s ease !important;
  }
  .mosaic-lightbox__nav-btn:hover {
    background: #d8d9e3 !important;
    border-color: #d8d9e3 !important;
    transform: translateY(-50%) scale(1.05);
  }
  .mosaic-lightbox__nav-btn:hover svg {
    fill: #1a1a1e !important;
  }
  .mosaic-lightbox__prev {
    left: clamp(1rem, 3vw, 2.5rem);
  }
  .mosaic-lightbox__next {
    right: clamp(1rem, 3vw, 2.5rem);
  }
  .mosaic-tooltip {
    position: fixed !important;
    z-index: 300 !important;
    width: 250px !important;
    padding: 14px 16px !important;
    background: rgba(255, 255, 255, 0.3) !important;
    -webkit-backdrop-filter: blur(25px) !important;
    backdrop-filter: blur(25px) !important;
    border: 1px solid rgba(255, 255, 255, 0.01) !important;
    color: #000 !important;
    border-radius: 0 !important;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1) !important;
    pointer-events: none !important;
    opacity: 0 !important;
    transform: translateY(6px) !important;
    transition: opacity .25s var(--ease-out-expo, cubic-bezier(0.19, 1, 0.22, 1)), transform .25s var(--ease-out-expo, cubic-bezier(0.19, 1, 0.22, 1)) !important;
  }
  .mosaic-tooltip.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .mosaic-tooltip {
      background: rgba(255, 255, 255, 0.92) !important;
    }
  }
  .mosaic-tooltip__title {
    display: block !important;
    font-family: var(--font-sans) !important;
    font-weight: 400 !important;
    font-size: 20px !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    margin-bottom: 0.35rem !important;
  }
  .mosaic-tooltip__desc {
    display: block !important;
    font-family: var(--font-sans) !important;
    font-weight: 400 !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    white-space: pre-line !important;
    color: rgba(0, 0, 0, 0.65) !important;
  }

/* Home-only geometry: 120% of the original responsive image height.
   Width follows the existing aspect ratio, so both dimensions grow equally. */
#home-speaker-gallery .mosaic-scroller {
  --row-h: clamp(10.2rem, 22.8vh, 15.6rem);
}
@media (max-width: 768px) {
  #home-speaker-gallery .mosaic-scroller {
    --row-h: clamp(6.6rem, 14.4vh, 9rem);
  }
}
/* Scoped button geometry: Home does not include the speaker page overrides. */
.mosaic-gallery .slider-arrow-btn,
.mosaic-lightbox .slider-arrow-btn {
  width: 3.5rem !important;
  height: 3.5rem !important;
  flex-shrink: 0;
  border-radius: 50% !important;
  border: 1px solid rgba(216,217,227,.4) !important;
  background: transparent;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: background-color .25s ease, border-color .25s ease;
}
.mosaic-gallery .slider-arrow-btn svg {
  width: 1rem !important;
  height: 1rem !important;
}
@media (max-width: 768px) {
  .mosaic-gallery .slider-arrow-btn,
  .mosaic-lightbox .slider-arrow-btn {
    width: 3rem !important;
    height: 3rem !important;
  }
}
