.lobby-wrap { max-width: 1280px; margin: 0 auto; padding: 8px 14px 40px; }
.header {
  font-size: clamp(1.4rem, 3.5vw, 2.6rem); text-align: center; font-weight: 700;
  letter-spacing: 3px; margin: 18px 0 8px;
  animation: pulse-glow 1.6s ease-in-out infinite;
  text-shadow: 0 0 18px #00ff66;
}
@keyframes pulse-glow {
  0%, 100% { text-shadow: 0 0 18px #00ff66; }
  50% { text-shadow: 0 0 48px #00ff66; }
}
.lede { text-align: center; opacity: .8; margin: 0 0 18px; }
.lobby-grid {
  display: grid;
  grid-template-areas:
    "home elev roldew elev2 hole"
    "board board roldew board2 hall"
    "k1 k2 reception k3 k4"
    "sa1 sa1 stoop sa2 sa2";
  grid-template-columns: 120px 1fr 280px 1fr 120px;
  gap: 14px;
}
.home-btn, .hole-btn, .hall-btn {
  border: 2px solid #00ff66; background: #0b1a12; color: #00ff66;
  cursor: pointer; text-decoration: none; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 6px; min-height: 88px;
  box-shadow: 0 0 12px #00ff6633, 4px 4px 0 #003b1a;
  text-shadow: 0 0 8px #00ff66;
}
.home-btn:hover, .hole-btn:hover, .hall-btn:hover { box-shadow: 0 0 22px #00ff66, 2px 2px 0 #003b1a; }
.home-btn { grid-area: home; }
.home-btn img { width: 54px; }
.hole-btn { grid-area: hole; }
.hall-btn { grid-area: hall; }
.rolladew {
  grid-area: roldew;
  border: 3px solid #ff2a2a; background: #111 url("../assets/roll-a-dew.png") center/cover;
  min-height: 220px; cursor: pointer; color: #00ff66; font-weight: 700;
  display: flex; align-items: flex-end; justify-content: center; padding: 12px;
  text-shadow: 0 0 8px #000, 0 0 12px #00ff66;
  box-shadow: 0 0 24px #00ff6644, 0 0 48px #00ff6622;
}
.rolladew:hover { border-color: #00ff66; box-shadow: 0 0 36px #00ff66; }
.rolladew:active { transform: translateY(3px); }
.elev {
  border: 2px solid #00ff66; background: linear-gradient(#0a0a0a, #123);
  display: flex; flex-direction: column; gap: 4px; padding: 8px;
}
.elev a {
  color: #00ff66; text-decoration: none; font-size: .78rem; padding: 4px 6px; border: 1px solid #00ff6633;
}
.elev a:hover { background: #00ff66; color: #000; }
.elev.left { grid-area: elev; }
.elev.right { grid-area: elev2; }
.forum-board {
  border: 2px solid #00ff66; background: #101810; padding: 10px; overflow: auto; max-height: 240px;
}
.forum-board.a { grid-area: board; }
.forum-board.b { grid-area: board2; }
.kiosk {
  border: 2px solid #00ff66; background: #1a2a1a; min-height: 84px;
  display: grid; place-items: center; text-align: center; font-weight: 700; cursor: pointer;
  position: relative;
  box-shadow: 0 0 14px #00ff6622;
}
.k1 { grid-area: k1; } .k2 { grid-area: k2; } .k3 { grid-area: k3; } .k4 { grid-area: k4; }
.kiosk .modal-hover {
  display: none; position: absolute; top: 110%; left: 50%; transform: translateX(-50%);
  background: #141e14; border: 2px solid #00ff66; padding: 10px 14px; min-width: 220px; z-index: 8;
}
.kiosk:hover .modal-hover, .kiosk:focus .modal-hover { display: block; }
.kiosk:hover, .kiosk:focus { box-shadow: 0 0 22px #00ff66; }
.reception {
  grid-area: reception; background: #b8825f; border: 3px solid #995e48;
  color: #041; display: grid; place-items: center; font-weight: 700; letter-spacing: 2px;
}
.seating { background: #c3284a; border: 3px solid #dd2929; min-height: 80px; }
.seating.a { grid-area: sa1; } .seating.b { grid-area: sa2; }
.stoop-btn {
  grid-area: stoop; background: #b8996a; color: #142; font-weight: 700;
  border: 3px solid #886f34; text-decoration: none; display: grid; place-items: center;
}
.feed-layout {
  display: grid; grid-template-columns: 200px 1fr 280px; gap: 16px; align-items: start;
}
.feed-side, .feed-main, .feed-rad {
  border: 1px solid #00ff6644; background: #0b0d0b; padding: 12px;
}
.feed-side a, .feed-rad a { display: block; padding: 6px 0; text-decoration: none; }
.feed-main .filing-row { border-color: #333; }
html[data-mode="feed"] .lobby-grid,
html[data-mode="feed"] .world-furniture { display: none; }
html[data-mode="world"] .feed-layout { display: none; }
@media (max-width: 900px) {
  .lobby-grid, .feed-layout { display: flex; flex-direction: column; }
}

.campus { margin: 0 auto 12px; max-width: 1100px; }
.campus-stage {
  position: relative;
  height: min(72vh, 680px);
  border: 2px solid #00ff66;
  background: #030806;
  box-shadow: inset 0 0 80px #00ff6618, 0 0 24px #00ff6633;
  overflow: hidden;
}
.map-lobby .campus-art { filter: saturate(1.05) contrast(1.06); }
.map-lobby .campus-stage,
.campus-stage.map-lobby {
  box-shadow: inset 0 0 80px #00ff6618, 0 0 40px #00ff6644, 0 0 80px #ff66cc18;
}
.lobby-door {
  min-width: 84px;
  min-height: 0;
  padding: 0 0 2px !important;
  background: transparent !important;
}
.lobby-door__art {
  display: block; width: 46px; height: 86px; margin: 2px auto 0;
  pointer-events: none; position: relative;
  background: linear-gradient(#0c2214, #031408);
  border: 3px solid #00ff66;
  box-shadow: inset 10px 0 0 #00ff6633, 0 0 16px #00ff6655;
}
.lobby-door__art::after {
  content: "";
  position: absolute; right: 7px; top: 48%;
  width: 7px; height: 7px; border-radius: 50%;
  background: #00ff66; box-shadow: 0 0 8px #00ff66;
}
.lobby-door--hole {
  border-color: transparent !important;
  color: #c8f7ff !important;
  box-shadow: none;
}
.lobby-door--hole .lobby-door__art {
  border-color: #66e0ff;
  box-shadow: inset 10px 0 0 #66e0ff33, 0 0 16px #66e0ff66;
}
.lobby-door--home {
  border-color: transparent !important;
  color: #ffe98a !important;
  box-shadow: none;
}
.lobby-door--home .lobby-door__art {
  border-color: #e8c200;
  box-shadow: inset 10px 0 0 #e8c20033, 0 0 16px #e8c20055;
}
.lobby-stacks {
  min-width: 96px;
  min-height: 0;
}
.lobby-stacks__art {
  display: block; width: 78px; height: 64px; margin: 6px auto 0;
  pointer-events: none;
  background:
    repeating-linear-gradient(90deg, #1a1008 0 10px, #00ff6622 10px 12px, #2a1c10 12px 22px);
  border: 3px solid #00ff66;
  box-shadow: 0 0 14px #00ff6644, inset 0 -10px 0 #031408;
}
.lobby-desk {
  min-width: 110px;
  min-height: 0;
  background: transparent !important;
  border-color: transparent !important;
  color: #e8d2a0 !important;
}
.lobby-desk__art {
  display: block; width: 88%; height: 22px; margin: 10px auto 0;
  background: linear-gradient(#c4a056, #8a6a32);
  border: 2px solid #3d2814;
  box-shadow: 0 6px 0 #1a1008;
}
.lobby-stoop {
  min-width: 160px;
  letter-spacing: 1px;
}
