@font-face{font-family:"Shanhe Brush";src:url("../vendor/MaShanZheng-Regular.ttf") format("truetype");font-display:swap;font-weight:400}
:root{--poetry-font:"Shanhe Brush","KaiTi","STKaiti",serif}
.brand>span:last-child,.intro h1{font-family:var(--poetry-font);font-weight:400}.brand small{font-family:"SimSun",serif}
/* 横向纸面与褪色的纸纤维边缘，保留山水画的留白。 */
.poem-card{top:13%;left:50%;right:auto;width:max-content;max-width:calc(100vw - 80px);padding:25px 48px 28px;transform:translateX(-50%);border:0;background:none;box-shadow:none;backdrop-filter:none;color:#302d26;font-family:var(--poetry-font);animation:scroll-arrive 1.2s both;isolation:isolate}
.poem-card::before{content:"";position:absolute;inset:-8px -20px;z-index:-1;pointer-events:none;background:url("./poem-paper.svg") center/100% 100% no-repeat}
.poem-card::after{content:"";position:absolute;inset:16px 24px;border-top:1px solid #8c765d30;border-bottom:1px solid #8c765d30;pointer-events:none;z-index:-1}
.card-top{border:0;padding:0;margin:0 0 20px;font-size:12px;color:#7a6950;letter-spacing:4px;align-items:center}.card-top>span::before{content:"行至 · ";color:#9d7052}.card-top button{font:20px serif;color:#897a65;padding:0 0 0 24px}
.poem-scroll{display:flex;flex-direction:row-reverse;align-items:flex-start;gap:34px}.poem-heading{display:flex;flex-direction:row-reverse;gap:16px;padding-left:23px;border-left:1px solid #8a715838}
.poem-card h2{writing-mode:vertical-rl;max-height:264px;margin:0;font:400 34px/1.4 var(--poetry-font);letter-spacing:7px}.poem-card .eyebrow{writing-mode:vertical-rl;margin:7px 0 0;font:18px/1.5 var(--poetry-font);color:#64543f;letter-spacing:5px}
.poem-lines{display:flex;flex-direction:row-reverse;gap:18px;font:23px/1.45 var(--poetry-font);letter-spacing:6px;padding-top:8px}.poem-lines>div{writing-mode:vertical-rl;white-space:nowrap;animation:ink-arrive .9s both;animation-delay:var(--verse-delay);text-shadow:none}
.card-seal{display:block;position:absolute;bottom:31px;right:48px;margin:0;padding:5px 3px;border:1px solid #ac5f4f;outline:1px solid #9e5140;outline-offset:2px;font:11px/1.1 var(--poetry-font);letter-spacing:2px;background:#99513de6;color:#f0dfbb}
.poem-context{margin-top:23px;max-width:380px;font-family:"SimSun",serif;font-size:10px;color:#87755d;letter-spacing:2px}.poem-context summary{cursor:pointer;width:max-content;opacity:.7}.poem-context summary:hover{opacity:1}.poem-note{display:block;border:0;padding:10px 0 0;margin:0;font-size:11px;line-height:1.9;letter-spacing:1px;color:#73634e}
/* 全景是题诗，选中后才成为有纸边的题签。 */
.map-label{gap:8px;padding:8px;filter:none;align-items:flex-start;text-shadow:0 1px 3px #293323,0 0 8px #29332399}.map-label .label-text{font:22px/1.15 var(--poetry-font);letter-spacing:4px;background:none;border:none;color:#fff0c5;padding:0;box-shadow:none;transition:transform .3s}.map-label .verse{display:block;font:14px/1.3 var(--poetry-font);color:#f2e6bf;letter-spacing:4px;max-height:170px;padding-top:25px;text-shadow:inherit}.map-label .label-place{writing-mode:vertical-rl;font:11px/1.1 var(--poetry-font);color:#e7cf9d;letter-spacing:3px;margin-top:8px}.map-label::after{bottom:-4px;height:9px;border-color:#ead4a277}.map-label:hover .label-text{color:#fff9df;transform:translateY(-3px)}
.map-label.active{padding:4px 8px 12px;gap:8px;text-shadow:none}.map-label.active .label-text{font-size:26px;padding:12px 7px 15px;color:#34382b;background:#f6edcfee;border:1px solid #9e9272;outline:1px solid #f5eaca;outline-offset:2px;box-shadow:3px 4px 0 #4b47342b}.map-label.active .label-place{color:#f0ddba;background:#96503e;border:1px solid #d1aa7b;padding:5px 3px;font-size:11px;margin-top:12px}.in-story .map-label:not(.active),.in-story .atlas-inscription{opacity:.08}.in-story .map-label.active .verse{display:none}
.atlas-inscription{position:absolute;pointer-events:none;display:flex;gap:8px;transform:translate(-50%,-100%);transition:opacity .5s;color:#f7eac3;text-shadow:0 1px 3px #2c3927,0 0 5px #2c392799}.atlas-inscription>span{writing-mode:vertical-rl;font:18px/1.15 var(--poetry-font);letter-spacing:4px}.atlas-inscription>small{writing-mode:vertical-rl;font:12px/1.2 var(--poetry-font);letter-spacing:3px;margin-top:19px;opacity:.8}
@keyframes scroll-arrive{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}@keyframes ink-arrive{from{opacity:0;transform:translateY(6px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@media(max-width:800px){.poem-card{top:122px;bottom:auto;left:50%;right:auto;padding:20px 22px 24px;max-width:calc(100vw - 36px)}.poem-card::before{inset:-5px -10px}.poem-card::after{inset:12px 12px}.card-top{font-size:11px;margin-bottom:16px;letter-spacing:2px}.poem-scroll{gap:14px}.poem-heading{gap:7px;padding-left:12px}.poem-card h2{font-size:25px;letter-spacing:5px;max-height:228px}.poem-card .eyebrow{font-size:14px;letter-spacing:3px;margin-top:5px}.poem-lines{gap:9px;font-size:18px;letter-spacing:5px;padding-top:4px}.card-seal{right:24px;bottom:23px;font-size:9px}.poem-context{max-width:260px;margin-top:20px;font-size:9px}.poem-note{font-size:10px}.map-label .label-text{font-size:18px;padding:0}.map-label .verse{font-size:12px}.map-label.active .label-text{font-size:23px}.map-label .label-place{font-size:10px}.atlas-inscription>span{font-size:15px}.atlas-inscription>small{display:none}}
@media(max-width:480px){.poem-lines{font-size:16px;gap:7px;letter-spacing:4px}.poem-scroll{gap:12px}.poem-card[data-long="true"] .poem-lines{font-size:14px;gap:6px;letter-spacing:4px}.poem-card[data-long="true"]{padding-left:16px;padding-right:16px}.poem-card[data-long="true"] .poem-heading{padding-left:8px;gap:5px}.poem-card[data-long="true"] h2{font-size:22px}.map-label .verse{display:none}}
@media(prefers-reduced-motion:reduce){.poem-card,.poem-lines>div{animation:none}}

.map-label .label-text{font-size:19px;max-height:175px}.map-label .verse{font-size:12px;max-height:150px}.map-label .label-place{font-size:10px}.map-label::after{width:var(--tether-length,8px);height:0;top:100%;bottom:auto;left:50%;border-left:0;border-top:1px solid #ead4a266;transform-origin:0 0;transform:rotate(var(--tether-angle,90deg))}.map-label.active .label-text{max-height:280px}.atlas-inscription>span{font-size:16px}.atlas-inscription>small{font-size:11px}
@media(max-width:480px){.map-label .label-text{font-size:16px;max-height:140px}.map-label .label-place{display:none}.map-label.active .label-place{display:block}}


/* 地图字号随投影大小变化，保留像素对齐，避免大片发虚的描边。 */
.map-label{text-shadow:0 1px 1px #253222;transition:opacity .45s}.map-label .label-text{font-size:var(--label-font,14px);color:#fff0c8;letter-spacing:3px;max-height:155px}.map-label .verse{font-size:12px;text-shadow:0 1px 1px #253222}.map-label .label-place{font-size:10px}#app[data-label-mode="distant"] .map-label:not(.active) .verse,#app[data-label-mode="distant"] .map-label:not(.active) .label-place{display:none}#app[data-label-mode="distant"] .map-label:not(.active){padding:5px;gap:0}#app[data-label-mode="distant"] .map-label:not(.active) .label-text{max-height:130px}.map-label.active .label-text{font-size:25px}.atlas-inscription{text-shadow:0 1px 1px #253222}.discovery{font-size:10px;letter-spacing:1px;line-height:1.9;color:#8a816a;max-width:200px;margin-top:18px}
@media(max-width:800px){.discovery{font-size:9px;max-width:140px;margin-top:14px}.map-label.active .label-text{font-size:22px}}


#app[data-label-mode="nearby"] .intro{opacity:0;pointer-events:none}


#orbit-anchor{position:absolute;z-index:4;width:15px;height:15px;border:1px solid #f7e4b7;outline:1px solid #51462d88;outline-offset:3px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;box-shadow:0 0 9px #6a4d2c44}.map-label{max-width:150px}.map-label .label-text{line-height:1.15}.journey-middle{max-width:260px}#station{overflow:hidden;text-overflow:ellipsis;max-width:240px}
@media(max-width:800px){.journey-middle{max-width:170px}#station{max-width:160px}}


#app[data-label-mode="distant"] .map-label:not(.active){padding:3px}#app[data-label-mode="distant"] .map-label:not(.active) .label-text{letter-spacing:2px;max-height:110px}

