/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4 */
/* Hallmark · genre: modern-minimal · macrostructure: Split Studio / Workbench / Long Document · theme: custom · tone: warm restrained technical editorial · anchor: forest-green · design-system: design.md · designed-as-app */
/* Hallmark · validation gates require a fresh runtime audit; this file is not a permanent pass artifact. */
/*
 * SairikLabs brand tokens
 * 1. Locked roles mirror /design.md.
 * 2. Semantic tokens are consumed by pages and shared components.
 * 3. Legacy aliases remain available while the UI converges on role names.
 */
:root{
  color-scheme:light;

  /* Locked visual roles */
  --color-paper:oklch(99.42% .0069 88.64);
  --color-paper-2:oklch(97% .0082 91.48);
  --color-paper-3:oklch(94.5% .012 91.48);
  --color-ink:oklch(24.21% .0095 145.27);
  --color-ink-2:oklch(37% .012 142);
  --color-muted:oklch(52% .0144 137.81);
  --color-muted-strong:oklch(45% .014 140);
  --color-text-secondary:var(--color-ink-2);
  --color-text-tertiary:var(--color-muted-strong);
  --color-rule:oklch(88.57% .0184 89.37);
  --color-rule-2:oklch(80% .018 89.37);
  --color-control-border:oklch(66% .018 89.37);
  --color-control-border-hover:oklch(56% .018 89.37);
  --color-control-border-disabled:var(--color-rule);
  --color-accent:oklch(43.57% .064 156.91);
  --color-accent-hover:oklch(38.5% .064 156.91);
  --color-accent-soft:oklch(91.5% .035 156.91);
  --color-accent-ink:oklch(99.42% .0069 88.64);
  --color-feature:oklch(58.7% .1228 36.97);
  --color-feature-soft:oklch(92.5% .028 36.97);
  --color-focus:oklch(58.7% .1228 36.97);
  --color-success:oklch(49% .125 155);
  --color-success-soft:oklch(95% .035 155);
  --color-warning:oklch(52% .115 75);
  --color-warning-soft:oklch(96% .045 85);
  --color-danger:oklch(47% .17 27);
  --color-danger-soft:oklch(95% .03 20);
  --color-info:oklch(48% .12 250);
  --color-info-soft:oklch(96% .025 250);
  --color-on-dark-muted:oklch(84% .012 145);
  --color-on-dark:var(--color-paper);
  --color-link:var(--color-accent);
  --color-link-hover:var(--color-accent-hover);
  --color-on-action:var(--color-accent-ink);
  --color-overlay:oklch(24.21% .0095 145.27/.56);
  --color-shadow-subtle:oklch(24.21% .0095 145.27/.08);
  --color-shadow-raised:oklch(24.21% .0095 145.27/.1);
  --color-shadow-modal:oklch(24.21% .0095 145.27/.14);

  /* Brand primitives retained as compatibility aliases */
  --brand-cream-50:var(--color-paper-2);
  --brand-cream-100:var(--color-paper-3);
  --brand-cream-200:var(--color-rule);
  --brand-paper:var(--color-paper);
  --brand-ink-900:var(--color-ink);
  --brand-ink-700:var(--color-ink-2);
  --brand-ink-500:var(--color-muted);
  --brand-forest-800:var(--color-accent-hover);
  --brand-forest-700:var(--color-accent);
  --brand-forest-100:var(--color-accent-soft);
  --brand-mint-50:var(--color-success-soft);
  --brand-coral-600:var(--color-feature);
  --brand-coral-100:var(--color-feature-soft);
  --brand-red-700:var(--color-danger);
  --brand-red-50:var(--color-danger-soft);
  --brand-amber-700:var(--color-warning);
  --brand-amber-50:var(--color-warning-soft);
  --brand-blue-700:var(--color-info);
  --brand-blue-50:var(--color-info-soft);

  /* Semantic color tokens */
  --color-page:var(--color-paper-2);
  --color-surface:var(--color-paper);
  --color-surface-muted:var(--color-paper-3);
  --color-text:var(--color-ink);
  --color-text-subtle:var(--color-muted-strong);
  --color-border:var(--color-rule);
  --color-border-strong:var(--color-rule-2);
  --color-border-control:var(--color-control-border);
  --color-action:var(--color-accent);
  --color-action-hover:var(--color-accent-hover);
  --color-action-soft:var(--color-accent-soft);

  /* Typography */
  --font-display:"Cormorant Garamond","EB Garamond","Songti SC","STSong","SimSun",Georgia,"Times New Roman",serif;
  --font-body:"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-outlier:ui-monospace,SFMono-Regular,"Cascadia Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --font-serif:var(--font-display);
  --font-sans:var(--font-body);
  --font-mono:var(--font-outlier);
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1rem;
  --text-md:1.25rem;
  --text-lg:1.5625rem;
  --text-xl:1.9531rem;
  --text-2xl:2.4414rem;
  --text-3xl:3.0518rem;
  --text-display:clamp(2.75rem,5vw + 1rem,5.25rem);
  --text-hero:var(--text-display);
  --text-page-title:clamp(2rem,2.2vw + 1rem,3rem);
  --text-app-title:clamp(1.75rem,1.4vw + 1rem,2.5rem);
  --text-section-title:clamp(1.5rem,1vw + 1rem,2rem);
  --text-card-title:var(--text-md);
  --text-body:var(--text-base);
  --text-label:var(--text-sm);
  --text-meta:var(--text-xs);
  --leading-display:.98;
  --leading-heading:1.16;
  --leading-body:1.65;
  --leading-control:1.25;
  --measure-reading:65ch;
  --measure-form:42rem;

  /* Four-pixel rhythm with named and legacy aliases */
  --space-3xs:.125rem;
  --space-2xs:.25rem;
  --space-xs:.5rem;
  --space-sm:.75rem;
  --space-md:1rem;
  --space-lg:1.5rem;
  --space-xl:2.5rem;
  --space-2xl:4rem;
  --space-3xl:6rem;
  --space-1:var(--space-2xs);
  --space-2:var(--space-xs);
  --space-3:var(--space-sm);
  --space-4:var(--space-md);
  --space-5:1.25rem;
  --space-6:var(--space-lg);
  --space-8:2rem;
  --space-10:var(--space-xl);
  --space-12:3rem;
  --space-16:var(--space-2xl);
  --space-20:5rem;
  --space-24:var(--space-3xl);

  /* Shape, elevation, motion and stacking */
  --radius-xs:.5rem;
  --radius-sm:.75rem;
  --radius-md:1rem;
  --radius-lg:1.375rem;
  --radius-xl:2rem;
  --radius-input:.75rem;
  --radius-card:1rem;
  --radius-dialog:1.5rem;
  --radius-pill:999px;
  --shadow-sm:0 1px 3px var(--color-shadow-subtle);
  --shadow-md:0 8px 24px var(--color-shadow-raised);
  --shadow-lg:0 24px 70px var(--color-shadow-modal);
  --control-height-compact:2.25rem;
  --control-height:2.75rem;
  --control-height-large:3rem;
  --focus-ring-width:2px;
  --focus-ring-offset:2px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in:cubic-bezier(.7,0,.84,0);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-micro:120ms;
  --dur-short:220ms;
  --dur-long:420ms;
  --motion-fast:var(--dur-micro);
  --motion-normal:var(--dur-short);
  --ease-standard:var(--ease-out);
  --z-base:0;
  --z-sticky:100;
  --z-dropdown:400;
  --z-overlay:800;
  --z-modal:1000;
  --z-toast:1200;
  --z-tooltip:1400;

  /* Existing semantic/component aliases */
  --background:var(--color-page);
  --foreground:var(--color-text);
  --card:var(--color-surface);
  --card-foreground:var(--color-text);
  --primary:var(--color-action);
  --primary-hover:var(--color-action-hover);
  --primary-foreground:var(--color-on-action);
  --secondary:var(--color-ink);
  --secondary-foreground:var(--color-paper-2);
  --muted:var(--color-surface-muted);
  --muted-foreground:var(--color-text-subtle);
  --accent:var(--color-action);
  --accent-2:var(--color-action-soft);
  --border:var(--color-border);
  --danger:var(--color-danger);
  --popover:var(--color-surface);
  --popover-foreground:var(--color-text);
  --input:var(--color-border-control);
  --ring:var(--color-focus);
  --destructive:var(--color-danger);
  --destructive-foreground:var(--color-on-action);
  --workspace-shell:var(--color-page);
  --bg:var(--color-page);
  --surface:var(--color-surface);
  --surface-2:var(--color-surface-muted);
  --surface-muted:var(--color-surface-muted);
  --surface-subtle:var(--color-paper-2);
  --surface-accent:var(--color-accent-soft);
  --text:var(--color-text);
  --text-muted:var(--color-text-subtle);
  --line:var(--color-border);
  --border-strong:var(--color-border-strong);
  --shadow:var(--shadow-lg);
  --radius:var(--radius-lg);
  --serif:var(--font-display);
  --sans:var(--font-body);
}

@media(prefers-reduced-motion:reduce){
  :root{--dur-micro:0ms;--dur-short:100ms;--dur-long:150ms;--motion-fast:0ms;--motion-normal:100ms}
}
