/* =========================
FILE: style.css
========================= */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  overflow: hidden;
  background: #0b0b0b;
  font-family: Arial, Helvetica, sans-serif;
  color: white;
}

/* =========================
MAIN VIEWER
========================= */

#viewer-container {
  position: fixed;
  inset: 0;
  overflow: hidden;
  background: black;
}

#image-wrapper {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  cursor: grab;
  position: relative;
}

#image-wrapper:active {
  cursor: grabbing;
}

#main-image {
  position: absolute;
  top: 0;
  left: 0;

  width: 100%;
  height: 100%;

  object-fit: contain;

  user-select: none;
  transform-origin: center center;

  transition:
    opacity 0.45s ease,
    transform 0.45s ease;
}

/* =========================
NAV BUTTONS
========================= */

.nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 999;

  width: 54px;
  height: 54px;

  border: none;
  border-radius: 50%;

  background: rgba(20,20,20,0.6);
  backdrop-filter: blur(8px);

  color: white;
  font-size: 28px;

  cursor: pointer;

  transition: 0.25s;
}

.nav-btn:hover {
  background: rgba(255,255,255,0.18);
  transform: translateY(-50%) scale(1.08);
}

.left {
  left: 24px;
}

.right {
  right: 24px;
}

/* =========================
ORBIT PANEL
========================= */

#orbit-panel {
  position: absolute;

  top: 24px;
  right: 24px;

  width: 210px;
  height: 210px;

  background: rgba(15,15,15,0.78);
  backdrop-filter: blur(18px);

  border: 1px solid rgba(255,255,255,0.08);

  border-radius: 50%;

  overflow: hidden;

  z-index: 1000;

  transition:
    width 0.35s ease,
    height 0.35s ease,
    background 0.35s ease,
    border-radius 0.35s ease;
}

/* EXPANDED STATE */
#orbit-panel:hover {

  width: 420px;
  height: 420px;

  border-radius: 50%;

  background: rgba(20,20,20,0.92);
}

#orbit-panel:hover {
  width: 420px;
  height: 420px;

  background: rgba(20,20,20,0.92);
}

#orbit-header {
  position: absolute;
  top: 14px;
  left: 18px;

  z-index: 20;

  font-size: 12px;
  letter-spacing: 2px;
  opacity: 0.7;
}

#map-container {
  position: relative;

  width: 100%;
  height: 100%;

  overflow: hidden;
}

/* =========================
TOP VIEW MAP
========================= */

#topview {
  width: 100%;
  height: 100%;

  object-fit: cover;

  border-radius: 50%;

  transform-origin: center center;

  transition: transform 0.25s ease;
}
/* =========================
NODE LAYER
========================= */

#node-layer {
  position: absolute;
  inset: 0;
}

/* =========================
NODES
========================= */

.orbit-node {
  position: absolute;

  border-radius: 50%;
  cursor: pointer;

  transform: translate(-50%, -50%);

  transition:
    transform 0.25s ease,
    opacity 0.25s ease,
    box-shadow 0.25s ease;

  border: 2px solid white;

  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(6px);
}

.orbit-node:hover {
  transform: translate(-50%, -50%) scale(1.25);

  box-shadow:
    0 0 16px rgba(255,255,255,0.5);
}

.orbit-node.active {
  background: white;

  box-shadow:
    0 0 20px rgba(255,255,255,0.7);
}
