/* Hallmark · theme: Dojo-paper (custom) · tone: playful-but-clean · anchor hue: violet 295
 * 复刻 ClassDojo 2026 品牌 DNA：米白纸面 + 深海军蓝墨 + 紫主色 + 贴纸描边
 * 所有颜色/字号/间距只在本文件定义，其他样式一律引用 token。
 */

@font-face {
  font-family: 'Grandstander';
  src: url('./fonts/grandstander.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light;

  /* ── 纸面与墨色 ─────────────────────────────────────────────── */
  --paper:        oklch(97.6% 0.024 88);   /* #fff8e7 */
  --paper-2:      oklch(99.4% 0.010 90);   /* 卡片近白 */
  --paper-3:      oklch(94.5% 0.030 88);   /* 次级底 */
  --ink:          oklch(25.5% 0.052 258);  /* #0a1f3d */
  --ink-2:        oklch(43% 0.035 258);
  --ink-3:        oklch(58% 0.025 258);
  --ink-invert:   oklch(99% 0.008 90);
  --line:         oklch(25.5% 0.052 258);
  --line-soft:    oklch(85% 0.020 258);

  /* ── 品牌与语义色 ───────────────────────────────────────────── */
  --accent:       oklch(55.5% 0.235 295);  /* #7d40ff */
  --accent-2:     oklch(48% 0.235 295);
  --accent-soft:  oklch(93% 0.045 295);
  --accent-ink:   oklch(99% 0.010 295);

  --pos:          oklch(78% 0.155 145);    /* #6dd36b */
  --pos-2:        oklch(65% 0.130 170);    /* #2fb594 */
  --pos-soft:     oklch(94% 0.045 145);
  --neg:          oklch(67% 0.190 22);     /* #ff5b6a */
  --neg-soft:     oklch(94% 0.040 22);
  --warn:         oklch(87% 0.140 88);     /* #ffd56b */
  --warn-2:       oklch(80% 0.155 75);     /* #ffb627 */

  /* ── 学生色板（12 色，浅底 + 深墨字，对比 ≥ 4.5:1）───────────── */
  --mark-1:  oklch(86% 0.115 25);
  --mark-2:  oklch(87% 0.120 55);
  --mark-3:  oklch(90% 0.130 90);
  --mark-4:  oklch(89% 0.130 125);
  --mark-5:  oklch(87% 0.100 160);
  --mark-6:  oklch(86% 0.085 190);
  --mark-7:  oklch(85% 0.090 225);
  --mark-8:  oklch(84% 0.100 265);
  --mark-9:  oklch(84% 0.120 295);
  --mark-10: oklch(86% 0.115 330);
  --mark-11: oklch(88% 0.090 15);
  --mark-12: oklch(88% 0.075 200);

  /* ── 字体 ───────────────────────────────────────────────────── */
  --font-display: 'Grandstander', ui-rounded, 'PingFang SC', 'HarmonyOS Sans SC', 'MiSans', 'Noto Sans SC', system-ui, sans-serif;
  --font-body: 'PingFang SC', 'HarmonyOS Sans SC', 'MiSans', 'Noto Sans SC', 'Microsoft YaHei', system-ui, -apple-system, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* ── 字号 ───────────────────────────────────────────────────── */
  --text-xs:   0.75rem;
  --text-sm:   0.8125rem;
  --text-base: 0.9375rem;
  --text-md:   1.0625rem;
  --text-lg:   1.25rem;
  --text-xl:   1.625rem;
  --text-2xl:  2.125rem;
  --text-3xl:  2.75rem;
  --text-display: clamp(2rem, 1.4rem + 3.2vw, 3.5rem);

  /* ── 间距（4pt）────────────────────────────────────────────── */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;
  --sp-8: 40px;
  --sp-9: 48px;
  --sp-10: 64px;

  /* ── 圆角 ───────────────────────────────────────────────────── */
  --r-xs: 8px;
  --r-sm: 12px;
  --r-md: 16px;
  --r-lg: 22px;
  --r-xl: 28px;
  --r-full: 999px;

  /* ── 描边与阴影（贴纸感：描边 + 实心偏移）───────────────────── */
  --bd: 2px;
  --shadow-sticker: 0 4px 0 var(--ink);
  --shadow-sticker-sm: 0 3px 0 var(--ink);
  --shadow-card: 0 1px 2px oklch(25.5% 0.052 258 / 0.10);
  --shadow-pop: 0 18px 44px oklch(25.5% 0.052 258 / 0.22);
  --shadow-focus: 0 0 0 3px var(--accent-soft), 0 0 0 6px var(--accent);

  /* ── 动效 ───────────────────────────────────────────────────── */
  --dur-fast: 120ms;
  --dur: 200ms;
  --dur-slow: 320ms;
  --ease-out: cubic-bezier(0.2, 0.8, 0.3, 1);
  --ease-in: cubic-bezier(0.6, 0, 0.8, 0.4);
  --ease-inout: cubic-bezier(0.4, 0, 0.2, 1);

  /* ── 布局 ───────────────────────────────────────────────────── */
  --rail-w: 224px;
  --rail-w-collapsed: 76px;
  --content-max: 1180px;
  --tabbar-h: 64px;
}
