html, body {
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #0f0f0f;
  font-family: sans-serif;
}

/* VIEWPORT */
#viewport {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  border: 2px solid #222;
  background: #000;
}

/* WORLD (moves sideways) */
#world {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  display: flex;
}

/* BACKGROUND IMAGE */
#world::before {
  content: "";
  display: block;
  width: 8000px; /* long looping room */
  height: 100vh;
  background-image: url("room_long.png");
  background-repeat: repeat-x;
  background-size: auto 100vh;
}

/* UI BUTTONS */
#ui {
  position: absolute;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

button {
  pointer-events: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: #111;
  color: #fff;
  border: 1px solid #333;
  padding: 12px;
  cursor: pointer;
}

#left { left: 10px; }
#right { right: 10px; }

/* ITEMS LAYER (JS injects content here) */
.item {
  position: absolute;
  width: 120px;
  cursor: pointer;
  transition: transform 0.2s, filter 0.2s;
}

.item:hover {
  transform: scale(1.08);
  filter: drop-shadow(0 0 10px yellow);
}

button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
}
#left { left: 10px; }
#right { right: 10px; }