@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('/public/fonts/barlow-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('/public/fonts/barlow-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('/public/fonts/barlow-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('/public/fonts/barlow-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('/public/fonts/barlow-condensed-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/public/fonts/barlow-condensed-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:900;font-display:swap;src:url('/public/fonts/barlow-condensed-latin-900-normal.woff2') format('woff2')}

/* Token Collector UI tokens. Authoritative source; never applied to artwork.
 * Layers: primitives -> semantic roles -> component aliases -> legacy aliases.
 * Palette provenance and permitted pairings: docs/brand-tokens.md.
 */
:root {
 color-scheme:dark;

 /* 1. Primitives: approved identity and retained dark UI foundation. */
 --brand-purple:#6f02f7;
 --brand-gold:#f0c603;
 --brand-black:#000000;
 --brand-white:#ffffff;
 --brand-lavender:#b67af5;
 /* Exact source SVG stops are documentation tokens, not UI text colors. */
 --brand-gradient-start:#8004fd;
 --brand-gradient-middle:#b20df3;
 --brand-gradient-end:var(--brand-purple);
 --neutral-base:#0d0c10;
 --neutral-panel:#17151c;
 --neutral-raised:#211e27;
 --neutral-input:#111015;
 --neutral-hover:#2d2835;
 --neutral-selected:#30203e;
 --neutral-text:#f5f2f7;
 --neutral-secondary:#beb7c8;
 --neutral-muted:#a79eb3;
 --neutral-disabled:#a49aae;
 --neutral-divider:#3c3545;
 --neutral-control:#8a789a;
 --gold-hover:#ffe04b;
 --gold-pressed:#d7ae00;
 --red-text:#ffd0d8;
 --red-surface:#351c25;
 --red-border:#a95a70;
 --green-text:#86efac;
 --green-surface:#123022;
 --amber-text:#fde68a;
 --amber-surface:#332a13;
 --blue-text:#93c5fd;
 --blue-surface:#14263d;

 /* Existing family declarations remain literal compatibility entry points. */
 --font:'Barlow',sans-serif;
 --display:'Barlow Condensed',sans-serif;
 --font-weight-regular:400;
 --font-weight-medium:500;
 --font-weight-semibold:600;
 --font-weight-bold:700;
 --font-weight-black:900;
 --text-size-xs:12px;
 --text-size-sm:14px;
 --text-size-base:16px;
 --text-size-lg:18px;
 --text-size-xl:20px;
 --text-size-2xl:24px;
 --text-size-3xl:32px;
 --line-height-tight:1.1;
 --line-height-heading:1.2;
 --line-height-body:1.6;
 --line-height-control:1.35;
 --space-0:0;
 --space-1:4px;
 --space-2:8px;
 --space-3:12px;
 --space-4:16px;
 --space-5:20px;
 --space-6:24px;
 --space-8:32px;
 --space-10:40px;
 --space-12:48px;
 --radius-none:0;
 --radius-sm:6px;
 --radius-md:12px;
 --radius-full:9999px;
 --shadow-none:none;
 --shadow-sm:0 2px 8px rgb(0 0 0 / .16);
 --shadow-md:0 8px 24px rgb(0 0 0 / .24);
 --duration-none:0ms;
 --duration-fast:160ms;
 --duration-normal:240ms;
 --ease-standard:cubic-bezier(.2,.7,.3,1);

 /* 2. Semantic roles: choose a role, not a palette swatch. */
 --surface-base:var(--neutral-base);
 --surface-panel:var(--neutral-panel);
 --surface-raised:var(--neutral-raised);
 --surface-input:var(--neutral-input);
 --surface-hover:var(--neutral-hover);
 --surface-selected:var(--neutral-selected);
 --surface-brand:var(--brand-black);
 --text-primary:var(--neutral-text);
 --text-secondary:var(--neutral-secondary);
 --text-muted:var(--neutral-muted);
 --text-disabled:var(--neutral-disabled);
 --text-on-brand:var(--brand-white);
 --border-decorative:var(--neutral-divider);
 --border-control:var(--neutral-control);
 --border-default:var(--border-decorative);
 --border-strong:var(--border-control);
 --action-primary-background:var(--brand-gold);
 --action-primary-hover:var(--gold-hover);
 --action-primary-pressed:var(--gold-pressed);
 --action-primary-foreground:var(--neutral-base);
 --selection-background:var(--surface-selected);
 --selection-foreground:var(--brand-lavender);
 --selection-border:var(--brand-lavender);
 --focus-ring:var(--brand-gold);
 --focus-width:2px;
 --focus-offset:3px;
 --error-text:var(--red-text);
 --error-surface:var(--red-surface);
 --error-border:var(--red-border);
 --success-text:var(--green-text);
 --success-surface:var(--green-surface);
 --warning-text:var(--amber-text);
 --warning-surface:var(--amber-surface);
 --info-text:var(--blue-text);
 --info-surface:var(--blue-surface);
 --font-body:var(--font);
 --font-display:var(--display);
 --control-min-size:44px;
 --control-font-size:var(--text-size-sm);
 --control-mobile-font-size:var(--text-size-base);
 --control-radius:var(--radius-sm);
 --panel-radius:var(--radius-md);

 /* 3. Component aliases: shared by plain CSS and the Tailwind adapter. */
 --button-primary-background:var(--action-primary-background);
 --button-primary-hover:var(--action-primary-hover);
 --button-primary-pressed:var(--action-primary-pressed);
 --button-primary-foreground:var(--action-primary-foreground);
 --button-secondary-background:var(--surface-raised);
 --button-secondary-hover:var(--surface-hover);
 --button-secondary-foreground:var(--text-primary);
 --button-secondary-border:var(--border-control);
 --button-disabled-background:var(--surface-panel);
 --button-disabled-foreground:var(--text-disabled);
 --button-disabled-border:var(--border-decorative);
 --field-background:var(--surface-input);
 --field-foreground:var(--text-primary);
 --field-border:var(--border-control);
 --field-placeholder:var(--text-muted);
 --layer-background:var(--surface-input);
 --layer-border:var(--border-decorative);
 --layer-selected-background:var(--selection-background);
 --layer-selected-border:var(--selection-border);
 --notice-error-background:var(--error-surface);
 --notice-error-foreground:var(--error-text);
 --notice-error-border:var(--error-border);
 --link-foreground:var(--text-secondary);
 --link-hover:var(--action-primary-background);
 --link-current:var(--action-primary-background);

 /* 4. Compatibility aliases for the existing CSS. Not a second palette. */
 --accent-yellow:var(--action-primary-background);
 --accent-yellow-hover:var(--action-primary-hover);
 --accent-yellow-pressed:var(--action-primary-pressed);
 --accent-purple:var(--selection-foreground);
 --color-accent:var(--action-primary-background);
 --ink:var(--text-primary);
 --muted:var(--text-secondary);
 --line:var(--border-decorative);
 --white:var(--brand-white);
 --gold:var(--action-primary-background);
 --purple:var(--selection-foreground);
 --surface:var(--surface-panel);
 --header:var(--surface-brand);
 --canvas-surface:var(--surface-base);
}
