/* Overlapping slides keep the main card large and neighbouring cards behind it. */
.paper-wrap:has(.topic-carousel){box-shadow:none;overflow:hidden}
.topic-carousel{position:relative;display:flex;align-items:center;gap:12px;padding:0 6%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;max-width:100%;outline-offset:-3px;isolation:isolate}
.topic-carousel::-webkit-scrollbar{display:none}
.topic-carousel .topic-slide{position:relative;flex:0 0 100%;min-width:0;margin-right:-12%;scroll-snap-align:center;scroll-snap-stop:always;cursor:pointer;opacity:.48;z-index:1;transform:perspective(1100px) translateZ(-35px) scale(.91);transition:opacity .4s,transform .4s}
.topic-carousel .topic-slide.is-before{transform:perspective(1100px) translateZ(-35px) rotateY(8deg) scale(.91)}
.topic-carousel .topic-slide.is-after{transform:perspective(1100px) translateZ(-35px) rotateY(-8deg) scale(.91)}
.topic-carousel .topic-slide.is-active{opacity:1;transform:perspective(1100px) translateZ(0) rotateY(0) scale(1);z-index:2;cursor:default}
.topic-carousel .paper{width:100%;margin:0}
.topic-carousel .topic-slide.is-active .paper{box-shadow:0 8px 24px #00000024}
.topic-carousel .topic-slide>#barrage{inset:0}
@media(max-width:760px){.topic-carousel{padding:0 5%;gap:8px}.topic-carousel .topic-slide{margin-right:-14%}.topic-carousel .topic-slide.is-before{transform:perspective(900px) translateZ(-20px) rotateY(5deg) scale(.92)}.topic-carousel .topic-slide.is-after{transform:perspective(900px) translateZ(-20px) rotateY(-5deg) scale(.92)}}
@media(prefers-reduced-motion:reduce){.topic-carousel .topic-slide{transition:none}}
.topic-carousel.is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}

/* Overview and enlarged cards share the exhibition's landscape paper. */
.topic-room .intro .topic-overview,.c-topic-tools .topic-overview{display:flex;align-items:center;gap:8px;align-self:center;padding:12px 20px;min-height:44px;line-height:1.5;border:1px solid #66666e;border-radius:14px;background:linear-gradient(145deg,#303035,#202024);color:#eeeef2;font-size:13px;font-weight:650;white-space:nowrap}
.topic-overview span{font-size:13px;line-height:1.5}.topic-overview:disabled{opacity:.5}
body.ds-ui dialog.topic-gallery-dialog{position:fixed;inset:0;width:min(1380px,94vw);max-width:94vw;height:auto;max-height:90dvh;margin:auto;padding:28px;overflow:auto;background:#171719;color:#eeeef2;border:1px solid #49494f;border-radius:22px}
.topic-gallery-dialog .gallery-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.topic-gallery-dialog .gallery-header h2{margin:0;font-size:25px;line-height:1.4}
.topic-gallery-dialog .gallery-header p{margin:6px 0 0;color:#aaaab3;font-size:14px}
.topic-gallery-dialog .gallery-close{position:static;flex:none;width:42px;height:42px;padding:0;border:1px solid #55555e;border-radius:50%;font-size:26px;color:#eeeef2}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px}
.gallery-tile{position:relative;min-width:0}.gallery-tile .paper{width:100%;margin:0;pointer-events:none}
.topic-gallery-dialog .gallery-open{position:absolute;inset:0;width:100%;height:100%;border:1px solid transparent;border-radius:6px;background:transparent;padding:0;transition:border-color .2s,background .2s}
.topic-gallery-dialog .gallery-open:hover{border-color:#dddde5;background:#ffffff08}.gallery-open:focus-visible{outline:3px solid #eeeef2;outline-offset:4px}
.gallery-caption{font-size:14px;line-height:1.6;margin:10px 0 0;color:#d4d4db;overflow-wrap:anywhere}
.gallery-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:20px;border-top:1px solid #3d3d44;font-size:14px}
.topic-gallery-dialog button{color:#eeeef2;border-color:#55555e}.topic-gallery-dialog button:disabled{opacity:.35;cursor:default}
body.ds-ui dialog.topic-detail-dialog{width:min(1060px,94vw)}
.topic-detail-dialog>.paper{width:min(100%,calc((90dvh - 190px)*1.414));margin:0 auto}
.gallery-detail-actions{display:flex;justify-content:space-between;gap:16px;margin-top:22px}
body:has(.topic-gallery-dialog[open]){overflow:hidden}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.topic-room .intro .topic-overview{margin-top:18px}body.ds-ui dialog.topic-gallery-dialog{padding:18px;border-radius:16px}.gallery-grid{gap:18px 12px}.gallery-caption{font-size:12px}.topic-gallery-dialog .gallery-header h2{font-size:21px}.gallery-pagination{gap:8px;font-size:11px}.gallery-pagination button{padding:8px}.topic-gallery-dialog .gallery-header p{font-size:12px}.topic-detail-dialog>.paper{width:100%}}
@media(max-width:440px){.gallery-grid{grid-template-columns:1fr}}
