/* Square, restrained gallery-catalogue pages, with a separate reader interface. */
/* PageFlip's base styles are external here to respect the site's CSP. */
.stf__parent { position: relative; display: block; box-sizing: border-box; transform: translateZ(0); touch-action: pan-y; }
.stf__wrapper { position: relative; width: 100%; box-sizing: border-box; }
.stf__block { position: absolute; width: 100%; height: 100%; box-sizing: border-box; perspective: 2000px; }
.stf__item { display: none; position: absolute; transform-style: preserve-3d; }
.stf__outerShadow, .stf__innerShadow, .stf__hardShadow, .stf__hardInnerShadow { position: absolute; left: 0; top: 0; }
.catalogue { max-width: 1400px; margin: auto; padding: 26px 0 48px; color: #191919; }
.catalogue-heading { margin: 0 16px 24px; }
.catalogue-heading h1 { font-size: 27px; font-weight: 400; margin: 4px 0 8px; }
.catalogue-heading p { font-size: 13px; margin: 0; }
.catalogue-eyebrow { font-size: 10px !important; letter-spacing: .12em; text-transform: uppercase; }
.catalogue-viewer { background: #eee; }
.catalogue-stage { padding: 28px 24px; }
.catalogue-book { margin: auto; max-width: 1100px; }
.catalogue-page { background: #fff; position: relative; aspect-ratio: 1; margin: 0 auto 24px; max-width: 550px; overflow: hidden; box-sizing: border-box; font-family: Arial, Helvetica, sans-serif; color: #111; }
.catalogue-cover { background: #000; color: #fff; text-align: center; }
.catalogue-cover-venue { position: absolute; top: 10%; width: 100%; font-size: clamp(32px, 5vw, 63px); font-weight: 300; line-height: .95; letter-spacing: -.045em; }
.catalogue-cover-title { position: absolute; bottom: 10%; width: 100%; }
.catalogue-cover-title p, .catalogue-cover-title h2 { font-size: clamp(20px, 2.8vw, 37px); line-height: 1.3; font-weight: 300; margin: 0 0 2.5%; }
.catalogue-cover-title h2 { font-family: Arial, Helvetica, sans-serif; }
.catalogue-cover-title h2 { font-style: italic; }
.catalogue-image { position: absolute; top: 6.25%; left: 10%; width: 80%; height: 65.6%; display: flex; align-items: center; justify-content: center; }
.catalogue-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.catalogue-caption { position: absolute; left: 12.5%; bottom: 9%; right: 10%; }
.catalogue-caption h2, .catalogue-caption p { font-family: Arial, Helvetica, sans-serif; font-size: clamp(9px, 1vw, 13px); font-weight: 400; line-height: 1.25; margin: 0; }
.catalogue-end { text-align: center; background: #000; color: #fff; padding: 22% 9% 8%; }
.catalogue-end h2 { font-size: clamp(20px, 2.5vw, 32px); font-weight: 400; font-style: italic; }
.catalogue-end p { font-size: clamp(12px, 1.5vw, 18px); line-height: 1.6; }
.catalogue-end a { color: #fff; font-size: 13px; }
.catalogue-end small { display: block; margin-top: 12%; font-size: 10px; }
.catalogue-ready .catalogue-book { max-width: none; }
/* Turning and revealed pages must share the same origin, not enter normal flow. */
.catalogue-ready .catalogue-page { position: absolute; margin: 0; max-width: none; aspect-ratio: auto; }
.catalogue-ready .catalogue-stage { display: flex; align-items: center; justify-content: center; min-height: 320px; overflow: hidden; }
.catalogue-ready .catalogue-book { filter: drop-shadow(0 4px 10px #0002); }
.catalogue-ready .stf__parent { flex-shrink: 0; }
.catalogue-ready .stf__wrapper { height: 100%; }
.catalogue-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: #222; color: #eee; }
.catalogue button { font: 12px Arial, sans-serif; border: 0; border-radius: 2px; padding: 10px 12px; background: transparent; color: inherit; cursor: pointer; }
.catalogue button:hover:not(:disabled), .catalogue button[aria-pressed=true], .catalogue button[aria-expanded=true] { background: #ffffff25; }
.catalogue button:focus-visible, .catalogue a:focus-visible, .catalogue-viewer:focus-visible { outline: 2px solid #7daecb; outline-offset: 3px; }
.catalogue button:disabled { opacity: .3; cursor: default; }
.catalogue-pagination, .catalogue-tools { display: flex; align-items: center; gap: 8px; }
#catalogue-status { font-size: 12px; min-width: 88px; text-align: center; }
.catalogue-hint { margin: 0; padding: 10px; font-size: 11px; text-align: center; color: #666; }
.catalogue-rsvp { margin-top: 28px; text-align: center; }
.catalogue-thumbs { display: flex; gap: 12px; padding: 18px; overflow-x: auto; background: #333; color: #fff; }
.catalogue-thumbs button { flex: 0 0 86px; padding: 5px; border: 1px solid #777; }
.catalogue-thumbs img { width: 74px; height: 74px; object-fit: contain; background: #fff; margin-bottom: 5px; }
.catalogue-thumb-cover { display: flex; height: 74px; background: #000; justify-content: center; align-items: center; margin-bottom: 5px; font-size: 10px; }
.catalogue [hidden] { display: none !important; }
.catalogue-viewer:fullscreen { display: flex; flex-direction: column; overflow: hidden; width: 100%; height: 100%; box-sizing: border-box; background: #eee; }
.catalogue-viewer:fullscreen .catalogue-stage { flex: 1; min-height: 0; }
.catalogue-viewer:fullscreen .catalogue-controls,
.catalogue-viewer:fullscreen .catalogue-hint,
.catalogue-viewer:fullscreen .catalogue-thumbs { flex-shrink: 0; }
@media (max-width: 640px) {
  .catalogue { padding-top: 18px; }
  .catalogue-stage { padding: 20px 8px; }
  .catalogue-cover-venue { font-size: 12vw; }
  .catalogue-cover-title p, .catalogue-cover-title h2 { font-size: 6.5vw; }
  .catalogue-caption h2, .catalogue-caption p { font-size: 2.4vw; }
  .catalogue-end h2 { font-size: 6vw; }
  .catalogue-controls { padding: 8px 5px; gap: 2px; }
  .catalogue button { padding: 10px 7px; font-size: 11px; }
  .catalogue-pagination, .catalogue-tools { gap: 0; }
  #catalogue-status { min-width: 65px; font-size: 11px; }
}
