/* Visitor controls, teaching process and gallery playback. */
.exhibit-kiosk { padding-bottom: 100px; }
.exhibit-kiosk-controls { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:70; width:min(840px,calc(100% - 32px)); display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 16px; border:1px solid #e8bc754d; border-radius:18px; background:#101c27f2; backdrop-filter:blur(20px); box-shadow:0 12px 60px #0008; }
.exhibit-kiosk-controls>div:last-child { display:flex; gap:8px; }
.exhibit-kiosk-label { display:grid; grid-template-columns:8px 1fr; align-items:center; gap:2px 9px; }
.exhibit-kiosk-label b { font-size:13px; color:#efdab8; font-weight:500; }
.exhibit-kiosk-label small { grid-column:2; font-size:10px; color:#94a8b7; }
.exhibit-kiosk-controls .sand-button { font-size:12px; min-height:42px; padding:10px 14px; }
.exhibit-reset-error { position:fixed; bottom:105px; left:50%; transform:translateX(-50%); z-index:120; width:min(540px,calc(100% - 32px)); padding:16px 40px 16px 18px; background:#412b27; border:1px solid #f0ac8888; border-radius:12px; font-size:13px; color:#f4d8c3; }
.exhibit-reset-error>button { position:absolute; right:14px; top:8px; padding:5px; font-size:24px; }
.exhibit-idle-prompt { padding:8px; }
.exhibit-idle-prompt h2 { font-size:27px; margin:16px 0; color:#f1e9dc; }
.exhibit-idle-prompt p { font-size:14px; line-height:1.9; color:#afbdc8; margin:12px 0; }
.exhibit-idle-prompt strong { color:#e8bc75; font-size:20px; }
.exhibit-idle-prompt>.sand-button { margin:12px 12px 0 0; }
.exhibit-example-notice { background:#e8bc7510; color:#d7be94; border:1px solid #e8bc7530; border-radius:10px; padding:13px 16px; font-size:12px; line-height:1.85; margin:18px 0; }
.exhibit-public-notice { color:#a6b9c6; font-size:12px; line-height:1.9; margin:16px 0; }
.exhibit-collection-tabs { display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }
.exhibit-collection-tabs>button { display:flex; align-items:center; gap:12px; border:1px solid #8aa3b333; padding:10px 18px; min-height:46px; border-radius:10px; color:#a6b7c3; font-size:13px; }
.exhibit-collection-tabs>button>span { color:#8499a7; font-size:11px; }
.exhibit-collection-tabs>button.selected { border-color:#e8bc7566; background:#e8bc7512; color:#f0d1a1; }
.exhibit-work-process { margin:26px 0; }
.exhibit-process-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:18px; }
.exhibit-process-heading h3 { font-size:18px; font-weight:500; color:#f1eadd; }
.exhibit-process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.exhibit-process-grid>div { padding:18px 16px; border:1px solid #a6bbca26; border-radius:12px; background:linear-gradient(140deg,#1b2d37,#14212a); min-width:0; }
.exhibit-process-grid>div>span { font-size:11px; color:#8d7f65; letter-spacing:.1em; }
.exhibit-process-grid h4 { font-size:14px; color:#e9c997; margin:9px 0; font-weight:500; }
.exhibit-process-grid p { font-size:12px; color:#acbeca; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.exhibit-media { min-width:0; margin:0; }
.exhibit-media img,.exhibit-media video { display:block; width:100%; max-height:520px; object-fit:contain; border-radius:12px; background:#09141b; }
.exhibit-media audio { display:block; width:100%; max-width:100%; margin:28px 0; }
.exhibit-media>a { width:100%; word-break:break-word; }
.exhibit-media figcaption { font-size:11px; color:#8b9fac; text-align:center; padding:8px 0; overflow-wrap:anywhere; }
.exhibit-tour-top,.exhibit-carousel-top { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.exhibit-tour-top h2,.exhibit-carousel-top h2 { font-size:23px; color:#f2eadd; margin:10px 0 0; line-height:1.45; font-weight:500; }
.exhibit-tour-top>button,.exhibit-carousel-top>div:last-child { flex-shrink:0; }
.exhibit-carousel-top>div:last-child { display:flex; gap:8px; }
.exhibit-tour-scene { display:grid; grid-template-columns:240px minmax(0,1fr); gap:30px; margin-top:22px; align-items:center; }
.exhibit-tour-art { position:relative; height:285px; border-radius:16px; overflow:hidden; background:#14232d; }
.exhibit-tour-art img { width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.exhibit-tour-art>span { position:absolute; bottom:12px; left:12px; font-size:10px; padding:4px 8px; color:#d3c5b2; background:#0c141bbd; border-radius:5px; }
.exhibit-tour-copy h3 { font-size:25px; font-weight:500; line-height:1.55; margin:18px 0 14px; color:#eed9b9; }
.exhibit-tour-copy>p { font-size:15px; line-height:1.95; color:#c0d0db; }
.exhibit-tour-copy>aside { font-size:12px; line-height:1.8; color:#93a9b9; border-left:2px solid #80b8b488; padding:8px 0 8px 14px; margin-top:20px; }
.exhibit-tour-progress { height:3px; border-radius:5px; background:#263641; margin-top:25px; overflow:hidden; }
.exhibit-tour-progress>span { display:block; height:100%; background:linear-gradient(90deg,#8bcbc2,#e8bc75); transition:width .6s linear; }
.exhibit-tour-controls { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:18px; }
.exhibit-tour-controls>div { display:flex; gap:8px; }
.exhibit-tour-controls>span { font-size:11px; color:#869cab; font-variant-numeric:tabular-nums; white-space:nowrap; }
.exhibit-tour-controls .sand-button { font-size:12px; }
.exhibit-tour-exits { display:flex; justify-content:space-between; gap:16px; border-top:1px solid #b2c7d420; margin-top:18px; padding-top:10px; }
.exhibit-tour-exits .nav-text { font-size:12px; text-align:left; }
.exhibit-carousel-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; margin-top:28px; align-items:center; }
.exhibit-carousel-media { min-width:0; border-radius:16px; overflow:hidden; }
.exhibit-carousel-media .exhibit-media img,.exhibit-carousel-media .exhibit-media video { height:290px; }
.exhibit-carousel-media .exhibit-media:has(audio),.exhibit-carousel-media .exhibit-media:has(a) { min-height:240px; padding:35px 22px; background:linear-gradient(130deg,#27404b,#16262f); display:flex; flex-direction:column; justify-content:center; }
.exhibit-carousel-illustration { height:285px; position:relative; background:#12232d; overflow:hidden; border-radius:14px; }
.exhibit-carousel-illustration img { width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.exhibit-carousel-illustration>span { position:absolute; left:14px; bottom:14px; color:#e0c69d; background:#101a22d9; border-radius:7px; padding:6px 10px; font-size:11px; }
.exhibit-carousel-story h3 { font-size:27px; line-height:1.55; font-weight:500; color:#f0debf; margin:18px 0; overflow-wrap:anywhere; }
.exhibit-carousel-story p { font-size:14px; color:#a8bdca; line-height:1.95; white-space:pre-wrap; overflow-wrap:anywhere; }
.exhibit-carousel-story small { display:block; color:#788f9f; font-size:11px; margin-top:16px; }
.exhibit-carousel-controls { display:flex; align-items:center; gap:10px; border-top:1px solid #b2c7d420; padding-top:18px; }
.exhibit-carousel-controls>.sand-button { font-size:12px; }
.exhibit-carousel-controls>span { margin-left:auto; color:#8299aa; font-size:11px; }
@media(min-width:1700px) { .exhibit-kiosk-controls { bottom:24px; } .exhibit-tour-copy h3,.exhibit-carousel-story h3 { font-size:31px; } }
@media(max-width:900px) { .exhibit-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .exhibit-tour-scene { grid-template-columns:190px minmax(0,1fr); gap:20px; } .exhibit-tour-copy h3 { font-size:22px; } .exhibit-kiosk .exhibit-landing .exhibition-topbar-right>.chip { display:none; } }
@media(max-width:600px) {
  .exhibit-kiosk { padding-bottom:128px; }
  .exhibit-kiosk-controls { bottom:10px; width:calc(100% - 20px); padding:10px; gap:8px; flex-direction:column; border-radius:14px; }
  .exhibit-kiosk-label { display:flex; width:100%; justify-content:center; gap:8px; }
  .exhibit-kiosk-label b { font-size:11px; }
  .exhibit-kiosk-label small { font-size:10px; }
  .exhibit-kiosk-controls>div:last-child { width:100%; gap:6px; }
  .exhibit-kiosk-controls .sand-button { flex:1; padding:9px 7px; min-height:41px; font-size:11px; white-space:nowrap; }
  .exhibit-reset-error { bottom:122px; }
  .exhibit-process-heading { align-items:flex-start; flex-direction:column; gap:10px; }
  .exhibit-process-heading h3 { font-size:17px; }
  .exhibit-process-grid { gap:8px; }
  .exhibit-process-grid>div { padding:14px 12px; }
  .exhibit-process-grid h4 { font-size:12px; }
  .exhibit-process-grid p { font-size:11px; }
  .exhibit-example-notice { padding:10px 12px; font-size:11px; }
  .exhibit-tour-top h2,.exhibit-carousel-top h2 { font-size:19px; }
  .exhibit-tour-top .exhibit-eyebrow,.exhibit-carousel-top .exhibit-eyebrow { font-size:9px; letter-spacing:.1em; }
  .exhibit-tour-top>button,.exhibit-carousel-top>div:last-child>.sand-button { min-width:38px; min-height:38px; padding:8px; }
  .exhibit-carousel-top>div:last-child { gap:4px; flex-direction:column-reverse; }
  .exhibit-carousel-top>div:last-child>.sand-button { font-size:10px; }
  .exhibit-tour-scene { grid-template-columns:1fr; gap:16px; }
  .exhibit-tour-art { height:150px; }
  .exhibit-tour-art img { object-position:center 30%; }
  .exhibit-tour-copy h3 { font-size:21px; margin:12px 0; }
  .exhibit-tour-copy>p { font-size:13px; }
  .exhibit-tour-copy>aside { font-size:11px; margin-top:12px; }
  .exhibit-tour-controls { flex-wrap:wrap; gap:10px; }
  .exhibit-tour-controls>div { flex:1; }
  .exhibit-tour-controls .sand-button { padding:9px 11px; font-size:11px; flex:1; white-space:nowrap; }
  .exhibit-tour-controls>span { width:100%; text-align:center; }
  .exhibit-tour-exits { flex-direction:column; gap:2px; }
  .exhibit-carousel-main { grid-template-columns:1fr; gap:14px; margin-top:20px; }
  .exhibit-carousel-illustration { height:180px; }
  .exhibit-carousel-media .exhibit-media img,.exhibit-carousel-media .exhibit-media video { height:190px; }
  .exhibit-carousel-story h3 { font-size:22px; margin:12px 0; }
  .exhibit-carousel-story p { font-size:12px; }
  .exhibit-carousel-controls { flex-wrap:wrap; gap:7px; }
  .exhibit-carousel-controls>.sand-button { flex:1; padding:10px 8px; font-size:11px; }
  .exhibit-carousel-controls>span { width:100%; margin-left:0; text-align:center; font-size:10px; }
  .exhibit-collection-tabs>button { flex:1; justify-content:center; padding:10px 12px; }
}
@media(prefers-reduced-motion:reduce) { .exhibit-tour-progress>span { transition:none; } }
