:root {
  --lt-primary: 199 89% 48%;
  --lt-primary-foreground: 0 0% 100%;
  --lt-background: 222 47% 5%;
  --lt-card: 222 32% 10%;
  --lt-card-foreground: 210 40% 98%;
  --lt-border: 215 24% 22%;
  --lt-muted: 217 20% 16%;
  --lt-destructive: 0 84% 60%;
}
.lt-tour-container { position: relative; width: 100%; height: 100%; min-height: 320px; background: hsl(var(--lt-background)); color: hsl(var(--lt-card-foreground)); overflow: hidden; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.lt-logo { position: absolute; top: 14px; left: 14px; z-index: 9999; max-width: min(320px, 50vw); padding: 0; border-radius: 0; background: transparent; backdrop-filter: none; display: flex; align-items: center; pointer-events: auto; box-sizing: content-box; }
.lt-logo img { display: block; max-width: 100%; height: 100%; width: auto; object-fit: contain; }
@media (max-width: 760px) { .lt-logo { max-width: 50vw; padding: 4px 8px; transform: scale(0.78); transform-origin: top left; } }
.lt-stage { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.lt-viewer-shell { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; background: hsl(var(--lt-background)); }
.lt-viewer { position: absolute; inset: 0; width: 100%; height: 100%; }
.lt-loading { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: hsl(var(--lt-card-foreground)); background: hsl(var(--lt-background)); z-index: 50; }
.lt-map-panel { position: absolute; right: 12px; bottom: 86px; width: 384px; height: 320px; min-width: 220px; min-height: 170px; border: 1px solid hsl(var(--lt-border)); border-radius: 12px; overflow: hidden; background: hsl(var(--lt-card)); box-shadow: 0 18px 50px rgba(0,0,0,0.38); z-index: 80; }
.lt-map-panel.is-resizing .leaflet-container { pointer-events: none; }
.lt-map-panel.is-docked { top: 0; right: 0; bottom: 0; height: auto; width: min(34vw, 440px); border-radius: 0; border-top: 0; border-bottom: 0; border-right: 0; }
.lt-map-panel.is-hidden { display: none; }
.lt-map { width: 100%; height: 100%; background: hsl(var(--lt-muted)); }
.lt-map-handle { position: absolute; left: 0; right: 0; top: 0; height: 38px; display: flex; align-items: center; justify-content: center; background: hsl(var(--lt-card) / 0.82); backdrop-filter: blur(10px); z-index: 1001; cursor: grab; color: hsl(var(--lt-card-foreground)); touch-action: none; }
.lt-map-panel.is-docked .lt-map-handle { cursor: default; }
.lt-map-resize { position: absolute; right: 0; bottom: 0; width: 72px; height: 72px; cursor: nwse-resize; z-index: 1005; color: hsl(var(--lt-card-foreground) / 0.82); touch-action: none; display: flex; align-items: flex-end; justify-content: flex-end; padding: 12px; box-sizing: border-box; background: linear-gradient(135deg, transparent 42%, hsl(var(--lt-card) / 0.78)); user-select: none; -webkit-user-select: none; }
.lt-map-resize svg { width: 28px; height: 28px; display: block; }
.lt-map-resize * { pointer-events: none; }
.lt-map-resize-edge { position: absolute; z-index: 1000; touch-action: none; user-select: none; -webkit-user-select: none; }
.lt-map-resize-edge[data-dirs="t"] { left: 10px; right: 10px; top: 0; height: 10px; cursor: ns-resize; }
.lt-map-resize-edge[data-dirs="b"] { left: 10px; right: 10px; bottom: 0; height: 14px; cursor: ns-resize; }
.lt-map-resize-edge[data-dirs="l"] { left: 0; top: 38px; bottom: 10px; width: 12px; cursor: ew-resize; }
.lt-map-resize-edge[data-dirs="r"] { right: 0; top: 38px; bottom: 10px; width: 12px; cursor: ew-resize; }
.lt-map-resize-edge[data-dirs="lt"], .lt-map-resize-edge[data-dirs="rt"], .lt-map-resize-edge[data-dirs="lb"] { width: 24px; height: 24px; }
.lt-map-resize-edge[data-dirs="lt"] { left: 0; top: 0; cursor: nwse-resize; }
.lt-map-resize-edge[data-dirs="rt"] { right: 0; top: 0; cursor: nesw-resize; }
.lt-map-resize-edge[data-dirs="lb"] { left: 0; bottom: 0; cursor: nesw-resize; }
.lt-map-panel.is-docked .lt-map-resize { display: none; }
.lt-map-panel.is-docked .lt-map-resize-edge { display: none; }
.lt-map-controls { position: absolute; right: 8px; top: 46px; z-index: 1002; display: flex; gap: 6px; }
.lt-map-btn, .lt-control-btn { border: 1px solid hsl(var(--lt-border)); background: hsl(var(--lt-card) / 0.95); color: hsl(var(--lt-card-foreground)); border-radius: 8px; min-width: 34px; height: 34px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; font-weight: 650; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,0.25); }
.lt-map-btn:hover, .lt-control-btn:hover { background: hsl(var(--lt-muted)); }
.lt-map-label { font-size: 12px; font-weight: 650; }
.lt-map-marker { border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,0.35); }
.lt-map-marker.idle { width: 14px; height: 14px; background: hsl(var(--lt-card)); border: 2px solid hsl(var(--lt-card-foreground)); }
.lt-map-marker.hovered { width: 18px; height: 18px; background: hsl(var(--lt-destructive)); border: 2px solid hsl(var(--lt-destructive)); box-shadow: 0 0 0 6px hsl(var(--lt-destructive) / 0.35); }
.lt-map-marker.active { width: 22px; height: 22px; background: hsl(var(--lt-primary)); border: 3px solid hsl(var(--lt-primary-foreground)); box-shadow: 0 0 0 4px hsl(var(--lt-primary) / 0.35), 0 4px 12px rgba(0,0,0,0.3); }
.lt-map-cluster { width: 28px; height: 28px; border-radius: 9999px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: hsl(var(--lt-primary-foreground)); background: hsl(var(--lt-primary)); border: 2px solid hsl(var(--lt-card)); box-shadow: 0 2px 8px rgba(0,0,0,0.45); cursor: pointer; }
.lt-map-active-wrap { width: 60px; height: 60px; position: relative; display: flex; align-items: center; justify-content: center; }
.lt-map-active-wrap .lt-map-marker.active { position: relative; z-index: 2; }
.lt-map-direction-cone { position: absolute; top: -2px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 14px solid transparent; border-right: 14px solid transparent; border-bottom: 28px solid hsl(var(--lt-primary) / 0.3); z-index: 1; }
.lt-bottom-toggle { position: absolute; left: 12px; bottom: 104px; z-index: 26; border-radius: 999px; }
.lt-tour-container.lt-bottom-hidden .lt-bottom-toggle { bottom: 12px; }
.lt-tour-container.lt-bottom-hidden .psv-navbar { opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.lt-bottom-bar { position: absolute; left: 50%; bottom: 56px; transform: translateX(-50%); z-index: 25; display: flex; align-items: center; gap: 8px; max-width: calc(100% - 32px); }
.lt-tour-container.lt-bottom-hidden .lt-bottom-bar { display: none; }
.lt-picker { display: flex; align-items: center; gap: 8px; max-width: min(64vw, 780px); overflow-x: auto; padding: 8px 10px; border-radius: 999px; border: 1px solid hsl(var(--lt-border)); background: hsl(var(--lt-card) / 0.86); backdrop-filter: blur(14px); box-shadow: 0 12px 36px rgba(0,0,0,0.35); scrollbar-width: thin; }
.lt-picker-item { flex: 0 0 auto; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 0; border-radius: 999px; padding: 6px 12px; background: hsl(var(--lt-muted) / 0.75); color: hsl(var(--lt-card-foreground)); font-size: 12px; font-weight: 650; cursor: pointer; }
.lt-picker-item:hover { background: hsl(var(--lt-muted)); }
.lt-picker-item.active { background: hsl(var(--lt-primary)); color: hsl(var(--lt-primary-foreground)); }
.lt-global-controls { position: absolute; right: 12px; top: 12px; z-index: 28; display: flex; gap: 8px; align-items: flex-start; }
.lt-settings-panel { position: absolute; right: 12px; top: 56px; z-index: 27; width: 240px; padding: 12px 14px; border: 1px solid hsl(var(--lt-border)); border-radius: 12px; background: hsl(var(--lt-card) / 0.92); backdrop-filter: blur(14px); color: hsl(var(--lt-card-foreground)); box-shadow: 0 14px 40px rgba(0,0,0,0.35); display: none; }
.lt-settings-panel.is-open { display: block; }
.lt-settings-row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; }
.lt-settings-row:last-child { margin-bottom: 0; }
.lt-settings-row label { font-size: 12px; font-weight: 650; display: flex; justify-content: space-between; }
.lt-settings-row label span { color: hsl(var(--lt-card-foreground) / 0.7); font-weight: 500; }
.lt-settings-row input[type="range"] { width: 100%; accent-color: hsl(var(--lt-primary)); }
.tour-hotspot { display:flex; align-items:center; justify-content:center; cursor:pointer; transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; border:2px solid hsl(var(--lt-primary-foreground) / 0.72); animation: lt-hotspot-glow 2.5s ease-in-out infinite; user-select:none; pointer-events:auto; box-sizing:border-box; }
.psv-container, .psv-container *, .leaflet-container, .leaflet-container *, .tour-hotspot, .tour-map-marker, .tour-map-active-wrap { -webkit-touch-callout: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
.tour-hotspot.shape-circle { border-radius:9999px; }
.tour-hotspot.shape-diamond { border-radius:4px; transform:rotate(45deg); }
.tour-hotspot.shape-diamond > svg { transform:rotate(-45deg); }
.tour-hotspot.shape-square { border-radius:8px; }
.tour-hotspot:hover { transform:scale(1.15); }
.tour-hotspot.shape-diamond:hover { transform:rotate(45deg) scale(1.15); }
.tour-hotspot.tour-cluster { border-color:hsl(var(--lt-primary-foreground) / 0.85); }
.tour-cluster-badge { position:absolute; top:-6px; right:-6px; min-width:20px; height:20px; padding:0 6px; border-radius:9999px; background:hsl(var(--lt-destructive)); color:white; font-size:11px; font-weight:800; line-height:20px; text-align:center; border:2px solid hsl(var(--lt-background)); box-shadow:0 2px 4px rgba(0,0,0,0.3); pointer-events:none; }
.tour-hotspot.shape-diamond .tour-cluster-badge { transform:rotate(-45deg); }
.tour-hotspot.map-hover-highlight { border-color:hsl(48 96% 53%) !important; box-shadow:0 0 0 3px hsl(48 96% 53% / 0.55), 0 0 18px 6px hsl(48 96% 53% / 0.85); animation: lt-hotspot-glow 1.1s ease-in-out infinite; z-index:10; }
.tour-hotspot.shape-diamond.map-hover-highlight { transform:rotate(45deg) scale(1.18); }
.tour-hotspot.map-hover-highlight:not(.shape-diamond) { transform:scale(1.18); }
.lt-preview { position: fixed; z-index: 1200; pointer-events: auto; padding: 12px; box-sizing: border-box; }
.lt-preview-row { display: flex; flex-wrap: nowrap; align-items: flex-end; justify-content: center; gap: 8px; }
.lt-preview-item { display: flex; flex-direction: column; align-items: center; cursor: pointer; }
.lt-preview-view { border-radius: 9999px; overflow: hidden; border: 2px solid hsl(var(--lt-primary)); background: hsl(var(--lt-muted)); box-shadow: 0 18px 48px rgba(0,0,0,0.42); position: relative; background-size: 220% auto; background-position: center; }
.lt-preview-view::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.18), transparent 32%), linear-gradient(180deg, transparent 45%, rgba(0,0,0,0.26)); pointer-events: none; }
.lt-preview-view.is-video::before { content: "▶"; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 1; width: 34px; height: 34px; border-radius: 9999px; display: flex; align-items: center; justify-content: center; padding-left: 2px; color: #fff; background: rgba(0,0,0,0.58); font-size: 15px; font-weight: 800; box-shadow: 0 8px 22px rgba(0,0,0,0.35); }
.lt-preview-view .psv-container, .lt-preview-view .psv-canvas-container { background: transparent !important; border-radius: 9999px; }
.lt-preview-view canvas { border-radius: 9999px; }
.lt-preview-label { margin-top: 4px; padding: 3px 8px; font-size: 12px; font-weight: 700; border-radius: 6px; background: rgba(0,0,0,0.55); color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0,0,0,0.6); max-width: 180px; }
.lt-preview-label .lt-preview-name { display: block; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lt-preview-label .lt-preview-meta { display: block; margin-top: 2px; font-size: 10px; font-weight: 500; opacity: 0.9; }
.lt-preview-extra { display: flex; align-items: center; justify-content: center; padding: 0 12px; height: 40px; border-radius: 9999px; background: hsl(var(--lt-primary) / 0.85); border: 1px solid hsl(var(--lt-primary)); color: #fff; font-size: 12px; font-weight: 700; text-shadow: 0 1px 2px rgba(0,0,0,0.5); box-shadow: 0 6px 18px rgba(0,0,0,0.35); }
.lt-transition-overlay { pointer-events:none; position:absolute; inset:0; z-index:120; opacity:0; }
.lt-fx-blur.lt-transition-exit .psv-container { filter: blur(6px) saturate(.85); transform: scale(1.04); }
.lt-fx-fade.lt-transition-exit .psv-container { opacity:0; }
.lt-fx-zoom.lt-transition-exit .psv-container { transform:scale(1.25); opacity:0; }
.lt-fx-slide.lt-transition-exit .psv-container { transform:translateX(-8%); opacity:0; }
.lt-fx-flip.lt-transition-exit .psv-container { transform:perspective(1200px) rotateY(90deg); opacity:0; }
.lt-viewer-shell .psv-container { transition: filter var(--lt-exit-ms, 360ms) ease, transform var(--lt-exit-ms, 360ms) ease, opacity var(--lt-exit-ms, 360ms) ease; transform-origin:center; }
@keyframes lt-hotspot-glow { 0%,100% { box-shadow:0 0 8px 2px currentColor; opacity:.92; } 50% { box-shadow:0 0 20px 6px currentColor; opacity:1; } }
.tour-hotspot.tour-media-hotspot { border-color: hsl(var(--lt-primary-foreground) / 0.85); }
.lt-media-modal { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.78); display: none; align-items: center; justify-content: center; padding: 16px; }
.lt-media-modal.is-open { display: flex; }
.lt-media-card { position: relative; max-width: min(1100px, 96vw); max-height: 92vh; width: auto; background: hsl(var(--lt-card)); color: hsl(var(--lt-card-foreground)); border: 1px solid hsl(var(--lt-border)); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 22px 60px rgba(0,0,0,0.55); }
.lt-media-card.embed-card { width: 90vw; height: 88vh; max-width: 100vw; max-height: 100vh; }
.lt-media-close { position: absolute; right: 8px; top: 8px; z-index: 5; width: 32px; height: 32px; border-radius: 8px; background: hsl(var(--lt-card) / 0.9); color: hsl(var(--lt-card-foreground)); border: 1px solid hsl(var(--lt-border)); cursor: pointer; font-size: 18px; line-height: 1; display: flex; align-items: center; justify-content: center; }
.lt-media-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.lt-media-body img, .lt-media-body video { display: block; width: 100%; max-height: 70vh; object-fit: contain; background: #000; }
.lt-media-body iframe { flex: 1; width: 100%; min-height: 0; border: 0; background: #000; }
.lt-media-info { padding: 12px 16px; border-top: 1px solid hsl(var(--lt-border)); background: hsl(var(--lt-card)); }
.lt-media-info h3 { margin: 0 0 4px; font-size: 15px; font-weight: 700; }
.lt-media-info p { margin: 0; font-size: 13px; line-height: 1.5; color: hsl(var(--lt-card-foreground) / 0.78); white-space: pre-wrap; }
.lt-media-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.lt-media-links a { font-size: 12px; padding: 4px 8px; border-radius: 6px; border: 1px solid hsl(var(--lt-border)); color: hsl(var(--lt-primary)); text-decoration: none; background: hsl(var(--lt-background) / 0.5); }
.lt-media-links a:hover { background: hsl(var(--lt-muted)); }
@media (max-width: 760px) {
  .lt-map-panel, .lt-map-panel.is-docked { left: 10px; right: 10px; bottom: 72px; top: auto; width: auto; height: 34%; min-height: 180px; border-radius: 12px; border: 1px solid hsl(var(--lt-border)); }
  .lt-picker { max-width: calc(100vw - 96px); }
  .lt-bottom-bar { bottom: 48px; }
  .lt-bottom-toggle { bottom: 96px; }
  .lt-global-controls { right: 10px; top: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .tour-hotspot { animation: none; }
  .lt-viewer-shell .psv-container { transition: none; }
}
