/* Syntax highlighting — 1901 letterpress palette.
   Single-ink body in --ink, with restrained accents:
     sepia for keywords / numbers / preprocessor
     aniline purple for strings / decorators
     vermillion for errors and diff-deleted
   Comments italic and faded, like marginal annotations.
   No dark mode — period-correct single-ink lithography. */

/* Structural — let the cream-paper <pre> surround show through */
.chroma, pre.chroma, div.chroma { background: transparent; color: var(--ink); }
.bg { background: transparent; }
.chroma .err { color: var(--vermillion); background: transparent; }

/* Line numbers / line table */
.chroma .lnlinks { outline: none; text-decoration: none; color: inherit; }
.chroma .lntd    { vertical-align: top; padding: 0; margin: 0; border: 0; }
.chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
.chroma .hl      { background-color: rgba(26, 34, 51, 0.06); }
.chroma .lnt,
.chroma .ln      { white-space: pre; -webkit-user-select: none; user-select: none;
                   margin-right: 0.4em; padding: 0 0.4em; color: var(--ink-ghost); }
.chroma .line    { display: flex; }

/* Keywords — sepia, semibold italic, like an editor's marginal hand */
.chroma .k,
.chroma .kc,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .kt      { color: var(--sepia); font-style: italic; }

/* Names — default ink. Functions and classes get weight, not hue. */
.chroma .na,
.chroma .ni,
.chroma .nl,
.chroma .nn,
.chroma .nx,
.chroma .py,
.chroma .nv,
.chroma .vc,
.chroma .vg,
.chroma .vi      { color: var(--ink); }
.chroma .nf,
.chroma .nc,
.chroma .ne,
.chroma .no      { color: var(--ink); font-weight: 600; }
.chroma .nd      { color: var(--aniline-purple); }
.chroma .nt      { color: var(--sepia); font-weight: 600; }

/* Strings — aniline purple, the period's vivid synthetic ink */
.chroma .s,
.chroma .sa,
.chroma .sb,
.chroma .sc,
.chroma .dl,
.chroma .sd,
.chroma .s2,
.chroma .se,
.chroma .sh,
.chroma .si,
.chroma .sx,
.chroma .sr,
.chroma .s1,
.chroma .ss      { color: var(--aniline-purple); }

/* Numbers — sepia */
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .il,
.chroma .mo      { color: var(--sepia); }

/* Operators — body ink, no special treatment */
.chroma .o,
.chroma .ow      { color: var(--ink); }

/* Comments — faded ink, italic, like marginalia */
.chroma .c,
.chroma .ch,
.chroma .cm,
.chroma .c1      { color: var(--ink-faded); font-style: italic; }
.chroma .cs      { color: var(--ink-faded); font-style: italic; font-weight: 600; }
.chroma .cp,
.chroma .cpf     { color: var(--sepia-faded); }

/* Generic / diff */
.chroma .gd      { color: var(--vermillion); background-color: rgba(192, 57, 43, 0.08); }
.chroma .ge      { font-style: italic; }
.chroma .gr      { color: var(--vermillion); }
.chroma .gh      { color: var(--sepia); font-weight: 700; }
.chroma .gi      { color: var(--sepia); background-color: rgba(91, 58, 26, 0.08); }
.chroma .go      { color: var(--ink-faded); }
.chroma .gp      { color: var(--ink-faded); }
.chroma .gs      { font-weight: 700; }
.chroma .gu      { color: var(--sepia); }
.chroma .gt      { color: var(--vermillion); }
.chroma .gl      { text-decoration: underline; }
.chroma .w       { color: var(--ink-ghost); }
