#stage{transition:opacity .48s ease,filter .48s ease;background:radial-gradient(circle at 50% 35%,#06202c 0,#02070b 55%,#000 100%)}
#stage.exiting{opacity:0;filter:brightness(.3)}
#stage.hidden{pointer-events:none}
.camera-debug{position:absolute;z-index:80;direction:ltr;left:10px;top:80px;padding:9px 11px;border:1px solid #46dcd6;background:#02090ee8;color:#bff;font:11px/1.45 ui-monospace,monospace;border-radius:8px;pointer-events:none}
.camera-debug[hidden]{display:none}
.gallery{background:#010304;transition:opacity .5s ease}
.hero{overflow:hidden;background:#010304}
.gallery-slide{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .56s ease;overflow:hidden}
.gallery-slide.visible{opacity:1;z-index:1}
.hero .gallery-backdrop{position:absolute;inset:-22px;width:calc(100% + 44px);height:calc(100% + 44px);object-fit:cover;filter:blur(18px) brightness(.34) saturate(.74);transform:scale(1.04);opacity:.82;transition:none}
.hero .gallery-main-image{position:relative;z-index:1;width:94vw;height:90vh;max-width:94vw;max-height:90vh;display:block;object-fit:contain;filter:saturate(1.03) contrast(1.015);opacity:1;transform:scale(1);transition:transform 7s linear;box-shadow:0 12px 48px #0008}
.gallery-slide.visible .gallery-main-image{opacity:1;transform:scale(1.015)}
.shade{z-index:2;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.24),transparent 28%,rgba(0,0,0,.08) 61%,rgba(0,0,0,.86) 100%)}
.gallery-top,.gallery-info,.thumbs,.nav,.progress{z-index:4}
.gallery-info{pointer-events:none}
.gallery-info button,.gallery-info .chip{pointer-events:auto}
@media(max-width:640px){
  .hero .gallery-backdrop{inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);filter:brightness(.3) saturate(.72);transform:scale(1.05);opacity:.72}
  .hero .gallery-main-image{width:100vw;height:calc(100vh - 132px - env(safe-area-inset-bottom));max-width:100vw;max-height:calc(100vh - 132px - env(safe-area-inset-bottom));box-shadow:none}
  .gallery-info{bottom:max(88px,calc(env(safe-area-inset-bottom) + 78px))}
  .gallery-copy p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.gallery-slide,.gallery-main-image,#stage{transition:none!important}}

.install-media.gallery-hidden{display:none}
