@font-face{font-family:"JHY Preview Serif";src:url("assets/fonts/jhy-serif-v8.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
/* One shared role scale. Font alternatives change typefaces, not text sizes or page content. */
@font-face{font-family:"JHY Sans";src:url("assets/fonts/jhy-sans-v8.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"JHY WenKai";src:url("assets/fonts/jhy-wenkai-v8.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
/* Resolve the four installed PingFang faces without serving copies of system fonts. */
@font-face{font-family:"JHY PingFang";src:local("PingFangSC-Light");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"JHY PingFang";src:local("PingFangSC-Regular");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JHY PingFang";src:local("PingFangSC-Medium");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"JHY PingFang";src:local("PingFangSC-Semibold");font-weight:600;font-style:normal;font-display:swap}
:root{--type-body:"JHY Sans","PingFang SC","Microsoft YaHei",sans-serif;--type-display:"JHY Preview Serif","Songti SC",serif;--type-display-weight:400;--type-page-title:2rem;--type-section-title:1.5rem;--type-item-title:1.25rem;--type-body-size:1rem;--type-meta-size:.875rem;--type-muted:#5f5b53;--type-bar-height:0px}
/* Tony selected P1 as the site default. Query-scoped alternatives remain reviewable. */
:root:not([data-font]){--type-body:"JHY PingFang","PingFang SC","JHY Sans","Microsoft YaHei",sans-serif;--type-display:var(--type-body);--type-display-weight:300;--type-pf-section-weight:400}
html[data-font="a"]{--type-display:var(--type-body);--type-display-weight:500}
html[data-font="b"]{--type-display:"JHY Preview Serif","Songti SC",serif;--type-display-weight:400}
html[data-font="c"]{--type-display:"JHY WenKai","Kaiti SC",serif;--type-display-weight:400}
/* D uses fonts already installed by the visitor's OS. No brand font files are copied. */
html[data-font="d"]{--type-body:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","JHY Sans","Microsoft YaHei",sans-serif;--type-display:var(--type-body);--type-display-weight:600}
html[data-font="e"]{--type-display:"JHY Sans","PingFang SC",sans-serif;--type-display-weight:650}
html[data-font="f"]{--type-display:"JHY Preview Serif","Songti SC",serif;--type-display-weight:500}
html[data-font="g"]{--type-display:"JHY Preview Serif","Songti SC",serif;--type-display-weight:300}
html[data-font^="pf"]{--type-body:"JHY PingFang","PingFang SC","JHY Sans","Microsoft YaHei",sans-serif;--type-display:var(--type-body)}
html[data-font="pf1"]{--type-display-weight:300;--type-pf-section-weight:400}
html[data-font="pf2"]{--type-display-weight:400;--type-pf-section-weight:400}
html[data-font="pf3"]{--type-display-weight:500;--type-pf-section-weight:500}
html[data-font="pf4"]{--type-display-weight:600;--type-pf-section-weight:500}
html[data-font]{--type-bar-height:58px}
html{font-synthesis:none;text-size-adjust:100%}
.site-spatial{font-family:var(--type-body);font-size:var(--type-body-size);line-height:1.8;--sp-serif:var(--type-display);padding-top:var(--type-bar-height);caret-color:#8b2931}
.site-spatial #main h1,.site-spatial #main h2,.site-spatial #main h3{font-family:var(--type-display);font-weight:var(--type-display-weight);letter-spacing:0;text-wrap:balance}
.site-spatial #main h1{font-size:var(--type-page-title);line-height:1.45}
.site-spatial #main h2{font-size:var(--type-section-title);line-height:1.5}
.site-spatial #main h3{font-size:var(--type-item-title);line-height:1.5}
.site-spatial #main p,.site-spatial #main li,.site-spatial #main dd{font-family:var(--type-body);font-size:var(--type-body-size);line-height:1.85;letter-spacing:0;text-wrap:pretty}
.site-spatial #main p{color:var(--type-muted)}
.site-spatial #main a,.site-spatial #main label,.site-spatial #main button,.site-spatial #main input,.site-spatial #main select,.site-spatial #main textarea{font-family:var(--type-body);font-size:var(--type-body-size);line-height:1.6}
.site-spatial #main a h2,.site-spatial #main a h3{font-family:var(--type-display)}
.site-spatial #main :is(h1,h2,h3)>a{font:inherit;line-height:inherit;letter-spacing:inherit}
.site-spatial #main .small,.site-spatial #main .product p,.site-spatial #main .sp-section-note,.site-spatial #main .sp-image-note,.site-spatial #main .ia-source-note,.site-spatial #main dt,.site-spatial #main .breadcrumb,.site-spatial #main .results,.site-spatial #main .sp-concept-label{font-family:var(--type-body);font-size:var(--type-meta-size);line-height:1.7;color:var(--type-muted);letter-spacing:0}
.site-spatial #main .breadcrumb a,.site-spatial #main .results span,.site-spatial #main .sp-concept-label{font-size:var(--type-meta-size)}
.site-spatial #main .product-label h3{font-size:var(--type-item-title);line-height:1.5}
.site-spatial #main .product .product-label{align-items:flex-start;gap:8px}.site-spatial #main .product .product-label h3{min-width:0}
.site-spatial #main .sp-title-rule h1{font-size:clamp(2rem,3.75vw,3rem);line-height:1.3;letter-spacing:0}
.site-spatial #main .sp-title-rule>p{font-family:var(--type-body);font-size:var(--type-body-size);line-height:1.85;white-space:normal;max-width:27em;margin-top:22px;color:#28251f}
.site-spatial #main .sp-custom h2{white-space:normal;letter-spacing:0}.site-spatial #main .sp-custom-copy>p{color:#5b554c}.site-spatial #main .sp-section-heading{align-items:center}.site-spatial #main .sp-section-heading>.sp-link{white-space:nowrap}
.site-spatial #main .sp-button{font-size:var(--type-body-size);gap:14px;padding:12px 21px;min-height:48px}.site-spatial #main .sp-link{font-size:var(--type-body-size);gap:12px}.site-spatial #main .ia-home-links,.site-spatial #main .ia-sub-links{gap:12px 22px;flex-wrap:wrap}
.site-spatial #main .ia-family-group>h2{font-family:var(--type-body);font-size:var(--type-body-size);font-weight:500;color:#625a4f}
.site-spatial #main .ia-editorial-channels p{max-width:29em;min-height:3.7em}.site-spatial #main .ia-editorial-channels h2{margin-bottom:18px}.site-spatial #main .ia-editorial-channels article>a{margin-top:0}
.site-spatial #main .reading{max-width:920px}.site-spatial #main .reading p{margin-bottom:1.2em}.site-spatial #main .reading section{margin-bottom:40px}
.site-spatial .sp-header nav,.site-spatial .sp-header nav>a,.site-spatial .ia-product-menu>summary{font-family:var(--type-body);font-size:var(--type-meta-size);line-height:1.6}.site-spatial .sp-header nav{gap:18px}
.site-spatial .sp-brand-company{display:block;font-family:var(--type-body);font-size:var(--type-meta-size);line-height:1.5}.site-spatial .sp-brand-company small{font-family:var(--type-body);font-size:var(--type-meta-size);letter-spacing:.035em;line-height:1.5}
.site-spatial .sp-home>.sp-header{top:var(--type-bar-height)}.sp-home.site-spatial>.sp-header{top:var(--type-bar-height)}
.site-spatial .ia-mega{max-height:calc(100dvh - var(--type-bar-height) - 126px);overflow:auto}
.site-spatial .ia-mega h2{font-family:var(--type-display);font-weight:var(--type-display-weight);font-size:var(--type-item-title);line-height:1.5}
.site-spatial .ia-mega h2>a{font-family:inherit;font-size:inherit}.site-spatial .ia-mega p,.site-spatial .ia-mega-top,.site-spatial .ia-menu-all{font-family:var(--type-body);font-size:var(--type-meta-size);line-height:1.6;color:var(--type-muted)}
.site-spatial .sp-header nav .ia-mega section>div>div>a{font-size:var(--type-body-size);line-height:1.7;padding:7px 0}
.site-spatial .sp-footer p,.site-spatial .sp-footer a,.site-spatial .sp-footer span{font-family:var(--type-body);font-size:var(--type-meta-size);line-height:1.8;color:#5e5a51}.site-spatial .sp-footer .sp-link{font-size:var(--type-body-size);color:#8b2931}.site-spatial .sp-footer-links{gap:14px 28px}
.site-spatial .sp-search-dialog h2{font-family:var(--type-display);font-weight:var(--type-display-weight);font-size:var(--type-section-title);line-height:1.5}.site-spatial .sp-search-dialog p,.site-spatial .sp-search-dialog label,.site-spatial .sp-search-dialog input,.site-spatial .sp-search-dialog button{font-family:var(--type-body);font-size:var(--type-body-size);line-height:1.7}.site-spatial .sp-search-dialog>p{color:var(--type-muted)}
.site-spatial summary:focus-visible{outline:2px solid #8b2931;outline-offset:4px}
.type-preview-bar{position:fixed;z-index:1000;inset:0 0 auto;min-height:58px;height:var(--type-bar-height);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 4%;background:#f5f1e9;color:#332c23;border-bottom:1px solid #c8bcaa;font:400 14px/1.5 var(--type-body)}
.type-preview-options,.type-preview-pages{display:flex;align-items:center;gap:8px;min-width:0}.type-preview-bar a{display:inline-flex;align-items:center;justify-content:center;padding:7px 12px;border:1px solid transparent;min-height:40px;white-space:nowrap;font:inherit;color:inherit}.type-preview-bar a[aria-current=page]{background:#8b2931;color:#fff}.type-preview-bar a:hover{border-color:#9d8575}.type-preview-bar label{margin:0;font:inherit}.type-preview-bar select{margin:0;max-width:170px;height:40px;padding:5px 9px;border:1px solid #b6a893;border-radius:0;background:#fff;font:inherit;color:inherit}.type-preview-status{font-size:14px;color:#62594b}.type-preview-bar a:focus-visible,.type-preview-bar select:focus-visible{outline:2px solid #8b2931;outline-offset:2px}
@media(max-width:1280px){.site-spatial .sp-header nav{gap:16px}}
@media(max-width:1100px){.site-spatial .sp-brand-company{display:none}}
@media(max-width:960px){.site-spatial>.sp-header{height:76px}.site-spatial .sp-navigation{gap:14px}.site-spatial .sp-header .menu-toggle{display:block;min-width:44px;min-height:44px;border:1px solid #bdb7ac;background:none;padding:8px 12px;font-size:var(--type-meta-size)}.site-spatial .sp-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fffdf8;padding:18px 6% 26px;box-shadow:0 12px 20px #24281e1c;border-top:1px solid #dedbd5;max-height:calc(100dvh - var(--type-bar-height) - 88px);overflow:auto;font-size:var(--type-meta-size)}.site-spatial .sp-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:8px}.site-spatial .ia-product-menu>summary{padding:10px 8px;justify-content:space-between}.site-spatial .ia-mega{position:static;max-height:none;overflow:visible;box-shadow:none;border:0;background:none;padding:12px 8px 20px}.site-spatial .ia-mega-columns{grid-template-columns:1fr;gap:28px}.site-spatial .sp-header nav>a{padding:10px 8px}.site-spatial .ia-mega-top{font-size:var(--type-meta-size);gap:15px}.type-preview-status{display:none}}
@media(max-width:650px){:root{--type-page-title:1.75rem}html[data-font]{--type-bar-height:104px}.site-spatial #main .sp-title-rule h1{font-size:2rem;line-height:1.35;white-space:nowrap;letter-spacing:0}.site-spatial #main .sp-hero-actions{flex-wrap:wrap;gap:14px;margin-left:17px}.site-spatial #main .sp-button{font-size:var(--type-meta-size);padding:12px 15px;gap:10px}.site-spatial #main .sp-secondary{font-size:var(--type-meta-size);gap:8px}.site-spatial #main .sp-section-heading{align-items:flex-start;flex-direction:column;gap:12px}.site-spatial #main .sp-section-heading>.sp-link{margin:0}.site-spatial #main .sp-title-rule>p{font-size:var(--type-body-size);line-height:1.8;margin-top:16px}.site-spatial #main .ia-editorial-channels p{min-height:0}.site-spatial #main .product-label h3{font-size:var(--type-item-title);line-height:1.5;min-height:3em}.site-spatial .sp-footer-bottom{gap:16px}.site-spatial .sp-footer-top>.sp-footer-links{display:grid}.site-spatial .sp-search-dialog h2{font-size:var(--type-section-title)}.type-preview-bar{height:104px;display:flex;align-items:stretch;flex-direction:column;gap:6px;padding:6px 5%}.type-preview-options{gap:5px;justify-content:flex-start}.type-preview-options>span{font-size:14px;margin-right:3px}.type-preview-bar a{padding:6px 9px;min-height:40px}.type-preview-pages{justify-content:space-between}.type-preview-pages select{max-width:130px}.type-preview-pages label{font-size:14px}.type-preview-pages a{font-size:14px}.site-spatial #main .ia-family-filter button{font-size:var(--type-meta-size);padding:9px 11px}.site-spatial #main .ia-sub-links a{font-size:var(--type-meta-size)}}
@media(max-width:360px){.site-spatial #main .sp-hero-actions{gap:10px;margin-left:13px}.site-spatial #main .sp-button{padding:12px 10px}.site-spatial #main .sp-hero-copy{padding:18px 12px 18px 0}.site-spatial #main .sp-title-rule{padding-left:13px}.type-preview-options>span{display:none}.type-preview-options{justify-content:space-between}.type-preview-pages label>span{display:none}.type-preview-pages select{max-width:125px}}
@media(prefers-reduced-motion:reduce){.type-preview-bar *{transition:none!important}}

.type-title-phrase{white-space:nowrap}
html[data-font] .site-spatial .sp-hero{max-height:calc(100svh - var(--type-bar-height));min-height:min(620px,calc(100svh - var(--type-bar-height)))}

/* Keep the shared type ramp; differentiate the new systems by face and role weight. */
html[data-font="f"] .site-spatial #main :is(h2,h3),html[data-font="f"] .site-spatial .ia-mega h2{font-family:var(--type-body);font-weight:500}
html[data-font="f"] .site-spatial .sp-search-dialog h2{font-family:var(--type-body);font-weight:500}
html[data-font="g"] .site-spatial #main :is(h2,h3),html[data-font="g"] .site-spatial .ia-mega h2{font-family:var(--type-display);font-weight:400}
html[data-font="e"] .site-spatial #main :is(h2,h3),html[data-font="e"] .site-spatial .ia-mega h2{font-weight:550}
html[data-font="e"] .site-spatial #main :is(.sp-button,.sp-link),html[data-font="e"] .site-spatial .sp-header nav>a,html[data-font="e"] .site-spatial .ia-product-menu>summary{font-weight:500}
html[data-font^="pf"] .site-spatial #main :is(h2,h3),html[data-font^="pf"] .site-spatial .ia-mega h2,html[data-font^="pf"] .site-spatial .sp-search-dialog h2{font-family:var(--type-body);font-weight:var(--type-pf-section-weight)}
html:not([data-font]) .site-spatial #main :is(h2,h3),html:not([data-font]) .site-spatial .ia-mega h2,html:not([data-font]) .site-spatial .sp-search-dialog h2{font-family:var(--type-body);font-weight:400}
/* Typeface choices use one compact native selector at every width. */
.type-preview-options{gap:4px}.type-face-label{display:flex;align-items:center;gap:6px;white-space:nowrap}.type-preview-bar .type-face-label select{width:164px;max-width:none}.type-preview-options>.type-preview-status{margin-left:12px}
@media(max-width:1050px){.type-preview-status{display:none}}
@media(max-width:650px){.type-preview-options{justify-content:space-between}.type-preview-bar .type-face-label select{width:152px}.type-preview-options>a{padding:6px 9px}.type-face-label{font-size:0!important;gap:0}.type-face-label select{font-size:14px}.type-preview-pages select{max-width:152px}}
@media(max-width:360px){.type-preview-bar .type-face-label select{width:130px}.type-preview-options>a{padding:6px 7px}}
/* A local scrim keeps the image's dark window frame from crossing the text. */
@media(min-width:651px){.site-spatial #main .sp-hero-copy{isolation:isolate}.site-spatial #main .sp-hero-copy::before{content:"";position:absolute;inset:-24px -64px -24px -24px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#fcfbf8f5 0%,#fcfbf8ed 82%,#fcfbf800 100%)}}

.sp-language{font:inherit;font-size:14px;white-space:nowrap;padding:10px 2px;color:inherit;text-decoration:none}.sp-language:hover{text-decoration:underline}.sp-language:focus-visible{outline:2px solid #8b2931;outline-offset:3px}
