/* NANA typography system — editorial serif + clean sans */
:root{
  --font-serif:"Noto Serif SC","Source Han Serif SC","思源宋体","Songti SC","STSong","SimSun",serif;
  --font-sans:"Noto Sans SC","Source Han Sans SC","思源黑体","PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --font-latin:Georgia,"Times New Roman",serif;
}
html body{font-family:var(--font-sans)!important;font-weight:400;letter-spacing:0}
body :is(input,textarea,button,select){font-family:var(--font-sans)!important}
body :is(h1,h2,h3){font-family:var(--font-serif)!important;font-weight:500}
body :is(p,li,dd,label){font-family:var(--font-sans)!important}
body :is(blockquote,.salutation,.handline){font-family:var(--font-serif)!important}
body :is(.logo,.signature strong,.letter-sign b){font-family:var(--font-latin)!important}
body :is(.kicker,.rule,.postal-notes,.letter-meta,.chapter small,.chapter i,.stream-heading,.post-meta,footer){font-family:var(--font-sans)!important;letter-spacing:.16em}
body :is(h1,h2,h3,p,blockquote){text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body p{line-height:1.9}
body h1{letter-spacing:-.045em}
body h2{letter-spacing:-.025em}
body h3{letter-spacing:-.012em}
body blockquote{font-weight:400}
@media(max-width:600px){body p{line-height:1.82}body h1{letter-spacing:-.035em}}

/* Windows browsers render Chinese serif text more clearly with native smoothing. */
body :is(h1,h2,h3,p,blockquote){-webkit-font-smoothing:auto;}

/* Balanced type scale across the complete site. */
.letter-sheet strong{font-size:clamp(32px,4.4vw,62px)!important;line-height:.98!important;}
.closing-note{padding:7vw 7vw 5vw!important;}
.closing-note h2{font-size:clamp(38px,5.5vw,76px)!important;line-height:1!important;margin:3.5vw 0!important;max-width:980px;}
.story-hero h1,.journal-hero h1,.public-hero h1,.library-hero h1{font-size:clamp(40px,5.2vw,74px)!important;line-height:1!important;}
.story-now h2{font-size:clamp(28px,3vw,43px)!important;}
.year strong{font-size:clamp(48px,5vw,66px)!important;}
.story-copy h2{font-size:clamp(28px,3.2vw,46px)!important;line-height:1.16!important;}
.story-copy>p:not(.kicker){font-size:14px!important;line-height:1.95!important;}
.story-copy blockquote{font-size:18px!important;line-height:1.65!important;}
.story-ending h2{font-size:clamp(32px,4vw,52px)!important;}
.library-title h2{font-size:clamp(34px,4.2vw,58px)!important;}
.book-object strong{font-size:clamp(36px,4.2vw,58px)!important;}
.book-note h3{font-size:clamp(30px,3.6vw,48px)!important;}
.book-detail h2{font-size:clamp(32px,3.5vw,50px)!important;}
.reader-letter h1{font-size:clamp(36px,4.5vw,58px)!important;line-height:1.08!important;margin-bottom:42px!important;}
.letter-body p{font-size:15px!important;line-height:2!important;}
.case-feature aside h2,.coming h2{font-size:30px!important;}
.case-grid h3,.article-intro h2{font-size:24px!important;}
.empty-article h2{font-size:30px!important;}
.journal-post h2{font-size:clamp(28px,3vw,42px)!important;}
.journal-post .body{font-size:15px!important;line-height:1.95!important;}
.records>h1,.monthly h1{font-size:clamp(38px,4.8vw,68px)!important;line-height:1.02!important;}
.review h2,.project-board h2,.section-heading h2,.advice-title h2{font-size:25px!important;}
.accent strong{font-size:64px!important;}
.finance-total>strong,.overall-board strong{font-size:48px!important;}
@media(max-width:600px){
  .story-hero h1,.journal-hero h1,.public-hero h1,.library-hero h1{font-size:48px!important;}
  .closing-note h2{font-size:45px!important;}
  .reader-letter h1{font-size:40px!important;}
  .letter-body p,.story-copy>p:not(.kicker){font-size:14px!important;}
}

/* Journal title is intentionally quieter than the homepage display type. */
.journal-hero h1{font-size:clamp(42px,4.6vw,64px)!important;line-height:1.02!important}
@media(max-width:700px){.journal-hero h1{font-size:42px!important}}

/* Editorial Chinese line breaking across the site. */
html{line-break:strict;word-break:normal;overflow-wrap:break-word}
h1,h2,h3,blockquote,.handline,.direction-copy b,.chapter i,.book-note span{text-wrap:balance}
p,li,dd,.letter-body,.story-copy,.prompt-text{text-wrap:pretty;orphans:2;widows:2}
.kicker,.logo,.public-nav,.chapter-no,.post-meta,.rule{word-break:keep-all;text-wrap:nowrap}
