/* Generated by scripts/generate_brand_tokens.py. DO NOT EDIT BY HAND.
   Source: brand/tokens.json (palette: "current") */

:root {
  /* primitives */
  --im-ink: #0F063C;
  --im-ink-soft: #453F5E;
  --im-ink-quiet: #6B6683;
  --im-ink-muted: #87829D;
  --im-off-white: #F4F4F4;
  --im-white: #FFFFFF;
  --im-hairline: #E2E0EA;
  --im-sky-tint: #D5E6FF;
  --im-sky-periwinkle: #ACCDFF;
  --im-sky-solid: #599CFF;
  --im-butter-tint: #FFFDE5;
  --im-butter-tint-2: #FFFAC4;
  --im-butter-solid: #FFF58A;
  --im-brand-blue: #90B2FF;
  --im-magenta: #FF2E88;
  --im-magenta-deep: #D6006E;
  --im-state-success: #12845C;
  --im-state-attention: #A25F08;
  --im-state-critical: #C93E37;
  --im-overlay-scrim: rgba(15,6,60,.32);

  /* roles */
  --role-text-primary: var(--im-ink);
  --role-text-secondary: var(--im-ink-quiet);
  --role-text-on-tint: var(--im-ink-soft);
  --role-text-caption: var(--im-ink-muted);
  --role-text-inverse: var(--im-white);
  --role-surface-page: var(--im-off-white);
  --role-surface-card: var(--im-white);
  --role-surface-room-a: var(--im-sky-tint);
  --role-surface-room-b: var(--im-butter-tint);
  --role-surface-inverse: var(--im-ink);
  --role-accent-mark: var(--im-magenta);
  --role-accent-mark-text: var(--im-magenta-deep);
  --role-accent-brand: var(--im-brand-blue);
  --role-action-fill: var(--im-ink);
  --role-action-label-room-a: var(--im-sky-periwinkle);
  --role-action-label-room-b: var(--im-butter-solid);
  --role-border-rule: var(--im-ink);
  --role-border-hairline: var(--im-hairline);
  --role-state-success: var(--im-state-success);
  --role-state-attention: var(--im-state-attention);
  --role-state-critical: var(--im-state-critical);

  /* font families */
  --font-display: 'Lora', 'Lora-fallback', Georgia, serif;
  --font-sans: 'Satoshi-Variable', 'Satoshi-fallback', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --font-mono: 'IBM Plex Mono', 'PlexMono-fallback', ui-monospace, SFMono-Regular, monospace;

  /* space (primitive ladder; product-only steps noted in brand/tokens.json) */
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
  --space-64: 64px;
  --space-96: 96px;

  /* radius */
  --radius-none: 0;
  --radius-s: 8px;
  --radius-m: 16px;
  --radius-l: 24px;
  --radius-pill: 999px;
}

/* Deprecated: back-compat for existing --brand-* consumers
   (frontend/portal-frontend/src/marketing/welcome.css, ~120 references). Phase 6 of the brand
   plan migrates these call sites onto --role-* / --radius-* directly; until then these aliases
   preserve the exact values the hand-maintained brand/generated/tokens.css previously shipped —
   including its historical --brand-blue/--brand-yellow mis-naming (they were always sky.tint /
   butter.tint, never the logo's brand.blue). Do not "fix" the mapping here; that value correction
   belongs in the Phase 6 migration commit, not this one. */
:root {
  --brand-ink: var(--im-ink);
  --brand-paper: var(--im-off-white);
  --brand-white: var(--im-white);
  --brand-blue: var(--im-sky-tint);
  --brand-yellow: var(--im-butter-tint);
  --brand-magenta: var(--im-magenta);
  --brand-rule: var(--im-hairline);
  --brand-muted: var(--im-ink-quiet);
  --brand-display: var(--font-display);
  --brand-sans: var(--font-sans);
  --brand-mono: var(--font-mono);
  --brand-card-radius: 20px;
  --brand-control-radius: 10px;
}

:root, .register-marketing {
  /* marketing register — type ramp */
  /* Display/XL */
  --type-display-xl-font: var(--font-display);
  --type-display-xl-weight: 600;
  --type-display-xl-size: 176px;
  --type-display-xl-line: 172px;
  --type-display-xl-track: -4px;
  /* Display/L */
  --type-display-l-font: var(--font-display);
  --type-display-l-weight: 600;
  --type-display-l-size: 98px;
  --type-display-l-line: 108px;
  --type-display-l-track: -1.1px;
  /* Display/ML */
  --type-display-ml-font: var(--font-display);
  --type-display-ml-weight: 600;
  --type-display-ml-size: 64px;
  --type-display-ml-line: 70px;
  --type-display-ml-track: -1.2px;
  /* Display/M */
  --type-display-m-font: var(--font-display);
  --type-display-m-weight: 600;
  --type-display-m-size: 50px;
  --type-display-m-line: 55px;
  --type-display-m-track: -0.96px;
  /* Heading/H2 */
  --type-heading-h2-font: var(--font-display);
  --type-heading-h2-weight: 600;
  --type-heading-h2-size: 40px;
  --type-heading-h2-line: 44px;
  --type-heading-h2-track: -0.8px;
  /* Editorial/Italic */
  --type-editorial-italic-font: var(--font-display);
  --type-editorial-italic-style: italic;
  --type-editorial-italic-size: 52px;
  --type-editorial-italic-line: 60px;
  --type-editorial-italic-track: -0.5px;
  /* Heading/Sans */
  --type-heading-sans-font: var(--font-sans);
  --type-heading-sans-weight: 700;
  --type-heading-sans-size: 26px;
  --type-heading-sans-line: 32px;
  --type-heading-sans-track: -0.3px;
  /* Body/Large */
  --type-body-large-font: var(--font-sans);
  --type-body-large-weight: 400;
  --type-body-large-size: 20px;
  --type-body-large-line: 30px;
  /* Body/Medium */
  --type-body-medium-font: var(--font-sans);
  --type-body-medium-weight: 400;
  --type-body-medium-size: 17px;
  --type-body-medium-line: 26px;
  /* Body/Base */
  --type-body-base-font: var(--font-sans);
  --type-body-base-weight: 400;
  --type-body-base-size: 14px;
  --type-body-base-line: 21px;
  /* Body/Small */
  --type-body-small-font: var(--font-sans);
  --type-body-small-weight: 400;
  --type-body-small-size: 12px;
  --type-body-small-line: 18px;
  /* Button/Label */
  --type-button-label-font: var(--font-sans);
  --type-button-label-weight: 700;
  --type-button-label-size: 16px;
  --type-button-label-line: 24px;
  /* Mono/Eyebrow */
  --type-mono-eyebrow-font: var(--font-mono);
  --type-mono-eyebrow-weight: 500;
  --type-mono-eyebrow-size: 18px;
  --type-mono-eyebrow-line: 24px;
  --type-mono-eyebrow-track: 1.5px;
  /* Mono/Label */
  --type-mono-label-font: var(--font-mono);
  --type-mono-label-weight: 500;
  --type-mono-label-size: 15px;
  --type-mono-label-line: 20px;
  --type-mono-label-track: 1px;
  /* Mono/Caption */
  --type-mono-caption-font: var(--font-mono);
  --type-mono-caption-weight: 500;
  --type-mono-caption-size: 13px;
  --type-mono-caption-line: 18px;
  --type-mono-caption-track: 1.2px;
  /* Number/Large — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-large-font: var(--font-mono);
  --type-number-large-weight: 600;
  --type-number-large-size: 26px;
  --type-number-large-line: 32px;
  --type-number-large-track: 0.5px;
  /* Number/Base — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-base-font: var(--font-mono);
  --type-number-base-weight: 400;
  --type-number-base-size: 17px;
  --type-number-base-line: 24px;
  /* Number/Small — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-small-font: var(--font-mono);
  --type-number-small-weight: 400;
  --type-number-small-size: 14px;
  --type-number-small-line: 20px;

  /* marketing register — spacing aliases */
  --space-block: 96px;
  --space-section: 64px;
  --space-group: 32px;
  --space-pair: 16px;

  /* marketing register — motion (enforced by absence: product gets ease+micro only) */
  --ease: cubic-bezier(.22,1,.36,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --dur-entrance: 600ms;
  --dur-micro: 180ms;
  --dur-stagger: 120ms;
  --dur-counter: 900ms;
  --dur-ticker: 40s;
}

.register-product {
  /* product register — type ramp */
  /* Product/Title */
  --type-product-title-font: var(--font-sans);
  --type-product-title-weight: 700;
  --type-product-title-size: 26px;
  --type-product-title-line: 32px;
  --type-product-title-track: -0.3px;
  /* Product/Section */
  --type-product-section-font: var(--font-sans);
  --type-product-section-weight: 700;
  --type-product-section-size: 20px;
  --type-product-section-line: 26px;
  --type-product-section-track: -0.2px;
  /* Product/Subsection */
  --type-product-subsection-font: var(--font-sans);
  --type-product-subsection-weight: 700;
  --type-product-subsection-size: 16px;
  --type-product-subsection-line: 22px;
  --type-product-subsection-track: -0.1px;
  /* Product/Body */
  --type-product-body-font: var(--font-sans);
  --type-product-body-weight: 400;
  --type-product-body-size: 14px;
  --type-product-body-line: 20px;
  /* Product/BodyStrong */
  --type-product-body-strong-font: var(--font-sans);
  --type-product-body-strong-weight: 500;
  --type-product-body-strong-size: 14px;
  --type-product-body-strong-line: 20px;
  /* Product/Small */
  --type-product-small-font: var(--font-sans);
  --type-product-small-weight: 400;
  --type-product-small-size: 13px;
  --type-product-small-line: 18px;
  /* Product/Button */
  --type-product-button-font: var(--font-sans);
  --type-product-button-weight: 700;
  --type-product-button-size: 14px;
  --type-product-button-line: 20px;
  /* Product/Label */
  --type-product-label-font: var(--font-sans);
  --type-product-label-weight: 500;
  --type-product-label-size: 12px;
  --type-product-label-line: 16px;
  --type-product-label-track: 0.2px;
  /* Mono/Eyebrow — upper: apply text-transform: uppercase */
  --type-mono-eyebrow-font: var(--font-mono);
  --type-mono-eyebrow-weight: 500;
  --type-mono-eyebrow-size: 12px;
  --type-mono-eyebrow-line: 16px;
  --type-mono-eyebrow-track: 1px;
  /* Mono/Label — upper: apply text-transform: uppercase */
  --type-mono-label-font: var(--font-mono);
  --type-mono-label-weight: 500;
  --type-mono-label-size: 12px;
  --type-mono-label-line: 16px;
  --type-mono-label-track: 0.8px;
  /* Mono/Caption */
  --type-mono-caption-font: var(--font-mono);
  --type-mono-caption-weight: 500;
  --type-mono-caption-size: 11px;
  --type-mono-caption-line: 16px;
  --type-mono-caption-track: 0.8px;
  /* Number/Display — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-display-font: var(--font-mono);
  --type-number-display-weight: 600;
  --type-number-display-size: 28px;
  --type-number-display-line: 34px;
  --type-number-display-track: 0.2px;
  /* Number/Large — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-large-font: var(--font-mono);
  --type-number-large-weight: 600;
  --type-number-large-size: 18px;
  --type-number-large-line: 24px;
  --type-number-large-track: 0.2px;
  /* Number/Base — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-base-font: var(--font-mono);
  --type-number-base-weight: 400;
  --type-number-base-size: 14px;
  --type-number-base-line: 20px;
  /* Number/Small — tnum: apply font-variant-numeric: tabular-nums */
  --type-number-small-font: var(--font-mono);
  --type-number-small-weight: 400;
  --type-number-small-size: 12px;
  --type-number-small-line: 16px;

  /* product register — spacing aliases */
  --space-block: 32px;
  --space-section: 24px;
  --space-group: 16px;
  --space-pair: 8px;
  --space-row: 12px;
  --space-control: 20px;

  /* product register — motion (enforced by absence: product gets ease+micro only) */
  --ease: cubic-bezier(.22,1,.36,1);
  --dur-micro: 180ms;
  --radius-default: var(--radius-s);
}
