/* The clipped viewport never scrolls; the complete map scene moves as one layer. */
.campus-map-pane .campus-map-viewport.is-map-interactive {
  position: relative;
  height: var(--campus-map-height, clamp(340px, 56vh, 640px));
  min-height: 0;
  max-height: none;
  overflow: hidden;
  overflow: clip;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  cursor: grab;
  background: #152625;
  contain: layout paint;
}
.campus-map-viewport.is-map-interactive .campus-map-canvas {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 0;
  transform-origin: 0 0;
}
.campus-map-viewport.is-map-interactive .campus-map-image {
  width: 100%; height: 100%; max-width: none;
  pointer-events: none;
  -webkit-user-drag: none;
}
.campus-map-viewport.is-map-interactive .campus-pin,
.campus-map-viewport.is-map-interactive .campus-endpoint {
  transform: translate(-50%, -50%) scale(var(--campus-map-marker-scale, 1));
  transform-origin: center;
}
.campus-map-viewport.is-map-interactive .campus-pin {cursor: pointer;}
.campus-map-viewport.is-map-dragging,
.campus-map-viewport.is-map-dragging .campus-pin {cursor: grabbing;}
.campus-map-viewport.is-map-dragging .campus-pin-label {pointer-events: none;}
@media (max-width: 600px) {
  .campus-map-pane .campus-map-viewport.is-map-interactive {
    height: var(--campus-map-height, clamp(300px, 48svh, 440px));
  }
}
