/* tokens.css - THE ONLY FILE THAT KNOWS THE TOKEN SET. Swap the palette = replace part (a) and re-point part (b) if names differ.
   (a) LPI Direction A "Deep Water" hybrid palette (owner-ruled 2026-11-02): light canvas + navy bands, navy + gold, teal decorative only.
       LIGHT ONLY. There is no dark theme; the dark selector below resolves to the same light values.
       Every colour literal, gradient, shadow and radius used by sm-components.css / blog-tokens.css lives HERE and nowhere else.
   (b) --lib-* alias block: every component/snippet in this build reads ONLY --lib-*, resolved to a part (a) variable here. (unchanged)
   Derived from upstream/rc2-dist/_sm/cn.css; part (a) rewritten, parts (b) and (c) untouched. */

/* ===== (a) Direction A token set ===== */
:root {
  color-scheme: light;
  /* surfaces: cool light canvas, white cards, deeper canvas bands */
  --bg: #EEF2F8; --surface: #FFFFFF; --surface-alt: #E4EAF3;
  --sidebar-bg: #D9E1EE;
  /* gold: --gold is a FILL. --gold-text is the only gold safe for text on light. */
  --gold: #E0A72C; --gold-hover: #EDC261; --gold-deep: #C79226;
  --gold-text: #80590F;          /* gold text on light canvas/white */
  --gold-ink: #0B2033;           /* text ON a gold fill */
  --focus-ring: #1C5078;         /* focus ring on light surfaces */
  /* text */
  --heading: #0D1B2A; --body: #2F3F52; --secondary: #46576B; --muted: #52627A;
  --faint: #6B7A8F;
  /* severity */
  --success: #257A4A; --caution: #8F5E0C; --critical: #B93A26;
  --caution-on-wash: #7A4E08; --success-on-wash: #1D6B3F; --critical-on-wash: #A32E1C;
  --gold-on-wash: #6B490F;
  /* borders */
  --border: #C9D3E2; --border-strong: #7F93AD;
  /* washes */
  --gold-wash: rgba(224,167,44,.10);
  --gold-wash-strong: rgba(224,167,44,.20);
  --success-bg: rgba(37,122,74,.12);
  --caution-bg: rgba(143,94,12,.13);
  --critical-bg: rgba(185,58,38,.10);
  --success-border: rgba(37,122,74,.45);
  --caution-border: rgba(143,94,12,.45);
  --critical-border: rgba(185,58,38,.5);
  --backdrop: rgba(11,32,51,.55);
  /* elevation (navy-tinted) */
  --shadow-sm: 0 1px 2px rgba(15,52,84,.06), 0 1px 1px rgba(15,52,84,.04);
  --shadow-md: 0 12px 32px -14px rgba(15,52,84,.22), 0 2px 6px rgba(15,52,84,.05);
  --shadow-lg: 0 24px 60px rgba(11,32,51,.20);
  --logo-shadow: drop-shadow(0 4px 16px rgba(11,32,51,.18));

  /* --- Direction A brand set --- */
  --navy: #0F3454; --navy-deep: #0B2033; --navy-mid: #1C5078; --navy-soft: #2E6D9C;
  --teal: #2E7D8A;               /* DECORATIVE ONLY (icons, rules). Never text. */
  --cream: #F6E3B2;
  --white: #FFFFFF;
  --gold-on-navy: #EDC261;       /* gold TEXT on navy bands */
  --on-navy: #FFFFFF;
  --on-navy-2: rgba(255,255,255,.86);
  --on-navy-3: rgba(255,255,255,.70);
  --line-on-navy: rgba(255,255,255,.18);
  --glass: rgba(255,255,255,.07);
  --glass-strong: rgba(255,255,255,.12);
  --focus-on-navy: #EDC261;
  --link: #0F3454;               /* in-content link on canvas/white */
  --link-hover: #1C5078;
  --scrim-navy: rgba(11,32,51,.72);
  --glow-gold: rgba(224,167,44,.14);
  --shadow-gold: 0 10px 26px -10px rgba(224,167,44,.7), inset 0 1px 0 rgba(255,255,255,.35);
  --shadow-card-hover: 0 18px 40px -16px rgba(15,52,84,.32), 0 2px 8px rgba(15,52,84,.06);
  --grad-gold: linear-gradient(180deg, #EDC261 0%, #E0A72C 55%, #C79226 100%);
  --grad-hero: radial-gradient(120% 90% at 78% 18%, #1C5078 0%, rgba(28,80,120,0) 55%), linear-gradient(165deg, #0F3454 0%, #0B2033 70%, #08192A 100%);
  --grad-band: linear-gradient(160deg, #0F3454 0%, #0B2033 100%);
  --grad-card-warm: radial-gradient(120% 90% at 100% 0%, rgba(224,167,44,.12), rgba(224,167,44,0) 55%);
  --grad-header: linear-gradient(180deg, rgba(8,25,42,.78) 0%, rgba(8,25,42,.4) 62%, rgba(8,25,42,0) 100%);
  --fade-edge: linear-gradient(90deg, transparent 0%, #000 38%);
  --fade-edge-end: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);

  /* TYPE SYSTEM: 7 fluid steps (375px -> 1440px), the ONLY font sizes on the site. ui = fixed control size (buttons, nav, inputs). */
  --t-small: clamp(14px,calc(13.648px + 0.0939vw),15px); /* 14px @375, 15px @1440 */
  --t-body: clamp(16px,calc(15.296px + 0.1878vw),18px); /* 16px @375, 18px @1440 */
  --t-lead: clamp(19px,calc(17.944px + 0.2817vw),22px); /* 19px @375, 22px @1440 */
  --t-h3: clamp(23px,calc(20.535px + 0.6573vw),30px); /* 23px @375, 30px @1440 */
  --t-h2: clamp(28px,calc(23.775px + 1.1268vw),40px); /* 28px @375, 40px @1440 */
  --t-h1: clamp(34px,calc(26.958px + 1.8779vw),54px); /* 34px @375, 54px @1440 */
  --t-display: clamp(41px,calc(31.493px + 2.5352vw),68px); /* 41px @375, 68px @1440 */
  --t-ui: 1rem;
  --t-eyebrow: var(--t-small); --t-meta: var(--t-small);
  --lh-display: 1.04; --lh-h1: 1.12; --lh-h2: 1.12; --lh-h3: 1.15; --lh-lead: 1.4; --lh-body: 1.6; --lh-small: 1.5; --lh-ui: 1.2;
  --w-regular: 400; --w-medium: 500; --w-bold: 700; --w-display: 700;
  --ls-display: -.01em; --ls-h1: -.01em; --ls-h2: -.01em; --ls-ui: .01em; --ls-eyebrow: .08em;
  --measure: 68ch;
  --font-display: "Archivo","Archivo Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-body: "Public Sans","Public Sans Fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-num: var(--font-body);
  --num: "tnum" 1, "lnum" 1;
  /* shape + layout */
  --rad-sm: 6px; --rad-ctl: 12px; --rad-card: 18px; --rad-band: 22px; --rad-pill: 999px;
  --wrap: 1144px; --prose: 820px;
  --gutter: 16px; --sec-y: 48px; --pad-card: 16px; --pad-card-lg: 24px; --hero-top: 128px; --hero-bottom: 48px;
  --tap: 48px; --tap-min: 44px;

  /* legacy Bridge scale kept so part (b) aliases resolve */
  --fs-meta: 11.5px; --fs-eyebrow: 10px; --fs-strong: 12.5px; --fs-body: 14.5px;
  --fs-h2: 19px; --fs-h1: 22px; --fs-display-sm: 23px; --fs-display: 28px; --fs-display-lg: 42px;
  --r: 10px; --r-sm: 6px;
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px;
  --dur-fast: .15s; --dur: .25s; --dur-slow: .6s;
  --ease: cubic-bezier(.22,1,.36,1);
  --z-sticky: 30; --z-modal-backdrop: 100; --z-toast: 200; --z-fx: 300;
}

@media (min-width:640px){:root{--gutter:24px;--pad-card:24px;--pad-card-lg:32px}}
@media (min-width:768px){:root{--sec-y:64px;--hero-bottom:64px}}
@media (min-width:1024px){:root{--gutter:32px;--sec-y:64px}}
/* self-hosted fonts (SIL OFL 1.1; licence text in /_sm/fonts/). Archivo is pinned at width 75 (condensed); weights 600-800. */
@font-face{font-family:"Archivo";src:url("/_sm/fonts/archivo-condensed-latin-wght.woff2") format("woff2");font-weight:600 800;font-style:normal;font-display:swap;unicode-range:U+20-7E,U+A0-17F,U+2010-2011,U+2013-2015,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2032-2033,U+2039-203A,U+20AC,U+2122,U+2190-2193,U+2212}
@font-face{font-family:"Public Sans";src:url("/_sm/fonts/publicsans-latin-wght.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:optional;unicode-range:U+20-7E,U+A0-131,U+134-148,U+14A-17E,U+2013-2014,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2039-203A,U+20AC,U+2122,U+2212}
/* metrics-matched local fallbacks, measured against Arial Bold / Arial on the pilot pages' real headings and paragraphs (summed text advance); ascent and descent from hhea divided by size-adjust */
@font-face{font-family:"Archivo Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Arial");font-weight:700;size-adjust:77.9%;ascent-override:112.8%;descent-override:27%;line-gap-override:0%}
@font-face{font-family:"Public Sans Fallback";src:local("Arial"),local("ArialMT");size-adjust:104.2%;ascent-override:91.1%;descent-override:21.6%;line-gap-override:0%}

/* DARK selector kept only so any inherited [data-theme="dark"] attribute has NO effect: it resolves to the light set above. */
:root[data-theme="dark"] { color-scheme: light; }

/* ===== (b) --lib-* -> Bridge alias block ===== */
:root {
  /* component vocabulary (library-additions/_src) */
  --lib-bg: var(--bg);
  --lib-surface: var(--surface);
  --lib-surface-2: var(--surface-alt);
  --lib-sidebar: var(--sidebar-bg);
  --lib-text: var(--heading);
  --lib-text-2: var(--body);
  --lib-text-3: var(--secondary);
  --lib-muted: var(--muted);
  --lib-faint: var(--faint);
  --lib-border: var(--border);
  --lib-border-strong: var(--border-strong);
  --lib-accent: var(--gold);
  --lib-accent-hover: var(--gold-hover);
  --lib-accent-deep: var(--gold-deep);
  --lib-accent-ink: var(--gold-ink);
  --lib-accent-text: var(--gold-text);
  --lib-gold-wash: var(--gold-wash);
  --lib-gold-wash-strong: var(--gold-wash-strong);
  --lib-gold-on-wash: var(--gold-on-wash);
  --lib-focus: var(--focus-ring);
  --lib-ok: var(--success);
  --lib-ok-bg: var(--success-bg);
  --lib-ok-border: var(--success-border);
  --lib-ok-on: var(--success-on-wash);
  --lib-warn: var(--caution);
  --lib-warn-bg: var(--caution-bg);
  --lib-warn-border: var(--caution-border);
  --lib-warn-on: var(--caution-on-wash);
  --lib-bad: var(--critical);
  --lib-bad-bg: var(--critical-bg);
  --lib-bad-border: var(--critical-border);
  --lib-bad-on: var(--critical-on-wash);
  --lib-backdrop: var(--backdrop);
  --lib-shadow-sm: var(--shadow-sm);
  --lib-shadow-md: var(--shadow-md);
  --lib-shadow-lg: var(--shadow-lg);
  --lib-radius: var(--r);
  --lib-radius-sm: var(--r-sm);
  --lib-s1: var(--s1);
  --lib-s2: var(--s2);
  --lib-s3: var(--s3);
  --lib-s4: var(--s4);
  --lib-s5: var(--s5);
  --lib-s6: var(--s6);
  --lib-s7: var(--s7);
  --lib-dur-fast: var(--dur-fast);
  --lib-dur: var(--dur);
  --lib-dur-slow: var(--dur-slow);
  --lib-ease: var(--ease);
  --lib-z-sticky: var(--z-sticky);
  --lib-z-modal: var(--z-modal-backdrop);
  --lib-z-toast: var(--z-toast);
  --lib-fs-meta: var(--fs-meta);
  --lib-fs-eyebrow: var(--fs-eyebrow);
  --lib-fs-strong: var(--fs-strong);
  --lib-fs-body: var(--fs-body);
  --lib-fs-h2: var(--fs-h2);
  --lib-fs-h1: var(--fs-h1);
  --lib-fs-display-sm: var(--fs-display-sm);
  --lib-fs-display: var(--fs-display);
  /* names used by the reviewed premium-library snippets */
  --lib-void: var(--bg);
  --lib-surface-1: var(--surface);
  --lib-surface-3: var(--sidebar-bg);
  --lib-text-primary: var(--heading);
  --lib-text-secondary: var(--secondary);
  --lib-text-tertiary: var(--muted);
  --lib-text-muted: var(--muted);
  --lib-fg: var(--heading);
  --lib-ink: var(--heading);
  --lib-ink-2: var(--secondary);
  --lib-line: var(--border);
  --lib-card: var(--surface);
  --lib-border-hairline: var(--border);
  --lib-accent-gold: var(--gold);
  --lib-accent-soft: var(--gold-wash-strong);
  --lib-accent-fg: var(--gold-ink);
  --lib-accent-data: var(--gold-text);
  --lib-accent-ion: var(--gold-text);
  --lib-accent-info: var(--gold-text);
  --lib-accent-warn: var(--caution);
  --lib-accent-error: var(--critical);
  --lib-status-error: var(--critical);
  --lib-status-warn: var(--caution);
  --lib-status-idle: var(--faint);
  --lib-status-working: var(--gold-text);
  --lib-fail: var(--critical);
  --lib-na: var(--muted);
  --lib-focus-ring: var(--focus-ring);
  --lib-radius-chip: var(--r-sm);
  --lib-radius-frame: var(--r);
  --lib-radius-well: var(--r-sm);
  --lib-dur-base: var(--dur);
  --lib-dur-ring: var(--dur-slow);
  --lib-dur-draw: var(--dur-slow);
  --lib-ease-out: var(--ease);
  --lib-ease-draw: var(--ease);
  --lib-ease-ui: var(--ease);
  --lib-shadow: var(--shadow-md);
  --lib-grid: var(--border);
  --lib-row-hover: var(--surface-alt);
  --lib-row-selected: var(--gold-wash-strong);
  --lib-table-pad-x: var(--s3);
  --lib-table-pad-y: var(--s2);
  --lib-motion-hover: var(--dur-fast);
  --lib-alert-border: var(--border-strong);
  --lib-alert-surface: var(--surface);
  --lib-cta-bg: var(--gold);
  --lib-cta-fg: var(--gold-ink);
  --lib-cta-hover: var(--gold-hover);
  --lib-space-1: var(--s1);
  --lib-space-2: var(--s2);
  --lib-space-3: var(--s3);
  --lib-space-4: var(--s4);
  --lib-space-5: var(--s5);
  --lib-space-6: var(--s6);
  --lib-space-7: var(--s7);
  /* GAP (no Bridge token): font stacks. The Bridge loads DM Sans / DM Serif via a CDN import; this build forbids CDNs. */
  --lib-font: system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --lib-font-body: var(--lib-font);
  --lib-font-display: ui-serif,Georgia,"Times New Roman",serif;
}

/* Site Migrator CN components: base reset only. All component styling lives in sm-components.css (loaded right after this file). */
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--body);font:var(--w-regular) var(--t-body)/var(--lh-body) var(--font-body);font-synthesis:none}
/* no global width cap on body children: header/footer bands run full-bleed, sm-components.css adds the content container + the prose measure */
body>*{margin-inline:0}
h1,h2,h3,h4,h5,h6{color:var(--heading);font-family:var(--font-display);font-weight:var(--w-display);line-height:var(--lh-h2);margin:0 0 var(--s3);text-wrap:balance}
h1{font-size:var(--t-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}h2{font-size:var(--t-h2);letter-spacing:var(--ls-h2)}h3{font-size:var(--t-h3);line-height:var(--lh-h3)}h4{font-size:var(--t-lead);line-height:var(--lh-lead)}
p{margin:0 0 var(--s4);text-wrap:pretty}
a{color:var(--link);text-underline-offset:3px}
a:hover{color:var(--link-hover)}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:var(--rad-sm)}
img,video,iframe{max-width:100%;height:auto}
.sm-table{border-collapse:collapse;width:100%;display:block;overflow-x:auto;font-variant-numeric:tabular-nums lining-nums}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
