/* 阅读版字体层级：楷体站名／宋体大标题／黑体小标题与正文。 */
:root{
 --font-display:"KaiTi","STKaiti","Kaiti SC",serif;
 --font-heading:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
 --font-body:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;
 --font-ui:"Microsoft YaHei","PingFang SC",Arial,sans-serif;
}
body{font-family:var(--font-body);font-size:17px;line-height:1.95;letter-spacing:.15px}
button,input{font-family:var(--font-ui)}
.header{height:96px;gap:22px}.brand b{font-family:var(--font-display);font-size:33px;letter-spacing:4px;line-height:1.25}
.brand small{font-family:var(--font-heading);font-size:15px;font-weight:500;letter-spacing:1px;line-height:1.6;margin-top:5px}
.header nav{gap:18px}.header nav a{font-family:var(--font-ui);font-size:16px;letter-spacing:0}
.motion-toggle{font-size:14px}.menu-toggle{font-size:16px;min-height:44px}
.hero h1{font-family:var(--font-display);font-size:clamp(52px,5vw,80px);line-height:1.5}
.hero h1 span{font-size:.52em}.eyebrow{font-size:16px;letter-spacing:4px}
.hero-copy>p:not(.eyebrow){font-size:19px;line-height:2}.hero-link{font-size:17px}.hero-bottom{font-size:14px}
.slide-controls button{font-size:15px;min-height:40px}.intro-strip{font-size:15px}.intro-strip>span{font-size:22px}.intro-strip a{font-size:14px}
.section h2{font-family:var(--font-heading);font-size:clamp(32px,3.2vw,44px);font-weight:700;line-height:1.5;letter-spacing:1px}
.section h3,.photo-meta h2{font-family:var(--font-ui);font-weight:600;font-size:25px;line-height:1.6}
.kicker{font-family:var(--font-display);font-size:17px;font-weight:500;letter-spacing:2px;margin-bottom:14px;line-height:1.8}
.red-label{font-family:var(--font-display);font-size:16px;letter-spacing:2px}
.section-lede{font-family:var(--font-body);font-size:17px;line-height:1.95;max-width:900px}
.section-mark{font-family:var(--font-display)}
.poet-copy h3{font-family:var(--font-display);font-size:52px}.large-copy{font-family:var(--font-heading);font-size:28px;line-height:1.7}
.poet-copy>p:not(.large-copy){font-size:17px;line-height:1.95}.poet-copy blockquote{font-family:var(--font-display);font-size:26px;line-height:1.9}
.citation{font-size:13px!important;line-height:1.9}.poet-photo figcaption{font-size:14px;line-height:1.7}
.reading-timeline span,.learning-card>span{font-size:15px}.reading-timeline h3{font-size:24px}.reading-timeline p{font-size:16px;line-height:1.95}
.chip,.graph-filters .chip{font-family:var(--font-ui);font-size:15px;font-weight:500;min-height:46px;padding:9px 16px;line-height:1.7}
.search{font-size:14px;gap:15px;min-height:46px}.search input{font-size:16px;width:225px;min-height:46px}.muted{font-size:14px;line-height:1.9}
.poem-body>span{font-size:14px}.poem-body h3{font-family:var(--font-heading);font-size:27px;font-weight:700}.poem-excerpt{font-family:var(--font-display);font-size:24px;line-height:1.9}
.poem-body .muted{font-size:14px;line-height:1.8}.text-link{font-size:16px;min-height:44px;line-height:1.7}
.graph-view-switch button{font-size:15px;min-height:44px;padding:8px 16px}.graph-zoom button{min-height:40px;min-width:38px;font-size:18px}.graph-zoom span{font-size:14px;min-width:42px}.graph-zoom #graph-fit{font-size:14px;min-width:46px}
.graph-legend{font-size:14px;gap:18px;line-height:1.8}.graph-mobile-tip{font-size:14px;line-height:1.85}.graph-art-note{font-size:13px;line-height:1.8}
.graph-node .node-name{font-family:var(--font-ui);font-size:19px;font-weight:600;letter-spacing:0}.relation-label text{font-family:var(--font-ui);font-size:17px}
.node-list button{font-family:var(--font-ui);font-size:14px;min-height:39px;padding:5px 12px}.graph-foot{font-size:13px;line-height:1.9}
.graph-mini-card b{font-size:17px}.graph-mini-card small{font-size:14px;line-height:1.7}
.graph-detail h3{font-family:var(--font-heading);font-size:30px;line-height:1.5}.graph-detail .detail-kind{font-family:var(--font-display);font-size:16px;letter-spacing:1px}
.graph-detail p{font-family:var(--font-body);font-size:17px;line-height:1.95}.graph-detail h4{font-family:var(--font-ui);font-size:17px;font-weight:600;line-height:1.8;margin-top:23px}
.graph-detail ul,.graph-detail li{font-size:16px;line-height:1.9}.related-node{font-size:14px;min-height:38px;line-height:1.8}
.graph-detail .source-tag{font-size:14px;line-height:1.9}.evidence-note{font-size:14px;line-height:1.9}
.graph-detail .detail-photo{height:190px;margin-top:18px}.detail-illustration{display:none}
.place-large h3,.place-route h3{font-size:25px}.place-large p,.place-route article p{font-size:16px;line-height:1.9}.place-route article b{font-size:16px}
.gallery-toolbar p{font-size:17px}.gallery-item figcaption{font-family:var(--font-ui);font-size:17px;line-height:1.8}.photo-credit{font-size:14px;line-height:1.9}
.learning-card h3{font-size:26px}.learning-card p,.family-note p{font-size:16px;line-height:1.95}.family-note span{font-family:var(--font-heading);font-size:23px}
.source-columns{font-size:15px;line-height:1.95}.source-columns h3{font-size:22px}.source-columns .muted{font-size:14px}
footer{font-size:14px}footer .brand b{font-size:29px}footer>a:last-child{font-size:14px}footer p{font-size:20px}
dialog h2{font-family:var(--font-heading);font-size:33px;font-weight:700}dialog h3{font-family:var(--font-ui);font-size:23px;font-weight:600}
dialog p,dialog li{font-family:var(--font-body);font-size:17px;line-height:1.95}.reader-poem{font-family:var(--font-display);font-size:29px;line-height:2}
dialog .source-note{font-size:14px}.photo-meta p{font-size:15px}.photo-meta button,.photo-meta #photo-position{font-size:14px;min-height:40px}.task-actions button{font-size:16px;min-height:44px}
@media(max-width:1180px){
 .header{height:88px;padding-inline:24px;gap:18px}.menu-toggle{display:block;margin-left:auto;font-size:16px;border:1px solid var(--line);padding:7px 13px}
 .header nav{display:none;position:absolute;top:88px;left:0;right:0;background:#faf9f3;flex-direction:column;gap:0;height:auto;padding:15px;box-shadow:0 10px 15px #0001}
 .header nav.open{display:flex}.header nav a{padding:12px 20px;width:100%;text-align:center;font-size:17px;min-height:48px}.header nav a:after{bottom:6px;left:40%;right:60%}.header nav a:hover:after,.header nav a.current:after{right:40%}
 .graph-layout{grid-template-columns:minmax(0,1fr)}.graph-detail{max-height:none;overflow:visible}
 .graph-detail{display:block;columns:2;column-gap:36px}.graph-detail h3,.graph-detail>.detail-kind{column-span:all}.graph-detail>p,.graph-detail>h4,.graph-detail>ul,.graph-detail>.source-tag{break-inside:avoid}
}
@media(max-width:640px){
 body{font-size:16px;line-height:1.95}.header{height:84px;padding-inline:14px;gap:10px}.brand b{font-size:28px;letter-spacing:2px}.brand small{font-size:13px;letter-spacing:.5px;margin-top:3px}
 .header nav{top:84px}.menu-toggle{font-size:14px;min-height:43px;padding:6px 10px}.motion-toggle{font-size:12px;padding-left:10px}.header nav a{font-size:17px}
 html{scroll-padding-top:96px}.hero{max-height:calc(100svh - 84px);min-height:590px}.hero h1{font-size:47px}.hero h1 span{font-size:24px;letter-spacing:0}.eyebrow{font-size:14px;letter-spacing:2px}
 .hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.95}.hero-link{font-size:15px}.hero-bottom>span{font-size:13px}.slide-controls button{font-size:14px;min-height:42px}.intro-strip>span{font-size:18px}.intro-strip a{font-size:13px}
 .section{padding:48px 22px}.section h2,.graph-section h2{font-family:var(--font-heading);font-size:30px;line-height:1.55;letter-spacing:0}.kicker{font-size:16px;letter-spacing:1.3px}.section-head{margin-bottom:27px}.section-mark{font-size:38px}
 .section-lede{font-size:16px;line-height:1.95}.poet-copy h3{font-size:45px}.large-copy{font-size:26px}.poet-copy>p:not(.large-copy){font-size:16px}.poet-copy blockquote{font-size:24px}
 .reading-timeline span,.learning-card>span{font-size:14px}.reading-timeline h3{font-size:23px}.reading-timeline p,.learning-card p,.family-note p,.place-route article p,.place-large p{font-size:16px}
 .poem-card{grid-template-columns:27% minmax(0,1fr)}.poem-body{padding:20px 15px}.poem-body h3{font-family:var(--font-heading);font-size:24px;line-height:1.6}.poem-excerpt{font-size:22px}.poem-body .muted{font-size:13px}.poem-body>span{font-size:13px}
 .text-link{font-size:15px;min-height:44px}.muted{font-size:14px}.chip,.graph-filters .chip{font-size:15px;min-height:44px;padding:8px 11px}.search{font-size:14px;min-height:46px}.search input{font-size:16px;width:66%;min-width:0;min-height:46px}
 .graph-section{padding-inline:14px}.graph-toolbar{padding-inline:6px}.graph-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}.graph-filters .chip{text-align:center}
 .graph-canvas{padding:17px 12px}.graph-view-tools{gap:12px}.graph-view-switch{width:100%}.graph-view-switch button{flex:1;font-size:15px;min-height:44px;padding:8px 12px}.graph-zoom{margin-left:auto;gap:8px}.graph-zoom button{min-height:40px;min-width:38px}.graph-zoom span{font-size:14px;min-width:42px}
 .graph-legend{font-size:13px;gap:13px}.graph-mobile-tip{font-size:14px;line-height:1.85}.graph-foot,.graph-art-note{font-size:13px}.node-list button{font-size:14px;min-height:40px;padding:5px 10px}
 .graph-mini-card b{font-size:18px}.graph-mini-card small{font-size:14px}.graph-mini-card{min-height:94px}
 .graph-detail{display:block;columns:auto;padding:25px 21px;scroll-margin-top:98px}.graph-detail h3{font-family:var(--font-heading);font-size:29px}.graph-detail .detail-kind{font-size:16px}
 .graph-detail p,.graph-detail li{font-size:16px;line-height:1.95}.graph-detail h4{font-size:17px}.related-node{font-size:14px;min-height:40px}.graph-detail .source-tag{font-size:14px}.evidence-note{font-size:14px;line-height:1.9}
 .gallery-section{scroll-margin-top:84px}.gallery-item figcaption{font-size:15px}.gallery-toolbar p{font-size:16px}.photo-credit{font-size:13px}
 .source-columns,.sources-section .source-columns{font-size:14px}.source-columns h3{font-size:22px}.source-columns .muted{font-size:13px}.family-note span{font-size:23px}
 dialog h2{font-family:var(--font-heading);font-size:29px}dialog h3{font-size:22px}dialog p,dialog li{font-size:16px}.reader-poem{font-size:25px}dialog .source-note{font-size:14px}.task-actions button{font-size:15px}
 .mobile-dock a{font-size:13px;min-width:65px}.mobile-dock a span{font-size:23px}.back-top{bottom:calc(83px + env(safe-area-inset-bottom))}
}
