*{box-sizing:border-box}html,body{margin:0;height:100%;background:#fff;color:#111;font:14px/1.45 Helvetica,Arial,sans-serif}a{color:inherit}button{font:inherit;cursor:pointer}
.top{height:56px;display:flex;align-items:center;gap:18px;padding:0 24px;border-bottom:1px solid #e5e5e5}
.brand{font-weight:900;font-size:22px;letter-spacing:.5px;text-decoration:none}.brand span{color:#c8102e}
.tag{border-left:1px solid #ccc;padding-left:14px;font-size:12px;color:#555}
.top nav{margin-left:auto;display:flex;align-items:center;gap:16px}.top nav>a{text-decoration:none;font-size:13px}
.seg{display:inline-flex;background:#f0f0f0;border-radius:999px;padding:3px}.seg a,.seg button{border:0;background:none;padding:5px 16px;border-radius:999px;text-decoration:none;font-size:13px}
.seg .on{background:#fff;box-shadow:0 0 0 1px #ddd}.seg.sm button{padding:3px 12px;font-size:12px}
.join{background:#c8102e;color:#fff!important;padding:7px 16px;border-radius:999px}
.sub{height:40px;display:flex;align-items:center;gap:14px;padding:0 20px;border-bottom:1px solid #e5e5e5;font-size:13px}.sub a{text-decoration:none}
.crumb{border-left:1px solid #ccc;padding-left:14px;font-weight:600}.sub .seg{margin-left:auto;margin-right:410px}
.app{display:grid;grid-template-columns:1fr 400px;height:calc(100% - 96px)}
#stage{position:relative;overflow:hidden;background:#fff;cursor:grab}
.intro{position:absolute;left:24px;top:16px;z-index:3;pointer-events:none}.intro h1{margin:0;font-size:28px}.intro p{margin:0;color:#444}
#room{position:absolute;left:0;top:0;width:1400px;height:980px;transform-origin:0 0}
.case{position:absolute;border:1.5px solid #111;background:#fff;padding:14px}
.case.sel-c{border-color:#c8102e}
.callout{position:absolute;top:-22px;left:20px;background:#fff;border:1px solid #111;border-radius:8px;padding:5px 12px;font-weight:700;font-size:14px;z-index:2}
.callout small{display:block;font-weight:400;font-size:11px;color:#555}
.shelf{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.item{width:120px;border:1px solid #ddd;background:#fff;padding:0;text-align:left;position:relative}
.item .ph{height:96px;background:#f4f4f4 center/cover;display:flex;align-items:center;justify-content:center;color:#999;font-size:11px}
.item .lbl{padding:5px 6px;font-size:11px;font-weight:600;line-height:1.25}.item .lbl small{display:block;font-weight:400;color:#666}
.item.sel{outline:2px solid #c8102e;outline-offset:2px}
.item.sel::after{content:attr(data-t) "\A Selected exhibit";white-space:pre;position:absolute;left:50%;top:-44px;transform:translateX(-50%);background:#fff;border:1px solid #111;border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;width:max-content;max-width:200px;z-index:4}
.help{display:inline-block;margin-top:3px;border:1px solid #c8102e;color:#c8102e;font-size:9px;padding:0 4px;text-transform:uppercase}
.focus .item:not(.sel){opacity:.35}.focus:not(.has) .item{opacity:1}
.ctl{position:absolute;bottom:16px;z-index:5;display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #ddd;border-radius:999px;padding:5px 12px;font-size:12px}
.ctl.l{left:16px}.ctl.r{right:16px}.ctl button{border:0;background:none;padding:2px 8px}
#focus i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#bbb}#focus.on i{background:#c8102e}
#cat{position:absolute;inset:80px 20px 60px;overflow:auto;background:#fff}#cat table{width:100%;border-collapse:collapse}
#cat td,#cat th{border-bottom:1px solid #eee;padding:6px;text-align:left}#cat img{width:56px;height:42px;object-fit:cover}#cat tr{cursor:pointer}
#panel{border-left:1px solid #e5e5e5;overflow:auto;padding:22px 24px;position:relative;background:#fff}
#close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:22px}
.kicker{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#555}#panel h2{font-size:24px;margin:6px 0 12px}
#p-img img{width:100%;display:block;margin-bottom:6px;aspect-ratio:4/3;object-fit:cover}
.tabs{display:flex;border-bottom:1px solid #ddd;margin:10px 0}.tabs button{flex:1;border:0;background:none;padding:9px;border-bottom:2px solid transparent;color:#555}
.tabs .on{color:#c8102e;border-bottom-color:#c8102e;font-weight:600}
dl{display:grid;grid-template-columns:110px 1fr;gap:6px;margin:0 0 12px;font-size:13px;border-bottom:1px solid #ddd;padding-bottom:12px}dt{color:#555}dd{margin:0;font-weight:600}
.cta{display:block;background:#c8102e;color:#fff;text-align:center;padding:11px;border-radius:999px;text-decoration:none;font-weight:600;margin-top:14px}
.lotl{display:block;text-align:center;margin:12px 0;font-size:13px}.foot{font-size:11px;color:#777;text-align:center}
@media(max-width:900px){.app{grid-template-columns:1fr;height:auto}#stage{height:70vh}.tag,.sub .seg{margin-right:0}.tag{display:none}}
