/* Hallmark · genre: modern-minimal · macrostructure: Operational Signal Grid · theme: custom triad (玄枢 / 天机 / 归藏) · tone: technical-mystic · anchors: cobalt / celestial-gold / cinnabar · contrast: pass (40–41) · mobile: pass (34, 49–57) */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */

@font-face {
  font-family: "Yi Sans";
  src: url("fonts/yi-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

@font-face {
  font-family: "Yi Serif";
  src: url("fonts/yi-serif.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
}

:root {
  color-scheme: light;

  --color-paper: #fbfcfe;
  --color-paper: oklch(99% 0.004 250);
  --color-paper-94: rgba(251, 252, 254, 0.94);
  --color-paper-94: color-mix(in oklch, var(--color-paper) 94%, transparent);
  --color-paper-96: rgba(251, 252, 254, 0.96);
  --color-paper-96: color-mix(in oklch, var(--color-paper) 96%, transparent);
  --color-paper-2: #f1f4f8;
  --color-paper-2: oklch(96% 0.008 250);
  --color-paper-3: #e4e9f0;
  --color-paper-3: oklch(92.5% 0.012 250);
  --color-ink: #101828;
  --color-ink: oklch(22% 0.035 255);
  --color-ink-2: #344054;
  --color-ink-2: oklch(37% 0.035 255);
  --color-neutral: #475467;
  --color-neutral: oklch(43% 0.03 255);
  --color-muted: #667085;
  --color-muted: oklch(52% 0.028 255);
  --color-rule: #d0d5dd;
  --color-rule: oklch(86% 0.013 250);
  --color-rule-strong: #98a2b3;
  --color-rule-strong: oklch(70% 0.025 250);
  --color-accent: #175cd3;
  --color-accent: oklch(49% 0.19 257);
  --color-accent-soft: #eaf1ff;
  --color-accent-soft: oklch(95% 0.027 257);
  --color-accent-ink: #ffffff;
  --color-accent-ink: oklch(100% 0.001 250);
  --color-focus: #155eef;
  --color-focus: oklch(52% 0.22 257);
  --color-mystic: #303f78;
  --color-mystic: oklch(38% 0.1 270);
  --color-benchmark: var(--color-mystic);
  --color-seal: #a9271c;
  --color-seal: oklch(45% 0.18 28);
  --color-error: #b42318;
  --color-error: oklch(47% 0.19 28);
  --color-success: #067647;
  --color-success: oklch(46% 0.13 155);
  --color-element-wood: #16803c;
  --color-element-wood: oklch(50% 0.15 145);
  --color-element-fire: #c52a22;
  --color-element-fire: oklch(50% 0.19 28);
  --color-element-earth: #8a5837;
  --color-element-earth: oklch(47% 0.085 55);
  --color-element-metal: #a66f00;
  --color-element-metal: oklch(55% 0.125 82);
  --color-element-water: #175cd3;
  --color-element-water: oklch(49% 0.19 257);

  --theme-xuanshu-paper: oklch(99% 0.004 250);
  --theme-xuanshu-ink: oklch(22% 0.035 255);
  --theme-xuanshu-accent: oklch(49% 0.19 257);
  --theme-tianji-paper: oklch(16% 0.025 270);
  --theme-tianji-ink: oklch(94% 0.012 85);
  --theme-tianji-accent: oklch(76% 0.13 85);
  --theme-guizang-paper: oklch(94% 0.006 60);
  --theme-guizang-ink: oklch(20% 0.018 45);
  --theme-guizang-accent: oklch(45% 0.18 28);

  --font-display: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-body: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-wordmark: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;

  --space-3xs: 0.125rem;
  --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;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.375rem;
  --text-xl: 1.625rem;
  --text-display: clamp(2.5rem, 12vw, 3.25rem);

  --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: 120ms;
  --dur-short: 200ms;
  --dur-long: 420ms;

  --rule-thin: 1px;
  --rule-strong: 2px;
  --radius-control: 0.375rem;
  --radius-panel: 0.375rem;
  --radius-card: 0.5rem;
  --radius-round: 50%;
  --control-height: 2.75rem;
  --page-width: 48rem;
  --appbar-height: 3.875rem;
  --surface-pattern: none;
  --surface-pattern-size: auto;
  --shadow-panel: none;

  --z-sticky: 200;
  --z-dropdown: 300;
}

[data-theme="xuanshu"] {
  color-scheme: light;
  --font-display: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-body: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-wordmark: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --radius-control: 0.375rem;
  --radius-panel: 0.375rem;
  --radius-card: 0.5rem;
  --control-height: 2.75rem;
  --page-width: 48rem;
  --surface-pattern: none;
  --surface-pattern-size: auto;
  --shadow-panel: none;
}

[data-theme="tianji"] {
  color-scheme: dark;
  --color-paper: #11131d;
  --color-paper: oklch(16% 0.025 270);
  --color-paper-94: rgba(17, 19, 29, 0.94);
  --color-paper-94: color-mix(in oklch, var(--color-paper) 94%, transparent);
  --color-paper-96: rgba(17, 19, 29, 0.96);
  --color-paper-96: color-mix(in oklch, var(--color-paper) 96%, transparent);
  --color-paper-2: #0b0d15;
  --color-paper-2: oklch(13% 0.022 270);
  --color-paper-3: #202536;
  --color-paper-3: oklch(24% 0.035 270);
  --color-ink: #f0eadc;
  --color-ink: oklch(94% 0.012 85);
  --color-ink-2: #cbc3b4;
  --color-ink-2: oklch(80% 0.016 85);
  --color-neutral: #aaa397;
  --color-neutral: oklch(69% 0.014 85);
  --color-muted: #9893a2;
  --color-muted: oklch(65% 0.025 285);
  --color-rule: #34384b;
  --color-rule: oklch(31% 0.035 270);
  --color-rule-strong: #575d78;
  --color-rule-strong: oklch(45% 0.055 270);
  --color-accent: #d8b45e;
  --color-accent: oklch(76% 0.13 85);
  --color-accent-soft: #302b24;
  --color-accent-soft: oklch(25% 0.045 75);
  --color-accent-ink: #17130b;
  --color-accent-ink: oklch(18% 0.02 75);
  --color-focus: #f0c968;
  --color-focus: oklch(82% 0.16 85);
  --color-mystic: #d8b45e;
  --color-mystic: oklch(76% 0.13 85);
  --color-benchmark: var(--color-element-water);
  --color-seal: #d57268;
  --color-seal: oklch(66% 0.16 28);
  --color-error: #ee8276;
  --color-error: oklch(72% 0.16 28);
  --color-success: #55c892;
  --color-success: oklch(73% 0.15 155);
  --color-element-wood: #51c878;
  --color-element-wood: oklch(73% 0.16 145);
  --color-element-fire: #ee766c;
  --color-element-fire: oklch(70% 0.18 28);
  --color-element-earth: #d6a36f;
  --color-element-earth: oklch(74% 0.1 65);
  --color-element-metal: #ebc66e;
  --color-element-metal: oklch(82% 0.12 85);
  --color-element-water: #71aef0;
  --color-element-water: oklch(72% 0.15 250);
  --font-display: "Yi Serif", "Noto Serif SC", serif;
  --font-body: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-wordmark: "Yi Serif", "Noto Serif SC", serif;
  --radius-control: 0.75rem;
  --radius-panel: 0.875rem;
  --radius-card: 1rem;
  --control-height: 3rem;
  --page-width: 50rem;
  --surface-pattern: radial-gradient(circle at var(--space-3xs) var(--space-3xs), var(--color-rule) var(--rule-thin), transparent var(--rule-thin));
  --surface-pattern-size: var(--space-xl) var(--space-xl);
  --shadow-panel: 0 var(--space-xs) var(--space-xl) oklch(8% 0.02 270 / 0.32);
}

[data-theme="guizang"] {
  color-scheme: light;
  --color-paper: #f0efed;
  --color-paper: oklch(94% 0.006 60);
  --color-paper-94: rgba(240, 239, 237, 0.94);
  --color-paper-94: color-mix(in oklch, var(--color-paper) 94%, transparent);
  --color-paper-96: rgba(240, 239, 237, 0.96);
  --color-paper-96: color-mix(in oklch, var(--color-paper) 96%, transparent);
  --color-paper-2: #e4e2de;
  --color-paper-2: oklch(89% 0.008 60);
  --color-paper-3: #d1cec8;
  --color-paper-3: oklch(83% 0.01 60);
  --color-ink: #241d19;
  --color-ink: oklch(20% 0.018 45);
  --color-ink-2: #493d35;
  --color-ink-2: oklch(35% 0.025 45);
  --color-neutral: #66584e;
  --color-neutral: oklch(45% 0.025 50);
  --color-muted: #746960;
  --color-muted: oklch(50% 0.02 55);
  --color-rule: #bbb1a4;
  --color-rule: oklch(75% 0.02 65);
  --color-rule-strong: #66584e;
  --color-rule-strong: oklch(45% 0.025 50);
  --color-accent: #a9271c;
  --color-accent: oklch(45% 0.18 28);
  --color-accent-soft: #ead7d1;
  --color-accent-soft: oklch(88% 0.04 28);
  --color-accent-ink: #faf8f4;
  --color-accent-ink: oklch(97% 0.006 60);
  --color-focus: #c23527;
  --color-focus: oklch(52% 0.21 28);
  --color-mystic: #3f322b;
  --color-mystic: oklch(30% 0.025 45);
  --color-benchmark: var(--color-element-water);
  --color-seal: #a9271c;
  --color-seal: oklch(45% 0.18 28);
  --color-error: #a9271c;
  --color-error: oklch(45% 0.18 28);
  --color-success: #26724b;
  --color-success: oklch(46% 0.12 155);
  --color-element-wood: #26724b;
  --color-element-wood: oklch(46% 0.12 145);
  --color-element-fire: #b33126;
  --color-element-fire: oklch(47% 0.18 28);
  --color-element-earth: #815438;
  --color-element-earth: oklch(45% 0.08 55);
  --color-element-metal: #9a6900;
  --color-element-metal: oklch(52% 0.12 82);
  --color-element-water: #245e9a;
  --color-element-water: oklch(43% 0.14 250);
  --font-display: "Yi Serif", "Noto Serif SC", serif;
  --font-body: "Yi Sans", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-wordmark: "Yi Serif", "Noto Serif SC", serif;
  --radius-control: 0;
  --radius-panel: 0;
  --radius-card: 0;
  --rule-strong: 3px;
  --control-height: 2.875rem;
  --page-width: 46rem;
  --surface-pattern: none;
  --surface-pattern-size: auto;
  --shadow-panel: none;
}
