/* Project Legend V0.42.0 — single design-token authority.
   One gold family, one cyan, one green, one red. Everything else derives from these. */
:root{
  /* Surfaces
     ACHTUNG: --pl42-bg-2 / --pl42-panel / --pl42-panel-2 / --pl42-panel-3
     sowie die drei Linientoken werden seit V0.51.7 in ui-v0420/system.css
     (Abschnitt 3) neu gesetzt - dort steht die Herleitung mit den gemessenen
     Kontrastwerten. Die Werte hier sind der Ausgangsstand, gegen den gemessen
     wurde.
     --pl42-void und --pl42-bg gelten dagegen WIEDER von hier: der erste Wurf
     hat sie mit abgedunkelt, der Korrekturlauf hat das zurueckgenommen - die
     Grundflaeche war nie das Problem, und eine zweite Verschiebung der
     Identitaet war nicht verlangt. */
  --pl42-void:#04060b;
  --pl42-bg:#070b14;
  --pl42-bg-2:#0a1120;
  --pl42-panel:#0d1524;
  --pl42-panel-2:#111b2d;
  --pl42-panel-3:#16233a;
  --pl42-raise:rgba(255,255,255,.035);

  /* Lines */
  --pl42-line:rgba(148,178,220,.14);
  --pl42-line-soft:rgba(148,178,220,.08);
  --pl42-line-strong:rgba(148,178,220,.24);

  /* Brand — exactly one gold family */
  --pl42-gold:#e9b949;
  --pl42-gold-bright:#f6cf6d;
  --pl42-gold-deep:#c8942c;
  --pl42-gold-wash:rgba(233,185,73,.12);
  --pl42-gold-wash-2:rgba(233,185,73,.22);

  /* Information / semantic */
  --pl42-cyan:#67b7ff;
  --pl42-cyan-wash:rgba(103,183,255,.12);
  --pl42-green:#4ade80;
  --pl42-green-wash:rgba(74,222,128,.12);
  --pl42-red:#f4707a;
  --pl42-red-wash:rgba(244,112,122,.12);
  --pl42-violet:#b490f5;

  /* Text */
  --pl42-ink:#f2f6fc;
  --pl42-ink-2:#c8d6ea;
  --pl42-ink-3:#8fa3bf;
  /* V0.51.7 (S1-5): --pl42-ink-4 traegt saemtliche Mikro-Labels bei 10-11,5px
     (.pl42-stat small, .pl42-kicker, .pl42-matchup-team small, .pl42-footer,
     .pl42-bottomnav button). Das ist KEIN "large text", es gilt also 4,5:1
     aus WCAG 1.4.3. Gemessen wurde #67788f auf #0d1524 = 4,053:1 - ein
     Verstoss. Der neue Wert misst gegen die in ui-v0420/system.css
     angehobenen Flaechen 5,051:1 (panel), 4,568:1 (panel-2) und 5,340:1
     (bg-2). Der engste Wert ist panel-2 mit 4,568:1 - er traegt die 4,5:1
     mit Puffer, aber ohne Ueberschuss; wer die Panelfamilie weiter anhebt,
     muss ihn neu messen.
     --pl42-ink-3 bleibt bewusst unangetastet, damit der Abstand zwischen den
     Textstufen nicht kollabiert: er betraegt weiterhin 1,276 in der Luminanz.
     Aufgehellt statt weiss gemacht (Halation auf dunklem Grund). */
  --pl42-ink-4:#7e92ae;

  /* Type scale.
     The settings dialog offers a UI size of 90 / 100 / 110 / 115 %, written to
     `--pl-ui-scale` by the Phase-1 preferences. The V0.42.0 sheet used to ignore
     that variable entirely, so the option had no effect on the actual interface.
     Every step of the scale is multiplied by it, with a 1 fallback so the sheet
     still stands on its own. */
  --pl42-ui-scale:var(--pl-ui-scale,1);
  /* Die Schriftkette endete bei Arial - fuer Japanisch und Chinesisch war
     damit keine Schrift benannt, die die Zeichen ueberhaupt fuehrt; die
     Anpassung aus v0503-schrift.css erreicht diese Huelle nicht, weil sie
     ueber diese Marke laeuft. Die CJK-Schriften stehen darum HIER am Ende
     der Kette: fuer lateinische Schrift aendert sich nichts (Inter greift
     zuerst), CJK findet jetzt eine tragende Schrift statt Ersatzkaestchen. */
  /* V0.52.3: die CJK-Haelfte kommt aus v0503-schrift.css und schaltet dort
     per :root:lang() zwischen chinesischen und japanischen Formen um.
     VORHER stand hier eine eigene, sprachBLINDE Kette mit den japanischen
     Schriften zuerst - und weil #pl420Root (shell.css:9) ein direkter
     Treffer ist, schlug sie die Vererbung von body. Ergebnis: ein
     chinesischer Spieler sah die ganze Flaeche in japanischen Han-Formen,
     die Knoepfe daneben korrekt chinesisch. */
  --pl42-font:'Inter','Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,var(--pl-schrift-cjk),sans-serif;
  --pl42-display:calc(clamp(28px,3.1vw,50px) * var(--pl42-ui-scale));
  --pl42-h1:calc(clamp(22px,2.1vw,34px) * var(--pl42-ui-scale));
  --pl42-h2:calc(clamp(18px,1.4vw,23px) * var(--pl42-ui-scale));
  --pl42-h3:calc(clamp(15px,1.05vw,17px) * var(--pl42-ui-scale));
  --pl42-body:calc(clamp(13px,.86vw,15px) * var(--pl42-ui-scale));
  --pl42-small:calc(clamp(12px,.76vw,13px) * var(--pl42-ui-scale));
  --pl42-label:calc(clamp(10px,.62vw,11.5px) * var(--pl42-ui-scale));

  /* Geometry — consistent radii, no mixed roundings */
  --pl42-r-xs:6px;
  --pl42-r-sm:10px;
  --pl42-r-md:14px;
  --pl42-r-lg:18px;
  --pl42-r-xl:24px;
  --pl42-r-pill:999px;

  /* Spacing */
  --pl42-s1:4px; --pl42-s2:8px; --pl42-s3:12px; --pl42-s4:16px;
  --pl42-s5:20px; --pl42-s6:26px; --pl42-s7:34px; --pl42-s8:44px;

  /* Elevation — controlled, never blurry halos */
  --pl42-shadow-1:0 1px 0 rgba(255,255,255,.04) inset,0 8px 24px rgba(0,0,0,.36);
  --pl42-shadow-2:0 1px 0 rgba(255,255,255,.05) inset,0 20px 48px rgba(0,0,0,.5);
  --pl42-shadow-gold:0 0 0 1px rgba(233,185,73,.45),0 14px 34px rgba(233,185,73,.12);

  /* Layout */
  --pl42-rail:236px;
  --pl42-rail-slim:80px;
  --pl42-topbar:66px;
  --pl42-footer:38px;
  --pl42-shell-max:1780px;
  --pl42-touch:44px;

  --pl42-ease:cubic-bezier(.22,.61,.36,1);

  /* V0.52.4 (S3-2): das Bewegungsvokabular. DREI Dauern fuer drei
     Sachverhalte - vorher standen in ui-v0420 neun verschiedene Werte
     (.12s .15s .16s .18s .2s .22s .24s .4s .42s) fuer dieselben drei
     Dinge. Neun Dauern sind kein Vokabular, sondern neun Meinungen.

     zustand   Hover, Aktiv, Fokus - das Haeufigste. Der Plan verlangt
               ausdruecklich die Kuerzung von .16s auf 80 ms: eine
               Rueckmeldung auf den eigenen Zeiger darf nicht warten.
     flaeche   etwas erscheint (Dialog, Toast, Schublade). Hier ist
               Laenge sinnvoll: sie erklaert, WOHER etwas kommt.
     wert      eine Zahl aendert sich. Steht bereit, wird aber noch
               nirgends benutzt - siehe p-s32-bewegung.pl: solange
               v0420-shell.js:673 die gesamte Oberflaeche neu baut, ist
               jedes Element nach dem Aufbau neu, und kein Uebergang
               kann eine Aenderung erkennen. */
  --pl42-mo-zustand:80ms;
  --pl42-mo-flaeche:200ms;
  --pl42-mo-wert:120ms;

  /* V0.52.4 (S3-1): die Display-Schrift. Kondensiert, fuer Zahlen und
     Namen, die als Anzeige wirken sollen - Spielstand, Ergebnis, Versus.
     Sie stand bisher an 22 Stellen in fuenf Blaettern von Hand, immer
     dieselbe Kette, und KEINE davon trug ein CJK-Glied: fuer Japanisch
     und Chinesisch fiel der Livespielstand auf generisches sans-serif.
     Die CJK-Haelfte kommt aus v0503-schrift.css und schaltet dort per
     :root:lang() um - dieselbe Quelle wie --pl42-font seit V0.52.3.
     Der Name ist bewusst nicht --pl42-display-font: --pl42-display ist
     zwei Zeilen weiter unten eine SCHRIFTGROESSE. */
  /* V0.52.5 (S3-4): der Vereinsakzent. Vorgabe ist Gold - solange kein
     Verein bekannt ist, bleibt alles wie bisher. v0538-vereinsakzent.js
     setzt den Wert zur Laufzeit auf die kontrastsichere Fassung der
     Vereinsfarbe. KEIN var(--x, LITERAL): die stil-wache verbietet das,
     und ein Token, das auf ein anderes Token zeigt, ist ohnehin sauberer. */
  --pl42-vereinsakzent:var(--pl42-gold);
  --pl42-display-schrift:'Arial Narrow','Roboto Condensed','Bahnschrift Condensed',var(--pl-schrift-cjk),sans-serif;
}

/* The product is a single committed dark theme (matches the Canva references).
   Colours are always painted explicitly so no host theme can bleed through. */
