/* Inceptum design tokens and accessibility layer (design-system/inceptum/MASTER.md).
   Loaded first by both root layouts (website and Noyau). Components use these variables, never raw brand hex. */
:root {
  /* Brand (docs/agent-context/constraints.md): burgundy #8E172C, cream #F8F6F2 */
  --wine: #8e172c;
  --wine-hover: #6b1223;
  --wine-soft: #f6e9eb;
  --deep: #4a1020;
  --cream: #f8f6f2;
  --paper: #fff;
  --peach: #efc5b0;
  /* Text and lines; every text pair is measured at 4.5:1 or more (WCAG AA), field borders at 3:1 or more */
  --ink: #242024;
  --muted: #655d61;
  --line: #e4ddda;
  --field-border: #8a7f83;
  /* Focus: burgundy on light surfaces, cream on burgundy surfaces */
  --focus: #8e172c;
  --focus-on-dark: #f8f6f2;
  /* Shape, spacing, motion */
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 16px;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;
  --duration: 200ms;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  /* Status badges (AA contrast on their backgrounds). */
  --status-ok: #24572b; --status-ok-bg: #e6f1e7; --status-warn: #7a4b00; --status-warn-bg: #fbeedb;
  --status-off: #751128; --status-off-bg: #f9e8ea; --status-neutral: #5d5256; --status-neutral-bg: #eeeae5;
  --ease-drawer: cubic-bezier(.32, .72, 0, 1);
  --touch: 44px;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 100%;
  line-height: 1.6;
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* Visible keyboard focus everywhere (3px, 3:1 or more against the surface) */
:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}
.client-hero :focus-visible,
.client-cta :focus-visible,
.welcome-panel :focus-visible,
.auth-story :focus-visible,
.public-header :focus-visible,
.public-hero :focus-visible,
.site-footer :focus-visible {
  outline-color: var(--focus-on-dark);
}

/* Reduced motion: motion.css removes movement per component (fades stay); smooth scrolling is off everywhere. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
