/* 阅读优先：地图题字有纸底，操作与说明采用清楚的屏幕字体。 */
:root { --reading-font: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; }
.map-label { max-width: 180px; text-shadow: none; filter: none; }
.map-label .label-text,
#app[data-label-mode="distant"] .map-label:not(.active) .label-text {
  font-size: var(--label-font,18px); line-height:1.25; letter-spacing:2px;
  max-height:150px; padding:6px 4px; color:#252d22;
  background:#f4e7c5ed; border:1px solid #8b785947;
  box-shadow:0 2px 3px #34322222; text-shadow:none;
}
.map-label .verse { color:#282f22;background:#f5e8c6e6;padding:6px 3px; font-size:15px;letter-spacing:2px;max-height:175px;text-shadow:none; }
.map-label .label-place { color:#3c3928;background:#ece1c3db;padding:5px 3px;font-size:12px;letter-spacing:2px; }
.map-label.active .label-text { font-size:27px; background:#fff0ca; }
.map-label.active .label-place { background:#8e4734;color:#fff4db;font-size:14px; }
.map-label::after { border-top-color:#7b6547aa; }
.map-label:hover .label-text,.map-label:focus-visible .label-text { color:#713d2d;background:#fff6de; }
.atlas-inscription { color:#373f2c; text-shadow:0 1px 1px #f4e7bd; }
.atlas-inscription>span { font-size:17px; }
.atlas-inscription>small { display:none; }
.tools { font:14px/1.4 var(--reading-font);gap:20px; }
.tools button { min-height:44px; }
.journey { padding:8px;gap:6px;bottom:35px;background:#f5ecd8f5;border-color:#9c8b6b80;box-shadow:0 5px 25px #35391e30; }
.journey>button { min-height:52px;min-width:65px;font:17px/1.2 var(--reading-font);padding:0 12px; }
.journey .start { font:17px/1.2 var(--reading-font);min-width:145px;padding:0 18px; }
.journey .exit { font:15px/1.3 var(--reading-font);padding:0 15px; }
.journey-middle { min-width:210px;max-width:310px;gap:7px; }
#step { font:14px/1.2 var(--reading-font);letter-spacing:2px;color:#805039; }
#station { font:17px/1.3 var(--reading-font);letter-spacing:1px;max-width:290px;color:#31382c; }
footer { bottom:10px;font-size:11px; }
.poem-actions { margin-top:24px;display:flex;align-items:center;justify-content:flex-start;gap:12px; }
.poem-actions>span { font:12px/1.5 var(--reading-font);color:#776148;max-width:160px; }
#read-poem { font:16px/1.4 var(--reading-font);color:#fff4dc;background:#864632;min-height:46px;padding:10px 17px;letter-spacing:1px;border:1px solid #a57553; }
#read-poem span { margin-left:15px; }
.card-top { font:14px/1.5 var(--reading-font);letter-spacing:2px; }
.card-top button { min-width:44px;min-height:44px;padding:0; }
.poem-card { padding-bottom:26px;max-width:calc(100vw - 60px); }
.poem-scroll { max-width:calc(100vw - 155px);overflow-x:auto;scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-x; }
.poem-heading { flex-shrink:0; }
.poem-lines { flex-shrink:0; }
.map-controls { position:absolute;right:24px;bottom:145px;z-index:6;display:flex;flex-direction:column;background:#f5ead5f2;border:1px solid #ac9977;box-shadow:0 4px 15px #3f40211c; }
.map-controls button { width:48px;min-height:48px;font:24px/1 var(--reading-font); }
.map-controls button+button { border-top:1px solid #c4b596; }
.map-controls #reset-view { font-size:14px; }
#reading-backdrop { position:absolute;inset:0;z-index:8;background:#1c241d55;display:none; }
#reading-panel { position:absolute;z-index:9;right:0;top:0;bottom:0;width:430px;max-width:100%;background:#faf3e3;border-left:1px solid #b8a484;box-shadow:-12px 0 50px #24301c22;font-family:var(--reading-font);color:#343b2d;display:flex;flex-direction:column;animation:reading-arrive .3s; }
.reading-header { display:flex;align-items:flex-start;justify-content:space-between;padding:25px 24px 20px;border-bottom:1px solid #d7c9ac; }
.reading-header p { font-size:12px;letter-spacing:3px;color:#8a6147;margin:0 0 12px; }
.reading-header h2 { font:28px/1.4 var(--poetry-font);margin:0 0 10px; }
.reading-header span { font-size:15px;color:#74634c; }
#close-reading { min-width:48px;min-height:48px;font:28px/1 serif;color:#766048;flex-shrink:0; }
.reading-tabs { display:flex;padding:0 18px;border-bottom:1px solid #d7c9ac; }
.reading-tabs button { flex:1;min-height:54px;font:16px/1.4 var(--reading-font);border-bottom:3px solid transparent; }
.reading-tabs [aria-selected="true"] { color:#8e4632;border-bottom-color:#8e4632;font-weight:600; }
#reading-content { overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;flex:1;padding:22px 25px 50px;scrollbar-width:thin;line-height:1.85; }
.reading-section { margin-bottom:28px; }
.reading-section h3,.reading-full h3,.reading-sources h3 { font-size:16px;line-height:1.5;color:#8a4d36;margin:0 0 12px;font-weight:600; }
.reading-section p { font-size:17px;margin:0;line-height:1.95; }
.reading-facts { display:grid;grid-template-columns:90px 1fr;gap:12px 10px;padding:18px 16px;margin:0 0 25px;background:#eee2c9;border-left:3px solid #a77951;font-size:15px;line-height:1.7; }
.reading-facts dt { color:#7c6047; }.reading-facts dd { margin:0;color:#363b2c; }
.reading-footnote { font-size:13px;line-height:1.8;color:#7c6e59;border-top:1px solid #d4c5a8;padding-top:17px; }
.reading-full { padding:18px 16px;background:#f1e8d1;margin:25px 0;border:1px solid #dccbad; }
.reading-full p { font-family:"KaiTi","STKaiti",serif;font-size:21px;line-height:1.9;margin:4px 0; }
.child-question { background:#e8ebd8;border:1px solid #c6cdaa;padding:14px 17px;margin:24px 0; }
.child-question summary { cursor:pointer;font-size:17px;min-height:30px;color:#4d5a3c; }
.child-question p { font-size:17px;line-height:1.85;margin:12px 0 3px; }
.reading-sources { margin-top:25px; }.reading-sources a { display:block;font-size:13px;color:#765139;padding:9px 0;line-height:1.6;text-underline-offset:4px; }
.reading-open .poem-card { left:calc((100% - 430px)/2);max-width:calc(100vw - 470px); }
.reading-open .poem-scroll { max-width:calc(100vw - 565px); }
@keyframes reading-arrive { from { transform:translateX(25px);opacity:0; } to { transform:translateX(0);opacity:1; } }
@media(max-width:1100px) and (min-width:801px){.reading-open .poem-card{opacity:.18;pointer-events:none}.journey-middle{min-width:170px}.journey>button{padding:0 9px}}
@media(max-width:800px){
 .journey{bottom:27px;width:calc(100% - 24px);max-width:580px;flex-wrap:wrap;justify-content:center;gap:4px;padding:7px}
 .journey>button{min-height:48px;min-width:52px;padding:0 8px;font-size:16px}
 .journey>button span{font-size:13px}.journey .start{min-width:115px;flex:1;min-height:46px;font-size:16px;margin:0}.journey .exit{font-size:14px;flex:1;border-top:1px solid #c9b995;border-left:0;min-height:40px}
 .journey-middle{min-width:130px;max-width:calc(100vw - 220px);flex:1}#station{font-size:15px;max-width:100%}#step{font-size:13px}
 .map-controls{right:12px;bottom:165px}.map-controls button{width:44px;min-height:46px}
 .poem-card{top:105px;max-width:calc(100vw - 26px);padding:14px 18px 24px}.poem-scroll{max-width:calc(100vw - 64px)}.card-top{font-size:12px;margin-bottom:12px}.poem-actions{margin-top:18px}.card-seal{display:none}#read-poem{font-size:16px;min-height:48px}
 #reading-backdrop{display:block}#reading-panel{top:auto;bottom:0;left:0;right:0;width:100%;height:88dvh;max-height:88dvh;border-radius:20px 20px 0 0;border-top:1px solid #b8a484;box-shadow:0 -15px 60px #23351f44}
 .reading-header{padding:18px 20px 14px}.reading-header p{margin-bottom:5px}.reading-header h2{font-size:25px}.reading-tabs{padding:0 13px}.reading-tabs button{font-size:16px;min-height:52px}#reading-content{padding:20px 22px 45px}
 .reading-open .poem-card{left:50%;max-width:calc(100vw - 26px)}.reading-open .poem-scroll{max-width:calc(100vw - 64px)}
 .map-label .label-text,#app[data-label-mode="distant"] .map-label:not(.active) .label-text{font-size:17px;padding:5px 3px;letter-spacing:1px}.map-label .label-place{display:none}.map-label.active .label-place{display:block}.map-label.active .label-text{font-size:24px}
 .tools{font-size:12px;gap:12px}.intro{top:16%}.intro h1{font-size:32px}.discovery{background:#efe6c9d9;padding:7px;max-width:155px;line-height:1.7;font-size:11px}
 footer{font-size:9px;bottom:8px}.compass{bottom:175px}
}
@media(prefers-reduced-motion:reduce){#reading-panel{animation:none}}

#labels,.map-label{touch-action:none}.poem-actions button,.journey button,.reading-tabs button,#close-reading,.map-controls button{touch-action:manipulation}


button,a,summary{-webkit-tap-highlight-color:transparent}


#pan-mode{font-size:14px;white-space:nowrap;line-height:1.3}#pan-mode[aria-pressed="true"]{background:#ded7bd;color:#784c37}
