.f580-photo-link {
  position: relative;
  display: block;
  height: 100%;
  color: #fffaf0;
}

.f580-photo-link:focus-visible {
  outline: 3px solid #f0dcb7;
  outline-offset: -4px;
}

.f580-zoom {
  position: absolute;
  inset: auto 10px 10px auto;
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid #fffaf090;
  border-radius: 50%;
  background: #111d33e8;
  font-size: 1.25rem;
}

.f580-gallery-dialog {
  box-sizing: border-box;
  width: min(960px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
  padding: clamp(10px, 2vw, 20px);
  border: 1px solid #d8c39b60;
  border-radius: 12px;
  background: #111d33;
  color: #fffaf0;
}

.f580-gallery-dialog::backdrop {
  background: #091222dd;
}

.f580-gallery-dialog img {
  display: block;
  width: 100%;
  height: min(62vh, 620px);
  height: min(62dvh, 620px);
  object-fit: contain;
  background: #091222;
}

.f580-gallery-top,
.f580-gallery-controls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.f580-gallery-top {
  margin-bottom: 10px;
}

.f580-gallery-controls {
  margin-top: 10px;
}

.f580-gallery-top h2 {
  margin: 0;
  font-size: clamp(1rem, 3vw, 1.35rem);
}

.f580-gallery-dialog button {
  min-height: 44px;
  padding: 6px 12px;
  border: 1px solid #d8c39b80;
  border-radius: 7px;
  background: #20344a;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.f580-gallery-dialog button:focus-visible {
  outline: 2px solid #f0dcb7;
  outline-offset: 2px;
}
