/* ═══ 财小云 V2 原型 — 字体声明 + 基础排版 ═══
   字体文件与线上同源（src/assets/fonts/ 复制），Noto Sans SC 仅 400/700/900 三档 */

@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/space-grotesk-400.woff2') format('woff2'); }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('../fonts/space-grotesk-500.woff2') format('woff2'); }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('../fonts/space-grotesk-600.woff2') format('woff2'); }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/space-grotesk-700.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans SC'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/noto-sans-sc-400.subset.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans SC'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/noto-sans-sc-700.subset.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans SC'; font-style: normal; font-weight: 900; font-display: swap;
  src: url('../fonts/noto-sans-sc-900.subset.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/source-sans-3-400.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 600; font-display: swap;
  src: url('../fonts/source-sans-3-600.woff2') format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/source-sans-3-700.woff2') format('woff2'); }

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-synthesis: none; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
:root { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }
body {
  font-family: var(--cxy-font-sans);
  font-size: var(--cxy-size-body);
  line-height: var(--cxy-leading-body);   /* V2：正文行高 1.5 → 1.65（中文长行阅读） */
  color: var(--cxy-text);
  background: var(--cxy-surface-page);
  -webkit-font-smoothing: antialiased;
  transition: background-color var(--cxy-duration-base) var(--cxy-ease-standard),
              color var(--cxy-duration-base) var(--cxy-ease-standard);
}
img { max-width: 100%; display: block; }
a { color: var(--cxy-action); text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: none; }
h1, h2, h3 { text-wrap: balance; }
::selection { background: var(--cxy-blue); color: var(--cxy-on-color); }
:focus-visible { outline: none; box-shadow: var(--cxy-ring); border-radius: var(--cxy-radius-xs); }

.wrap { max-width: var(--cxy-container-max); margin: 0 auto; padding: 0 var(--cxy-margin-min); }
