/* LOCAL PILOT. OFL notices and exact source hashes: StorySeed-assets/fonts/.
   Web derivatives retain original outlines; no proprietary fonts redistributed. */
@font-face{font-family:"DS Nunito Web";src:url("StorySeed-assets/fonts/nunito-web.woff2") format("woff2");font-style:normal;font-weight:200 1000;font-display:swap;unicode-range:U+0020-024F,U+0300-036F,U+1E00-1EFF,U+2000-206F;}
@font-face{font-family:"DS Chinese Web";src:url("StorySeed-assets/fonts/notosanssc-web.woff2?v=20260912-draft-1000") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+0020-024F,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2E80-9FFF,U+FF00-FFEF;}
html:root{--ds-font-en:"DS Nunito Web","DS Chinese Web","Segoe UI",sans-serif;--ds-font-zh:"DS Chinese Web","DS Nunito Web","PingFang SC","Microsoft YaHei",sans-serif;}
html body{font-family:var(--ds-font-en)!important;font-size:18px;line-height:1.7;}
html body :is(.hero,.section,.character-bank-app,.unified-reader){font-family:var(--ds-font-en);line-break:strict;word-break:normal;overflow-wrap:break-word;}
html body :is(h1,h2,h3){font-family:var(--ds-font-en);letter-spacing:normal;}
html body .hero h1{font-size:clamp(36px,4vw,56px);line-height:1.22;}
html body .section h2,html body .bank-intro h2{font-size:clamp(26px,2.5vw,36px);line-height:1.35;}
html body :is(.hero-lead,.section p,.bank-intro p,.bank-detail p){font-size:18px;line-height:1.75;}
html body .hero-en{font-size:clamp(20px,2vw,28px);line-height:1.45;}
html body :is(.button,.topnav button,.character-bank-app button,.ur-nav button,.ur-audio button){font-family:var(--ds-font-en);font-size:18px;line-height:1.4;}
html body :is(.button,.character-bank-app button,.ur-nav button,.ur-audio button) small{font-size:14px;line-height:1.4;}
html body :is(.bank-char b,.bank-big-char,#writingModelChar){font-family:var(--ds-font-zh);font-style:normal;}
html body :is(.bank-char span,.bank-detail h3,#writingModelPinyin,.word-card span,.bank-example){font-family:var(--ds-font-zh);font-size:18px;line-height:1.5;}
html body .ur-head b{font-size:22px;line-height:1.4;}
html body .ur-head small{font-size:16px;line-height:1.5;}
html body .ur-en{font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.6;}
html body .ur-zh{font-size:clamp(22px,2vw,28px);font-family:var(--ds-font-zh);line-height:1.85;}
/* Token controls inherit the reading size; do not resize NEW badges or alter layout. */
html body .unified-reader .ur-token{font:inherit;}
@media(max-width:800px){
 html body{font-size:17px;}
 html body :is(.hero-lead,.section p,.bank-intro p,.bank-detail p){font-size:17px;}
 html body .topnav button{font-size:16px;}
 html body .ur-head b{font-size:18px;}
 html body .ur-head small{font-size:14px;}
}

/* Display-only Chinese round face. Never put it on body, all buttons or reader tokens. */
@font-face{font-family:"DS Rounded Display";src:url("StorySeed-assets/fonts/rounded-display-cn-700.woff2?v=20260912-overlap-fixed") format("woff2");font-style:normal;font-weight:700;font-display:swap;unicode-range:U+3000-303F,U+4E00-9FFE,U+FF00-FFEF;}
html:root{--ds-font-display:"DS Nunito Web","DS Rounded Display","DS Chinese Web","PingFang SC",sans-serif;}
html body :is(.hero h1,.section h2,.section h3,.site-header .links a,.site-header .button,.hero .button,.section .button,.topnav button,.bank-intro h2,.character-bank-app>header b,.bank-tabs button,.bank-audio,.bank-origin-open,.bank-write-open,.bank-actions button,.ur-head b,.ur-nav button,.ur-audio button){font-family:var(--ds-font-display);font-weight:700;}
/* Explicit teaching boundary: labels may be rounded; learning glyphs never are. */
html body :is(.bank-char,.bank-char b,.bank-big-char,#writingModelChar,.bank-detail h3,.bank-char span,#writingModelPinyin,.bank-example,.ur-zh,.ur-zh .ur-token){font-family:var(--ds-font-zh);}
