/* 帆旅数科官网 · 设计令牌
 * 色值来源：帆旅数科品牌 VI v2.2（brand.tokens.json，2026-09-08），由 HEX 等值换算为 OKLCH。
 * 字号、间距、圆角、按钮与焦点规格同样取自 VI v2.2 第 05/06 章。
 * 不依赖 Google Fonts（中国大陆不可访问）；Inter 拉丁子集自托管于 assets/fonts（@fontsource/inter 5.3.0，OFL 许可）。
 */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 300; font-display: swap; src: url("assets/fonts/inter-latin-300-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/inter-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/inter-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/inter-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/inter-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  color-scheme: light;

  /* 中性面 */
  --color-paper:        oklch(100% 0 0);            /* neutral.white  #FFFFFF 主内容面 */
  --color-paper-2:      oklch(98.2% 0.007 233.6);   /* neutral.canvas #F5FAFD 次级背景 */
  --color-paper-3:      oklch(96.4% 0.011 243.7);   /* info.bg        #EDF4FA */
  --color-rule:         oklch(94.5% 0.011 234.8);   /* neutral.line   #E6EEF3 装饰分隔 */
  --color-rule-strong:  oklch(87% 0.022 245.9);     /* #C9D6E2 可见分隔 */
  --color-control:      oklch(55.4% 0.041 257.4);   /* neutral.control #64748B 输入边界 */
  --color-ink:          oklch(27.6% 0.023 248.7);   /* neutral.ink    #1F2933 正文 */
  --color-muted:        oklch(55.4% 0.041 257.4);   /* neutral.muted  #64748B 辅助文字 */

  /* 品牌 */
  --color-brand:        oklch(34.2% 0.075 247.4);   /* brand.navy #123B5D */
  --color-brand-hover:  oklch(28.5% 0.060 247.3);   /* #0D2C46 */
  --color-brand-active: oklch(24.5% 0.051 247.1);   /* #092237 */
  --color-brand-raised: oklch(42.7% 0.077 248.4);   /* #2A5277 深底上的分隔/抬升 */
  --color-accent:       oklch(72.1% 0.130 178.1);   /* brand.teal #12BFA5 识别点缀，配深蓝字 */
  --color-link:         oklch(53.6% 0.094 183.3);   /* brand.tealDeep #087F73 白底链接/功能 */
  --color-highlight:    oklch(82.1% 0.149 72.1);    /* brand.orange #FFB347 少量强调，配深墨字 */
  --color-on-brand:       oklch(100% 0 0);          /* 深蓝底文字 11.61:1 */
  --color-on-brand-muted: oklch(87% 0.022 245.9);   /* 深蓝底辅助文字 7.85:1 */

  /* 语义状态（文字 / 背景） */
  --color-ok-fg:   oklch(53.6% 0.094 183.3);   --color-ok-bg:   oklch(96.5% 0.015 175.7);
  --color-warn-fg: oklch(47.6% 0.103 61.9);    --color-warn-bg: oklch(97.2% 0.031 86.5);
  --color-info-fg: oklch(34.2% 0.075 247.4);   --color-info-bg: oklch(96.4% 0.011 243.7);
  --color-err-fg:  oklch(50% 0.182 29.5);      --color-err-bg:  oklch(96.9% 0.015 22.4);

  --color-focus:         oklch(53.6% 0.094 183.3); /* 3px 深青外环 */
  --color-focus-on-dark: oklch(72.1% 0.130 178.1);
  --color-shadow:        oklch(27.6% 0.023 248.7 / 0.10);

  /* 字体：思源黑体 / Inter，等宽仅用于版本号与元数据 */
  --font-sans: "Inter", "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, "PingFang SC", "Microsoft YaHei", monospace;

  /* 字号（VI 06：H1 56/36 · H2 32/28 · H3 24/22 · 正文 18/16 · 辅助 14） */
  --text-h1:    clamp(2.25rem, 1.55rem + 2.9vw, 3.5rem);
  --text-h2:    clamp(1.75rem, 1.6rem + 0.6vw, 2rem);
  --text-h3:    clamp(1.375rem, 1.3rem + 0.3vw, 1.5rem);
  --text-body:  clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-aux:   0.875rem;
  --text-stage: clamp(2.5rem, 1.9rem + 2.4vw, 4rem);
  --leading-h1: 1.2;  --leading-h2: 1.3;  --leading-h3: 1.4;
  --leading-body: 1.7; --leading-aux: 1.6;

  /* 间距（VI 05：4 8 12 16 24 32 48 64 96） */
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1rem;
  --space-lg:  1.5rem;
  --space-xl:  2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --space-4xl: 6rem;

  /* 圆角：4 标签 · 8 控件 · 12 卡片 · 16 大展示面 */
  --radius-tag: 4px; --radius-control: 8px; --radius-card: 12px; --radius-panel: 16px;

  /* 版心：最大 1200，桌面边距 ≥32，手机 20 */
  --page-max: 1200px;
  --page-gutter: 20px;

  /* 动效：160–240ms 状态反馈为主 */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:     cubic-bezier(0.7, 0, 0.84, 0);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-micro: 160ms;
  --dur-short: 220ms;
  --dur-long:  480ms;

  --z-base: 1; --z-raised: 10; --z-sticky: 200;
}

@media (min-width: 48rem) {
  :root { --page-gutter: 32px; }
}
