:root {
  --type-ui: Inter, "Noto Serif SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --type-display: "Cormorant Garamond", "Noto Serif SC", "Songti SC", serif;
  --type-cjk-core: "Noto Serif SC", "Songti SC", serif;
  --type-number: Inter, "Noto Serif SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --obs-sans: var(--type-ui);
  --obs-serif: var(--type-display);
  --sans: var(--type-ui);
  --serif: var(--type-display);
}

body {
  font-family: var(--type-ui);
  font-weight: 400;
  line-height: 1.6;
}

label,
.nav,
.nav a,
.generator-progress,
.eyebrow,
.result-section-head p,
.timing-tabs span,
.paywall-kicker {
  font-family: var(--type-ui);
  font-weight: 500;
  line-height: 1.45;
}

input,
select,
textarea,
button,
.city-option,
.roller-unit {
  font-family: var(--type-ui);
  font-weight: 400;
  line-height: 1.45;
}

p,
li,
dt,
dd,
small,
.chapter-content,
.chapter-editorial-body,
.insight-body {
  font-family: var(--type-ui);
  font-weight: 400;
}

h1,
h2,
h3,
h4,
.chart-title,
.step-copy h2,
.core-reveal h2,
.star-row .star-name,
.compact-product-meta strong {
  font-family: var(--type-display);
  font-weight: 500;
}

.instrument-core strong,
.chart-core strong,
.pillar .gz,
.chart-pillar .gz,
.palace-card-head b,
.palace-card .stars,
.detail-head b,
.app-timing-focus-title > strong,
.timing-ganzhi {
  font-family: var(--type-cjk-core);
  font-weight: 500;
  line-height: 1.25;
}

.chart-meta,
.pillar-line,
.product-price,
.product-detail-price,
.cart-price,
.price,
.compact-product-meta em,
.product-side > strong,
.order-top b,
.cart-item > b,
.checkout-total strong,
.order-meta b,
.account-order-row > b,
.account-metrics strong,
#result .wx-metric strong,
.stat strong,
.order-number,
.order-items li strong,
.product-list-cell > strong,
.inventory-history b,
.inventory-history strong,
input[type="number"],
.connection-score strong,
.timing-period,
.timing-state,
time,
[data-numeric] {
  font-family: var(--type-number);
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0;
}
