/* Scroll-linked light and hairlines. All section content remains in normal flow.
   Moved by scroll-driven animations (2026-10-21, "jittery and unstable"): only transform
   and opacity, run by the browser off the main thread. Without support they stay still. */
.venue-body.identity-ab,.venue-body.identity-st,.venue-body.identity-sy,
main.identity-ab,main.identity-st,main.identity-sy{--venue-section-light:239,197,121;--venue-section-edge:#efc579}
.venue-body.identity-st,main.identity-st{--venue-section-light:181,212,255;--venue-section-edge:#cfdef5}
.venue-body.identity-sy,main.identity-sy{--venue-section-light:244,211,151;--venue-section-edge:#af9562}
.venue-fx-section{position:relative;isolation:isolate}
.venue-section-rule{position:absolute;top:0;left:0;width:100%;height:1px;pointer-events:none;z-index:3;opacity:.78;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,transparent,var(--venue-section-edge),transparent)}
.venue-fx-photo{position:relative;isolation:isolate}
.venue-fx-depth-photo{overflow:hidden}
.venue-fx-depth-photo>img{transform-origin:center}
.venue-fx-photo>figcaption{z-index:2}
.venue-photo-light{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 12%,rgba(var(--venue-section-light),.15) 39%,rgba(var(--venue-section-light),.32) 50%,transparent 68%);background-size:100% 100%;background-position:center;mix-blend-mode:screen;opacity:0}
.identity-ab .venue-photo-light{background-image:linear-gradient(112deg,transparent 28%,rgba(255,229,175,.26) 44%,rgba(255,240,204,.38) 50%,transparent 66%)}
.identity-st .venue-photo-light{background-image:repeating-linear-gradient(112deg,transparent 0 14%,rgba(var(--venue-section-light),.2) 17%,transparent 21% 34%),linear-gradient(112deg,transparent 25%,rgba(238,246,255,.28) 50%,transparent 69%)}
.identity-sy .venue-photo-light{background-image:linear-gradient(115deg,transparent 23%,rgba(var(--venue-section-light),.3) 46%,rgba(255,245,217,.42) 50%,transparent 75%)}
/* Full-width tour geometry is part of each preview's existing composition. */
html[data-venue=ab] .identity-ab #ab-tour,html[data-venue=st] .venue-body .venue-tour,html[data-venue=sy] .venue-body .venue-tour{max-width:none;width:100%;padding:80px 0;scroll-margin-top:60px}
html[data-venue=ab] #ab-tour .tour-heading,html[data-venue=ab] #ab-tour .tour-links,html[data-venue=st] .venue-body .tour-heading,html[data-venue=st] .venue-body .tour-links,html[data-venue=sy] .venue-body .tour-heading,html[data-venue=sy] .venue-body .tour-links{padding-left:clamp(24px,5.5vw,88px);padding-right:clamp(24px,5.5vw,88px)}
html[data-venue=ab] #ab-tour .tour-frame,html[data-venue=st] .venue-body .tour-frame,html[data-venue=sy] .venue-body .tour-frame{width:100%;height:clamp(380px,56vw,min(820px,72svh))}
html[data-motion=off] .venue-section-rule,html[data-motion=off] .venue-photo-light{display:none}
@media(max-width:800px){
 html[data-venue=ab] .identity-ab #ab-tour,html[data-venue=st] .venue-body .venue-tour,html[data-venue=sy] .venue-body .venue-tour{padding-top:48px;padding-bottom:48px}
 html[data-venue=ab] #ab-tour .tour-frame,html[data-venue=st] .venue-body .tour-frame,html[data-venue=sy] .venue-body .tour-frame{height:clamp(380px,65svh,600px)}
}
@media(prefers-reduced-motion:reduce){.venue-section-rule,.venue-photo-light{display:none}}
@supports (animation-timeline: view()){
 @media(prefers-reduced-motion:no-preference){
  html:not([data-motion=off]) .venue-section-rule{animation:venue-rule linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
  html:not([data-motion=off]) .venue-fx-depth-photo>img{animation:venue-depth linear both;animation-timeline:view();animation-range:cover}
  html:not([data-motion=off]) .venue-photo-light{animation:venue-light linear both;animation-timeline:view();animation-range:cover}
 }
}
@keyframes venue-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes venue-depth{from{transform:scale(1.04) translateY(4px)}to{transform:scale(1) translateY(-4px)}}
@keyframes venue-light{0%,20%{opacity:0}50%{opacity:.85}80%,100%{opacity:0}}
