/* Full-screen visual campus with one compact black-and-gold control dock. */
#campusShell {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: block;
  min-height: 100dvh;
  overflow: hidden;
  background: #000;
}

#campusShell[hidden] {
  display: none;
}

#campusShell .main {
  position: relative;
  width: 100dvw;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  background: #000;
}

#campusShell .content {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

#campusShell .content > .eyebrow,
#campusShell .content > h1,
#campusShell .content > .deck,
#campusShell footer {
  display: none;
}

#campusShell .visual-card {
  position: absolute;
  inset: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: #000;
}

#campusShell .image-stage {
  width: 100dvw;
  height: 100dvh;
  min-height: 0;
  aspect-ratio: auto !important;
  background: #000;
}

#campusShell .scene-image {
  object-fit: contain;
}

#campusShell .topbar {
  position: fixed;
  top: max(10px, env(safe-area-inset-top));
  left: max(10px, env(safe-area-inset-left));
  z-index: 30;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

#campusShell .breadcrumbs,
#campusShell .v6-badge,
#campusShell .top-actions {
  display: none;
}

#campusShell .menu-button {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid #a67a35;
  border-radius: 50%;
  color: #f4d68e;
  background: #050403dc;
  box-shadow: 0 8px 28px #000b;
  backdrop-filter: blur(10px);
  font-size: 18px;
}

#campusShell .sidebar {
  display: none;
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 40;
  width: min(320px, 88vw);
  height: 100dvh;
}

#campusShell .sidebar.open {
  display: flex;
}

.scene-menu-block {
  position: fixed;
  left: auto;
  right: max(10px, env(safe-area-inset-right));
  bottom: max(10px, env(safe-area-inset-bottom));
  z-index: 25;
  display: grid;
  grid-template-columns: auto;
  grid-template-areas: "nav";
  width: max-content;
  max-width: calc(100dvw - max(10px, env(safe-area-inset-left)) - max(10px, env(safe-area-inset-right)));
  padding: 6px;
  overflow: visible;
  border: 1px solid #8a652b;
  border-radius: 14px;
  background: linear-gradient(180deg, #090704f2, #020202f5);
  box-shadow: 0 16px 48px #000d, inset 0 0 0 1px #d8ad5512;
  backdrop-filter: blur(14px);
}

.scene-menu-status {
  grid-area: status;
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  color: #ecd49e;
  font-size: 14px;
}

.scene-menu-status,
.scene-menu-links,
.scene-menu-notice,
.scene-menu-block .tour-controls {
  display: none;
}

.scene-menu-status #caption {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scene-menu-counts {
  display: inline-flex;
  gap: 7px;
  margin-left: auto;
  color: #c4a66e;
  font-size: 12px;
  white-space: nowrap;
}

.scene-menu-links {
  grid-area: links;
  min-width: 0;
}

.scene-menu-links .doorways {
  display: flex;
  flex-wrap: nowrap;
  gap: 7px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.scene-menu-links .doorway {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 13px;
  border-color: #76582b;
  border-radius: 8px;
  color: #f4e7c9;
  background: #171007e8;
  font-size: 13px;
  white-space: nowrap;
}

.scene-menu-links .doorway.unified-route {
  min-width: 220px;
  flex: 0 0 260px;
}

.scene-menu-notice {
  grid-area: notice;
  min-width: 0;
}

.scene-menu-notice .notice {
  margin: 0;
  padding: 5px 8px;
  overflow: hidden;
  border-left-width: 1px;
  background: transparent;
  color: #bda477;
  font-size: 12px;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.scene-menu-block .nav-control-rail {
  grid-area: nav;
  position: static;
  align-self: center;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.scene-menu-block .control-caption,
.scene-menu-block .back-cluster {
  display: none;
}

.scene-menu-block .navigation-cluster {
  margin: 0;
}

.scene-menu-block .direction-pad {
  width: 102px;
  height: 102px;
  flex-basis: 102px;
}

.scene-menu-block .tour-controls {
  grid-area: tour;
  margin: 0;
  padding: 3px 0 0;
  border-top: 1px solid #4a3518;
}

.scene-menu-block .tour-controls[hidden] {
  display: none;
}

@media (orientation: landscape) {
  .scene-menu-block {
    left: auto;
    right: max(10px, env(safe-area-inset-right));
    width: max-content;
    max-width: calc(100dvw - max(10px, env(safe-area-inset-left)) - max(10px, env(safe-area-inset-right)));
    grid-template-columns: auto;
    grid-template-areas: "nav";
    align-items: center;
    gap: 8px;
    max-height: 44dvh;
    padding: 6px 8px;
  }

  .scene-menu-status {
    display: none;
  }

  .scene-menu-notice {
    display: none;
  }

  .scene-menu-block .tour-controls {
    display: none;
  }

  .scene-menu-block .direction-pad {
    width: 88px;
    height: 88px;
    flex-basis: 88px;
  }
}

@media (max-width: 600px) and (orientation: portrait) {
  .scene-menu-block {
    grid-template-columns: auto;
    padding: 6px;
  }

  .scene-menu-status {
    font-size: 12px;
  }

  .scene-menu-notice,
  .scene-menu-block .tour-controls {
    display: none;
  }

  .scene-menu-block .direction-pad {
    width: 88px;
    height: 88px;
    flex-basis: 88px;
  }
}
