/* Scoped additions keep the original exhibition, typography and saved work intact. */
/* The decorative backdrop must not intercept the mobile reading entrance. */
#theatre .theatre-haze { pointer-events:none; }
#entity-guide-v37 {
 --guide-paper:#f4e8cb; --guide-ink:#2d3028;
 --guide-song:'Songti SC','Noto Serif CJK SC',SimSun,serif;
 --guide-body:'FangSong','STFangsong','Songti SC',serif;
 position:fixed; z-index:32; right:22px; bottom:calc(74px + env(safe-area-inset-bottom,0px));
 display:flex; flex-direction:column; align-items:center; width:116px; pointer-events:none;
}
#entity-guide-v37[hidden],#entity-guide-v37 [hidden],body[data-journey] #entity-guide-v37 { display:none!important; }
#entity-guide-v37 * { box-sizing:border-box; }
#entity-guide-v37 :is(button,input,select,a) { touch-action:manipulation; }
#entity-guide-v37 button { cursor:pointer; min-height:44px; padding:8px 13px; border:1px solid #b28c50; border-radius:4px; color:#f1ddb5; background:#1b4338; font:12px/1.6 var(--guide-song); letter-spacing:0; }
#entity-guide-v37 button:hover { background:#285744; }
#entity-guide-v37 button:disabled { opacity:.5; cursor:default; }
#entity-guide-v37 :focus-visible { outline:2px solid #b68843; outline-offset:3px; }
#entity-guide-v37 .character-toggle {
 position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
 min-height:138px; width:116px; padding:0; border:0; background:transparent!important; pointer-events:auto;
 box-shadow:none; margin:0;
}
#entity-guide-v37 .character-toggle img { display:block; width:104px; height:115px; object-fit:contain; filter:drop-shadow(0 8px 8px #061b23a0); animation:guide-character-float-v37 5.6s ease-in-out infinite; }
#entity-guide-v37 .character-toggle:before { content:''; position:absolute; left:23px; right:23px; bottom:22px; height:9px; border-radius:50%; background:#011a1080; filter:blur(5px); pointer-events:none; }
#entity-guide-v37 .character-name { position:relative; min-height:27px; padding:4px 10px; border:1px solid #c9a66980; border-radius:25px; background:#173e34f2; font:11px/1.5 var(--guide-song); color:#f0d9ad; box-shadow:0 4px 12px #082b21; }
#entity-guide-v37 .character-speech { max-width:156px; margin:0; padding:7px 11px; font:11px/1.7 var(--guide-song); color:#ead9b8; background:#163b32f2; border:1px solid #c9a66970; border-radius:13px 13px 2px 13px; text-align:center; box-shadow:0 6px 19px #02231970; }
#entity-guide-v37[data-open=true] .character-speech { display:none; }
#entity-guide-v37[data-speaking=true] .character-name { border-color:#ffe1a0; color:#fff3cf; }
#entity-guide-v37[data-speaking=true] .character-toggle img { animation-duration:2.8s; }
#entity-guide-v37 .guide-bubble {
 position:absolute; bottom:153px; right:0; width:365px;
 max-height:min(610px,calc(100svh - var(--museum-head,112px) - 249px));
 display:flex; flex-direction:column; background:linear-gradient(115deg,#fff8e650,transparent 60%),var(--guide-paper);
 border:1px solid #ad8d58; border-radius:6px 6px 25px 6px;
 box-shadow:0 17px 45px #021a19a8,inset 0 0 0 5px #ebd9b5,inset 0 0 0 6px #c2a37270;
 color:var(--guide-ink); pointer-events:auto;
}
#entity-guide-v37 .guide-bubble:after { content:''; position:absolute; bottom:-9px; right:44px; width:17px; height:17px; transform:rotate(45deg); background:#efe1bf; border-right:1px solid #ad8d58; border-bottom:1px solid #ad8d58; pointer-events:none; }
#entity-guide-v37 .bubble-head { position:relative; display:flex; gap:10px; align-items:start; padding:18px 18px 12px; flex-shrink:0; border-bottom:1px solid #b3986544; }
#entity-guide-v37 .bubble-head small { font:10px/1.7 var(--guide-song); letter-spacing:.06em; color:#8d6b3e; }
#entity-guide-v37 .bubble-head h2 { font:700 19px/1.6 var(--guide-song); color:#292c21; margin:5px 0 0; }
#entity-guide-v37 .icon-button { margin:0 0 0 auto; flex-shrink:0; width:44px; min-height:44px; height:44px; padding:0; border:1px solid #947a48; border-radius:50%; font:26px/1 var(--guide-song); color:#315a47; background:transparent; }
#entity-guide-v37 .icon-button:hover { background:#e5d6b5; }
#entity-guide-v37 .bubble-scroll { padding:15px 21px 22px; overflow-y:auto; overscroll-behavior:contain; min-height:0; scrollbar-width:thin; scrollbar-color:#ad8d5880 #f0e2c4; }
#entity-guide-v37 .guide-current { margin:0 0 15px; font:17px/1.9 var(--guide-body); color:#3b4936; }
#entity-guide-v37 .speech-actions { display:flex; flex-wrap:wrap; gap:7px; }
#entity-guide-v37 .speech-actions button { padding:7px 10px; min-height:44px; font:11px/1.5 var(--guide-song); }
#entity-guide-v37 .speech-actions button:not(:first-child) { color:#3c5b43; background:#ebddba; border-color:#ab945c70; }
#entity-guide-v37 .paper-note { font:10px/1.8 var(--guide-song); color:#8d704a; margin:10px 0 0; }
#entity-guide-v37 .voice-label { display:block; font:11px/1.7 var(--guide-song); color:#786040; margin:13px 0 6px; }
#entity-guide-v37 select { display:block; width:100%; min-height:44px; padding:7px 9px; background:#fbf3df; color:#344735; border:1px solid #b8a16e; font:12px var(--guide-song); border-radius:3px; }
#entity-guide-v37 .question-area { margin:17px 0 0; padding-top:17px; border-top:1px solid #b3986544; }
#entity-guide-v37 .question-area h3 { font:700 17px/1.5 var(--guide-song); margin:0 0 12px; color:#2d3225; }
#entity-guide-v37 .quick-questions { display:flex; gap:7px; flex-wrap:wrap; }
#entity-guide-v37 .quick-questions button { min-height:44px; padding:7px 9px; background:#e9dcbb; color:#40573e; border-color:#af94545c; font:11px/1.5 var(--guide-song); }
#entity-guide-v37 #guide-form label { display:block; font:11px/1.6 var(--guide-song); margin:16px 0 7px; color:#665439; }
#entity-guide-v37 .question-row { display:flex; gap:6px; }
#entity-guide-v37 .question-row input { flex:1; min-width:0; min-height:44px; border:1px solid #b8a16e; border-radius:3px; background:#fff7e4; padding:9px; font:12px var(--guide-song); color:#283b2b; }
#entity-guide-v37 .question-row button { font:11px var(--guide-song); padding:8px 9px; }
#entity-guide-v37 .guide-answer { border-left:2px solid #8d7243; padding-left:13px; margin:18px 0 0; }
#entity-guide-v37 .answer-mode { font:10px/1.7 var(--guide-song); color:#8d6b3e; margin:0 0 8px; }
#entity-guide-v37 #answer-copy { font:15px/1.9 var(--guide-body); margin:0 0 8px; color:#394735; }
#entity-guide-v37 .guide-answer a,#entity-guide-v37 .source-details a { display:block; min-height:44px; color:#2d6145; font:11px/1.9 var(--guide-song); padding:10px 0; text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
#entity-guide-v37 .guide-answer button { min-height:44px; padding:7px 11px; font:11px var(--guide-song); margin-top:9px; }
#entity-guide-v37 .source-details { margin-top:18px; padding-top:13px; border-top:1px solid #b3986544; font:11px/1.8 var(--guide-song); color:#74613c; }
#entity-guide-v37 .source-details summary { display:flex; align-items:center; cursor:pointer; min-height:44px; padding:7px 0; }
#entity-guide-v37 .source-details a { padding-inline:7px; }
#entity-guide-v37 #guide-continue { width:100%; margin-top:12px; }
#entity-guide-v37 .bubble-footer { flex-shrink:0; padding:10px 18px 15px; border-top:1px solid #b3986544; }
#entity-guide-v37 .bubble-footer #guide-continue { margin-top:0; }
#entity-guide-v37 .character-toggle.image-missing img { display:none; }
#entity-guide-v37 .character-toggle.image-missing:after { content:''; display:block; width:100px; height:108px; background:url('assets/guide-icons-v36.png') 0 0/300% 200%; order:-1; filter:drop-shadow(0 9px 8px #061b23b0); }

.guide-stage-controls-v37 { padding-bottom:18px; margin-bottom:17px; border-bottom:1px solid #b79a6360; color:#334e3c; }
.guide-stage-controls-v37 .guide-stage-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.guide-stage-controls-v37 .guide-stage-head h2 { flex:1; min-width:130px; margin:0; color:#2c3024; font:700 20px/1.55 'Songti SC',SimSun,serif; }
.guide-stage-controls-v37 button { min-height:44px; padding:8px 12px; border:1px solid #b49661; border-radius:4px; color:#f5ddb0; background:#214b3d; font:12px/1.6 'Songti SC',SimSun,serif; cursor:pointer; touch-action:manipulation; }
.guide-stage-controls-v37 button:hover { background:#35634e; }
.guide-stage-controls-v37 .guide-stage-head [data-guide-open] { padding:8px 11px; min-width:84px; color:#315342; background:#e6d7b5; }
.guide-stage-controls-v37 .guide-stage-caption { margin:14px 0; min-height:0; opacity:1; color:#354d3d; font:15px/1.9 'FangSong','STFangsong','Songti SC',serif; }
.guide-stage-controls-v37 .guide-stage-actions { display:flex; align-items:stretch; flex-wrap:wrap; gap:8px; }
.guide-stage-controls-v37 .guide-stage-actions :is(#demo-play,#performance-music,#guide-stage-listen) { min-height:44px; width:auto; margin:0; padding:9px 13px; gap:8px; font:12px/1.6 'Songti SC',SimSun,serif; }
.guide-stage-controls-v37 .guide-stage-actions #demo-play { flex:1 1 125px; background:#8f6539; color:#fff0cd; }
.guide-stage-controls-v37 .guide-stage-actions #performance-music { flex:1 1 116px; background:#214b3d; color:#f5ddb0; }
.guide-stage-controls-v37 #performance-sound-status { display:block; width:100%; margin:9px 0 0; min-height:0; color:#826b47; font:10px/1.8 'Songti SC',SimSun,serif; }
.guide-stage-controls-v37 #guide-stage-status { margin:9px 0 0; color:#705535; font:11px/1.7 'Songti SC',SimSun,serif; }
.guide-stage-controls-v37 .guide-stage-head small { color:#866638; font:11px/1.7 'Songti SC',SimSun,serif; }
.guide-stage-controls-v37 :focus-visible { outline:2px solid #a88043; outline-offset:3px; }

.visitor-next-v37 { margin:18px 0 0; padding:14px 0 0; border-top:1px solid #b69b6660; pointer-events:auto; }
.visitor-next-v37>small { display:block; margin:0 0 9px; color:#877046; font:11px/1.75 'Songti SC',SimSun,serif; }
.visitor-next-v37>a { position:relative; display:flex; align-items:center; gap:12px; min-height:76px; padding:9px 16px 9px 11px; text-decoration:none; color:#f0d197; background:linear-gradient(130deg,#29543fec,#153b31f5); border:1px solid #b99b638c; border-radius:4px 20px 4px 20px; box-shadow:0 7px 15px #001d1630,inset 0 0 0 4px #173c3055,inset 0 0 0 5px #d2b77822; transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease; touch-action:manipulation; }
.visitor-next-v37>a:before { content:''; position:absolute; right:10px; top:9px; width:29px; height:29px; opacity:.45; background:url('assets/cloud-corner-v18.svg') top right/contain no-repeat; pointer-events:none; }
.visitor-next-v37 .guide-icon { width:51px; height:51px; flex-shrink:0; filter:drop-shadow(0 5px 5px #021d14a0); animation:guide-object-float-v37 6s ease-in-out infinite; }
.visitor-next-v37 .visitor-next-copy { display:flex; flex-direction:column; min-width:0; }
.visitor-next-v37 .visitor-next-copy small { margin:0; color:#cebc98; font:10px/1.5 'Songti SC',SimSun,serif; letter-spacing:.08em; }
.visitor-next-v37 .visitor-next-copy strong { margin:3px 0 0; font:400 20px/1.6 'Kaiti SC','STKaiti',serif; color:#f4d79f; }
.visitor-next-v37 .visitor-next-arrow { margin-left:auto; color:#d4b272; font:24px/1 'Kaiti SC','STKaiti',serif; }
.visitor-next-v37>a:hover,.visitor-next-v37>a:focus-visible { transform:translateY(-3px); border-color:#d9bc78; box-shadow:0 10px 20px #001d164b,inset 0 0 0 4px #173c3055,inset 0 0 0 5px #d2b77830; }
.visitor-next-v37 :focus-visible { outline:2px solid #d7b676; outline-offset:4px; }
.visitor-next-v37[data-placement=story] { flex:0 1 252px; max-width:270px; margin:0 0 0 10px; padding:0; border:0; }
.visitor-next-v37[data-placement=story]>small { display:none; }
.visitor-next-v37[data-placement=story]>a { min-height:64px; padding:7px 13px 7px 9px; gap:9px; }
.visitor-next-v37[data-placement=story] .guide-icon { width:44px; height:44px; }
.visitor-next-v37[data-placement=story] .visitor-next-copy strong { font-size:17px; line-height:1.45; }
.visitor-next-v37[data-placement=story] .visitor-next-arrow { font-size:21px; }

.visitor-workshop-v37 { position:relative; width:max-content; max-width:min(94%,900px); display:flex; align-items:center; gap:14px; margin:16px auto 0; padding:12px 17px; color:#f0dbb1; background:linear-gradient(125deg,#28513ee8,#143a31ef); border:1px solid #b99b638c; border-radius:4px 21px 4px 21px; box-shadow:0 7px 16px #001d1638,inset 0 0 0 4px #173c3055,inset 0 0 0 5px #d2b77822; }
.visitor-workshop-v37 .guide-icon { width:50px; height:50px; filter:drop-shadow(0 5px 5px #021d14a0); animation:guide-object-float-v37 6s ease-in-out infinite; }
.visitor-workshop-v37 p { flex:1; min-width:0; margin:0; max-width:39em; color:#f0dbb1; font:13px/1.85 'Songti SC',SimSun,serif; }
.visitor-workshop-v37 button { min-height:44px; flex-shrink:0; padding:9px 16px; color:#fcdfac; border:1px solid #b79b61; background:#835d36; font:13px/1.5 'Songti SC',SimSun,serif; border-radius:3px 12px 3px 12px; touch-action:manipulation; cursor:pointer; }
.visitor-workshop-v37 button:hover { background:#9d7545; }
.visitor-workshop-v37 :focus-visible { outline:2px solid #e0bd7d; outline-offset:3px; }
@keyframes guide-object-float-v37 { 0%,100% { transform:translateY(0) rotate(-.7deg); } 50% { transform:translateY(-3px) rotate(.7deg); } }
@keyframes guide-character-float-v37 { 0%,100% { transform:translateY(0) rotate(-.8deg); } 50% { transform:translateY(-3px) rotate(.8deg); } }
@media(max-width:1000px) {
 .visitor-next-v37[data-placement=story] { margin:12px 0 0; max-width:275px; }
 .visitor-workshop-v37 { width:auto; max-width:94%; flex-wrap:wrap; justify-content:center; }
 .visitor-workshop-v37 p { flex:1; min-width:180px; text-align:left; }
}
@media(max-width:600px) {
 #entity-guide-v37 { right:10px; bottom:calc(74px + env(safe-area-inset-bottom,0px)); width:90px; }
 #entity-guide-v37 .character-toggle { width:90px; min-height:117px; }
 #entity-guide-v37 .character-toggle img { width:82px; height:91px; }
 #entity-guide-v37 .character-toggle:before { left:16px; right:16px; bottom:21px; }
 #entity-guide-v37 .character-name { font-size:9px; padding:4px 7px; min-height:25px; }
 #entity-guide-v37 .character-speech { font-size:10px; padding:6px 8px; max-width:116px; }
 #entity-guide-v37 .guide-bubble { right:0; bottom:130px; width:min(360px,calc(100vw - 24px)); max-height:min(620px,calc(100svh - var(--museum-head,86px) - 226px)); }
 #entity-guide-v37 .guide-bubble:after { right:31px; }
 #entity-guide-v37 .bubble-head { padding:16px 16px 11px; }
 #entity-guide-v37 .bubble-head h2 { font-size:18px; }
 #entity-guide-v37 .bubble-scroll { padding:14px 18px 21px; }
 #entity-guide-v37 .guide-current { font-size:16px; }
 #entity-guide-v37 .character-toggle.image-missing:after { width:80px; height:89px; }
 .guide-stage-controls-v37 .guide-stage-head h2 { font-size:19px; }
 .guide-stage-controls-v37 .guide-stage-caption { font-size:14px; }
 .visitor-next-v37>a { min-height:70px; }
 .visitor-next-v37 .visitor-next-copy strong { font-size:19px; }
 .visitor-next-v37[data-placement=story] { max-width:260px; }
 .visitor-workshop-v37 { gap:9px; padding:11px 13px; }
 .visitor-workshop-v37 .guide-icon { width:42px; height:42px; }
 .visitor-workshop-v37 p { font-size:12px; }
 .visitor-workshop-v37 button { width:100%; }
}
@media(max-width:350px) {
 #entity-guide-v37 .guide-bubble { width:calc(100vw - 22px); }
 #entity-guide-v37 .bubble-head h2 { font-size:16px; }
 #entity-guide-v37 .speech-actions { gap:5px; }
 #entity-guide-v37 .speech-actions button { padding-inline:8px; }
 .visitor-next-v37[data-placement=story] .guide-icon { width:36px; height:36px; }
 .visitor-next-v37[data-placement=story] .visitor-next-copy strong { font-size:16px; }
}
@media(max-height:500px) and (orientation:landscape) {
 #entity-guide-v37 { bottom:12px; width:78px; }
 #entity-guide-v37 .character-toggle { width:78px; min-height:98px; }
 #entity-guide-v37 .character-toggle img { width:67px; height:75px; }
 #entity-guide-v37 .character-speech { display:none; }
 #entity-guide-v37 .guide-bubble { right:85px; bottom:0; width:min(365px,calc(100vw - 120px)); max-height:calc(100svh - var(--museum-head,86px) - 30px); }
 #entity-guide-v37 .guide-bubble:after { display:none; }
}
@media(prefers-reduced-motion:reduce) {
 #entity-guide-v37 *,#entity-guide-v37 *:before,#entity-guide-v37 *:after,.visitor-next-v37 *,.visitor-workshop-v37 *,.guide-stage-controls-v37 * { animation:none!important; transition:none!important; }
}
