/* TSN centered venue: editorial labels, native controls and image callouts. */
:root{--venue-garden:var(--color-soft);--venue-water:#C1D0EC;--venue-food:#D9E3F5;--venue-mobile:#E9EDF5;--venue-tree:#97A6BF;--venue-path:var(--color-soft);--venue-selected:#E3EBFA;--venue-heritage:var(--color-soft)}
.venue-streets{fill:var(--color-ink);font-size:24px}.venue-streets path{fill:none;stroke:currentColor;stroke-width:5}.venue-boundary{fill:none;stroke:var(--color-ink);stroke-width:6}
.venue-service{fill:var(--color-soft);stroke:var(--color-ink);stroke-width:3}.venue-service text{fill:var(--color-muted);stroke:none;font-size:24px}
.venue-building{fill:var(--color-soft);stroke:var(--color-ink);stroke-width:4}.venue-garden{fill:var(--venue-garden);stroke:var(--color-ink);stroke-width:4}.venue-fountain circle:first-child{fill:var(--color-paper);stroke:var(--color-rule);stroke-width:3}.venue-fountain circle:not(:first-child){fill:var(--venue-water);stroke:var(--color-ink);stroke-width:4}
.venue-heritage{fill:var(--venue-heritage);stroke:var(--color-ink);stroke-width:4}.venue-stage{fill:var(--venue-garden);stroke:var(--color-ink);stroke-width:4}.venue-stage-platform{fill:var(--venue-water)}.venue-fixed-booth{fill:var(--venue-food);stroke:var(--color-muted);stroke-width:1}.venue-mobile-booth{fill:var(--venue-mobile);stroke:var(--color-muted);stroke-width:1}.venue-culture-point{fill:var(--color-accent)}.venue-zone-hit{fill:var(--color-clear);stroke:var(--color-clear);stroke-width:4}
.venue-svg-zone{cursor:pointer;outline:none}.venue-svg-zone text{fill:var(--color-ink);stroke:none;font-size:22px;pointer-events:none}.venue-svg-zone .venue-small-label{font-size:17px}.venue-svg-zone:is(:hover,:focus-visible,.selected)>.venue-building,.venue-svg-zone:is(:hover,:focus-visible,.selected)>.venue-heritage,.venue-svg-zone:is(:hover,:focus-visible,.selected)>.venue-stage,.venue-svg-zone:is(:hover,:focus-visible,.selected)>.venue-zone-hit{fill:var(--venue-selected);stroke:var(--color-accent);stroke-width:6}
.venue-trees{fill:var(--venue-tree);pointer-events:none}.venue-digital{fill:var(--venue-tree)}.venue-entrance{color:var(--venue-water);fill:var(--color-ink);font-size:24px}.venue-entrance path{fill:none;stroke:currentColor;stroke-width:6}
.venue-explorer{scroll-margin-top:64px}.venue-map-stage{position:relative;isolation:isolate;max-width:1000px;margin:auto;background:var(--color-paper)}
.venue-plan-svg{display:block;width:100%;height:auto;max-width:none;font:500 22px var(--font-body);color:var(--color-ink);transition:opacity .3s,filter .3s}
.venue-map-title{position:absolute;left:20px;top:18px;z-index:1;max-width:31%;margin:0;color:var(--color-ink);font:400 clamp(30px,4vw,54px)/1.02 var(--font-display);letter-spacing:0;pointer-events:none}
.venue-map-points{position:absolute;inset:0;pointer-events:none}.venue-map-point{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;min-height:44px;width:max-content;max-width:210px;padding:5px 8px;border:0;background:var(--color-paper);color:var(--color-ink);font:400 28px/1.04 var(--font-display)!important;letter-spacing:0;text-align:left;pointer-events:auto;transition:opacity .25s,color .25s}
.venue-map-point[data-venue-zone="0"],.venue-map-point[data-venue-zone="2"]{transform:translate(-100%,-50%);flex-direction:row-reverse;text-align:right}.venue-map-point[data-venue-zone="1"]{transform:translate(-50%,-100%);flex-direction:column-reverse;text-align:center;max-width:150px}.venue-map-point[data-venue-zone="3"]{transform:translate(-50%,-100%);max-width:210px}
.venue-map-point:hover,.venue-map-point[aria-expanded=true]{color:var(--color-accent)}.venue-point-dot{position:relative;display:block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--color-accent)}.venue-point-dot::after{content:'';position:absolute;inset:-3px;border:1px solid var(--color-accent);border-radius:50%;animation:venue-pulse 1.8s ease-out infinite}
@keyframes venue-pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.2);opacity:0}}
.venue-map-stage.has-selection .venue-plan-svg{opacity:.15;filter:blur(2px)}.venue-map-stage.has-selection .venue-map-point:not([aria-expanded=true]){opacity:.38}.venue-map-stage.has-selection .venue-map-title{opacity:.15}
.venue-callout[hidden]{display:none!important}.venue-callout{position:absolute;z-index:6;box-sizing:border-box;width:min(420px,calc(100% - 32px));max-height:calc(100% - 32px);overflow:auto;padding:24px;background:var(--color-paper);color:var(--color-ink);box-shadow:0 18px 70px var(--color-rule);border:1px solid var(--color-rule);animation:venue-callout-in .25s ease-out;scrollbar-width:thin;overscroll-behavior:contain}
@keyframes venue-callout-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.venue-callout-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:11px;color:var(--color-muted);margin-bottom:12px}.venue-callout-bar button{border:0;padding:4px 0;min-height:32px;background:var(--color-clear);color:var(--color-ink);font:500 13px var(--font-body)}
.venue-callout h3{font:400 36px/1.05 var(--font-display);letter-spacing:0;margin:0 0 18px}.venue-image-frame>.jphoto{aspect-ratio:1.7}.venue-image-frame img{inset:0;width:100%;height:100%;object-fit:contain;transform:none!important}.venue-image-count{font-size:12px;margin:0;color:var(--color-muted)}.venue-callout .gallery-controls{margin-top:4px}.venue-callout .gallery-controls button{height:36px}.venue-info-description{font-size:15px;line-height:1.5;margin:18px 0}.venue-callout .jtext-link{font-size:13px;white-space:normal}
.venue-map-caption{max-width:760px;margin:32px auto 0;text-align:center;color:var(--color-muted)}.venue-map-caption>p{font-size:15px;line-height:1.5;margin:0 auto 16px;max-width:54ch}.venue-map-caption>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 40px}.venue-map-caption .jtext-link{font-size:13px;white-space:normal}
@media(max-width:700px){.venue-map-title{left:8px;top:8px;font-size:23px;max-width:42%}.venue-map-point{font-size:17px!important;gap:5px;padding:4px;max-width:126px}.venue-map-point[data-venue-zone="1"]{max-width:88px}.venue-map-point[data-venue-zone="3"]{max-width:126px}.venue-point-dot{width:7px;height:7px}.venue-callout{padding:16px}.venue-callout h3{font-size:29px;margin-bottom:12px}.venue-info-description{font-size:14px;margin:12px 0}.venue-map-caption{margin-top:24px}.venue-map-caption>p{font-size:14px}.venue-map-caption>div{gap:0 20px}.venue-map-caption .jtext-link{font-size:12px}}
@media(prefers-reduced-motion:reduce){.venue-point-dot::after,.venue-callout{animation:none}.venue-plan-svg,.venue-map-point{transition:none}}
.venue-explorer .venue-map-point[data-venue-zone="0"]:active,.venue-explorer .venue-map-point[data-venue-zone="2"]:active{transform:translate(-100%,-50%)}.venue-explorer .venue-map-point[data-venue-zone="1"]:active,.venue-explorer .venue-map-point[data-venue-zone="3"]:active{transform:translate(-50%,-100%)}
.venue-svg-zone text{display:none}
