/* Consistent gallery geometry, independent of the source photograph. */
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:28px 20px}
.gallery-grid figure{min-width:0;align-self:stretch}
.gallery-grid button{aspect-ratio:4/5;background:var(--surface)}
.gallery-grid figure img,.gallery-grid [data-category=venue] img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center}
.gallery-grid [data-category=posters] img{object-fit:contain}
.gallery-grid figcaption{margin:12px 0 0;min-height:3em;line-height:1.5}
.lounge-gallery,.imperial-gallery,.neon-photo-feed,.gallery-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.imperial-gallery,.neon-photo-feed{grid-template-columns:repeat(4,minmax(0,1fr))}
:is(.lounge-gallery,.imperial-gallery,.neon-photo-feed,.gallery-preview)>button:nth-child(n){display:block;width:100%;min-width:0;padding:0;margin:0;border:0;aspect-ratio:4/5;overflow:hidden;background:var(--surface)}
:is(.lounge-gallery,.imperial-gallery,.neon-photo-feed,.gallery-preview)>button:nth-child(n) img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;transition:transform .55s cubic-bezier(.2,.65,.3,1)}
:is(.lounge-gallery,.imperial-gallery,.neon-photo-feed,.gallery-preview)>button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.millennium .lounge-content{width:100%;max-width:900px;animation:none}
.millennium .lounge-headline{font-family:'Cinzel',Georgia,serif;font-weight:400;font-size:clamp(62px,7.2vw,108px);line-height:1.05;letter-spacing:-.045em;color:#f3e2bd;margin:0 auto 30px;text-shadow:0 3px 24px #0008}
.lounge-headline span{display:block}
.millennium .lounge-description{font-size:clamp(12px,1.2vw,17px);color:#eee4cf;letter-spacing:.09em;margin:0 auto 28px;line-height:1.8}
.lounge-content .round-explore{margin-top:36px}
/* Short, finite entrances; nothing continuously flashes or moves. */
@keyframes title-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes scene-settle{from{transform:scale(1.055)}to{transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){
 .lounge-headline span{animation:title-arrive 1s cubic-bezier(.2,.65,.3,1) both}
 .lounge-headline span:nth-child(2){animation-delay:.16s}
 .lounge-description,.lounge-content .lounge-location,.lounge-content .round-explore{animation:title-arrive .85s ease .35s both}
 .lounge-content .round-explore{animation-delay:.5s}
 .reference-backdrop img{animation:scene-settle 4s cubic-bezier(.2,.65,.3,1) both}
 .reveal{transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
 .js .reveal.pending{transform:translateY(20px)}
 .lightbox[open]{animation:title-arrive .2s ease both}
}
@media(hover:hover){:is(.lounge-gallery,.imperial-gallery,.neon-photo-feed,.gallery-preview)>button:hover img{transform:scale(1.035)}}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.imperial-gallery,.neon-photo-feed{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .gallery-grid,.babylon .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
 .lounge-gallery,.gallery-preview{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .lounge-gallery>button:last-child,.gallery-preview>button:last-child{grid-column:1/-1;aspect-ratio:8/5}
 .imperial-gallery,.neon-photo-feed{gap:12px}
 .millennium .lounge-headline{font-size:clamp(38px,11vw,66px);margin-bottom:24px}
 .millennium .lounge-description{max-width:26ch;font-size:12px;letter-spacing:.04em}
 .lounge-content .round-explore{margin-top:28px}
 .neon-photo-stack{padding:0}.neon-photo-stack>div{position:static;margin-top:16px;align-items:center}.neon-photo-stack>div img{width:55%}
 .neon-room-feature>div{margin:0;padding:30px 24px}
 .imperial-stage-tall{max-width:100%}.imperial-stage-copy{padding:0}.imperial-suite-photo{width:100%;max-width:100%;margin:0}
}
@media(prefers-reduced-motion:reduce){.reveal{transition:none!important}.js .reveal.pending{opacity:1;transform:none}}
