/* One complete conference frame, with navigation and loading owned by the gallery. */
.h-gallery { min-width: 0; max-width: 1080px; margin-inline: auto; outline-offset: 8px; }
.h-gallery:focus-visible { outline: 2px solid #f6c60a; border-radius: 16px; }
.h-gallery-shell { min-width: 0; }
.h-gallery-stage { position: relative; min-width: 0; aspect-ratio: 1440 / 754; overflow: hidden; border: 1px solid #3a5072; border-radius: 16px; background: #061b39; touch-action: pan-y pinch-zoom; isolation: isolate; }
.h-gallery-view { display: block; width: 100%; height: 100%; outline-offset: -5px; }
.h-gallery-view:focus-visible { outline: 3px solid #f6c60a; }
.h-gallery-image { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; user-select: none; -webkit-user-select: none; }
.h-gallery-meta { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 19px 15px; }
.h-gallery-caption { flex: 1; min-width: 0; max-width: 62ch; color: #dbe5f1; font-size: 16px; line-height: 1.9; }
.h-gallery-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
.h-gallery-button { width: 46px; height: 46px; min-width: 44px; min-height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid #4f6585; border-radius: 50%; color: #fff; background: transparent; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.h-gallery-button svg, .h-gallery-expand svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.h-gallery-button:hover { color: #001740; background: #f6c60a; border-color: #f6c60a; }
.h-gallery-button:active { transform: scale(.95); }
.h-gallery-count { min-width: 67px; color: #f6c60a; text-align: center; font-size: 15px; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.h-gallery-expand { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 7px; padding-inline: 8px; color: #dce6f3; font-size: 13px; white-space: nowrap; }
.h-gallery-expand:hover { color: #f6c60a; }
.h-gallery-controls :focus-visible, .h-gallery-sources a:focus-visible, .h-gallery-status a:focus-visible { outline: 3px solid #f6c60a; outline-offset: 4px; }
.h-gallery-progress { display: flex; gap: 7px; padding-block: 2px; }
.h-gallery-progress > span { display: block; flex: 1; height: 3px; border-radius: 4px; background: #314a6c; transition: background .25s ease; }
.h-gallery-progress > .is-current { background: #f6c60a; }
.h-gallery-status { position: absolute; z-index: 1; inset-inline: 12px; bottom: 12px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; width: fit-content; max-width: calc(100% - 24px); margin-inline: auto; padding: 7px 13px; border: 1px solid #526787; border-radius: 10px; background: #061b39ee; color: #fff; font-size: 13px; line-height: 1.75; box-shadow: 0 3px 15px #0002; }
.h-gallery-status:not(.is-error)::before { content: ''; width: 12px; height: 12px; flex-shrink: 0; border: 2px solid #53667f; border-top-color: #f6c60a; border-radius: 50%; animation: h-gallery-loading .8s linear infinite; }
.h-gallery-status a { color: #f6c60a; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }
.h-gallery-sources { margin-top: 16px; }
.h-gallery-sources ol { display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; }
.h-gallery-sources a { display: inline-flex; min-height: 44px; padding: 8px 14px; align-items: center; border: 1px solid #3a5072; border-radius: 8px; color: #dce6f3; font-size: 14px; }
.h-gallery-noscript { margin-top: 10px; color: #b9c7da; font-size: 14px; line-height: 1.85; }
.h-gallery-controls[hidden], .h-gallery-sources[hidden], .h-gallery-status[hidden], .h-gallery-status a[hidden], .h-gallery-progress[hidden], .h-photo-image[hidden], .h-photo-load-status[hidden] { display: none !important; }
.h-photo-dialog { border-radius: 16px; }
.h-photo-dialog .h-photo-figure { aspect-ratio: 1440 / 754; display: grid; place-items: center; border-radius: 10px; overflow: hidden; }
.h-photo-dialog .h-photo-stage.is-loading .h-photo-image { opacity: 1; }
.h-photo-dialog .h-photo-load-status { inset: auto 8px 8px; padding: 7px 12px; border-radius: 8px; background: #001740ed; font-size: 13px; }
.h-photo-dialog .h-photo-close, .h-photo-dialog .h-photo-nav, .h-photo-dialog .h-photo-original { min-width: 44px; min-height: 44px; }
.h-photo-dialog .h-photo-image { width: 100%; height: 100%; object-fit: contain; }
[dir='ltr'] .h-gallery-button svg { transform: scaleX(-1); }
@keyframes h-gallery-loading { to { transform: rotate(360deg); } }
@media (max-width: 900px) {
  .h-gallery-meta { align-items: flex-start; gap: 17px; }
  .h-gallery-controls { gap: 7px; max-width: 186px; }
  .h-gallery-expand { flex-basis: 100%; }
}
@media (max-width: 650px) {
  .h-gallery-stage { border-radius: 16px; }
  .h-gallery-meta { display: block; padding-block: 14px 12px; }
  .h-gallery-caption { font-size: 14px; line-height: 1.85; }
  .h-gallery-controls { width: 100%; max-width: none; margin-top: 13px; gap: 8px; justify-content: flex-start; }
  .h-gallery-button { width: 44px; height: 44px; }
  .h-gallery-count { min-width: 65px; font-size: 14px; }
  .h-gallery-expand { flex-basis: auto; margin-inline-start: auto; padding-inline: 2px; font-size: 12px; gap: 5px; }
  .h-gallery-expand svg { width: 16px; height: 16px; }
  .h-gallery-progress { gap: 5px; }
  .h-gallery-status { font-size: 12px; inset-inline: 8px; bottom: 8px; max-width: calc(100% - 16px); gap: 4px 8px; padding: 5px 9px; }
  .h-photo-dialog .h-photo-caption { font-size: 14px; line-height: 1.85; }
}
@media (max-width: 359px) {
  .h-gallery-controls { gap: 5px; }
  .h-gallery-count { min-width: 58px; font-size: 13px; }
  .h-gallery-expand { font-size: 11px; gap: 4px; }
}
html[data-motion='paused'] .h-gallery *, html[data-motion='paused'] .h-gallery *::before { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .h-gallery *, .h-gallery *::before { animation: none !important; transition: none !important; } }
@media print { .h-gallery-controls, .h-gallery-progress, .h-gallery-status { display: none !important; } .h-gallery-stage { break-inside: avoid; } .h-gallery-caption { color: #001740; } }
