/* Locally hosted, editorial subsets. New characters retain native CJK fallbacks. */
@font-face {
 font-family:'DM Sans'; font-style:normal; font-weight:400;
 src:url('assets/fonts/noto-sans-sc-49.woff2?v=51') format('woff2'); font-display:swap;
 unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FFEF,U+20000-2FA1F;
}
@font-face {
 font-family:'Bodoni Moda'; font-style:normal; font-weight:400;
 src:url('assets/fonts/noto-serif-sc-49.woff2?v=51') format('woff2'); font-display:swap;
 unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FE30-FFEF,U+20000-2FA1F;
}
:lang(zh) {
 --body:'DM Sans','PingFang SC','Microsoft YaHei',sans-serif;
 --display:'Bodoni Moda','Songti SC','SimSun',serif;
 word-break:normal; line-break:strict;
}
html:lang(zh) body { font-family:var(--body); }
html:lang(zh) :is(h1,h2,h3) { letter-spacing:0; line-height:1.3; }
html:lang(zh) :is(h1,h2,h3) em { font-style:normal; }
html:lang(zh) :is(p,figcaption,blockquote) { line-height:1.85; }
html:lang(zh) .hero h1 { font-family:var(--display); font-weight:400; }
html:lang(zh) .hero h1 .italic { font-style:normal; }
html:lang(zh) .ss-nav-primary a { font-family:var(--display); line-height:1.55; letter-spacing:.02em; }
html:lang(zh) .study-copy h2 { white-space:normal; }
html:lang(zh) .signature-footer :is(h2,p) { letter-spacing:0; }
html:lang(zh) .ss-header .ss-menu-trigger { white-space:nowrap; }
@media(max-width:600px) {
 html:lang(zh) .hero h1 { font-size:clamp(28px,7.8vw,46px); }
 html:lang(zh) .s33-intro h2 { font-size:clamp(32px,8vw,52px); }
}
