

@font-face{font-family:'PuHuiTi';src:url('../font/puhuiti-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'PuHuiTi';src:url('../font/puhuiti-500.woff2') format('woff2');
  font-weight:500 600;font-style:normal;font-display:swap;}
@font-face{font-family:'PuHuiTi';src:url('../font/puhuiti-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'PuHuiTi';src:url('../font/puhuiti-800.woff2') format('woff2');
  font-weight:800 900;font-style:normal;font-display:swap;}

@font-face{font-family:'SourceHanSans';src:url('../font/shs-400.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'SourceHanSans';src:url('../font/shs-500.woff2') format('woff2');
  font-weight:500 600;font-style:normal;font-display:swap;}
@font-face{font-family:'SourceHanSans';src:url('../font/shs-700.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'SourceHanSans';src:url('../font/shs-800.woff2') format('woff2');
  font-weight:800 900;font-style:normal;font-display:swap;}

@font-face{font-family:'ZCOOLTitle';src:url('../font/zcool-700.woff2') format('woff2');
  font-weight:400 900;font-style:normal;font-display:swap;}

@font-face{font-family:'Inter';src:url('../font/inter-var.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0100-017F,U+2000-206F,U+20A0-20BF,U+2100-214F,U+2190-21FF,U+2200-22FF;}

@font-face{font-family:'JetBrainsMono';src:url('../font/jetbrains-mono-var.woff2') format('woff2');
  font-weight:100 800;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0100-017F,U+2000-206F,U+20A0-20BF,U+2100-214F,U+2190-21FF,U+2200-22FF;}

@font-face{font-family:'SpaceGrotesk';src:url('../font/space-grotesk-var.woff2') format('woff2');
  font-weight:300 700;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0100-017F,U+2000-206F,U+20A0-20BF,U+2100-214F,U+2190-21FF,U+2200-22FF;}

@font-face{font-family:'NumBlack';src:url('../font/num-black.woff2') format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
  unicode-range:U+0020-007E,U+00A0-00FF,U+2000-206F,U+20A0-20BF,U+2100-214F,U+2190-21FF,U+2200-22FF,U+3000-3003;}

:root{
  --sans:'Inter','PuHuiTi','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  --display:'SpaceGrotesk','Inter','PuHuiTi','PingFang SC',sans-serif;
  --mono:'JetBrainsMono','PuHuiTi','Cascadia Code','SF Mono',Consolas,monospace;
  --num:'NumBlack','Inter','PuHuiTi','PingFang SC',sans-serif;
  --font-cn-name:'PuHuiTi';
}

/* 备选：思源黑体 */
html[data-font="shs"]{
  --sans:'Inter','SourceHanSans','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  --display:'SpaceGrotesk','Inter','SourceHanSans','PingFang SC',sans-serif;
  --mono:'JetBrainsMono','SourceHanSans','Cascadia Code',Consolas,monospace;
  --num:'NumBlack','Inter','SourceHanSans','PingFang SC',sans-serif;
}

html[data-font="system"]{
  --sans:'Inter','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  --display:'SpaceGrotesk','Inter','PingFang SC',sans-serif;
  --mono:'JetBrainsMono','Cascadia Code',Consolas,monospace;
  --num:'NumBlack','Inter','PingFang SC',sans-serif;
}

/* 备选：标题换站酷高端黑 */
html[data-font="zcool"]{
  --display:'ZCOOLTitle','SpaceGrotesk','Inter','PuHuiTi',sans-serif;
}

.data-strip .big,
.data-strip .big .c,
.ind-fact .v,
.ladder-row .pay,
.stu-row .pay,
.role-card .money,
.doc-hero .hstat .v,
.board .bpay .pv,
.qc .qnum,
.qc .qnum em,
[data-num]{
  font-family:var(--num);
  font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum' 1,'kern' 1;
}

.ind-fact .v i,.doc-hero .hstat .v i,.board .bpay .pv i,.qc .qnum em{
  font-family:var(--mono);font-variant-numeric:normal;
}

html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
     text-rendering:optimizeLegibility;}
body{font-family:var(--sans);
     font-feature-settings:'kern' 1,'liga' 1,'clig' 1,'calt' 1;}

h1,h2,.sec-title,.hero-title{font-family:var(--display);}
h1,.hero h1,.hero-title{letter-spacing:-.022em;}
h2,.sec-title{letter-spacing:-.014em;}

.data-strip,.ladder,.ladder-row,.stu-list,.board,.ind-fact,.mile-list,.chain,
.board .bpay,.hero .stats,[data-num],.pay,.price{
  font-variant-numeric:tabular-nums;
  font-feature-settings:'tnum' 1,'kern' 1;
}

.mono,.sec-kicker,.board .bhead,.proc .pno,.work .wno,.plan-row .wk,
.chain-i .cn,.mile .mn,.stu-row .who::before,.news .nm,.src,.ph .fname,
.ph .meta,.ph .todo,.data-strip .note,.ladder-row .reach,.flag .fh,.kl .n,
.acc-head .no,.qa .mk,.layer .ln,.lead-strip .ls-hint,.divider-dot{
  font-family:var(--mono);
}

.btn,.seg button,.field input,.field select,
.lead-form input,.lead-form select,.lead-card input,.lead-card select,
.lead-strip .ls-form input,.lk-btn{
  font-family:var(--sans);
  letter-spacing:.005em;
}
.btn{font-feature-settings:'kern' 1,'calt' 1;}
.btn i,.seg button i,.tag i,.badge i{vertical-align:-1px;}

@media(max-width:767px){
  h1,h2,.sec-title,.hero-title{font-family:var(--sans);}
}
