/**
 * SCHICHT 2 — BRAND
 *
 * DIE Rebranding-Datei. Ein Markenwechsel ändert nur die Anker unten
 * plus die Schriftdeklaration (Font-Dateien bzw. next/font).
 *
 * Zwei Regeln, die nicht verhandelbar sind:
 *
 * 1. Es werden NUR Anker geändert oder injiziert, nie die abgeleiteten
 *    Stufen. Die color-mix()-Formeln bleiben statisch. Custom Properties
 *    lösen sich erst am konsumierenden Element auf und greifen dabei den
 *    aktuellen Anker. Hex-Werte für -300 & Co. wären eine zweite Wahrheit.
 *
 * 2. Laufzeit-Injektion (PHP, Server-Rendering) schreibt NUR auf :root,
 *    nie auf <body> oder einen Wrapper. <body> gewinnt über VERERBUNG,
 *    nicht über Spezifität, und der Fehler ist stumm.
 *    Injizierte <style>-Blöcke sind ungelayert und schlagen damit jede
 *    @layer-Schicht. Für Anker ist das genau richtig.
 *
 * Skalen in oklab: perzeptuell gleichmäßig, keine graustichigen Mitteltöne.
 */
@layer tokens.brand {
  :root {
    /* ── Anker: pro Marke ändern ─────────────────────────────────────── */
    /* Ein Akzent, zwei Anker: --brand-primary-500 trägt auf hellem Grund,
       --brand-accent-500 auf dunklem Grund (Stil angelehnt an entire.com,
       nur Stilrichtung). Welcher gilt, entscheidet semantic.css. */
    --brand-primary-500: #3559a6;
    --brand-accent-500: #6a8acf;
    --brand-secondary-100: #f6f6f6;   /* helle Markenfläche (neutral) */
    --brand-secondary-300: #dfdfdf;   /* dunklere Markenfläche (neutral) */

    /* ── Textfarben auf Markenflächen ────────────────────────────────── */
    --brand-on-brand: var(--color-white);                 /* Text auf --brand-primary-500 */
    --brand-on-contrast: var(--color-neutral-dark-900);   /* Text auf dunkler Kontrastfläche */

    /* ── Abgeleitete Skalen: nie anfassen, nie injizieren ────────────── */
    --brand-primary-50: color-mix(in oklab, var(--brand-primary-500) 8%, white);
    --brand-primary-100: color-mix(in oklab, var(--brand-primary-500) 18%, white);
    --brand-primary-200: color-mix(in oklab, var(--brand-primary-500) 34%, white);
    --brand-primary-300: color-mix(in oklab, var(--brand-primary-500) 56%, white);
    --brand-primary-400: color-mix(in oklab, var(--brand-primary-500) 78%, white);
    --brand-primary-600: color-mix(in oklab, var(--brand-primary-500) 86%, black);
    --brand-primary-700: color-mix(in oklab, var(--brand-primary-500) 74%, black);
    --brand-primary-800: color-mix(in oklab, var(--brand-primary-500) 58%, black);
    --brand-primary-900: color-mix(in oklab, var(--brand-primary-500) 42%, black);

    --brand-accent-100: color-mix(in oklab, var(--brand-accent-500) 18%, white);
    --brand-accent-300: color-mix(in oklab, var(--brand-accent-500) 56%, white);
    --brand-accent-700: color-mix(in oklab, var(--brand-accent-500) 74%, black);

    --brand-secondary-200: color-mix(in oklab, var(--brand-secondary-100) 50%, var(--brand-secondary-300));

    /* ── Typografie ──────────────────────────────────────────────────── */
    --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    --brand-font-title: var(--font-sans);
    --brand-font-body: var(--font-sans);
    --brand-title-letter-spacing: var(--letter-spacing-tight);
    --brand-title-transform: none;      /* uppercase bei Display-Fonts */

    /* ── Form & Charakter ────────────────────────────────────────────── */
    --brand-radius: var(--radius-md);   /* Knöpfe und Eingaben */

    /* Nur für Transitions und Reveals (endliche Dauer). Endlose Animationen
       (Marquee, Shimmer) NICHT damit teilen: bei Faktor → 0 würde die Dauer
       unendlich. Die werden bei prefers-reduced-motion abgeschaltet. */
    --brand-motion-scale: 1;
  }
}
