/* One room, one camera. Geometry follows the approved Genesis v1.2 stage/world. */
#gallery-stage{position:absolute;inset:0;overflow:hidden;perspective:1350px;perspective-origin:50% 51%;touch-action:pan-y;cursor:grab}
#gallery-world{position:absolute;inset:-1.5% -5% -3%;transform-style:preserve-3d;transform:rotateY(calc(var(--camera-yaw)*1deg)) translateZ(var(--camera-depth,0px));transition:transform .38s cubic-bezier(.18,.7,.3,1),filter .44s ease;will-change:transform}
#gallery-world:before{content:'';position:absolute;top:11%;bottom:10%;left:26%;width:48%;border-radius:46% 46% 6% 6%/22% 22% 4% 4%;border:1px solid #cbad7c66;box-shadow:0 0 0 9px #141018dd,0 0 0 12px #8c765680,0 0 100px #000d;background:linear-gradient(90deg,#1a171cf5,#352e32d9,#151318f5);transform:translateZ(-24px);pointer-events:none}
.room-ground{position:absolute;left:-20%;right:-20%;bottom:-19%;height:40%;background:repeating-linear-gradient(90deg,#e2bd7d24 0 2px,transparent 2px 14%),linear-gradient(#67503c99,#0e0d17f5);transform:translateZ(-450px) perspective(500px) rotateX(62deg);transform-origin:center top;box-shadow:0 -30px 90px #e1ad6354;pointer-events:none}
.room-wall{position:absolute;top:12%;bottom:13%;width:26%;border-top:1px solid #c7a36b38;background:linear-gradient(90deg,#17151f77,#4c3a3238,#0b0b15aa);pointer-events:none}
.room-wall-left{left:0;transform:perspective(900px) rotateY(23deg);transform-origin:right center}.room-wall-right{right:0;transform:perspective(900px) rotateY(-23deg);transform-origin:left center}
.spatial-door{position:absolute;top:25%;height:49%;width:24%;border:10px solid #3a3034;outline:1px solid #a98b5b7a;background:linear-gradient(90deg,#03050b,#24202ba6,#03050b);box-shadow:inset 0 0 70px #000,0 30px 70px #000b;pointer-events:none}
.spatial-door:after{content:'';position:absolute;inset:12% 18%;border:1px solid #c4a46f45;border-radius:45% 45% 0 0/20% 20% 0 0}
.spatial-door-left{left:1.6%;transform:perspective(900px) rotateY(23deg) scale(.94);transform-origin:right center}.spatial-door-right{right:1.6%;transform:perspective(900px) rotateY(-23deg) scale(.94);transform-origin:left center}
body[data-view=gallery] .immersive-environment .space-floor,body[data-view=gallery] .immersive-environment .space-wall{display:none}
body[data-view=gallery] #camera-rig{transform:rotateY(calc(var(--camera-yaw)*.2deg)) scale(1.04)}
body[data-view=gallery] .museum-backdrop{filter:blur(6px) brightness(.48) saturate(.65)}
body[data-view=gallery] .gallery .artwork{width:100%;max-width:none;position:relative;margin:0;perspective:none;transform:none;filter:none}
body[data-view=gallery] .gallery .artwork:before{display:none}
body[data-view=gallery] .gallery .artwork-button{position:absolute;top:13%;left:29%;width:42%;height:76%;max-width:none;min-height:0;margin:0;padding:0;border:clamp(9px,1.45vw,19px) solid #27232a;border-radius:46% 46% 4% 4%/22% 22% 2% 2%;overflow:hidden;background:#08090e;outline:0;box-shadow:0 0 0 2px #caa878b8,0 0 0 7px #28232b,0 0 0 8px #e2bd7966,0 24px 95px #000c,0 0 90px #ad865f52,inset 0 0 50px #000;transform:translateZ(28px);z-index:8;transition:box-shadow .5s ease}
body[data-view=gallery] .gallery .artwork-button:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0005,transparent 24% 67%,#0004),linear-gradient(180deg,#0002,transparent 60%,#04050bc0)}
body[data-view=gallery] .gallery .artwork #artwork-image{width:100%;height:100%;max-height:none;min-height:0;display:block;object-fit:cover;object-position:center;transition:transform 1s var(--ease);transform:none}
body[data-view=gallery] .artwork-button:hover #artwork-image{transform:scale(1.035)}
body[data-view=gallery] .gallery .side-exhibit{display:block;position:absolute;top:25%;height:49%;width:24%;padding:0;border:clamp(7px,1vw,15px) solid #4a3528;outline:2px solid #b18c5b;outline-offset:3px;box-shadow:0 1px 0 4px #160f14,0 25px 65px #000c,0 0 34px #aa814430;overflow:visible;z-index:4;background:#090a0e}
body[data-view=gallery] .gallery .side-exhibit[hidden]{display:none}
body[data-view=gallery] .gallery .side-exhibit-left{left:1.6%;right:auto;transform:perspective(900px) rotateY(23deg) scale(.94);transform-origin:right center}
body[data-view=gallery] .gallery .side-exhibit-right{right:1.6%;left:auto;transform:perspective(900px) rotateY(-23deg) scale(.94);transform-origin:left center}
body[data-view=gallery] .gallery .side-exhibit img{width:100%;height:100%;max-height:none;min-height:0;object-fit:cover;filter:saturate(.7);pointer-events:none}
body[data-view=gallery] .gallery .side-exhibit span{position:absolute;top:auto;bottom:8px;left:8px;right:8px;padding:9px 8px;font-size:11px;line-height:1.5;letter-spacing:.04em;text-shadow:0 3px 12px #000;color:#f5e9d8;background:#080a11d9;border:1px solid #d7b77c40;border-radius:4px}
body[data-view=gallery] .artwork-zoom{position:absolute;z-index:12;left:50%;right:auto;bottom:20px;transform:translateX(-50%);padding:12px 20px;white-space:nowrap;border:1px solid #eed2aa70;backdrop-filter:blur(12px);background:#080913d9;border-radius:100px;font-size:13px}
.artwork-zoom small{display:block;font-size:9px;font-weight:400;opacity:.8;margin-top:4px}
body[data-view=gallery].camera-enter #gallery-stage{animation:roomApproach 1.8s cubic-bezier(.18,.7,.3,1) both}
@keyframes roomApproach{from{opacity:0;transform:scale(1.22);filter:blur(9px)}45%{opacity:1;filter:blur(1px)}to{opacity:1;transform:scale(1);filter:none}}
body[data-view=gallery].room-passage #gallery-world{filter:blur(5px) brightness(.65);transform:rotateY(calc(var(--camera-yaw)*1deg)) translateZ(-95px)}
@media(min-width:701px) and (min-height:501px),(min-width:1001px){
 body[data-view=gallery] .masthead{position:fixed;top:0;left:0;right:0;z-index:40;padding:22px 3.8vw;pointer-events:none}body[data-view=gallery] .masthead button{pointer-events:auto}
 body[data-view=gallery] main{height:100dvh}body[data-view=gallery] .gallery{position:fixed;inset:0;height:100dvh;min-height:100dvh;padding:0;overflow:clip;max-width:none;animation:none}
 body[data-view=gallery] .gallery .artwork{height:100dvh}
 body[data-view=gallery] .gallery-heading{position:absolute;z-index:25;inset:0;pointer-events:none;margin:0;max-width:none;display:block}
 body[data-view=gallery] .gallery-heading>div{display:block}body[data-view=gallery] .gallery-heading button{pointer-events:auto}
 body[data-view=gallery] .gallery-heading .back-link{position:absolute;top:85px;left:3.8vw;min-height:44px;font-size:12px}
 body[data-view=gallery] .gallery-heading .eyebrow{display:none}
 body[data-view=gallery] .gallery-heading h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 body[data-view=gallery] .gallery-heading>.quiet{position:absolute;right:3.8vw;top:87px;font-size:12px}
 body[data-view=gallery] .gallery .artwork figcaption{position:absolute;inset:0;z-index:26;width:auto;max-width:none;margin:0;padding:0;display:block;pointer-events:none}
 body[data-view=gallery] .artwork figcaption button{pointer-events:auto}
 body[data-view=gallery] .artwork figcaption>div:first-child{position:absolute;left:3.8vw;bottom:34px;width:28vw;display:flex;flex-direction:column;gap:5px}
 body[data-view=gallery] #artwork-relation{position:static;font-size:9px;letter-spacing:.1em;margin:0}body[data-view=gallery] #artwork-title{position:static;font-size:26px;max-width:none;line-height:1.25;margin:0;overflow-wrap:anywhere}
 body[data-view=gallery] #artwork-caption{display:block;font-size:13px;line-height:1.6;margin:0}body[data-view=gallery] #artwork-date{position:static;font-size:10px;max-width:none;line-height:1.55;margin:0}
 body[data-view=gallery] #artwork-credit{position:static;font-size:9px;max-width:none;line-height:1.5;margin:0}
 body[data-view=gallery] #source-button{position:absolute;right:3.8vw;bottom:114px;border:1px solid #ffffff35;background:#080a11c9;border-radius:100px;padding-inline:20px;font-size:12px;min-height:44px}
 body[data-view=gallery] .gallery-navigation{position:absolute;right:3.8vw;bottom:52px;background:#080a11c9;border:1px solid #ffffff26;border-radius:100px;padding:3px;gap:14px;pointer-events:auto}
 body[data-view=gallery] .atmosphere-credit{position:fixed;bottom:2px;left:0;right:0;padding:7px;font-size:9px;pointer-events:none;z-index:28}
}
@media(max-width:700px),(max-width:1000px) and (max-height:500px){
 body[data-view=gallery] .gallery{padding:8px 18px 28px;perspective:none;overflow:clip;animation:none}
 body[data-view=gallery] .gallery-heading{margin-bottom:14px;align-items:start}body[data-view=gallery] .gallery-heading h1{font-size:22px}
 body[data-view=gallery] .gallery .artwork{width:100%;height:auto}
 #gallery-stage{position:relative;height:62dvh;min-height:380px;margin-inline:-18px;width:calc(100% + 36px)}
 #gallery-world{inset:-1% -8% -3%}
 #gallery-world:before{left:12%;width:76%;top:2%;bottom:5%}
 body[data-view=gallery] .gallery .artwork-button{left:17%;width:66%;top:5%;height:88%;border-width:9px}
 body[data-view=gallery] .gallery .side-exhibit{display:none}
 .room-wall-left,.spatial-door-left{left:-16%}.room-wall-right,.spatial-door-right{right:-16%}.room-wall,.spatial-door{width:34%;opacity:.7}
 body[data-view=gallery] .artwork-zoom{bottom:16px;font-size:12px;padding:10px 18px}
 body[data-view=gallery] .gallery .artwork figcaption{width:100%;padding:20px 0 0;display:block}
 body[data-view=gallery] .artwork figcaption .record-actions{margin-top:16px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;gap:12px}
 body[data-view=gallery] .record-actions .gallery-navigation{margin:0}body[data-view=gallery] .artwork h2{font-size:22px}
}
@media(prefers-reduced-motion:reduce){#gallery-world,#gallery-stage{animation:none!important;transform:none!important;transition:none!important}body[data-view=gallery] .artwork-button:hover #artwork-image{transform:none}}
