/* ── The Jab Archives: site-wide theme tokens ──────────────────────────────
   GENERATED by gen_tokens.py - edit that, not this file.

   The greys below are a DEPTH RAMP, darkest to lightest: --tja-g1 sits
   furthest back, --tja-g19 comes furthest forward. Every theme redefines the
   same nineteen stops, so a light theme is the ramp inverted rather than a
   second palette maintained by hand.

   :root holds the EXACT values the site used before tokens existed, so the
   default appearance is unchanged by definition.

   Two colours are deliberately absent, because one token cannot carry two
   meanings:
     #fff     is both "brightest text on dark" and "label on a red button".
     #d5171b  is the brand red, which stays constant as a fill in every theme.
   Both are handled explicitly rather than swept into the ramp.        ── */

:root {

    --tja-g1 : #111;
    --tja-g2 : #1a1a1a;
    --tja-g3 : #1e1e1e;
    --tja-g4 : #222;
    --tja-g5 : #252525;
    --tja-g6 : #2a2a2a;
    --tja-g7 : #333;
    --tja-g8 : #3a3a3a;
    --tja-g9 : #444;
    --tja-g10: #555;
    --tja-g11: #666;
    --tja-g12: #777;
    --tja-g13: #888;
    --tja-g14: #999;
    --tja-g15: #aaa;
    --tja-g16: #bbb;
    --tja-g17: #ccc;
    --tja-g18: #ddd;
    --tja-g19: #eee;

    /* Off-ramp grey aliases - exact current values, themed by brightness. */
    --tja-ae8e8e8: #e8e8e8;
    --tja-a0d0d0d: #0d0d0d;
    --tja-a141414: #141414;
    --tja-a161616: #161616;
    --tja-ae0e0e0: #e0e0e0;
    --tja-a2e2e2e: #2e2e2e;
    --tja-a181818: #181818;
    --tja-a1f1f1f: #1f1f1f;
    --tja-a262626: #262626;
    --tja-a171717: #171717;
    --tja-a202020: #202020;
    --tja-a4a4a4a: #4a4a4a;
    --tja-abdbdbd: #bdbdbd;
    --tja-a090909: #090909;
    --tja-af0f0f0: #f0f0f0;
    --tja-a0f0f0f: #0f0f0f;
    --tja-ac8c8c8: #c8c8c8;
    --tja-a151515: #151515;
    --tja-afafafa: #fafafa;
    --tja-a2f2f2f: #2f2f2f;
    --tja-a232323: #232323;
    --tja-ac0c0c0: #c0c0c0;
    --tja-a131313: #131313;
    --tja-a0e0e0e: #0e0e0e;
    --tja-a8a8a8a: #8a8a8a;
    --tja-a0a0a0a: #0a0a0a;
    --tja-a050505: #050505;

    /* Page backdrop, behind every surface. */
    --tja-page: #191313;

    /* The brightest foreground, one stop above the ramp. This is #fff used as
       TEXT ON A DARK SURFACE, and it must darken in a light theme. It is NOT
       the #fff that sits on a red button - that one stays literal, because a
       single token cannot serve both. */
    --tja-fg: #fff;

    /* Dark greys used as TEXT. #333/#3a3a3a/#444 sit in the structure band of
       the ramp (g7-g9), which stays LIGHT in a light theme - correct for a
       border, unreadable for a label. These keep the exact default value and
       resolve to real ink in light themes. Applied only to `color:`
       declarations, which the tokeniser can tell apart from borders. */
    --tja-tx-333:    #333;
    --tja-tx-3a3a3a: #3a3a3a;
    --tja-tx-444:    #444;

    /* Structure-band stops that are used as TEXT somewhere. Default to the
       stop itself, so nothing moves; light themes resolve them to ink. The
       ramp pass converted these blindly before the property-aware pass ran,
       which is how a label ended up wearing a border colour. */
    --tja-tx-g5: var(--tja-g5);
    --tja-tx-g6: var(--tja-g6);
    --tja-tx-g7: var(--tja-g7);
    --tja-tx-g8: var(--tja-g8);
    --tja-tx-g9: var(--tja-g9);

    /* Brand. --tja-accent is a FILL (white sits on it); --tja-accent-tx is the
       same red used as small TEXT, which is the case that fails for readers
       with red-weak colour vision, so themes retarget it by brightness. */
    /* Links inside prose, and two accent variants used for small text. */
    --tja-link:        #6ab0f3;
    --tja-ok:          #7ec87e;   /* status green, as text */
    --tja-ok-bright:   #a0e0a0;
    --tja-accent-soft: #ff6b6b;
    --tja-code:        #ffb347;

    --tja-accent:     #d5171b;
    --tja-accent-tx:  #d5171b;
    --tja-accent-hov: #b01015;
    --tja-on-accent:  #fff;

    /* Semantic aliases. New code should prefer these; they are what the ramp
       positions actually MEAN, so intent survives a theme change. */
    --tja-surface:    var(--tja-g2);
    --tja-surface-2:  var(--tja-g1);
    --tja-border:     var(--tja-g6);
    --tja-border-2:   var(--tja-g7);
    --tja-text:       var(--tja-g18);
    --tja-text-bright:var(--tja-g19);
    --tja-text-muted: var(--tja-g14);
    --tja-text-dim:   var(--tja-g12);
}
