/* The photograph sets the atmosphere; the foreground keeps its complete frame. */
.hero-photo .photo{background:transparent;border:0;border-radius:3px;overflow:hidden;box-shadow:0 28px 70px #0005}
.hero-photo .photo img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;aspect-ratio:auto;opacity:1}
.exhibition{background:#101e30}
.ambience{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-2}
.ambience-layer{position:absolute;inset:-60px;background-position:center;background-repeat:no-repeat;background-size:cover;filter:blur(45px) saturate(1.2);transform:scale(1.08);opacity:0;transition:opacity 900ms ease}
.ambience-layer.is-visible{opacity:1}
.exhibition:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(100deg,#0b172ae6 0%,#0d2130ae 50%,#081d2a90 100%),linear-gradient(0deg,#0a1c32b3,transparent 75%)}
.exhibition:before{z-index:0;opacity:.5}
.exhibition>.intro,.exhibition>.hero-photo{position:relative;z-index:1}
dialog{isolation:isolate;background:#0b1420}
dialog>.ambience{z-index:-2}
dialog:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:#07101bd9}
dialog>.ambience .ambience-layer{filter:blur(55px) saturate(1.1)}
@media(max-width:700px){.hero-photo .photo img{height:auto;max-height:none}.ambience-layer{inset:-40px;filter:blur(30px) saturate(1.15)}}
@media(prefers-reduced-motion:reduce){.ambience-layer{transition:none}.exhibition:before{display:none}}
