/* ── chroma theme · aahan.dev · deutan-safe hi-contrast ─────
   same museum palette, but distinctions ride the blue↔yellow axis
   and LUMINANCE (which deutan vision keeps), never red↔green.
   two families only: cool = structure (keyword/type/tag),
   warm = values (string/number), separated by brightness. */

/* TODO: make this syntax highlighting better */

/* line numbers */
.chroma .lnt, .chroma .ln {
    color: #5A5048;                 /* dim, out of the way */
    margin-right: 1rem;
    user-select: none;
}
.chroma .lntd { vertical-align: top; padding: 0; }
.chroma .lntable { border: 0; }

/* highlighted line */
.chroma .hl {
    display: block;
    background: rgba(168,195,217,0.14);
    box-shadow: inset 3px 0 0 var(--primary);
}

/* ── tokens ── */
/* comments — recede furthest, italic */
.chroma .c, .chroma .ch, .chroma .cm, .chroma .c1, .chroma .cs {
    color: #6E6357; font-style: italic;
}
.chroma .cs { font-weight: 600; }

/* keywords — ice-blue. control words (return, for, if, func, var) live here */
.chroma .k, .chroma .kd, .chroma .kn,
.chroma .kp, .chroma .kr { color: #A8C3D9; }
/* constants (nil, true, false) — warm orange, splits blue↔orange from keywords */
.chroma .kc { color: #E0A96D; }
/* type keywords (int, string, bool) — lavender, a third deutan-safe hue */
.chroma .kt { color: #C4B6E8; }

/* names */
.chroma .n  { color: #E9E1D2; }
.chroma .nf { color: #DCEAF5; }                      /* function — pale ice, distinct from plain names */
.chroma .nc, .chroma .nn { color: #C4B6E8; }         /* class / namespace — lavender, so `type Page` splits blue↔lavender */
.chroma .nt { color: #A8C3D9; }                      /* html tag */
.chroma .na { color: #E8C877; }                      /* attribute — gold */
.chroma .nb, .chroma .nd { color: #C4B6E8; }         /* builtin / decorator — lavender */
.chroma .nv, .chroma .nl { color: #E9E1D2; }

/* strings — bright warm gold: max blue↔yellow contrast vs the blues */
.chroma .s, .chroma .sa, .chroma .sb, .chroma .sc, .chroma .sd,
.chroma .sh, .chroma .si, .chroma .sr, .chroma .ss { color: #E8C877; }
.chroma .se { color: #FFE9A6; }                      /* escapes — brightest gold */

/* numbers — warm orange, matches constants (both are literal values) */
.chroma .m, .chroma .mi, .chroma .mf { color: #E0A96D; }

/* operators / punctuation — muted, they shouldn't shout */
.chroma .o { color: #B7A992; }
.chroma .p { color: #8C8072; }

/* diffs — deutan-safe: blue↔amber, never green↔red; glyph + bg + bar carry it */
.chroma .gi { color: #BBD4E8; background: rgba(168,195,217,0.16); box-shadow: inset 3px 0 0 #A8C3D9; display: block; }
.chroma .gd { color: #E8C877; background: rgba(232,200,119,0.14); box-shadow: inset 3px 0 0 #C9A85E; display: block; }
.chroma .gh, .chroma .gu { color: var(--primary); }
.chroma .gp { color: #6E6357; }
.chroma .err { color: #FF9B9B; text-decoration: underline wavy; }

/* ── scrollbar ── the .chroma overflow-x bar, kept sleek & on-theme */
.chroma::-webkit-scrollbar { height: 8px; width: 8px; }
.chroma::-webkit-scrollbar-track { background: transparent; }
.chroma::-webkit-scrollbar-thumb {
    background: #3E362D;
    border-radius: 8px;
}
.chroma:hover::-webkit-scrollbar-thumb { background: #4A4136; }
.chroma { scrollbar-width: thin; scrollbar-color: #3E362D transparent; }