/* Exhibitions: the hall shows one wall render per screen; the render's own wall
   fades into a background sampled from it, so the painting reads as hung, not boxed. */
.exhibit-intro .exhibit-meta{font-size:14px;color:var(--muted);margin:18px 0 26px}
.exhibit-hall{position:relative;margin:56px 0 0;background:#c8c5bf;transition:background-color .6s ease}
.hall-rail{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;outline-offset:-3px}
.hall-rail::-webkit-scrollbar{display:none}
.hall-slide{flex:0 0 100%;margin:0;height:min(100svh,940px);min-height:560px;scroll-snap-align:center;scroll-snap-stop:always;display:flex;flex-direction:column;align-items:center;padding:24px 0 52px}
.hall-view{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}
.hall-view img{width:auto;height:auto;max-width:100%;max-height:100%;transform:scale(1.18);
 -webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent),linear-gradient(to right,transparent,#000 14%,#000 86%,transparent);-webkit-mask-composite:source-in;
 mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 84%,transparent),linear-gradient(to right,transparent,#000 14%,#000 86%,transparent);mask-composite:intersect}
.hall-label{position:relative;width:min(560px,calc(100% - 40px));color:#1a302c}
.hall-label h2{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.3;margin:0}
.hall-by{font-size:14px;color:#4f5b54;margin:4px 0 0}
.hall-note{font-size:15px;line-height:1.55;margin:10px 0 0}
.hall-detail{margin-top:10px;padding:0;border:0;background:none;color:#4f5b54;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.hall-detail:hover{color:#1a302c}
.hall-view img.zoomable{cursor:zoom-in}
.hall-count{position:absolute;left:0;right:0;bottom:16px;margin:0;text-align:center;font-size:12px;color:#4f5b54;font-variant-numeric:tabular-nums;pointer-events:none}
.hall-step{position:absolute;top:50%;width:44px;height:44px;margin-top:-22px;border:0;border-radius:50%;background:none;color:#4f5b54;display:none;align-items:center;justify-content:center}
.hall-step svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.hall-step:hover{color:#1a302c}.hall-step[disabled]{opacity:0;pointer-events:none}
.hall-prev{left:2vw}.hall-next{right:2vw}
@media (hover:hover) and (min-width:900px){.hall-step:not([hidden]){display:flex}}
@media (min-width:900px){.hall-slide{padding:40px 96px 56px}.hall-view img{transform:scale(1.3)}}

.hall-zoom{border:0;padding:0;margin:0;width:100vw;height:100svh;max-width:none;max-height:none;background:#111;color:#eee}
.hall-zoom::backdrop{background:#111}
.hall-zoom-area{width:100%;height:100%;overflow:auto;display:flex;align-items:center;justify-content:center}
.hall-zoom-area img{max-width:100%;max-height:100%;cursor:zoom-in}
.hall-zoom-area.full{display:block}.hall-zoom-area.full img{max-width:none;max-height:none;cursor:zoom-out}
.hall-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:12px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;font-size:24px;line-height:1}
.hall-zoom-hint{position:fixed;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));margin:0;text-align:center;font-size:12px;color:#aaa}

.exhibit-list ol{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.exhibit-list li{border-top:1px solid var(--line)}
.exhibit-list li a{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:center;padding:16px 0}
.exhibit-tile{display:block;width:72px;height:72px;overflow:hidden;background:#c8c5bf}
/* Wall renders keep the frame in the upper middle; enlarge to show the work itself. */
.exhibit-tile img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.7)}
.exhibit-list strong{display:block;font-weight:500;line-height:1.35}
.exhibit-list small{display:block;margin-top:4px;font-size:13px;line-height:1.5;color:var(--muted)}
.exhibit-credit{margin:28px 0 0;font-size:13px;line-height:1.6;color:var(--muted);max-width:44em}

.exhibition-index{display:grid;gap:56px;margin-bottom:100px}
.exhibition-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center}
.exhibition-card img{width:100%;height:auto}
.exhibition-card h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,46px);line-height:1.1;margin:8px 0 16px}
.exhibition-card p{line-height:1.65}
@media (max-width:760px){
 .exhibit-hall{margin-top:40px}
 .hall-slide{min-height:520px;height:calc(100svh - 24px)}
 .exhibit-list ol{grid-template-columns:1fr}
 .exhibition-card{grid-template-columns:1fr;gap:20px}
}
@media (prefers-reduced-motion:reduce){.exhibit-hall{transition:none}}

/* Full-screen viewing. Browsers with the Fullscreen API also hide their own chrome;
   iPhone Safari has no element full screen, so the hall covers the page instead. */
.hall-full{position:absolute;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;background:none;color:#4f5b54;display:flex;align-items:center;justify-content:center;z-index:2}
.hall-full[hidden]{display:none}
.hall-full:hover{color:#1a302c}
.hall-full svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}
.hall-full .hall-shrink,.exhibit-hall.immersive .hall-full .hall-expand{display:none}
.exhibit-hall.immersive .hall-full .hall-shrink{display:block}
.exhibit-hall.immersive{position:fixed;inset:0;z-index:100;margin:0;overflow:hidden}
.exhibit-hall.immersive .hall-slide{height:100vh;height:100dvh;min-height:0;padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 28px))}
.exhibit-hall.immersive .hall-full{top:max(12px,env(safe-area-inset-top))}
.exhibit-hall.immersive .hall-count{bottom:max(14px,env(safe-area-inset-bottom))}
html.hall-open,html.hall-open body{overflow:hidden}
