/* 探索手帐的文字层次：书页正文 / 清楚的路标 / 手写的提问。 */
:root{
 --type-reading:"World Notebook Serif","Noto Serif CJK SC","Songti SC","SimSun",serif;
 --type-ui:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
 --type-note:"World Notebook Note","Kaiti SC","KaiTi",serif;
 --type-ink:#193f52;--type-heading:#12394e;--type-note-ink:#216c70;
}
body{font-family:var(--type-ui);font-kerning:normal}
button,input,select,textarea,nav,.button,.back,.eyebrow,.kicker,.tag,.small,figcaption{font-family:var(--type-ui)}
h1,h2,h3{font-kerning:normal;text-wrap:pretty;overflow-wrap:break-word}
h1,.paper-title h1,.page-head h1,.notebook-heading h1,.nb-spread .reader h1,.nb-spread .question h1,.paper-short-intro h1{
 font-family:var(--type-reading);font-size:clamp(1.85rem,2.4vw + .55rem,2.6rem)!important;
 font-weight:750;line-height:1.42!important;letter-spacing:.015em;color:var(--type-heading)
}
.brand{font-family:var(--type-reading);font-weight:700}.brand small{font-family:var(--type-ui)}
h2,.door-caption h2,.catalog h2,.reading-card h3,.connection-card h3,.series-card h3{font-family:var(--type-reading);font-weight:650;line-height:1.55}
.eyebrow,.kicker{font-size:.8125rem;line-height:1.7;font-weight:600;letter-spacing:.06em;color:#426b7e}
.pager,.paper-pager,.paper-page-nav,.chapter-meta{font-family:var(--type-ui);font-variant-numeric:tabular-nums}

/* Comfortable Chinese prose: measure is capped in characters, not full viewport width. */
.nb-spread .reading-text,.paper-text-page,.school-material-body,#paragraphs p,.body-copy>p,
#reader-body>p,.chapter-section>p,.reader>p,.about>p,.record>p{
 font-family:var(--type-reading);font-size:1.1875rem;font-weight:400;line-height:1.95;
 letter-spacing:.012em;color:var(--type-ink);text-align:left;overflow-wrap:break-word
}
.nb-spread .reading-text p,.paper-text-page p,.school-material-body p,#paragraphs p,.body-copy>p,.chapter-section>p{
 margin-top:0;margin-bottom:1.4em;max-width:36em
}
.nb-spread .reading-text p:first-child,.paper-text-page>p:first-of-type,.body-copy>h1+p{
 font-size:1.3125rem;line-height:1.85;color:#1a536b;font-weight:500
}
.nb-spread .reading-text p:first-child::first-line{font-weight:650}
.reading-text strong,.school-material-body strong,.paper-text-page strong,.body-copy strong{
 font-weight:700;color:#155c79;text-decoration:underline;text-decoration-color:#abd3df;text-decoration-thickness:.14em;text-underline-offset:.2em
}
.body-copy>h2,.about>h2,.paper-text-page>h3,#paragraphs h4,.school-material h3,.chapter-section h3,
.reader>.paper-sheet>h2{
 font-family:var(--type-ui);font-size:1.125rem;line-height:1.65;font-weight:700;
 color:#175f7b;letter-spacing:.035em;border-bottom:1px solid #bad8e2;
 padding:0 0 .55rem;margin:1.8rem 0 1rem
}
.paper-text-page>h3:first-child,#paragraphs h4:first-child{margin-top:0}
.paper-text-page>h3{border-left:4px solid #66a7bd;padding:.4rem .75rem;background:#eaf4f8}
.chapter-section h3>span{font-family:var(--type-reading);font-size:1.65rem;font-weight:700;margin-right:.7rem;color:#46829a}

/* Questions look like a thought left in the margin; controls remain sans serif. */
.nb-margin h2{font-family:var(--type-ui);font-size:.875rem;font-weight:600;line-height:1.7;letter-spacing:.04em;color:#4c716f;margin-bottom:.5rem}
.nb-margin>p,.nb-clue-preview>p,.question blockquote,.nb-spread .question blockquote,
.case-question,.chapter-deck,.poem p,.field-note,.looking-note{
 font-family:var(--type-note);font-size:1.5rem;line-height:1.75;font-weight:400;
 letter-spacing:.025em;color:var(--type-note-ink)
}
.nb-margin>p{padding-bottom:1rem;border-bottom:2px solid #a5cec6;margin-bottom:1.2rem}
.nb-clue-preview>p{font-size:1.25rem}.nb-clue-preview strong{font-family:var(--type-ui);font-size:.8125rem}
.nb-spread .question blockquote,.question blockquote,.quote{
 padding:1.25rem 1.4rem;background:#edf6f8;border-left:4px solid #75afbf;border-radius:0
}
.quote p,.poem{font-family:var(--type-note);font-size:1.375rem;line-height:1.9}
.nb-margin summary,.school-help>summary{font-family:var(--type-ui);font-weight:600;font-size:1rem}
.nb-margin textarea{font-family:var(--type-note);font-size:1.25rem;line-height:1.8}
.school-help>summary{color:#296e69}.school-help[open]{border-left:3px solid #8cbcb0;padding-left:1rem}
.reader ul,.reader ol,.about ul,.body-copy ul,.body-copy ol{font-family:var(--type-reading);font-size:1.0625rem;line-height:1.9;padding-left:1.5em}
.reader li,.about li,.body-copy li{margin-bottom:.75rem}.reader li::marker,.body-copy li::marker{color:#2d8395;font-weight:700}

/* Factual source notes stay quiet and distinct from the author's prose. */
.school-provenance,.chapter-sources,.sources,.source-links{font-family:var(--type-ui);font-size:.875rem;line-height:1.8}
.school-provenance p,.body-copy .small,.about .player-note,.nb-margin figcaption{font-family:var(--type-ui);font-size:.8125rem;line-height:1.8;color:#516d7a;font-weight:400}
.body-copy>p:has(>a+br){font-family:var(--type-ui);font-size:1rem;padding:.8rem 0;border-bottom:1px solid #dae9ee;margin:0}
.body-copy>p:has(>a+br)>a{font-weight:600;color:#1b637f}
.school-material table{font-family:var(--type-ui);font-size:1rem;line-height:1.7;font-variant-numeric:tabular-nums}
.nb-publication-cover strong{font-family:var(--type-reading);font-weight:750}
.news-lead h3,.news-grid .news-lead h3{font-family:var(--type-reading);font-weight:750;font-size:1.7rem;line-height:1.5}
.news-card h3,.school-question h3{font-family:var(--type-ui);font-weight:700;line-height:1.65}
.discovery-card h2{font-family:var(--type-reading);font-weight:700;font-size:1.5rem}.discovery-card>p{font-family:var(--type-ui);font-size:1rem;line-height:1.85}
.lesson-copy .lead{font-family:var(--type-reading);font-size:1.25rem;line-height:1.8}.lesson-copy .steps{font-family:var(--type-ui);font-size:1rem;line-height:1.85}
.lesson-copy .pitfall{font-family:var(--type-note);font-size:1.1875rem;line-height:1.8}
/* Existing module selectors are intentionally matched so older font shorthands cannot win. */
#reader-body h2,.color-story .catalog h2,.place h3,.series-card>h3,.record-note h2,.record-empty h2{
 font-family:var(--type-reading);font-weight:700
}
#reader-body h2{font-size:clamp(1.75rem,2vw + .5rem,2.3rem);line-height:1.55;color:var(--type-heading);letter-spacing:.015em}
#reader-body .paper-text-page>h3{font-family:var(--type-ui);font-size:1.125rem;line-height:1.65;font-weight:700;margin:0 0 1rem}
#reader-body .paper-text-page>p,#reader-body>p:not(.eyebrow):not(.small){font-family:var(--type-reading);font-size:1.1875rem;line-height:1.95;margin:0 0 1.4em}
#reader-body .paper-text-page>p:first-of-type{font-size:1.3125rem;line-height:1.85}
#reader-body .poem p{font-family:var(--type-note);font-size:1.375rem;line-height:1.9}
.school-question:not(.news-card) h3{font-family:var(--type-ui);font-weight:700}
.reader>.kicker,.reader>.eyebrow,.body-copy>.eyebrow,#reader-body>.eyebrow,.about>.kicker{
 font-family:var(--type-ui);font-size:.8125rem;font-weight:600;line-height:1.7;letter-spacing:.06em;color:#426b7e
}
.reader>p.hint,.reader>p.small,.body-copy>p.small{font-family:var(--type-ui);font-size:.875rem;line-height:1.8;font-weight:400;color:#516d7a}
@media(max-width:700px){
 h1,.paper-title h1,.page-head h1,.notebook-heading h1,.nb-spread .reader h1,.nb-spread .question h1,.paper-short-intro h1{font-size:1.85rem!important;letter-spacing:0;line-height:1.45!important}
 .nb-spread .reading-text,.paper-text-page,.school-material-body,#paragraphs p,.body-copy>p,#reader-body>p,.chapter-section>p,.reader>p,.about>p,.record>p{font-size:1.125rem;line-height:1.9}
 .nb-spread .reading-text p:first-child,.paper-text-page>p:first-of-type,.body-copy>h1+p{font-size:1.1875rem;line-height:1.85}
 .nb-margin>p,.question blockquote,.nb-spread .question blockquote,.case-question,.chapter-deck{font-size:1.375rem}
 .nb-margin h2{font-size:.875rem}.paper-text-page>h3,.body-copy>h2{font-size:1.0625rem}
 .body-copy>p:has(>a+br){font-size:1rem}.body-copy .small{font-size:.8125rem}
 .nb-spread .reader h1:has(+.tabs){margin-bottom:.8rem}.nb-mobile-art{shape-margin:.5rem}
 #reader-body .paper-text-page>p,#reader-body>p:not(.eyebrow):not(.small){font-size:1.125rem;line-height:1.9}
 #reader-body .paper-text-page>p:first-of-type{font-size:1.1875rem;line-height:1.85}
 #reader-body .poem p{font-size:1.25rem}
}
