.shot {
  cursor: pointer;
}

.shot .target,
.shot .arrow {
  z-index: 7;
  pointer-events: none;
}

.zoom-hint {
  margin: 9px 3px 0;
  color: #8fa5b7;
  font-size: 12px;
  text-align: center;
}

.image-viewer {
  width: min(96vw, 1500px);
  max-width: none;
  max-height: 94vh;
  padding: 54px 18px 18px;
  border: 1px solid #39566d;
  border-radius: 16px;
  background: #07111b;
  color: white;
  overflow: auto;
  box-shadow: 0 35px 110px #000;
}

.image-viewer::backdrop {
  background: rgba(1, 6, 10, .9);
  backdrop-filter: blur(8px);
}

.viewer-close {
  position: fixed;
  z-index: 20;
  top: 18px;
  right: 22px;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid #ffffff55;
  border-radius: 50%;
  background: #101d29;
  color: white;
  font-size: 25px;
  cursor: pointer;
}

.viewer-stage {
  position: relative;
  width: max-content;
  max-width: 100%;
  margin: auto;
}

.viewer-stage img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}

.viewer-stage .target,
.viewer-stage .arrow {
  position: absolute;
  z-index: 4;
}

.viewer-help {
  margin: 13px 0 0;
  color: #9eb0bf;
  font-size: 13px;
  text-align: center;
}

@media (max-width: 900px) {
  .zoom-hint {
    font-size: 13px;
  }

  .image-viewer {
    width: 100vw;
    height: 100dvh;
    max-height: none;
    padding: 64px 10px 20px;
    border: 0;
    border-radius: 0;
  }
}
