/* ===== Fonts (bundled, OFL) ===== */
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 400; font-display: swap; src: url(../assets/fonts/space-grotesk-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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 500; font-display: swap; src: url(../assets/fonts/space-grotesk-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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 600; font-display: swap; src: url(../assets/fonts/space-grotesk-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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: 'Space Grotesk'; font-style: normal; font-weight: 700; font-display: swap; src: url(../assets/fonts/space-grotesk-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+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url(../assets/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url(../assets/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }

:root {
  /* ink */
  --ink-950: #05080F;
  --ink-900: #0A0F1C;
  --ink-850: #0D1424;
  --ink-800: #111A2C;
  --ink-700: #1A2540;
  --ink-600: #243150;
  /* brand */
  --mint-400: #14B892;
  --mint-300: #3DCCA8;
  --mint-200: #9BE7D2;
  --ice-100: #F0FAF7;
  --azure-400: #2563EB;
  --coral-400: #D92D20;
  --amber-400: #B45309;
  --mint-rgb: 20, 184, 146;
  --azure-rgb: 37, 99, 235;
  --coral-rgb: 217, 45, 32;
  --amber-rgb: 217, 119, 6;
  /* v2 浅色版 · 新增颜色 token */
  --bg-page: #F5F8FB;
  --surface-0: #FFFFFF;
  --surface-sub: #F8FAFC;
  --blue-600: #2563EB;
  --blue-700: #1D4ED8;
  --blue-50: #EAF1FE;
  --blue-rgb: 37, 99, 235;
  --mint-700: #0B7A61;
  --mint-50: #E3F8F1;
  --mint-800: #08654F;
  --amber-700: #92400E;
  --amber-500: #F59E0B;
  --red-700: #B42318;
  /* text */
  --text-hi: #0F1B2D;
  --text-md: #475467;
  --text-lo: #5B6676;
  --text-on-mint: #03140F;
  --text-on-brand: #FFFFFF;
  --placeholder: #636E7D;
  /* lines & surfaces */
  --hairline: #E4E9F0;
  --hairline-2: #D6DDE6;
  --hairline-3: #C2CCD8;
  --hairline-4: #A9B5C4;
  --surface-1: rgba(255, 255, 255, .72);
  --surface-2: rgba(248, 250, 252, .92);
  --surface-glass: rgba(255, 255, 255, .78);
  /* type */
  --font-cn: "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;
  --font-ui: "Space Grotesk", var(--font-cn);
  --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, "SFMono-Regular", Menlo, monospace;
  /* motion */
  --ease: cubic-bezier(.2, .8, .2, 1);
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --t-fast: 160ms;
  --t-mid: 240ms;
  --t-slow: 480ms;
  /* shape */
  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 18px;
  --r-xl: 24px;
  --shadow-1: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 10px 30px -12px rgba(16, 24, 40, .16);
  --shadow-2: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 30px 80px -24px rgba(16, 24, 40, .24);
  --focus: 0 0 0 2px var(--surface-0), 0 0 0 4px rgba(var(--blue-rgb), .55);
}
