:root{--bg:#121919;--panel:#172322;--ink:#eee9da;--muted:#9ba9a3;--gold:#c8ae79;--jade:#7a9c94;--border:#ffffff1f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:13px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}button,a,input{font:inherit}button{color:inherit;border:1px solid var(--border);background:#182726;cursor:pointer;border-radius:3px;padding:9px 14px;transition:background .2s,border-color .2s}button:hover,button:focus-visible{background:#2d3e38;border-color:var(--gold)}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4}a{color:var(--gold);text-underline-offset:4px;text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}header{height:82px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:30px;padding:0 30px;background:#101918;position:relative;z-index:6}.brand{display:flex;gap:14px;align-items:center;color:var(--ink);text-decoration:none!important}.brand-mark{font:19px/1.05 "Songti SC",serif;border:1px solid #a99568;color:var(--gold);padding:6px 7px}.brand b{font:24px "Songti SC",serif;letter-spacing:6px}.brand small{display:block;color:#9ca8a0;font-size:8px;letter-spacing:1.5px;margin-top:6px}.topnav{margin:auto;display:flex;gap:32px;align-self:stretch}.topnav button{border:0;background:none;padding:0 3px;border-bottom:2px solid transparent;color:var(--muted);font-size:12px;letter-spacing:1px}.topnav button.active{color:var(--ink);border-bottom-color:var(--gold)}.icon-button{border:0;background:none;color:var(--muted);font-size:18px;padding:5px}.icon-button span{font-size:11px;margin-left:5px}.app{display:flex;height:calc(100dvh - 126px);min-height:520px}.hallnav{width:98px;flex:none;border-right:1px solid var(--border);padding:22px 12px;background:#111b1a;display:flex;flex-direction:column;gap:18px;z-index:5}.hallnav>p{font-size:8px;letter-spacing:2px;color:#718a80;text-align:center;margin:0 0 12px}.hallnav button{padding:14px 3px 10px;text-align:center;background:transparent;border-color:transparent;color:#9caea4;position:relative}.hallnav button.active{border-color:#b09c655e;background:linear-gradient(135deg,#665b363d,#1f322a30);color:#dfd0aa}.hallnav button i{font:20px Georgia,serif;display:block;font-style:normal;color:#7c998f;margin-bottom:7px}.hallnav button.active i{color:var(--gold)}.hallnav button span{display:block;font-size:12px;letter-spacing:2px}.hallnav button small{font-size:8px;color:#7e9186;display:block;margin-top:3px}.rail-end{margin-top:auto;text-align:center;font:11px "Songti SC",serif;color:#6f887c;writing-mode:vertical-rl;letter-spacing:4px;align-self:center}#exhibit{display:flex;min-width:0;flex:1;position:relative}.stage{flex:1;min-width:0;position:relative;overflow:hidden;background:#101918}#museum{display:block;width:100%;height:100%;touch-action:none}.stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0b161b66,transparent 24%,transparent 65%,#071214d9);z-index:1}.stage-heading{position:absolute;left:34px;right:30px;top:25px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;z-index:2}.eyebrow{font:9px/1.4 Georgia,serif;letter-spacing:2px;color:var(--gold);margin:0 0 13px}.stage-heading h1{font:32px "Songti SC",serif;letter-spacing:5px;margin:0;text-shadow:0 2px 14px #000}.stage-heading h1 span{font-size:13px;letter-spacing:3px;margin-left:20px;color:#d2d1c4}.stage-heading>div>p:last-child{font-size:10px;color:#a2b1a6;letter-spacing:2px}.mode-chip{border:1px solid #768a745c;color:#bac2b1;padding:5px 10px;font-size:9px;background:#15292199;letter-spacing:1px;white-space:nowrap}.mode-chip i,footer i{display:inline-block;width:4px;height:4px;background:#8cae9e;border-radius:50%;margin-right:7px}.room-caption{position:absolute;left:34px;bottom:104px;z-index:2;pointer-events:none}.room-caption>span{font-size:9px;letter-spacing:1px;color:#aab5a8}.room-caption p{font:27px "Songti SC",serif;letter-spacing:3px;margin:12px 0 16px;text-shadow:0 2px 10px #000}.room-caption button{pointer-events:auto;background:none;border:0;border-bottom:1px solid #b5a17466;padding:0 0 5px;font-size:10px;color:#d5bd88;letter-spacing:2px}.room-caption button span{margin-left:24px}.visit-guide{position:absolute;right:28px;bottom:112px;color:#a3b3a6;font-size:9px;text-align:right;z-index:2;pointer-events:none;line-height:2}.navigation-controls{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:4;display:flex;align-items:center;gap:5px;padding:7px;border:1px solid #9d9c6c47;border-radius:5px;background:#15231fe6;backdrop-filter:blur(14px);white-space:nowrap;box-shadow:0 12px 35px #0004}.navigation-controls button{border-color:transparent;background:none;padding:7px 9px;font-size:13px;color:#bcc8bb}.navigation-controls button span{font-size:10px;margin-left:4px}.navigation-controls .accent{color:#dfc58c;background:#75633a36;border-color:#b09a6745}.divider{height:18px;width:1px;background:#7d8a6940;margin:0 2px}#hotspots{position:absolute;inset:0;z-index:3;pointer-events:none}.hotspot{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:none;pointer-events:auto;white-space:nowrap;display:flex;align-items:center;color:#f5e4ba;text-shadow:0 1px 6px #000}.hotspot b{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;border:1px solid #eed7a7;background:#15251fd1;font:10px Georgia,serif;box-shadow:0 0 0 5px #cba96b16}.hotspot span{background:#11211dd4;padding:3px 7px;margin-left:6px;border-left:1px solid var(--gold);font-size:9px;opacity:0;transition:opacity .2s}.hotspot:hover span,.hotspot:focus span{opacity:1}.hotspot:hover{background:none}#loading{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font-size:12px;color:#d6c496;z-index:10}#loading span{display:inline-block;border:1px solid #ffffff22;border-top-color:var(--gold);border-radius:50%;width:18px;height:18px;vertical-align:middle;margin-right:10px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:absolute;z-index:8;left:50%;top:20%;transform:translateX(-50%);padding:12px 20px;background:#18332e;border:1px solid #9aab7c;max-width:85%;font-size:11px}#inspector{width:330px;flex:none;padding:22px 22px 30px;background:#172522;border-left:1px solid var(--border);overflow:auto}#inspector .close{float:right}#inspector h2{font:26px "Songti SC",serif;margin:16px 0 10px}#inspector h3{font-size:11px;color:var(--gold);margin-top:22px}#inspector p{font-size:12px;color:#b9c8bd;line-height:1.9}#inspector img{width:100%;max-height:310px;object-fit:contain;background:#101a16;margin-top:12px}.close{font-size:10px;padding:4px 8px;background:transparent}.status{font-size:9px;color:#ccbd96;border:1px solid #b4a16d60;padding:4px 7px;display:inline-block}.source-link{display:block;font-size:10px;margin:8px 0}.inspector-action{width:100%;margin-top:18px;border-color:#b39a6266;color:#e3c790}.note,.source-note{font-size:10px;line-height:1.9;border-left:1px solid #8a7b53;padding-left:11px;color:#9dafa3;margin-top:20px}.source-note a{display:block;margin:8px 0}.missing-list{font-size:11px;color:#b7c6b9;padding-left:18px;line-height:2.1}footer{height:44px;background:#101a18;border-top:1px solid var(--border);display:flex;align-items:center;padding:0 25px;gap:20px;color:#7d9587;font-size:9px}footer>span{white-space:nowrap}footer b{font-weight:400;color:#9cae9d;margin-left:8px;font-size:8px}footer p{margin:auto;font-size:9px}footer button{font-size:9px;padding:3px 0;border:0;background:none;color:#afbc9e}dialog{border:1px solid #746c49;background:#12201e;color:var(--ink);border-radius:5px}dialog::backdrop{background:#040c0cd9;backdrop-filter:blur(6px)}#detail-dialog{width:calc(100vw - 40px);max-width:1600px;height:calc(100dvh - 40px);max-height:none;padding:0;overflow:hidden}.detail-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid var(--border)}.detail-header .eyebrow{font-size:8px;margin-bottom:6px}.detail-header h2{font:22px "Songti SC",serif;margin:0}.detail-header button{font-size:11px;background:none;padding:6px 10px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;height:calc(100% - 78px)}.deepstage{position:relative;min-width:0;min-height:0;background:#0b1211;overflow:hidden}#deepcanvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#deepcanvas:active{cursor:grabbing}.deep-info{background:#192925;border-left:1px solid var(--border);padding:26px 23px;overflow:auto}.deep-info h3{font:24px "Songti SC",serif;line-height:1.5;margin:18px 0}.deep-info p{font-size:11px;color:#b2c3b4;line-height:1.9}.deep-info .source-note{font-size:9px}#deep-sections{display:grid;gap:7px;margin:23px 0}#deep-sections button{font-size:11px;text-align:left;background:none}#deep-sections button.active{border-color:#bba36b;color:#e1c389;background:#594d2c30}#deep-points button{display:block;width:100%;font-size:11px;border:0;background:none;text-align:left;padding:9px 0;border-bottom:1px solid #acba9b20}#deep-points button b{font:12px Georgia,serif;color:var(--gold);margin-right:14px}#deep-selected{font-size:11px;line-height:2;color:#bdcabb}#deep-selected img{width:100%;max-height:210px;object-fit:cover;object-position:center top;margin-top:16px}#deep-hotspots{position:absolute;inset:0;pointer-events:none}#deep-hotspots .hotspot{pointer-events:auto}#deep-status{position:absolute;left:16px;top:13px;padding:4px 9px;background:#0e1b16d9;color:#bcc6a8;font-size:9px;pointer-events:none}.deep-tools{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:5px;background:#15221feb;border:1px solid #717b5755;white-space:nowrap}.deep-tools button{padding:5px 10px;font-size:10px;background:none}.deep-tools button:nth-child(2),.deep-tools button:nth-child(3){font-size:15px;padding:1px 11px}#archive-dialog{width:min(960px,94vw);max-height:90dvh;padding:35px;overflow:auto}#archive-dialog h2{font:32px "Songti SC",serif;margin:22px 0}#archive-dialog h3{font-size:14px;color:var(--gold);margin-top:30px}#archive-dialog p{color:#bdcaba;font-size:12px;line-height:2}#archive-dialog .close{float:right}#archive-dialog table{width:100%;border-collapse:collapse;font-size:10px;line-height:1.9}#archive-dialog td,#archive-dialog th{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top}#archive-dialog th{color:var(--gold);font-weight:400}#archive-dialog td a{word-break:break-word}.statline{display:flex;gap:30px;padding:18px 0;border-bottom:1px solid var(--border);font-size:11px;color:#b7c5b7}.statline b{font:26px Georgia,serif;color:#d7c290;margin-right:7px}@media(max-width:1100px){header{padding:0 18px;gap:18px}.topnav{gap:20px}.hallnav{width:80px;padding:18px 7px}.stage-heading{left:24px;right:20px}.stage-heading h1{font-size:28px}.room-caption{left:24px}.visit-guide{display:none}#inspector{position:absolute;right:14px;top:15px;bottom:100px;z-index:7;width:300px;border:1px solid #6f7e5c;box-shadow:0 15px 50px #0009;background:#152621f7}.navigation-controls button{padding:6px}.navigation-controls button span{font-size:9px}footer p{display:none}footer button{margin-left:auto}.mode-chip{font-size:8px;padding:4px 6px}}@media(max-width:700px){header{height:68px;padding:0 12px;gap:10px}.brand{gap:8px}.brand b{font-size:19px;letter-spacing:3px}.brand small{font-size:6px;letter-spacing:.5px}.brand-mark{font-size:15px;padding:4px 5px}.topnav{gap:13px;margin-left:auto;margin-right:0}.topnav button{font-size:10px;letter-spacing:0}.icon-button span{display:none}.icon-button{font-size:20px}.app{height:calc(100dvh - 108px);min-height:480px}.hallnav{width:62px;padding:16px 4px;gap:15px}.hallnav>p{font-size:6px;letter-spacing:1px;margin-bottom:0}.hallnav button{padding:10px 0}.hallnav button i{font-size:16px}.hallnav button span{font-size:10px;letter-spacing:1px}.hallnav button small{font-size:7px}.rail-end{font-size:9px;letter-spacing:3px}.stage-heading{left:18px;right:14px;top:20px}.stage-heading h1{font-size:25px}.stage-heading h1 span{display:block;font-size:11px;margin:8px 0;letter-spacing:3px}.stage-heading .eyebrow{font-size:7px;letter-spacing:1px}.stage-heading>div>p:last-child{font-size:8px}.mode-chip{display:none}.room-caption{left:18px;bottom:115px}.room-caption p{font-size:19px;letter-spacing:2px;margin:8px 0 12px}.room-caption>span{font-size:8px}.room-caption button{font-size:9px}.navigation-controls{bottom:18px;max-width:calc(100% - 18px);flex-wrap:wrap;justify-content:center;width:max-content;padding:5px;gap:3px}.navigation-controls button{padding:4px 6px;font-size:12px}.navigation-controls button span{font-size:9px;margin-left:2px}footer{height:40px;padding:0 12px;font-size:8px}footer b{display:none}footer button{font-size:8px}#inspector{left:10px;right:10px;top:auto;bottom:95px;width:auto;max-height:53%;padding:15px 18px}#inspector h2{font-size:22px;margin:10px 0}#inspector img{float:left;width:100px;height:155px;margin:8px 15px 8px 0;object-fit:cover;object-position:center top}#inspector p{font-size:11px}.detail-layout{grid-template-columns:minmax(0,1fr)}.deep-info{display:none}#detail-dialog{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.detail-header{padding:0 14px;height:65px}.detail-header h2{font-size:18px}.detail-layout{height:calc(100% - 65px)}.deep-tools button{font-size:9px;padding:4px 8px}#deep-status{font-size:8px;left:8px;top:8px}.hotspot b{width:23px;height:23px;font-size:9px}#archive-dialog{padding:22px 17px}#archive-dialog h2{font-size:25px}#archive-dialog td,#archive-dialog th{padding:8px 5px;font-size:9px}.statline{gap:15px;font-size:10px}.statline b{font-size:21px}}
@media(prefers-reduced-motion:reduce){button,.hotspot span{transition:none}#loading span{animation:none}}

/* The click target is the numbered circle, not its invisible caption. */
.hotspot{width:27px;height:27px;display:block}.hotspot span{position:absolute;left:100%;top:50%;transform:translateY(-50%);pointer-events:none}.hotspot b{position:absolute;left:0;top:0}@media(max-width:700px){.hotspot{width:23px;height:23px}}

/* Native fullscreen where supported; viewport theatre is an honest fallback. */
body.theatre header{height:0;padding:0;border:none}body.theatre header .brand,body.theatre .topnav{display:none}body.theatre #fullscreen{display:block;position:fixed;right:20px;top:17px;z-index:30;background:#13251ee8;border:1px solid #9d9c6c66;padding:7px 12px;font-size:17px}body.theatre .app{height:100dvh;min-height:0}body.theatre .hallnav,body.theatre footer,body.theatre .mode-chip{display:none}body.theatre #fullscreen span{display:inline;font-size:10px}
/* v0.2 additions; original gallery styles retained. */
.space-tools{position:absolute;top:145px;left:30px;right:25px;z-index:5;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.space-tools button,.space-tools summary{font-size:10px;padding:7px 11px;background:#182721e8;border:1px solid #9b9c7950;cursor:pointer;border-radius:3px}.space-tabs{display:flex}.space-tabs button.active,.space-tools button[aria-pressed=true]{border-color:var(--gold);background:#62583bd9;color:#f3dca6}.space-tabs button{border-radius:0}.space-tabs button:first-child{border-radius:3px 0 0 3px}.space-tabs button:last-child{border-radius:0 3px 3px 0}#person-menu{position:relative}#person-list{position:absolute;top:38px;left:0;width:255px;padding:10px;background:#10241ff7;border:1px solid #9c8d65;box-shadow:0 15px 25px #0008}#person-list button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #85947e33;background:none}#person-list small{display:block;font-size:9px;color:#8cae9d;margin-left:19px}#person-list b{color:var(--gold);font-weight:400}#work-points button{display:block;font-size:11px;background:none;width:100%;margin:5px 0;text-align:left}#space-map{position:absolute;right:26px;bottom:103px;z-index:4;width:210px;background:#10231ddd;border:1px solid #8f916351;padding:11px;backdrop-filter:blur(10px)}#space-map p{margin:0 0 7px;font-size:10px;color:var(--gold)}#space-map p span{float:right;font-size:8px;color:#a5b3a5}.floorplan{height:102px;position:relative;border:1px solid #b8ac7570}.floorplan button{position:absolute;padding:1px 4px;font-size:8px;background:#243e31;border:1px solid #9b9e6955;line-height:1.7}.map-ne{top:-2px;right:22px}.map-nw{top:-2px;left:22px}.map-en{top:28px;right:-4px}.map-es{bottom:15px;right:-4px}.map-niche{top:43px;left:100px}.map-w{bottom:18px;left:-6px}.niche-plan{position:absolute;left:58px;top:24px;width:48px;height:46px;border:1px solid #bcac7380;border-bottom:0;color:#a99d74;text-align:center;padding-top:10px;font-size:8px}.plan-entry{position:absolute;bottom:-7px;left:70px;font-size:8px;background:#10231d;color:#b0ac89;padding:0 5px}#space-map+.visit-guide{display:none}#catalog-dialog{width:min(1150px,94vw);max-height:91dvh;padding:30px;overflow:auto}#catalog-dialog>.close{float:right}#catalog-dialog h2{font:31px "Songti SC",serif;margin:17px 0}#catalog-count{color:var(--muted);font-size:11px}.search-label{display:flex;gap:15px;align-items:center;font-size:11px;color:var(--gold);margin:18px 0}.search-label input{border:1px solid #ab9b6b88;background:#0e1c17;color:var(--ink);padding:8px 12px;border-radius:3px;width:min(330px,65%)}#catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:25px}#catalog-grid article{border:1px solid #949b7440;background:#1a2c24;overflow:hidden}#catalog-grid article>img{display:block;width:100%;height:185px;object-fit:cover;object-position:center 25%;background:#0c1913}#catalog-grid article>div{padding:15px}#catalog-grid h3{font:21px "Songti SC",serif;margin:8px 0}#catalog-grid p{color:#b2c1b0;font-size:10px;line-height:1.9}.catalog-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.catalog-actions button,.catalog-actions a,.catalog-actions span{font-size:10px}.catalog-actions button{padding:5px 9px}.catalog-actions a{margin-left:auto}.catalog-actions span{color:#8b9f91}footer #space-boundary{max-width:56%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:8px}.stage-heading{top:23px}.room-caption p{font-size:23px}.room-caption{bottom:105px}.mode-chip{max-width:280px}body.theatre .space-tools{top:125px}body.theatre #space-map{bottom:100px}#person-menu[open]{z-index:10}
@media(max-width:1100px){.space-tools{left:24px;top:140px;right:18px}#space-map{width:180px;right:20px}.niche-plan{left:45px}.map-niche{left:85px}.plan-entry{left:55px}.room-caption p{font-size:21px}}@media(max-width:700px){.space-tools{left:18px;right:10px;top:155px;gap:5px}.space-tools button,.space-tools summary{font-size:9px;padding:5px 7px}#space-map{display:none}#catalog-grid{grid-template-columns:1fr}#catalog-dialog{padding:20px 16px}#catalog-dialog h2{font-size:23px}.room-caption{bottom:120px}.room-caption p{font-size:18px}body.theatre .space-tools{top:135px}}
/* v0.2.1: image provenance, current-selection controls, and touch layouts. */
select{font:inherit;color:var(--ink);background:#14251f;border:1px solid #a9996b77;border-radius:3px;padding:8px 10px;max-width:100%}.image-select-label{display:grid;gap:6px;font-size:10px;color:var(--gold);margin:15px 0}.image-select-label select{width:100%}.catalog-hall-label{display:flex;gap:15px;align-items:center;font-size:11px;color:var(--gold)}#deep-work-context h4{font-size:11px;color:var(--gold);margin:24px 0 8px}#detail-info-toggle,#deep-info-close{display:none}.detail-header>div{min-width:0;flex:1}.detail-header h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-header{gap:12px}.hall-resource{margin:20px 0}.hall-resource img{margin:0!important;float:none!important;width:100%!important;height:auto!important;max-height:330px!important;object-fit:contain!important}.hall-resource figcaption{font-size:10px;color:#aebca8;line-height:1.9;margin:8px 0}.hall-resource button{width:100%;font-size:11px}.hotspot b{left:50%;top:50%;transform:translate(-50%,-50%)}.hotspot span{left:calc(50% + 18px)}.deep-info{overscroll-behavior:contain}.stage #museum:focus-visible{outline:1px solid #d1b478;outline-offset:-2px}#inspector{scrollbar-color:#766e50 #14241e}.source-note{overflow-wrap:anywhere}
@media(max-width:700px){.app{min-height:0}.hallnav{width:50px;gap:10px;padding:12px 3px}.hallnav button{min-height:65px}.hallnav>p{letter-spacing:.3px;font-size:5px}.rail-end{display:none}.brand small{display:none}.topnav{gap:10px}.topnav button{min-height:44px}.stage-heading{left:15px;top:17px}.stage-heading h1{font-size:23px}.space-tools{left:12px;top:140px;right:9px;gap:4px}.space-tools button,.space-tools summary{min-height:38px;font-size:10px;padding:7px 8px}.navigation-controls{bottom:12px;gap:1px}.navigation-controls button{min-width:38px;min-height:40px;padding:5px 7px}.room-caption{bottom:127px;left:16px}.room-caption p{font-size:16px;letter-spacing:1px}.hotspot{width:44px;height:44px}.detail-header{height:68px;gap:5px;padding:0 10px}.detail-header h2{font-size:15px}.detail-header .eyebrow{font-size:7px;letter-spacing:.3px}#detail-info-toggle{display:block;font-size:10px;min-height:40px;max-width:70px;padding:5px 7px}#close-detail{font-size:10px;min-height:40px;padding:5px 6px}.detail-layout{height:calc(100% - 68px);position:relative}.deep-info{position:absolute;right:8px;top:6px;bottom:66px;width:min(315px,calc(100% - 16px));z-index:6;padding:16px;background:#15271ffb;border:1px solid #a9996b88;box-shadow:0 14px 45px #0009}#detail-dialog.show-info .deep-info{display:block}#deep-info-close{display:block;position:sticky;top:-16px;margin-left:auto;background:#203b2c;padding:9px;font-size:10px;z-index:1}.deep-info h3{font-size:20px}.deep-tools button{min-height:38px}#deep-status{max-width:calc(100% - 14px);font-size:8px}.catalog-actions button{min-height:40px}.catalog-actions a{padding:9px 0}#inspector{max-height:57%;bottom:115px}#inspector img{float:none;width:100%;height:auto;max-height:250px;margin:10px 0}.close{min-height:36px}.catalog-hall-label select{min-height:40px}.search-label input{min-height:40px}#person-list{max-height:280px;overflow:auto;width:245px}#person-list button{min-height:43px}}
@media(pointer:coarse){.hotspot{width:44px;height:44px}button,summary,select{touch-action:manipulation}.deep-info button,#inspector button{min-height:42px}}

/* v0.3: shared courtyard / Sanqing journey; existing indoor tools retained. */
.journey-controls{position:absolute;top:178px;left:34px;z-index:4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:calc(100% - 65px)}.journey-controls>span{font-size:10px;padding:5px 8px;background:#152a24c9;border-left:2px solid var(--gold);color:#f0dfb8}.journey-controls button{font-size:11px;min-height:38px;background:#182b25ed}.journey-controls .accent{background:#b39b68;color:#14211a;border-color:#cbb580}#campus-navigation{position:absolute;right:22px;top:245px;z-index:3;width:148px;padding:12px;background:#14241cd9;border:1px solid #d0ba7d55;backdrop-filter:blur(12px)}#campus-navigation p{margin:0 0 10px;font-size:10px;color:#d3c6a4}#campus-navigation small{font-size:8px;color:#afb89c;display:block;margin-top:8px}#campus-list{display:grid;gap:5px}#campus-list button{font-size:11px;text-align:left;padding:7px 9px;background:#293c2caa}.map-wn{left:-6px;top:34px}
body[data-zone=outdoor] .room-caption{display:none}body[data-zone=outdoor] .stage:before{background:linear-gradient(180deg,#07191199,transparent 32%,transparent 80%,#102319aa)}body[data-zone=outdoor] .navigation-controls #approach,body[data-zone=outdoor] .navigation-controls #toggle-hotspots{display:none}body[data-zone=outdoor] .visit-guide{bottom:105px;color:#e8e7d5;text-shadow:0 1px 4px #000}body[data-zone=outdoor] .mode-chip{background:#172a24c9;color:#e2dec6}
@media(max-width:1100px){.journey-controls{left:24px;top:188px}#campus-navigation{top:258px;width:137px}body.theatre .journey-controls{top:175px}}
@media(max-width:700px){.journey-controls{left:12px;right:10px;top:232px;gap:5px;max-width:none}.journey-controls>span{font-size:9px;flex-basis:100%}.journey-controls button{font-size:10px;padding:6px 9px;min-height:40px}#campus-navigation{top:auto;bottom:112px;left:12px;right:10px;width:auto;padding:7px}#campus-navigation p{font-size:8px;margin:0 0 5px}#campus-list{display:flex;overflow-x:auto;gap:4px}#campus-list button{font-size:9px;white-space:nowrap;min-height:36px;padding:6px}#campus-navigation small{font-size:8px;margin-top:4px}body.theatre .journey-controls{top:225px}body[data-zone=indoor] .journey-controls{top:228px}body[data-zone=indoor] .journey-controls>span{display:none}body[data-zone=indoor] .room-caption{display:none}}

/* Keep the axis visible on narrow desktop windows as well as phones. */
body[data-zone=outdoor] #campus-navigation{top:auto;bottom:104px;left:24px;right:24px;width:auto;padding:9px 12px}body[data-zone=outdoor] #campus-list{display:flex;gap:5px;overflow-x:auto}body[data-zone=outdoor] #campus-list button{flex:1;white-space:nowrap;text-align:center;font-size:10px;padding:6px 8px}body[data-zone=outdoor] #campus-navigation p{margin:0 0 6px;font-size:9px}body[data-zone=outdoor] #campus-navigation small{font-size:8px;margin-top:5px}body[data-zone=outdoor] .visit-guide{display:none}
@media(max-width:700px){body[data-zone=outdoor] #campus-navigation{left:12px;right:10px;bottom:110px;padding:7px}body[data-zone=outdoor] #campus-list button{font-size:9px;padding:5px}}

@media(min-width:701px){body[data-zone=outdoor] #campus-navigation{top:245px;bottom:auto}body[data-zone=outdoor] #campus-navigation p{display:none}}
@media(max-width:700px){body[data-zone=outdoor] .stage-heading .eyebrow{font-size:7px;letter-spacing:.6px}body[data-zone=outdoor] .stage-heading h1{font-size:22px}body[data-zone=outdoor] .stage-heading h1 span{font-size:10px;margin-left:7px}body[data-zone=outdoor] .stage-heading>div>p:last-child{display:none}body[data-zone=outdoor] .space-tools{top:80px}body[data-zone=outdoor] .journey-controls{top:165px}body[data-zone=outdoor] #campus-navigation{bottom:90px}body[data-zone=outdoor] #campus-navigation small{display:none}}

@media(min-width:701px){body[data-zone=outdoor] #campus-navigation{top:auto;bottom:118px;left:auto;right:18px;width:128px;padding:10px}body[data-zone=outdoor] #campus-list{display:grid}body[data-zone=outdoor] #campus-list button{text-align:left}body[data-zone=outdoor] #campus-navigation small{line-height:1.7}}

/* v0.4: visitor route controls, source comparison and adaptive guide. */
.journey-controls{max-width:calc(100% - 70px);top:183px}.journey-controls #tour-status{flex-basis:100%;color:#cfccb8;font-size:10px}.journey-controls #tour-status:empty{display:none}#auto-guide[aria-pressed=true]{border-color:#c9b37f;color:#e1ce9b}#campus-overview{font-size:10px}#exhibit:has(#inspector:not([hidden])) .journey-controls{max-width:60%}@media(max-width:700px){.journey-controls{top:225px;left:18px;right:12px;max-width:none;gap:5px}.journey-controls button{font-size:10px;min-height:34px;padding:6px 9px}.journey-controls>span{display:none}.journey-controls #tour-status{font-size:9px}.space-tools{top:140px}}
