body.exhibition-page {
  margin: 0;
  background: #79403b;
  color: #fff;
  font: 16px/1.8 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  overflow-wrap: anywhere;
}
.exhibition-page *, .exhibition-page *::before, .exhibition-page *::after { box-sizing: border-box; }
.exhibition-page .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.exhibition-page .container { max-width: 1125px; margin: auto; }
.exhibition-page h1, .exhibition-page h2, .exhibition-page h3 { font-weight: 500; line-height: 1.4; }
.exhibition-page h1 { margin: 0; }
.exhibition-page h2 { margin: 0 0 24px; font-size: 24px; }
.exhibition-page h3 { margin: 0 0 8px; font-size: 20px; }
.exhibition-page p { margin: 0 0 16px; }
.exhibition-page .exhibition-hero { position: relative; aspect-ratio: 1125 / 2436; overflow: hidden; background: #400d0d; }
.exhibition-page .exhibition-hero > img, .exhibition-page .hero-title { position: absolute; display: block; }
.exhibition-page .hero-curtain { inset: 0; width: 100%; height: 100%; }
.exhibition-page .hero-title { top: 17.57%; left: 5.87%; width: 88%; }
.exhibition-page .hero-title img { display: block; width: 100%; height: auto; }
.exhibition-page .hero-image-button { position: absolute; top: 26.56%; left: 5.87%; display: block; width: 88.27%; height: 41.05%; padding: 0; }
.exhibition-page .hero-image { display: block; width: 100%; height: 100%; object-fit: contain; }
.exhibition-page .hero-calligraphy { top: 71.84%; left: 5.87%; width: 88.8%; height: auto; }
.exhibition-page .hero-subtitle { top: 87.89%; left: 27.73%; width: 44.53%; height: auto; }
.exhibition-page .hero-logos { top: 92.78%; left: 27.64%; width: 44.71%; height: auto; }
.exhibition-page .exhibition-copy { padding: 36px 5.87% 72px; }
.exhibition-page .exhibition-eyebrow { color: #ed8c80; text-align: center; font-size: clamp(13px, 2.5vw, 28px); }
.exhibition-page .exhibition-name { margin: 26px 0 12px; text-align: center; font-size: clamp(32px, 6vw, 68px); }
.exhibition-page .exhibition-subtitle { margin: 0 0 48px; text-align: center; font-size: clamp(20px, 3.5vw, 36px); }
.exhibition-page .prose { max-width: none; font-size: clamp(15px, 2vw, 27px); line-height: 1.8; letter-spacing: .03em; text-align: justify; }
.exhibition-page .exhibition-credits { margin-top: 48px; text-align: center; font-size: clamp(18px, 2.4vw, 28px); line-height: 1.5; }
.exhibition-page .exhibition-credits p { margin-bottom: 0; }
.exhibition-page .artworks-section { margin: 0 5.87%; border-block: 1px solid #311a18; padding-block: 28px; scroll-margin-top: 8px; }
.exhibition-page .artwork-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 64px; }
.exhibition-page .artwork { min-width: 0; }
.exhibition-page button { font: inherit; color: inherit; cursor: pointer; background: transparent; border: 0; }
.exhibition-page button, .exhibition-page .page-footer a { min-height: 44px; min-width: 44px; }
.exhibition-page button:focus-visible, .exhibition-page a:focus-visible { outline: 2px solid #ffc66d; outline-offset: 5px; }
.exhibition-page .artwork-image-button { display: block; padding: 0; margin: 0 auto; width: min(100%, calc((100svh - 160px) * 1123 / 2363), 400px); }
.exhibition-page .artwork-image-button picture { display: block; }
.exhibition-page .artwork-image { display: block; width: 100%; height: auto; aspect-ratio: 1123 / 2363; object-fit: contain; }
.exhibition-page .artwork-hint { margin: 0; text-align: center; font-size: 15px; }
.exhibition-page .artwork-hint + .pagination, .exhibition-page .pagination + .artwork-hint { margin-top: 12px; }
.exhibition-page .pagination { display: flex; justify-content: center; align-items: center; gap: 20px; margin: 0 0 32px; font-size: 15px; }
.exhibition-page .artwork-grid + .pagination { margin: 40px 0 0; }
.exhibition-page .pagination a, .exhibition-page .pagination .disabled { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-underline-offset: 4px; }
.exhibition-page .pagination .disabled { color: #d0aba7; }
.exhibition-page [hidden] { display: none !important; }
.exhibition-page .page-footer { margin: 0 5.87%; padding: 28px 0 max(32px, env(safe-area-inset-bottom)); font-size: clamp(15px, 2.5vw, 27px); line-height: 1.45; }
.exhibition-page .page-footer p { margin-bottom: 2px; white-space: pre-wrap; }
.exhibition-page .footer-title { font-weight: 600; }
.exhibition-page .page-footer a { display: inline-flex; align-items: center; color: inherit; text-underline-offset: 5px; }
.exhibition-page .directory-button { position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 10; width: 56px; height: 56px; padding: 0; border-radius: 50%; background: #f2ba61; color: #321916; font-size: 14px; }
.exhibition-page .artwork-directory ol { margin: 0; padding: 0; list-style: none; }
.exhibition-page .artwork-directory li + li { border-top: 1px solid #e5e5e5; }
.exhibition-page .artwork-directory a { display: flex; align-items: center; min-height: 48px; padding: 12px 4px; color: #171717; text-decoration: none; }
.exhibition-page .artwork { scroll-margin-top: 20px; }
.exhibition-page #artwork-dialog { padding: 0; border: 0; max-width: none; max-height: none; background: transparent; color: #171717; width: 100%; height: 100%; position: fixed; inset: 0; margin: 0; overflow: hidden; }
.exhibition-page #artwork-dialog:not([open]) { display: none; }
.exhibition-page #artwork-dialog[open] { display: flex; align-items: flex-end; justify-content: center; }
.exhibition-page #artwork-dialog::backdrop { background: rgb(0 0 0 / 48%); }
.exhibition-page #artwork-dialog.fallback-modal { z-index: 1000; background: rgb(0 0 0 / 48%); }
.exhibition-page .dialog-panel { background: #fff; width: 100%; max-height: 85vh; max-height: 85dvh; display: flex; flex-direction: column; padding: 20px max(20px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); }
.exhibition-page .dialog-header { display: flex; align-items: flex-start; gap: 16px; flex: none; }
.exhibition-page .dialog-header h2 { flex: 1; margin: 6px 0 20px; font-size: 22px; }
.exhibition-page .dialog-close { flex: none; padding: 4px; }
.exhibition-page .dialog-body { overflow: auto; overscroll-behavior: contain; min-height: 0; color: #414141; -webkit-overflow-scrolling: touch; }
.exhibition-page .dialog-body p { white-space: pre-wrap; }
.exhibition-page .dialog-footer { padding-top: 12px; flex: none; }
.exhibition-page .dialog-return { width: 100%; border: 1px solid #e5e5e5; padding: 8px 16px; }
.exhibition-page #artwork-dialog.image-modal[open] { align-items: stretch; }
.exhibition-page .image-modal .dialog-panel { position: relative; width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; padding: 0; background: #111; }
.exhibition-page .image-modal .dialog-header { position: absolute; z-index: 2; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); }
.exhibition-page .image-modal .dialog-header h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.exhibition-page .image-modal .dialog-close { padding: 8px 12px; background: rgb(0 0 0 / 65%); color: #fff; }
.exhibition-page .image-modal .dialog-body { flex: 1; position: relative; overflow: hidden; }
.exhibition-page .image-modal .dialog-footer { display: none; }
.exhibition-page .image-stage { position: absolute; inset: 0; overflow: hidden; touch-action: none; cursor: zoom-in; }
.exhibition-page .image-stage.is-zoomed { cursor: grab; }
.exhibition-page .dialog-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; user-select: none; transform-origin: center; }
.exhibition-page .full-image { opacity: 0; }
.exhibition-page .image-stage.is-ready .full-image { opacity: 1; }
.exhibition-page .image-loading { position: absolute; bottom: 23%; left: 50%; transform: translateX(-50%); padding: 4px 12px; border-radius: 4px; background: rgb(0 0 0 / 70%); color: #fff; white-space: nowrap; font-size: 14px; }
.exhibition-page .image-description { position: absolute; z-index: 1; inset: auto 0 0; height: 20%; overflow: auto; padding: 14px max(20px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); background: rgb(255 255 255 / 78%); color: #171717; -webkit-overflow-scrolling: touch; }
.exhibition-page .image-description-title { margin: 0 0 8px; font-size: 16px; font-weight: 600; line-height: 1.5; }
.exhibition-page .image-description p { margin-bottom: 12px; font-size: 14px; line-height: 1.65; }
@media (max-width: 340px) { .exhibition-page .exhibition-copy { padding-left: 20px; padding-right: 20px; } }
@media (max-height: 400px) { .exhibition-page .artwork-image-button { width: min(100%, 180px); } }
@media (min-width: 768px) {
  .exhibition-page #artwork-dialog[open] { align-items: center; }
  .exhibition-page .dialog-panel { max-width: 560px; padding: 24px; }
  .exhibition-page #artwork-dialog.image-modal .dialog-panel { max-width: none; }
}
@media (min-width: 1024px) {
  .exhibition-page .artwork-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 80px 64px; }
}
@media (prefers-reduced-motion: reduce) { .exhibition-page * { scroll-behavior: auto !important; } }
