* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100%;
  background: #000;
}

body {
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}

.page {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background: #000;
}

.page-image {
  display: block;
  width: 100%;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.tab-hotspots {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.tab-hotspots button {
  position: absolute;
  top: calc(var(--hotspot-y) * 100vw);
  left: calc(var(--hotspot-x) * 100vw);
  width: calc(var(--hotspot-w) * 100vw);
  height: calc(var(--hotspot-h) * 100vw);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: transparent;
  appearance: none;
  cursor: pointer;
  pointer-events: auto;
}

.tab-hotspots button:focus-visible {
  outline: 2px solid rgba(245, 213, 131, 0.85);
  outline-offset: -2px;
}

.detail-hotspot {
  position: absolute;
  z-index: 3;
  display: none;
  top: calc(var(--detail-y) * 100vw);
  left: calc(var(--detail-x) * 100vw);
  width: calc(var(--detail-w) * 100vw);
  height: calc(var(--detail-h) * 100vw);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: transparent;
  appearance: none;
  cursor: pointer;
}

.detail-hotspot.is-visible {
  display: block;
}

.back-button {
  position: fixed;
  z-index: 4;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  width: min(70vw, 570px);
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
  cursor: pointer;
  transform: translateX(-50%);
}

.back-button[hidden] {
  display: none;
}

.back-button img {
  display: block;
  width: 100%;
  height: auto;
}
