/* GENERATED from brand/tokens.json by brand/emit_tokens_css.py — DO NOT EDIT.
 * Color has a single origin: brand/tokens.json. Edit there, then rerun:
 *     cd code/brand && python3 emit_tokens_css.py
 * This is the WEBSITE copy: core/website is static files served by the asset
 * worker with no bundler, so it cannot import the package (§3.4). One combined
 * sheet (tokens + roles + @font-face) linked from each HTML page.
 */
:root {

  /* Brand */
  --ps-navy: #02193C;
  --ps-green: #30A556;
  --ps-gold: #E4C232;

  /* Brand gradient (oklch) */
  --ps-gradient: linear-gradient(180deg, #02193C 0%, #30A556 50%, #E4C232 100%);

  /* Neutral (navy-tinted) */
  --ps-neutral-50: #F4F7FB;
  --ps-neutral-100: #E5E8EC;
  --ps-neutral-300: #A2A5A8;
  --ps-neutral-500: #6F7275;
  --ps-neutral-700: #414853;
  --ps-neutral-900: #02193C;

  /* Green tints */
  --ps-green-50: #DFF6E2;
  --ps-green-100: #79D68F;
  --ps-green-300: #43B966;
  --ps-green-500: #30A556;
  --ps-green-700: #047739;
  --ps-green-900: #005126;

  /* Gold tints */
  --ps-gold-50: #F6EFD4;
  --ps-gold-100: #FCE89A;
  --ps-gold-300: #F4D660;
  --ps-gold-500: #E4C232;
  --ps-gold-700: #C7A413;
  --ps-gold-900: #A8890A;

  /* Red (deep jewel) */
  --ps-red-50: #FFEBEA;
  --ps-red-100: #FFC8C5;
  --ps-red-300: #E37676;
  --ps-red-500: #A8353C;
  --ps-red-700: #821A25;
  --ps-red-900: #5C0B15;

  /* Blue (anchored at the brand navy) */
  --ps-blue-50: #E7F1FF;
  --ps-blue-100: #C0D9FF;
  --ps-blue-300: #689CE9;
  --ps-blue-500: #2961B2;
  --ps-blue-700: #10458C;
  --ps-blue-900: #02193C;

  /* Violet (deep jewel) */
  --ps-violet-50: #F2EDFF;
  --ps-violet-100: #DECEFE;
  --ps-violet-300: #A987E2;
  --ps-violet-500: #724AAB;
  --ps-violet-700: #553085;
  --ps-violet-900: #3A1D5F;

  /* Semantic (meaning -> roster color; success synonym of progress) */
  --ps-progress: #30A556;  /* brand green */
  --ps-success: #30A556;  /* brand green */
  --ps-insight: #E4C232;  /* brand gold */
  --ps-grounding: #02193C;  /* brand navy */
  --ps-link: #2961B2;  /* blue-500 */
  --ps-error: #A8353C;  /* red-500 */

  /* Type - families */
  --ps-font-display: "Outfit", system-ui, sans-serif;
  --ps-font-text: "Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --ps-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* Type - the ONE scale (plan 081 §5.3) */
  --ps-size-1: 0.75rem;
  --ps-size-2: 0.875rem;
  --ps-size-3: 1rem;
  --ps-size-4: 1.125rem;
  --ps-size-5: 1.625rem;

  --ps-leading-tight: 1.2;
  --ps-leading-body: 1.55;
  --ps-track-wide: .08em;

  /* Horizontal lockup: shift by this much of its OWN height to put the
     WORDMARK on the same line as adjacent text. Measured from the SVG. */
  --ps-lockup-h-nudge: -10.36%;
}

/* page titles */
.ps-display {
  font-family: var(--ps-font-display);
  font-weight: 500;
  font-size: var(--ps-size-5);
  line-height: var(--ps-leading-tight);
}

/* section headings */
.ps-heading {
  font-family: var(--ps-font-display);
  font-weight: 500;
  font-size: var(--ps-size-4);
  line-height: var(--ps-leading-tight);
}

/* running prose */
.ps-body {
  font-family: var(--ps-font-text);
  font-weight: 400;
  font-size: var(--ps-size-3);
  line-height: var(--ps-leading-body);
}

/* table cells, captions */
.ps-small {
  font-family: var(--ps-font-text);
  font-weight: 400;
  font-size: var(--ps-size-2);
  line-height: var(--ps-leading-body);
}

/* footer links, stamps */
.ps-ui {
  font-family: var(--ps-font-text);
  font-weight: 600;
  font-size: var(--ps-size-1);
  line-height: var(--ps-leading-body);
  letter-spacing: var(--ps-track-wide);
}

/* inline + block */
.ps-code {
  font-family: var(--ps-font-mono);
  font-weight: 400;
  font-size: 0.92em;
  line-height: var(--ps-leading-body);
  font-variant-ligatures: none;
}

/* ligatures OFF wherever mono lands, class or element (plan 081 §5.1) */
code, pre, kbd, samp {
  font-variant-ligatures: none;
}

/* GENERATED from brand/tokens.json by brand/emit_tokens_css.py — DO NOT EDIT.
 * Self-hosted, never CDN-linked (plan 081 §3.3): a font CDN would put a
 * third-party request on every page load, forfeiting the site's
 * zero-external-request property and adding a recipient category to
 * disclose in /privacy.
 */
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/Outfit.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/Outfit-ext.woff2") format("woff2");
  unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/Inter.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/Inter-ext.woff2") format("woff2");
  unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/JetBrainsMono.woff2") format("woff2");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url("/fonts/JetBrainsMono-ext.woff2") format("woff2");
  unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
