/* LYTL Immersive Builder MASTER 1.0 — campus-map-directory.css — consolidated canonical styles */

.elementor-widget-lytl_campus_map_directory:has(.lytl-mapx.is-overlay) {
  position: absolute;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.lytl-mapx__launcher {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  overflow: hidden;
  padding: 12px 15px;
  border: var(--mapx-launcher-border-width) solid var(--mapx-launcher-border);
  border-radius: var(--mapx-launcher-radius);
  background: color-mix(in srgb,var(--mapx-launcher-bg) var(--mapx-launcher-opacity),transparent);
  backdrop-filter: blur(var(--mapx-launcher-blur));
  -webkit-backdrop-filter: blur(var(--mapx-launcher-blur));
  box-shadow: 0 12px 32px rgba(20,8,29,.25),inset 0 1px 0 rgba(255,255,255,.13);
  color: #fff;
  cursor: pointer;
}

.lytl-mapx__launcher.launcher-bg-none {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.lytl-mapx__launcher.launcher-bg-image,
.lytl-mapx__launcher.launcher-bg-video {
  background: transparent;
}

.lytl-mapx__launcher-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.lytl-mapx__launcher-media img,
.lytl-mapx__launcher-media video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.lytl-mapx__launcher-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: color-mix(in srgb,var(--mapx-launcher-overlay) var(--mapx-launcher-overlay-opacity),transparent);
}

.lytl-mapx__launcher-art,
.lytl-mapx__launcher-copy {
  position: relative;
  z-index: 2;
}

.lytl-mapx__launcher-art img,
.lytl-mapx__launcher-art svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lytl-mapx__launcher-art i {
  font-size: 70%;
  color: var(--mapx-launcher-border);
}

.lytl-mapx__launcher-copy {
  min-width: 0;
  text-align: left;
}

.lytl-mapx__launcher-small {
  display: block;
  font-size: 10px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .15em;
}

.lytl-mapx__launcher-main {
  display: block;
  font-size: 20px;
  line-height: 1.05;
  font-weight: 850;
}

.lytl-mapx__launcher-main p {
  margin: 0;
}

.lytl-mapx__overlay {
  position: fixed;
  inset: 0;
  z-index: 2147482501;
  display: grid;
  place-items: center;
  padding: 12px;
  background: rgba(12,6,16,.68);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.lytl-mapx__overlay[hidden] {
  display: none !important;
}

.lytl-mapx__panel {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  overflow: hidden;
  width: min(94vw,1500px);
  height: min(91vh,980px);
  border: 2px solid var(--mapx-border);
  border-radius: var(--mapx-radius);
  background: color-mix(in srgb,var(--mapx-panel-bg) var(--mapx-panel-opacity),transparent);
  backdrop-filter: blur(var(--mapx-blur));
  -webkit-backdrop-filter: blur(var(--mapx-blur));
  box-shadow: 0 30px 100px rgba(0,0,0,.46);
  color: #fff;
}

.lytl-mapx__panel.panel-bg-image,
.lytl-mapx__panel.panel-bg-video {
  background: transparent;
}

.lytl-mapx__panel-media span {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb,var(--mapx-panel-media-overlay) var(--mapx-panel-media-overlay-opacity),transparent);
}

.lytl-mapx__panel > :not(.lytl-mapx__panel-media) {
  position: relative;
  z-index: 2;
}

.lytl-mapx__close {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 20 !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1px solid color-mix(in srgb,var(--mapx-border) 65%,transparent);
  border-radius: 50%;
  background: rgba(42,20,54,.84);
  color: #fff;
  font: 400 27px/1 system-ui,sans-serif !important;
  text-align: center !important;
  cursor: pointer;
}

.lytl-mapx__header {
  padding: 20px 66px 15px 22px;
  border-bottom: 1px solid color-mix(in srgb,var(--mapx-border) 28%,transparent);
}

.lytl-mapx__kicker {
  margin-bottom: 3px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .16em;
}

.lytl-mapx__header h2 {
  margin: 0 0 5px;
  font-size: clamp(26px,3vw,44px);
  line-height: 1.02;
}

.lytl-mapx__intro {
  max-width: 960px;
}

.lytl-mapx__intro p {
  margin: 0;
}

.lytl-mapx__body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(390px,.92fr);
}

.lytl-mapx__map-side {
  min-height: 0;
  padding: 15px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-right: 1px solid color-mix(in srgb,var(--mapx-border) 22%,transparent);
}

.lytl-mapx__map-canvas {
  position: relative;
  min-height: 300px;
  height: 610px;
  flex: 1;
  overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--mapx-border) 70%,transparent);
  border-radius: 16px;
  background: rgba(20,28,44,.44);
}

.lytl-mapx__map-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center center;
}

.lytl-mapx__pin span {
  display: block;
  width: var(--pin-size);
  height: var(--pin-size);
  margin: auto;
  border: 2px solid color-mix(in srgb,var(--hall-accent) 70%,white);
  border-radius: 50%;
  background: var(--hall-color);
  box-shadow: 0 0 0 5px color-mix(in srgb,var(--hall-color) 26%,transparent),0 3px 14px rgba(0,0,0,.32);
  transition: transform .18s ease,box-shadow .18s ease;
}

.lytl-mapx__pin em {
  display: block;
  margin-top: 4px;
  padding: 3px 6px;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 55%,transparent);
  border-radius: 999px;
  background: rgba(28,14,38,.78);
  color: #fff;
  font-style: normal;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.lytl-mapx__pin:hover span,
.lytl-mapx__pin.is-active span {
  transform: scale(1.18);
  box-shadow: 0 0 0 7px color-mix(in srgb,var(--hall-color) 34%,transparent),0 0 20px color-mix(in srgb,var(--hall-accent) 38%,transparent);
}

.lytl-mapx__map-note {
  margin: 0;
  font-size: 11px;
  line-height: 1.35;
  color: #fff;
  opacity: .72;
}

.lytl-mapx__dot-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  flex-wrap: wrap;
}

.lytl-mapx__directory-side {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0,1fr);
  padding: 15px;
  background: rgba(15,7,20,.14);
}

.lytl-mapx__search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb,var(--mapx-border) 48%,transparent);
  border-radius: 12px;
  background: rgba(23,11,31,.48);
}

.lytl-mapx__search input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: #fff;
}

.lytl-mapx__search input::placeholder {
  color: #fff;
  opacity: .52;
}

.lytl-mapx__hall-deck {
  min-height: 0;
  overflow-y: auto;
  scroll-snap-type: y mandatory;
  display: grid;
  gap: 10px;
  padding-right: 4px;
  scrollbar-width: thin;
}

.lytl-mapx__hall-card {
  position: relative;
  min-height: 330px;
  scroll-snap-align: center;
  perspective: 1300px;
}

.lytl-mapx__hall-card.is-filtered-out {
  display: none;
}

.lytl-mapx__hall-flip {
  position: relative;
  width: 100%;
  min-height: 330px;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform .58s cubic-bezier(.2,.75,.2,1);
}

.lytl-mapx__hall-card.is-flipped .lytl-mapx__hall-flip {
  transform: rotateY(180deg);
}

.lytl-mapx__hall-symbol {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin-bottom: auto;
  border-radius: 50%;
  background: color-mix(in srgb,var(--hall-accent) 24%,transparent);
}

.lytl-mapx__hall-symbol svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.lytl-mapx__hall-image {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 96px;
  height: 96px;
  object-fit: contain;
}

.lytl-mapx__hall-title {
  margin: 0 0 4px;
  color: var(--hall-text);
  font-size: clamp(22px,2.4vw,34px);
  line-height: 1.02;
}

.lytl-mapx__hall-description {
  margin: 0 0 12px;
  color: var(--hall-text);
  font-size: 13px;
  line-height: 1.35;
}

.lytl-mapx__flip-button,
.lytl-mapx__hall-main-link,
.lytl-mapx__open-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 72%,transparent);
  border-radius: 999px;
  background: color-mix(in srgb,var(--hall-color) 72%,transparent);
  color: var(--hall-text);
  text-decoration: none;
  font-weight: 800;
  cursor: pointer;
}

.lytl-mapx__hall-back-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
}

.lytl-mapx__hall-back-head span {
  display: block;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .13em;
  opacity: .75;
}

.lytl-mapx__hall-directory {
  min-height: 0;
  overflow: auto;
  padding-right: 3px;
  scrollbar-width: thin;
}

.lytl-mapx__section + .lytl-mapx__section {
  margin-top: 10px;
}

.lytl-mapx__section-title {
  margin: 0 0 5px;
  padding: 5px 8px;
  border-radius: 8px;
  background: color-mix(in srgb,var(--hall-accent) 16%,transparent);
  color: var(--hall-text);
  font-size: 12px;
  line-height: 1.2;
}

.lytl-mapx__destination-list {
  display: grid;
  gap: 5px;
}

.lytl-mapx__destination {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 7px 8px;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 24%,transparent);
  border-radius: 9px;
  background: color-mix(in srgb,var(--hall-color) 22%,transparent);
}

.lytl-mapx__destination-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  color: var(--hall-text);
}

.lytl-mapx__destination-icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.lytl-mapx__destination strong {
  display: block;
  color: var(--hall-text);
  font-size: 12px;
  line-height: 1.2;
}

.lytl-mapx__destination p {
  margin: 2px 0 0;
  color: var(--hall-text);
  font-size: 10px;
  line-height: 1.25;
  opacity: .75;
}

.lytl-mapx__open-link {
  min-height: 29px;
  padding: 5px 8px;
  font-size: 10px;
}

.lytl-mapx__coming {
  display: inline-block;
  padding: 5px 8px;
  border-radius: 999px;
  background: color-mix(in srgb,var(--hall-accent) 18%,transparent);
  font-size: 9px;
  font-weight: 850;
}

.lytl-mapx__empty {
  padding: 14px;
  border: 1px dashed color-mix(in srgb,var(--hall-accent) 36%,transparent);
  border-radius: 10px;
  opacity: .72;
}

.lytl-mapx__hall-main-link {
  margin-top: 9px;
  justify-self: start;
}

body.lytl-mapx-open {
  overflow: hidden;
}

@media (max-width:900px) {
.lytl-mapx__body {
  grid-template-columns: 1fr;
  grid-template-rows: auto minmax(360px,1fr);
}
.lytl-mapx__map-side {
  border-right: 0;
  border-bottom: 1px solid color-mix(in srgb,var(--mapx-border) 22%,transparent);
}
.lytl-mapx__map-canvas {
  height: 360px;
}
.lytl-mapx__hall-card,.lytl-mapx__hall-flip {
  min-height: 300px;
}
}

@media (max-width:620px) {
.lytl-mapx__panel {
  height: calc(100vh - 12px);
  width: calc(100vw - 12px);
  border-radius: 16px;
}
.lytl-mapx__header {
  padding: 15px 54px 10px 14px;
}
.lytl-mapx__map-side,.lytl-mapx__directory-side {
  padding: 9px;
}
.lytl-mapx__map-canvas {
  height: 280px;
}
.lytl-mapx__pin em {
  display: none;
}
.lytl-mapx__destination {
  grid-template-columns: auto minmax(0,1fr);
}
.lytl-mapx__destination-action {
  grid-column: 2;
}
}

@media (prefers-reduced-motion:reduce) {
.lytl-mapx__hall-flip,
  .lytl-mapx__pin span,
  .lytl-mapx__dot-nav span {
  transition: none !important;
}
}

.lytl-mapx__launcher-art {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  overflow: visible;
}

.lytl-mapx__launcher-art img {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  transform-origin: center;
}

.lytl-mapx__launcher-art.art-layout-right {
  order: 3;
}

.lytl-mapx__launcher-art.art-layout-top,
.lytl-mapx__launcher-art.art-layout-bottom {
  align-self: center;
}

.lytl-mapx__launcher:has(.art-layout-top),
.lytl-mapx__launcher:has(.art-layout-bottom) {
  flex-direction: column;
}

.lytl-mapx__launcher-art.art-layout-bottom {
  order: 4;
}

.lytl-mapx__launcher-art.is-free {
  position: absolute !important;
  z-index: 5 !important;
  transform: translate(-50%,-50%);
}

.lytl-mapx__hall-front,
.lytl-mapx__hall-back {
  cursor: pointer;
}

.lytl-mapx__hall-front a,
.lytl-mapx__hall-front button,
.lytl-mapx__hall-back a,
.lytl-mapx__hall-back button {
  cursor: pointer;
}

.lytl-mapx__flip-back::before,
.lytl-mapx__flip-back::after {
  content: none !important;
}

.lytl-mapx__map-side,
.lytl-mapx__directory-side,
.lytl-mapx__header {
  background: transparent;
}

.lytl-mapx__dot-nav button,
.lytl-mapx__pin {
  appearance: none !important;
  -webkit-appearance: none !important;
  background: transparent !important;
  background-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.lytl-mapx__dot-nav button:focus,
.lytl-mapx__dot-nav button:active,
.lytl-mapx__pin:focus,
.lytl-mapx__pin:active {
  background: transparent !important;
  background-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.lytl-mapx__dot-nav span {
  position: relative;
  display: block;
  width: 15px;
  height: 19px;
  border-radius: 0;
  clip-path: polygon(50% 0%,88% 20%,100% 57%,50% 100%,0% 57%,12% 20%);
  background: linear-gradient(135deg,
      color-mix(in srgb,var(--hall-color) 35%,white) 0 18%,
      var(--hall-color) 19% 50%,
      color-mix(in srgb,var(--hall-color) 70%,black) 51% 72%,
      color-mix(in srgb,var(--hall-color) 50%,white) 73% 100%);
  border: 0;
  box-shadow: 0 0 0 1px color-mix(in srgb,var(--hall-color) 35%,white),
    0 2px 7px rgba(0,0,0,.24);
  transform-origin: center;
  transition: transform .22s ease,filter .22s ease,box-shadow .22s ease;
}

.lytl-mapx__dot-nav span::after {
  content: "";
  position: absolute;
  inset: 15% 26% 47% 22%;
  clip-path: polygon(0 0,100% 0,62% 100%,18% 78%);
  background: rgba(255,255,255,.56);
  pointer-events: none;
}

.lytl-mapx__dot-nav button:hover span {
  transform: translateY(-1px) scale(1.12);
  filter: brightness(1.12);
}

.lytl-mapx__dot-nav button.is-active span {
  transform: translateY(-3px) scale(1.3);
  filter: brightness(1.24) saturate(1.12);
  box-shadow: 0 0 0 1px color-mix(in srgb,var(--hall-color) 22%,white),
    0 0 8px color-mix(in srgb,var(--hall-color) 75%,white),
    0 0 17px color-mix(in srgb,var(--hall-color) 58%,transparent);
  animation: lytl-mapx-crystal-float 1.8s ease-in-out infinite;
}

.lytl-mapx__dot-nav button:focus-visible span,
.lytl-mapx__pin:focus-visible span {
  filter: brightness(1.25);
  box-shadow: 0 0 0 2px white,
    0 0 12px color-mix(in srgb,var(--hall-color) 72%,white),
    0 0 22px color-mix(in srgb,var(--hall-color) 58%,transparent);
}

@keyframes lytl-mapx-crystal-float {0%,100%{transform:translateY(-3px) scale(1.3)}
  50%{transform:translateY(-5px) scale(1.34)}}

@media (prefers-reduced-motion:reduce) {
.lytl-mapx__dot-nav button.is-active span {
  animation: none !important;
}
}

.lytl-mapx * {
  -webkit-tap-highlight-color: transparent;
}

.lytl-mapx__panel-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.lytl-mapx__panel-media img,
.lytl-mapx__panel-media video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-fit: var(--mapx-panel-media-fit) !important;
  object-position: var(--mapx-panel-media-position) !important;
  transform: scale(var(--mapx-panel-media-zoom));
  transform-origin: center;
  opacity: var(--mapx-panel-media-opacity);
}

.lytl-mapx button:focus,
.lytl-mapx button:active,
.lytl-mapx button.is-active {
  outline: none !important;
}

.lytl-mapx__pin:focus,
.lytl-mapx__pin:active,
.lytl-mapx__dot-nav button:focus,
.lytl-mapx__dot-nav button:active {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.lytl-mapx__hall-card.is-active-hall .lytl-mapx__hall-face {
  box-shadow: 0 10px 30px rgba(0,0,0,.22),0 0 22px color-mix(in srgb,var(--hall-accent) 25%,transparent),inset 0 1px 0 rgba(255,255,255,.10);
  box-shadow: 0 8px 24px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.lytl-mapx__flip-button:focus,
.lytl-mapx__flip-button:active,
.lytl-mapx__flip-back:focus,
.lytl-mapx__flip-back:active,
.lytl-mapx__hall-audio:focus,
.lytl-mapx__hall-audio:active {
  background: color-mix(in srgb,var(--hall-color) 72%,transparent) !important;
  color: var(--hall-text) !important;
  box-shadow: none !important;
}

.lytl-mapx__pin {
  position: absolute;
  left: var(--pin-x);
  top: var(--pin-y);
  transform: translate(-50%,-50%);
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  --marker-zoom: 1;
}

.lytl-mapx__pin-art {
  display: grid !important;
  place-items: center;
  width: var(--pin-size) !important;
  height: var(--pin-size) !important;
  margin: auto;
  transform: scale(var(--marker-zoom));
  transform-origin: center;
  transition: transform .18s ease,filter .18s ease,box-shadow .18s ease;
}

.lytl-mapx__pin-art img,
.lytl-mapx__pin-art svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lytl-mapx__pin.marker-image .lytl-mapx__pin-art,
.lytl-mapx__pin.marker-icon .lytl-mapx__pin-art {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.lytl-mapx__pin.marker-icon .lytl-mapx__pin-art {
  color: var(--hall-color);
}

.lytl-mapx__pin.marker-icon .lytl-mapx__pin-art svg {
  fill: currentColor;
}

.lytl-mapx__pin.marker-dot .lytl-mapx__pin-art {
  border: 2px solid color-mix(in srgb,var(--hall-accent) 70%,white);
  border-radius: 50%;
  background: var(--hall-color);
  box-shadow: 0 0 0 5px color-mix(in srgb,var(--hall-color) 26%,transparent);
}

.lytl-mapx__pin.marker-crystal .lytl-mapx__pin-art {
  border: 0;
  border-radius: 0;
  clip-path: polygon(50% 0%,88% 20%,100% 57%,50% 100%,0% 57%,12% 20%);
  background: linear-gradient(135deg,
    color-mix(in srgb,var(--hall-color) 35%,white) 0 18%,
    var(--hall-color) 19% 50%,
    color-mix(in srgb,var(--hall-color) 70%,black) 51% 72%,
    color-mix(in srgb,var(--hall-color) 50%,white) 73% 100%);
  box-shadow: 0 0 10px color-mix(in srgb,var(--hall-color) 44%,transparent);
}

.lytl-mapx__pin:hover .lytl-mapx__pin-art,
.lytl-mapx__pin.is-active .lytl-mapx__pin-art {
  transform: scale(calc(var(--marker-zoom) * 1.12));
  filter: brightness(1.15);
}

.lytl-mapx__dot-nav button {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  --marker-zoom: 1;
  width: auto !important;
  height: auto !important;
  min-width: 30px;
  min-height: 30px;
  padding: 4px !important;
  border: 0 !important;
  background: transparent !important;
}

.lytl-mapx__bottom-art {
  position: relative;
  display: grid !important;
  place-items: center;
  width: var(--bottom-size,22px) !important;
  height: var(--bottom-size,22px) !important;
  transform: scale(var(--marker-zoom));
  transform-origin: center;
  transition: transform .22s ease,filter .22s ease,box-shadow .22s ease;
}

.lytl-mapx__bottom-art img,
.lytl-mapx__bottom-art svg {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lytl-mapx__dot-nav .marker-image .lytl-mapx__bottom-art,
.lytl-mapx__dot-nav .marker-icon .lytl-mapx__bottom-art {
  clip-path: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.lytl-mapx__dot-nav .marker-icon .lytl-mapx__bottom-art {
  color: var(--hall-color);
}

.lytl-mapx__dot-nav .marker-icon .lytl-mapx__bottom-art svg {
  fill: currentColor;
}

.lytl-mapx__dot-nav .marker-dot .lytl-mapx__bottom-art {
  border-radius: 50%;
  background: var(--hall-color);
}

.lytl-mapx__dot-nav .marker-crystal .lytl-mapx__bottom-art {
  clip-path: polygon(50% 0%,88% 20%,100% 57%,50% 100%,0% 57%,12% 20%);
  background: linear-gradient(135deg,
    color-mix(in srgb,var(--hall-color) 35%,white) 0 18%,
    var(--hall-color) 19% 50%,
    color-mix(in srgb,var(--hall-color) 70%,black) 51% 72%,
    color-mix(in srgb,var(--hall-color) 50%,white) 73% 100%);
}

.lytl-mapx__dot-nav button.is-active .lytl-mapx__bottom-art {
  transform: translateY(-3px) scale(calc(var(--marker-zoom) * 1.20));
  filter: brightness(1.18);
  box-shadow: 0 0 12px color-mix(in srgb,var(--hall-color) 55%,transparent);
}

.lytl-mapx__dot-nav button:focus-visible .lytl-mapx__bottom-art {
  outline: 1px solid rgba(255,255,255,.78);
  outline-offset: 3px;
}

.lytl-mapx__hall-face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 68%,transparent);
  border-radius: 17px;
  background: linear-gradient(145deg,color-mix(in srgb,var(--hall-color) 86%,#1c1024),color-mix(in srgb,var(--hall-color) 58%,#160c1d));
  color: var(--hall-text);
  box-shadow: 0 8px 24px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08);
  background: color-mix(in srgb,var(--hall-card-color,var(--hall-color)) var(--hall-card-opacity,92%),transparent) !important;
}

.lytl-mapx__hall-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.lytl-mapx__hall-bg img,
.lytl-mapx__hall-bg video {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: var(--hall-bg-fit,cover) !important;
  object-position: var(--hall-bg-position,center center) !important;
  transform: scale(var(--hall-bg-zoom,1));
  transform-origin: center;
}

.lytl-mapx__hall-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: color-mix(in srgb,var(--hall-color) 48%,transparent);
  content: none !important;
}

.lytl-mapx__hall-bg > span {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb,var(--hall-bg-overlay,#24112f) var(--hall-bg-overlay-opacity,34%),transparent);
  pointer-events: none;
}

.lytl-mapx__hall-front-content {
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 20px;
  position: relative;
}

.lytl-mapx__hall-media {
  position: absolute;
  z-index: 3;
  width: var(--front-media-w,110px);
  height: var(--front-media-h,110px);
  overflow: visible;
}

.lytl-mapx__hall-media img,
.lytl-mapx__hall-media video,
.lytl-mapx__hall-media-icon {
  width: 100%;
  height: 100%;
  object-fit: var(--front-media-fit,contain);
  object-position: var(--front-media-position,center center);
  transform: scale(var(--front-media-zoom,1));
  transform-origin: center;
}

.lytl-mapx__hall-media video {
  border-radius: 10px;
  background: rgba(0,0,0,.15);
}

.lytl-mapx__hall-media-icon {
  display: grid;
  place-items: center;
  color: var(--hall-accent);
}

.lytl-mapx__hall-media-icon svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

.lytl-mapx__hall-media.place-top-left {
  top: 14px;
  left: 14px;
}

.lytl-mapx__hall-media.place-top-center {
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
}

.lytl-mapx__hall-media.place-top-right {
  top: 14px;
  right: 14px;
}

.lytl-mapx__hall-media.place-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.lytl-mapx__hall-media.place-bottom-left {
  bottom: 14px;
  left: 14px;
}

.lytl-mapx__hall-media.place-bottom-right {
  bottom: 14px;
  right: 14px;
}

.lytl-mapx__hall-media.place-free {
  left: var(--front-media-x);
  top: var(--front-media-y);
  transform: translate(-50%,-50%);
}

.lytl-mapx__hall-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

.lytl-mapx__hall-audio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 72%,transparent);
  border-radius: 999px;
  background: color-mix(in srgb,var(--hall-color) 52%,transparent);
  color: var(--hall-text);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.lytl-mapx__hall-audio.is-playing {
  box-shadow: 0 0 12px color-mix(in srgb,var(--hall-accent) 40%,transparent);
}

.lytl-mapx__hall-card:not(.is-flipped) .lytl-mapx__hall-front {
  pointer-events: auto;
}

.lytl-mapx__hall-card:not(.is-flipped) .lytl-mapx__hall-back {
  pointer-events: none;
}

.lytl-mapx__hall-card.is-flipped .lytl-mapx__hall-front {
  pointer-events: none;
}

.lytl-mapx__hall-card.is-flipped .lytl-mapx__hall-back {
  pointer-events: auto;
}

.lytl-mapx__hall-back {
  transform: rotateY(180deg);
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  padding: 16px;
  cursor: pointer !important;
}

.lytl-mapx__flip-back {
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb,var(--hall-accent) 66%,transparent);
  border-radius: 50%;
  background: color-mix(in srgb,var(--hall-color) 75%,transparent);
  color: var(--hall-text);
  cursor: pointer;
  flex: 0 0 auto !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  text-align: center !important;
  transform: none !important;
  translate: none !important;
  font: 700 20px/1 system-ui,sans-serif !important;
  z-index: 5;
}

@media (prefers-reduced-motion:reduce) {
.lytl-mapx__bottom-art,
  .lytl-mapx__pin-art {
  transition: none !important;
}
}

.lytl-mapx {
  --mapx-launcher-bg: #4f2868;
  --mapx-launcher-opacity: 78%;
  --mapx-launcher-overlay: #31173f;
  --mapx-launcher-overlay-opacity: 30%;
  --mapx-launcher-border: #e6c269;
  --mapx-launcher-border-width: 1px;
  --mapx-launcher-radius: 18px;
  --mapx-launcher-blur: 6px;
  --mapx-panel-bg: #351845;
  --mapx-panel-opacity: 94%;
  --mapx-panel-media-overlay: #24112f;
  --mapx-panel-media-overlay-opacity: 48%;
  --mapx-border: #e7c778;
  --mapx-radius: 24px;
  --mapx-blur: 8px;
  position: relative;
  display: inline-block;
  --mapx-panel-media-fit: cover;
  --mapx-panel-media-position: center center;
  --mapx-panel-media-zoom: 1;
  --mapx-panel-media-opacity: 100%;
  -webkit-tap-highlight-color: transparent;
  --mapx-launcher-image-w: 180px;
  --mapx-launcher-image-h: 120px;
  --mapx-launcher-icon-size: 58px;
}

.lytl-mapx__launcher.launcher-art-image .lytl-mapx__launcher-art {
  width: var(--mapx-launcher-image-w) !important;
  height: var(--mapx-launcher-image-h) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  flex: 0 0 auto !important;
}

.lytl-mapx__launcher.launcher-art-image .lytl-mapx__launcher-art img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

.lytl-mapx__launcher.launcher-art-icon .lytl-mapx__launcher-art {
  width: var(--mapx-launcher-icon-size) !important;
  height: var(--mapx-launcher-icon-size) !important;
  flex: 0 0 auto !important;
}

.lytl-mapx__launcher.launcher-art-image:has(.art-layout-top) .lytl-mapx__launcher-art,
.lytl-mapx__launcher.launcher-art-image:has(.art-layout-bottom) .lytl-mapx__launcher-art {
  max-width: calc(100% - 20px) !important;
}

.lytl-mapx__panel.panel-bg-transparent{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
.lytl-mapx__hall-card[style] .lytl-mapx__hall-face:has(.lytl-mapx__hall-bg){ }

.lytl-mapx__hall-card.hall-bg-transparent .lytl-mapx__hall-face{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

.lytl-mapx__panel.panel-bg-transparent .lytl-mapx__directory-side,.lytl-mapx__panel.panel-bg-transparent .lytl-mapx__map-side,.lytl-mapx__panel.panel-bg-transparent .lytl-mapx__header{background:transparent!important}


/* 1.0.1 FRONT-PAGE HOTFIX — restore saved hotspot X/Y positions only */
.lytl-mapx__map-canvas > .lytl-mapx__pin{
  position:absolute!important;
  left:var(--pin-x)!important;
  top:var(--pin-y)!important;
  right:auto!important;
  bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  z-index:4;
}
