/* ===========================================================================
   Tokens des Relaunchs (Phase A1, Richtung D Weg 1b, freigegeben an Tor G0
   am 03.10.2026)

   Die eine Stelle, an der Farben, Schrift, Radien und Bewegung als Zahl
   stehen. Jedes Bauteil in bausatz/ liest von hier; eine Dauer, eine Kurve,
   ein Radius oder eine Farbe als Zahl in einem Bauteil ist ein Fehler, und
   ein Test in seite.test.js hält das fest.

   Herkunft der Werte:
   - Farben je Tageszeit aus prototypen/seite-d.css (Gesamtseite, von Andi
     am 03.10.2026 auf dem Telefon abgenommen).
   - Bewegung aus DESIGN-VORGABE.md Abschnitt 9, Namen --d-* statt --t-*
     (G0-VORLAGE.md Abschnitt 6: --t-* trägt in stil.css die Textfarben).
   - Radien: genau zwei (CLAUDE.md, „Milchglas und Rundungen“; G0 Frage 5).
     Der Prototyp nahm am Glas 22 px; das war eine Abweichung, hier gilt 20.

   Die Kontraste im Kommentar sind gerechnet (WCAG 2.1, relative Leuchtdichte),
   jeweils der ungünstigere gegen --grund und --grund2 — der Himmel ist ein
   Verlauf zwischen beiden. bausatz/tokens.test.js rechnet sie bei jedem
   Testlauf neu und scheitert, wenn eine Zahl hier nicht mehr stimmt. Gegen Glas über dem bewegten Hintergrund gilt diese Rechnung
   nicht; dort wird am gerenderten Bild gemessen (Glas-Bauteil, A1).

   Drei Welten, unabhängig vom Systemthema: Abend (Grundwerte), Nacht,
   Morgen. Gesetzt über data-zeit am Wurzelelement.
   =========================================================================== */

:root {
    /* Schrift. Alle drei selbst gehostet (schriften-d/, SIL OFL). */
    --f-anzeige: "Anton", "Barlow Condensed", Impact, sans-serif;
    --f-kopf: "Barlow Condensed", "Arial Narrow", sans-serif;
    --f-text: "Figtree", system-ui, sans-serif;

    /* Schriftgrößen. Fließend nur, was Anzeige ist. */
    --g-12: 12px; --g-13: 13px; --g-14: 14px; --g-16: 16px; --g-19: 19px; --g-24: 24px;
    --g-marke: 27px;   /* Wortmarke im Seitenkopf (Skizze .marke, G0) */
    --g-frage: clamp(28px, 4vw, 38px);
    --g-h2: clamp(36px, 5vw, 60px);
    --g-h1: clamp(48px, 8vw, 96px);
    --g-zahl: clamp(56px, 9vw, 88px);

    /* Radien: einzeilig Pille, mehrzeilig Fläche. Dazu seit dem Tagblatt (Tor G4)
       die ungleichen Radien des Jelly (seit A4 an allem, was man antippt). */
    --r-bedien: 999px;
    --r-flaeche: 20px;
    /* Tagblatt (Tor G4): Jelly ist ungleich gerundet wie ein Tropfen Gel. */
    --r-jelly: 30px 36px 32px 38px / 36px 30px 38px 32px;
    --r-jelly-knopf: 22px 26px 24px 27px / 26px 22px 27px 24px;
    --r-jelly-klein: 16px;
    /* A4, Nachbesserung (Andi, 16.10.2026): die Gelpillen der Antworten und der Auswahl, die Gelstücke der
       Fragen; jede zweite Frage ist gespiegelt gerundet. */
    --r-jelly-chip: 14px 18px 15px 19px / 18px 14px 19px 15px;
    --r-jelly-zeile: 22px 28px 24px 30px / 28px 22px 30px 24px;
    --r-jelly-zeile-spiegel: 28px 22px 30px 24px / 22px 28px 24px 30px;
    --r-tropfen: 46% 54% 50% 50% / 52% 48% 54% 46%;

    /* Das Blatt des Exposé-Dialogs (Tor G5): helles Papier, gleich welche
       Tageszeit die Seite hat, wie das Exposé selbst. Gegen --blatt-grund
       gerechnet: Text 16,2:1, leise 7,5:1, Feldkante 4,6:1. */
    --blatt-grund: #F7F8FA; --blatt-papier: #FFFFFF; --blatt-text: #121A33; --blatt-leise: #4A5163;
    --blatt-kante: #6A7183; --blatt-rand: #B9BFCB; --blatt-dunkel: rgba(18, 26, 51, .55);
    /* Der Nebel am Rand treibt so langsam, dass man es kaum sieht (Tor G4 Teil 5). */
    --d-nebel: 90s;

    /* Bewegung: ein Takt, vier Dauern, drei Kurven (DESIGN-VORGABE 9). */
    --d-ping: 120ms;      /* Zustandswechsel, Fokus, Zeiger */
    --d-schritt: 320ms;   /* Einblendungen, Chips, Zahlen */
    --d-szene: 640ms;     /* Fragenwechsel, Ergebnis, Ansichtswechsel */
    --d-atem: 1400ms;     /* Einschwingen des Lichts, Ergebnis-Ton */
    --ease-aus: cubic-bezier(0.22, 1, 0.36, 1);      /* was ankommt */
    --ease-ein: cubic-bezier(0.64, 0, 0.78, 0);      /* was geht */
    --ease-bewegt: cubic-bezier(0.65, 0, 0.35, 1);   /* Ortswechsel */
    --versatz: 40ms;      /* je Element einer Gruppe, gedeckelt bei sechs */
    --versatz-max: 6;
    --schwebe-weg: 14px;  /* Weg beim Einschweben (bestehende Regel) */
    /* Federkurven des Aufklappers. Hier der Rückfall ohne Überschwingen für
       Browser ohne linear(); die Federkurve selbst steht erzeugt am Ende der
       Datei (werkzeuge/baue-feder-kurve.js aus federn.js). */
    --feder-auf: var(--ease-aus);
    --feder-zu: var(--ease-aus);
    /* Wackelpudding (pudding.js; Andi, 04.10.2026). Ausschlag beim Ziehen,
       Streckung in Zugrichtung (quer entsprechend schmaler, die Fläche bleibt),
       Neigung bei vollem Ausschlag, Überstrecken beim Aufklappen. „dezent“ ist
       der Anteil davon für die Fragekarte, in der das Eingabefeld steht. Die
       Federn selbst stehen in federn.js (FEDER_WERTE). */
    --pudding-weg: 36px;      /* bis 04.10.2026 abends 24 px; Andi: Ziehen stärker */
    --pudding-streckung: 4;    /* Prozent */
    --pudding-neigung: 1.5;    /* Grad */
    --pudding-auf: 3;          /* Prozent */
    --pudding-dezent: .5;     /* Fragekarte also bis 18 px (vorher 6) */

    /* Dauerbewegung des Himmels, aus der abgenommenen Gesamtseite (Andi,
       03.10.2026). Sie ist keine Choreografie mit Auslöser und steht deshalb
       nicht in der Tabelle von DESIGN-VORGABE 9 — als Zahl steht sie trotzdem
       nur hier. --d-hauch ist der Weg der Lichthauche von Station zu Station. */
    --d-wandern-a: 26s;
    --d-wandern-b: 34s;
    --d-hauch: 2400ms;

    /* Masken sind Deckung, keine Farbe: Schwarz heißt „sichtbar“. Die Linien
       treten hinter der Textspalte auf 14 % zurück (seite-d.css, gemessen). */
    --maske-voll: #000;
    --maske-leise: rgba(0, 0, 0, .14);

    /* Glas (glas.css): Unschärfe mit Sättigung, sonst wirkt es milchig statt
       klar (DESIGN-VORGABE 5). Unschärfe und Sättigung wie auf der
       abgenommenen Gesamtseite. Die Obergrenze für die Helligkeit hinter
       Text, die DESIGN-VORGABE 5 verlangt, trägt nicht das Glas, sondern das
       Haus: --r-raum-deckung unten (Andi, Tor G1, 04.10.2026). */
    --glas-filter: blur(18px) saturate(160%);
    --glanz-groesse: 220px;

    /* Glanz folgt dem Zeiger; der Zeiger setzt beide Werte. */
    --zx: 50%; --zy: 50%;

    /* Feste Gründe der Marke als Bild, gleich in jeder Tageszeit:
       Papier (Exposé, Druck) und die Kachel des Favicons. Dieselben Werte
       schreibt werkzeuge/baue-wortmarke-relaunch.py fest in die Dateien;
       ein Test vergleicht beide. */
    --papier: #FFFFFF;
    --marke-kachel: #0F0F26;

    /* ---- Abend (Grundwerte) ---- */
    --grund: #0F0F26;
    --grund2: #2B1F4C;
    --hauch1: rgba(255, 150, 80, .20);
    --hauch2: rgba(120, 90, 255, .18);
    --text: #F2F0FA;        /* mindestens 13,27:1 */
    --leise: #B5B6D3;       /* mindestens 7,55:1 */
    --akzent: #FFC98A;      /* mindestens 9,96:1 — nur Bedienbares und die Frage */
    --primaer: #FFC98A;
    --primaer-text: #15132E; /* 12,00:1 auf --primaer */
    --gut: #5BE3A6;         /* mindestens 9,25:1 */
    --schlecht: #FF8C86;    /* mindestens 6,66:1 */
    /* „Mittel“ der Ampel (Bernstein, wie --s-halb der Lichtung). Seit A3 tragen
       auch Detailansicht und Risikoliste die Tokens des Relaunchs. */
    --halb: #F0B65C;        /* mindestens 8,23:1 */
    /* Glas .48 statt .34 der Skizze: Über dem Haus schimmerten die
       weichgezeichneten Fenster als warmer Fleck hinter „−423 €“ (2,40:1,
       Telefon, 03.10.2026). */
    --glas: rgba(26, 22, 62, .48);
    --glas-stark: rgba(26, 22, 62, .62);
    --glas-deckend: #1A163E; /* Rückfall ohne backdrop-filter und bei weniger Transparenz */
    --glasrand: rgba(255, 255, 255, .14);
    --glanzrand: rgba(255, 255, 255, .30);
    --feld: rgba(255, 255, 255, .07);
    --schatten: rgba(0, 0, 0, .45);
    /* Linienhaus (haus.js liest --r-* und --h-boden). */
    --r-linie: #FFAE55; --r-glanz: #FFAE55; --r-fenster: #FFC676; --r-moebel: rgba(60, 34, 14, .85); --r-schein: 1;
    --r-krone: rgba(190, 225, 210, .55); --r-stamm: rgba(201, 207, 255, .28); --h-boden: #FF9E4E;
    /* Deckung der Zeichenfläche des Hauses abends und nachts. Entschieden an
       Tor G1 am iPhone (Andi, 04.10.2026) statt einer Abdunkelung im Glas
       (brightness(.5), knappster Fall 5,01:1), die gelöscht ist.
       Gemessen am 03.10.2026 (bausatz/miss-kontrast-glas.mjs, 144 Aufnahmen
       im hellsten Zustand): bei voller Deckung bis 2,32:1 für leisen Text auf
       dem Telefon, weil die Linien des Hauses dort in der oberen Bildhälfte
       unmaskiert hinter dem Glas stehen. .5 ließ 2 Stellen (4,41:1), .4 keine,
       knappster Fall 4,99:1. Ein schwächerer Bodenschein allein trägt nicht:
       ohne Bodenschein 40 Stellen unter Soll (bis 2,40:1), ohne Fensterlicht
       23, ohne beides noch 20 (bis 3,38:1). Hell sind die Linien selbst. */
    --r-raum-deckung: .4;
    color-scheme: dark;
}

:root[data-zeit="nacht"] {
    --grund: #05070F;       /* --text mindestens 15,64:1, --leise 8,90:1 */
    --grund2: #0F1733;
    --hauch1: rgba(255, 170, 90, .10);
    --hauch2: rgba(70, 110, 255, .14);
    --glas: rgba(8, 10, 26, .52);
    --glas-stark: rgba(8, 10, 26, .66);
    --glas-deckend: #080A1A;
    --r-schein: 1.3; --r-stamm: rgba(147, 166, 220, .22);
}

:root[data-zeit="morgen"] {
    --grund: #EEF1F5;
    --grund2: #D3E1F5;
    --hauch1: rgba(255, 214, 160, .45);
    --hauch2: rgba(140, 180, 255, .40);
    --text: #121A33;        /* mindestens 12,99:1 */
    --leise: #3E4766;       /* mindestens 6,90:1 */
    --akzent: #1F4FA8;      /* mindestens 5,78:1 */
    --primaer: #121A33;
    --primaer-text: #F7F6F2; /* 15,90:1 auf --primaer */
    /* Der Prototyp hatte #11804F: 4,39:1 gegen --grund, 3,75:1 gegen --grund2,
       unter dem Soll von 4,5 (gerechnet 03.10.2026). */
    --gut: #0C7044;         /* mindestens 4,64:1 */
    --schlecht: #B3261E;    /* mindestens 4,94:1 */
    --halb: #7F5300;        /* mindestens 5,05:1 */
    --glas: rgba(255, 255, 255, .40);
    --glas-stark: rgba(255, 255, 255, .62);
    --glas-deckend: #F7F8FA;
    /* Am Morgen volle Deckung: Die Schrift ist dunkel, ein blasseres Haus
       hellte den Grund nur auf. Gemessen ohne Befund, knappster Fall 5,14:1. */
    --r-raum-deckung: 1;
    --glasrand: rgba(255, 255, 255, .75);
    --glanzrand: rgba(255, 255, 255, .9);
    --feld: rgba(255, 255, 255, .55);
    --schatten: rgba(40, 60, 110, .18);
    --r-linie: #1F4FA8; --r-glanz: #3F7DF0; --r-krone: rgba(60, 110, 85, .5); --r-stamm: rgba(46, 74, 126, .26); --h-boden: #3F7DF0;
    color-scheme: light;
}

/* Das Ergebnis tönt das Licht am Boden: wärmer bei gutem, kühler bei
   schwachem Cashflow, nie in Warnfarbe. Am Morgen bleibt es blau. */
:root[data-ton="gruen"] { --h-boden: #FF9A3C; }
:root[data-ton="gelb"] { --h-boden: #E9C48E; }
:root[data-ton="rot"] { --h-boden: #AFC0DA; }
:root[data-zeit="morgen"][data-ton] { --h-boden: #3F7DF0; }

/* feder:anfang — erzeugt von werkzeuge/baue-feder-kurve.js aus federn.js, nicht von Hand ändern */
/* Aufklapper öffnen: Dämpfung 0.78, Spitze 102,0 % bei 56,4 % der Dauer.
   Aufklapper schließen: Dämpfung 1, ohne Überschwingen.
   Ohne linear() gilt --ease-aus (oben in :root). */
@supports (transition-timing-function: linear(0, 1)) {
    :root {
        --feder-auf: linear(0, 0.0222, 0.0785, 0.157, 0.2477, 0.3427, 0.4377, 0.5282, 0.6115, 0.6869, 0.7532, 0.8101, 0.8584, 0.8983, 0.9309, 0.9567, 0.9767, 0.9919, 1.0029, 1.0106, 1.0156, 1.0184, 1.0197, 1.0198, 1.019, 1.0176, 1.0159, 1.0141, 1.0122, 1.0103, 1.0086, 1.007, 1.0056, 1.0044, 1.0033, 1.0024, 1.0017, 1.0011, 1.0007, 1.0003, 1);
        --feder-zu: linear(0, 0.023, 0.0791, 0.1536, 0.2366, 0.3214, 0.4036, 0.4811, 0.5518, 0.6154, 0.6718, 0.7214, 0.7644, 0.8015, 0.8334, 0.8605, 0.8835, 0.903, 0.9194, 0.9331, 0.9447, 0.9543, 0.9623, 0.9689, 0.9744, 0.979, 0.9827, 0.9858, 0.9884, 0.9905, 0.9922, 0.9937, 0.9948, 0.9958, 0.9966, 0.9972, 0.9977, 0.9981, 0.9985, 0.9988, 1);
    }
}
/* feder:ende */
