/* ============================================================
   棱镜 PRISM · design tokens
   一个仪表盘式的深色玻璃工作台：棱蓝底 + 极光网格 + 玻璃面板
   ============================================================ */

:root {
  /* ---- type ---- */
  --font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "Segoe UI", Roboto, sans-serif;
  --font-serif: "Songti SC", "STSong", "Source Han Serif SC", "Noto Serif CJK SC",
    "Noto Serif SC", Georgia, "Times New Roman", serif;
  --font-mono: "SF Mono", ui-monospace, "JetBrains Mono", "Roboto Mono", Menlo, Consolas, monospace;

  --t-display: 600 clamp(2rem, 1.2rem + 2.6vw, 3.35rem);
  --t-h1: 600 clamp(1.5rem, 1.1rem + 1.5vw, 2.1rem);
  --t-h2: 600 clamp(1.15rem, 1rem + 0.7vw, 1.4rem);
  --t-h3: 600 1.05rem;
  --t-body: 400 0.9375rem;
  --t-sm: 400 0.8125rem;
  --t-xs: 400 0.75rem;
  --t-label: 500 0.6875rem;

  /* ---- geometry ---- */
  --r-xs: 6px;
  --r-sm: 9px;
  --r-md: 13px;
  --r-lg: 18px;
  --r-xl: 26px;
  --r-pill: 999px;

  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 22px;
  --sp-6: 30px;
  --sp-7: 42px;
  --sp-8: 60px;

  --rail-w: 76px;
  --shell-max: 1440px;

  /* ---- motion ---- */
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
  --d-fast: 130ms;
  --d-mid: 240ms;
  --d-slow: 460ms;

  /* ---- module accents (per-domain hue, shared by nav + page glow) ---- */
  --a-cyan: #22d3ee;
  --a-teal: #2dd4bf;
  --a-coral: #fb7185;
  --a-amber: #fbbf24;
  --a-jade: #34d399;
  --a-violet: #a78bfa;
  --a-mint: #5eead4;
}

/* ============================================================ dark (default) */
:root,
[data-theme="dark"] {
  color-scheme: dark;

  --ink-900: #04060b;
  --ink-850: #070a12;
  --ink-800: #0a0f1a;
  --ink-750: #0e1524;
  --ink-700: #131b2d;
  --ink-600: #1b2438;

  --glass: rgba(255, 255, 255, 0.045);
  --glass-2: rgba(255, 255, 255, 0.07);
  --glass-3: rgba(255, 255, 255, 0.1);
  --glass-edge: rgba(255, 255, 255, 0.085);
  --glass-edge-hi: rgba(255, 255, 255, 0.2);
  --glass-blur: 26px;

  --text-1: #e9eefa;
  --text-2: #a7b4cb;
  --text-3: #6d7c96;
  --text-4: #4b5871;

  --accent: var(--a-cyan);
  --accent-soft: rgba(34, 211, 238, 0.14);
  --accent-line: rgba(34, 211, 238, 0.34);

  --field: rgba(255, 255, 255, 0.045);
  --field-edge: rgba(255, 255, 255, 0.1);
  --field-focus: rgba(34, 211, 238, 0.5);

  --sh-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --sh-md: 0 4px 14px -4px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.35);
  --sh-lg: 0 18px 42px -14px rgba(0, 0, 0, 0.66), 0 4px 12px -4px rgba(0, 0, 0, 0.4);
  --sh-xl: 0 38px 80px -22px rgba(0, 0, 0, 0.78), 0 10px 26px -12px rgba(0, 0, 0, 0.5);
  --sh-glow: 0 0 0 1px var(--accent-line), 0 12px 40px -12px var(--accent-soft);

  --grain-o: 0.032;
  --grid-o: 0.032;
  --aurora-o: 0.85;
}

/* ============================================================ light (porcelain) */
[data-theme="light"] {
  color-scheme: light;

  --ink-900: #eef1f7;
  --ink-850: #f4f6fb;
  --ink-800: #fbfcfe;
  --ink-750: #ffffff;
  --ink-700: #ffffff;
  --ink-600: #f1f4fa;

  --glass: rgba(255, 255, 255, 0.72);
  --glass-2: rgba(255, 255, 255, 0.86);
  --glass-3: rgba(255, 255, 255, 0.95);
  --glass-edge: rgba(15, 28, 54, 0.08);
  --glass-edge-hi: rgba(255, 255, 255, 0.95);
  --glass-blur: 22px;

  --text-1: #101a2c;
  --text-2: #44536e;
  --text-3: #6d7d99;
  --text-4: #93a1b8;

  --accent: #0d9aa8;
  --accent-soft: rgba(13, 154, 168, 0.12);
  --accent-line: rgba(13, 154, 168, 0.3);

  --field: rgba(255, 255, 255, 0.8);
  --field-edge: rgba(15, 28, 54, 0.12);
  --field-focus: rgba(13, 154, 168, 0.45);

  --sh-sm: 0 1px 2px rgba(19, 32, 56, 0.06);
  --sh-md: 0 4px 14px -4px rgba(19, 32, 56, 0.12), 0 1px 2px rgba(19, 32, 56, 0.06);
  --sh-lg: 0 18px 40px -16px rgba(19, 32, 56, 0.2), 0 3px 10px -4px rgba(19, 32, 56, 0.1);
  --sh-xl: 0 36px 76px -24px rgba(19, 32, 56, 0.26), 0 8px 22px -12px rgba(19, 32, 56, 0.14);
  --sh-glow: 0 0 0 1px var(--accent-line), 0 12px 36px -14px var(--accent-soft);

  --grain-o: 0.02;
  --grid-o: 0.05;
  --aurora-o: 0.5;
}

/* per-module accent override: <body data-accent="coral"> */
[data-accent="cyan"]   { --accent: var(--a-cyan);   --accent-soft: rgba(34,211,238,.14);  --accent-line: rgba(34,211,238,.34);  --field-focus: rgba(34,211,238,.5); }
[data-accent="coral"]  { --accent: var(--a-coral);  --accent-soft: rgba(251,113,133,.14); --accent-line: rgba(251,113,133,.34); --field-focus: rgba(251,113,133,.5); }
[data-accent="amber"]  { --accent: var(--a-amber);  --accent-soft: rgba(251,191,36,.14);  --accent-line: rgba(251,191,36,.34);  --field-focus: rgba(251,191,36,.5); }
[data-accent="jade"]   { --accent: var(--a-jade);   --accent-soft: rgba(52,211,153,.14);  --accent-line: rgba(52,211,153,.34);  --field-focus: rgba(52,211,153,.5); }
[data-accent="violet"] { --accent: var(--a-violet); --accent-soft: rgba(167,139,250,.14); --accent-line: rgba(167,139,250,.34); --field-focus: rgba(167,139,250,.5); }
[data-accent="mint"]   { --accent: var(--a-mint);   --accent-soft: rgba(94,234,212,.14);  --accent-line: rgba(94,234,212,.34);  --field-focus: rgba(94,234,212,.5); }
[data-accent="teal"]   { --accent: var(--a-teal);   --accent-soft: rgba(45,212,191,.14);  --accent-line: rgba(45,212,191,.34);  --field-focus: rgba(45,212,191,.5); }
