/* Light mode syntax highlighting */
:root {
    --hl-color-scheme: light;
    --hl-hll-background-color: #ffffcc;
    --hl-background: #ffffff;
    --hl-color: unset;
    --hl-c-color: #177500;
    --hl-c-font-style: unset;
    --hl-err-color: #000;
    --hl-k-color: #A90D91;
    --hl-l-color: #1C01CE;
    --hl-n-color: #000;
    --hl-o-color: #000;
    --hl-o-font-weight: unset;
    --hl-ch-color: #177500;
    --hl-ch-font-style: unset;
    --hl-cm-color: #177500;
    --hl-cm-font-style: unset;
    --hl-cp-color: #633820;
    --hl-cp-font-weight: unset;
    --hl-cp-font-style: unset;
    --hl-cpf-color: #177500;
    --hl-cpf-font-style: unset;
    --hl-c1-color: #177500;
    --hl-c1-font-style: unset;
    --hl-cs-color: #177500;
    --hl-cs-font-weight: unset;
    --hl-cs-font-style: unset;
    --hl-kc-color: #A90D91;
    --hl-kd-color: #A90D91;
    --hl-kn-color: #A90D91;
    --hl-kp-color: #A90D91;
    --hl-kr-color: #A90D91;
    --hl-kt-color: #A90D91;
    --hl-ld-color: #1C01CE;
    --hl-m-color: #1C01CE;
    --hl-s-color: #C41A16;
    --hl-na-color: #836C28;
    --hl-nb-color: #A90D91;
    --hl-nc-color: #3F6E75;
    --hl-nc-font-weight: unset;
    --hl-no-color: #000;
    --hl-no-font-weight: unset;
    --hl-nd-color: #000;
    --hl-nd-font-weight: unset;
    --hl-ni-color: #000;
    --hl-ne-color: #000;
    --hl-ne-font-weight: unset;
    --hl-nf-color: #000;
    --hl-nf-font-weight: unset;
    --hl-nl-color: #000;
    --hl-nl-font-weight: unset;
    --hl-nn-color: #000;
    --hl-nx-color: #000;
    --hl-py-color: #000;
    --hl-nt-color: #000;
    --hl-nv-color: #000;
    --hl-ow-color: #000;
    --hl-ow-font-weight: unset;
    --hl-mb-color: #1C01CE;
    --hl-mf-color: #1C01CE;
    --hl-mh-color: #1C01CE;
    --hl-mi-color: #1C01CE;
    --hl-mo-color: #1C01CE;
    --hl-sa-color: #C41A16;
    --hl-sb-color: #C41A16;
    --hl-sc-color: #2300CE;
    --hl-dl-color: #C41A16;
    --hl-sd-color: #C41A16;
    --hl-s2-color: #C41A16;
    --hl-se-color: #C41A16;
    --hl-sh-color: #C41A16;
    --hl-si-color: #C41A16;
    --hl-sx-color: #C41A16;
    --hl-sr-color: #C41A16;
    --hl-s1-color: #C41A16;
    --hl-ss-color: #C41A16;
    --hl-bp-color: #5B269A;
    --hl-fm-color: #000;
    --hl-fm-font-weight: unset;
    --hl-vc-color: #000;
    --hl-vg-color: #000;
    --hl-vi-color: #000;
    --hl-vm-color: #000;
    --hl-il-color: #1C01CE;
    --hl-esc-color: unset;
    --hl-g-color: unset;
    --hl-x-color: unset;
    --hl-p-color: unset;
    --hl-gd-color: unset;
    --hl-gd-background-color: unset;
    --hl-ge-color: unset;
    --hl-ge-font-style: unset;
    --hl-ges-color: unset;
    --hl-ges-font-weight: unset;
    --hl-ges-font-style: unset;
    --hl-gr-color: unset;
    --hl-gh-color: unset;
    --hl-gh-font-weight: unset;
    --hl-gi-color: unset;
    --hl-gi-background-color: unset;
    --hl-go-color: unset;
    --hl-gp-color: unset;
    --hl-gs-color: unset;
    --hl-gs-font-weight: unset;
    --hl-gu-color: unset;
    --hl-gt-color: unset;
    --hl-pm-color: unset;
    --hl-w-color: unset;
}

/* Dark mode syntax highlighting (system preference) */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme]) {
        --hl-color-scheme: dark;
        --hl-hll-background-color: #6e7681;
        --hl-background: #0d1117;
        --hl-color: #E6EDF3;
        --hl-c-color: #8B949E;
        --hl-c-font-style: italic;
        --hl-err-color: #F85149;
        --hl-k-color: #FF7B72;
        --hl-l-color: #A5D6FF;
        --hl-n-color: #E6EDF3;
        --hl-o-color: #FF7B72;
        --hl-o-font-weight: bold;
        --hl-ch-color: #8B949E;
        --hl-ch-font-style: italic;
        --hl-cm-color: #8B949E;
        --hl-cm-font-style: italic;
        --hl-cp-color: #8B949E;
        --hl-cp-font-weight: bold;
        --hl-cp-font-style: italic;
        --hl-cpf-color: #8B949E;
        --hl-cpf-font-style: italic;
        --hl-c1-color: #8B949E;
        --hl-c1-font-style: italic;
        --hl-cs-color: #8B949E;
        --hl-cs-font-weight: bold;
        --hl-cs-font-style: italic;
        --hl-kc-color: #79C0FF;
        --hl-kd-color: #FF7B72;
        --hl-kn-color: #FF7B72;
        --hl-kp-color: #79C0FF;
        --hl-kr-color: #FF7B72;
        --hl-kt-color: #FF7B72;
        --hl-ld-color: #79C0FF;
        --hl-m-color: #A5D6FF;
        --hl-s-color: #A5D6FF;
        --hl-na-color: #E6EDF3;
        --hl-nb-color: #E6EDF3;
        --hl-nc-color: #F0883E;
        --hl-nc-font-weight: bold;
        --hl-no-color: #79C0FF;
        --hl-no-font-weight: bold;
        --hl-nd-color: #D2A8FF;
        --hl-nd-font-weight: bold;
        --hl-ni-color: #FFA657;
        --hl-ne-color: #F0883E;
        --hl-ne-font-weight: bold;
        --hl-nf-color: #D2A8FF;
        --hl-nf-font-weight: bold;
        --hl-nl-color: #79C0FF;
        --hl-nl-font-weight: bold;
        --hl-nn-color: #FF7B72;
        --hl-nx-color: #E6EDF3;
        --hl-py-color: #79C0FF;
        --hl-nt-color: #7EE787;
        --hl-nv-color: #79C0FF;
        --hl-ow-color: #FF7B72;
        --hl-ow-font-weight: bold;
        --hl-mb-color: #A5D6FF;
        --hl-mf-color: #A5D6FF;
        --hl-mh-color: #A5D6FF;
        --hl-mi-color: #A5D6FF;
        --hl-mo-color: #A5D6FF;
        --hl-sa-color: #79C0FF;
        --hl-sb-color: #A5D6FF;
        --hl-sc-color: #A5D6FF;
        --hl-dl-color: #79C0FF;
        --hl-sd-color: #A5D6FF;
        --hl-s2-color: #A5D6FF;
        --hl-se-color: #79C0FF;
        --hl-sh-color: #79C0FF;
        --hl-si-color: #A5D6FF;
        --hl-sx-color: #A5D6FF;
        --hl-sr-color: #79C0FF;
        --hl-s1-color: #A5D6FF;
        --hl-ss-color: #A5D6FF;
        --hl-bp-color: #E6EDF3;
        --hl-fm-color: #D2A8FF;
        --hl-fm-font-weight: bold;
        --hl-vc-color: #79C0FF;
        --hl-vg-color: #79C0FF;
        --hl-vi-color: #79C0FF;
        --hl-vm-color: #79C0FF;
        --hl-il-color: #A5D6FF;
        --hl-esc-color: #E6EDF3;
        --hl-g-color: #E6EDF3;
        --hl-x-color: #E6EDF3;
        --hl-p-color: #E6EDF3;
        --hl-gd-color: #FFA198;
        --hl-gd-background-color: #490202;
        --hl-ge-color: #E6EDF3;
        --hl-ge-font-style: italic;
        --hl-ges-color: #E6EDF3;
        --hl-ges-font-weight: bold;
        --hl-ges-font-style: italic;
        --hl-gr-color: #FFA198;
        --hl-gh-color: #79C0FF;
        --hl-gh-font-weight: bold;
        --hl-gi-color: #56D364;
        --hl-gi-background-color: #0F5323;
        --hl-go-color: #8B949E;
        --hl-gp-color: #8B949E;
        --hl-gs-color: #E6EDF3;
        --hl-gs-font-weight: bold;
        --hl-gu-color: #79C0FF;
        --hl-gt-color: #FF7B72;
        --hl-pm-color: #E6EDF3;
        --hl-w-color: #6E7681;
    }
}

/* Dark mode syntax highlighting (explicit theme toggle) */
:root[data-theme="dark"] {
    --hl-color-scheme: dark;
    --hl-hll-background-color: #6e7681;
    --hl-background: #0d1117;
    --hl-color: #E6EDF3;
    --hl-c-color: #8B949E;
    --hl-c-font-style: italic;
    --hl-err-color: #F85149;
    --hl-k-color: #FF7B72;
    --hl-l-color: #A5D6FF;
    --hl-n-color: #E6EDF3;
    --hl-o-color: #FF7B72;
    --hl-o-font-weight: bold;
    --hl-ch-color: #8B949E;
    --hl-ch-font-style: italic;
    --hl-cm-color: #8B949E;
    --hl-cm-font-style: italic;
    --hl-cp-color: #8B949E;
    --hl-cp-font-weight: bold;
    --hl-cp-font-style: italic;
    --hl-cpf-color: #8B949E;
    --hl-cpf-font-style: italic;
    --hl-c1-color: #8B949E;
    --hl-c1-font-style: italic;
    --hl-cs-color: #8B949E;
    --hl-cs-font-weight: bold;
    --hl-cs-font-style: italic;
    --hl-kc-color: #79C0FF;
    --hl-kd-color: #FF7B72;
    --hl-kn-color: #FF7B72;
    --hl-kp-color: #79C0FF;
    --hl-kr-color: #FF7B72;
    --hl-kt-color: #FF7B72;
    --hl-ld-color: #79C0FF;
    --hl-m-color: #A5D6FF;
    --hl-s-color: #A5D6FF;
    --hl-na-color: #E6EDF3;
    --hl-nb-color: #E6EDF3;
    --hl-nc-color: #F0883E;
    --hl-nc-font-weight: bold;
    --hl-no-color: #79C0FF;
    --hl-no-font-weight: bold;
    --hl-nd-color: #D2A8FF;
    --hl-nd-font-weight: bold;
    --hl-ni-color: #FFA657;
    --hl-ne-color: #F0883E;
    --hl-ne-font-weight: bold;
    --hl-nf-color: #D2A8FF;
    --hl-nf-font-weight: bold;
    --hl-nl-color: #79C0FF;
    --hl-nl-font-weight: bold;
    --hl-nn-color: #FF7B72;
    --hl-nx-color: #E6EDF3;
    --hl-py-color: #79C0FF;
    --hl-nt-color: #7EE787;
    --hl-nv-color: #79C0FF;
    --hl-ow-color: #FF7B72;
    --hl-ow-font-weight: bold;
    --hl-mb-color: #A5D6FF;
    --hl-mf-color: #A5D6FF;
    --hl-mh-color: #A5D6FF;
    --hl-mi-color: #A5D6FF;
    --hl-mo-color: #A5D6FF;
    --hl-sa-color: #79C0FF;
    --hl-sb-color: #A5D6FF;
    --hl-sc-color: #A5D6FF;
    --hl-dl-color: #79C0FF;
    --hl-sd-color: #A5D6FF;
    --hl-s2-color: #A5D6FF;
    --hl-se-color: #79C0FF;
    --hl-sh-color: #79C0FF;
    --hl-si-color: #A5D6FF;
    --hl-sx-color: #A5D6FF;
    --hl-sr-color: #79C0FF;
    --hl-s1-color: #A5D6FF;
    --hl-ss-color: #A5D6FF;
    --hl-bp-color: #E6EDF3;
    --hl-fm-color: #D2A8FF;
    --hl-fm-font-weight: bold;
    --hl-vc-color: #79C0FF;
    --hl-vg-color: #79C0FF;
    --hl-vi-color: #79C0FF;
    --hl-vm-color: #79C0FF;
    --hl-il-color: #A5D6FF;
    --hl-esc-color: #E6EDF3;
    --hl-g-color: #E6EDF3;
    --hl-x-color: #E6EDF3;
    --hl-p-color: #E6EDF3;
    --hl-gd-color: #FFA198;
    --hl-gd-background-color: #490202;
    --hl-ge-color: #E6EDF3;
    --hl-ge-font-style: italic;
    --hl-ges-color: #E6EDF3;
    --hl-ges-font-weight: bold;
    --hl-ges-font-style: italic;
    --hl-gr-color: #FFA198;
    --hl-gh-color: #79C0FF;
    --hl-gh-font-weight: bold;
    --hl-gi-color: #56D364;
    --hl-gi-background-color: #0F5323;
    --hl-go-color: #8B949E;
    --hl-gp-color: #8B949E;
    --hl-gs-color: #E6EDF3;
    --hl-gs-font-weight: bold;
    --hl-gu-color: #79C0FF;
    --hl-gt-color: #FF7B72;
    --hl-pm-color: #E6EDF3;
    --hl-w-color: #6E7681;
}

/* Syntax highlighting rules */
.highlight .hll { background-color: var(--hl-hll-background-color) }
.highlight { color-scheme: var(--hl-color-scheme); background: var(--hl-background); color: var(--hl-color) }
.highlight .c { color: var(--hl-c-color); font-style: var(--hl-c-font-style) }
.highlight .err { color: var(--hl-err-color) }
.highlight .k { color: var(--hl-k-color) }
.highlight .l { color: var(--hl-l-color) }
.highlight .n { color: var(--hl-n-color) }
.highlight .o { color: var(--hl-o-color); font-weight: var(--hl-o-font-weight) }
.highlight .ch { color: var(--hl-ch-color); font-style: var(--hl-ch-font-style) }
.highlight .cm { color: var(--hl-cm-color); font-style: var(--hl-cm-font-style) }
.highlight .cp { color: var(--hl-cp-color); font-weight: var(--hl-cp-font-weight); font-style: var(--hl-cp-font-style) }
.highlight .cpf { color: var(--hl-cpf-color); font-style: var(--hl-cpf-font-style) }
.highlight .c1 { color: var(--hl-c1-color); font-style: var(--hl-c1-font-style) }
.highlight .cs { color: var(--hl-cs-color); font-weight: var(--hl-cs-font-weight); font-style: var(--hl-cs-font-style) }
.highlight .kc { color: var(--hl-kc-color) }
.highlight .kd { color: var(--hl-kd-color) }
.highlight .kn { color: var(--hl-kn-color) }
.highlight .kp { color: var(--hl-kp-color) }
.highlight .kr { color: var(--hl-kr-color) }
.highlight .kt { color: var(--hl-kt-color) }
.highlight .ld { color: var(--hl-ld-color) }
.highlight .m { color: var(--hl-m-color) }
.highlight .s { color: var(--hl-s-color) }
.highlight .na { color: var(--hl-na-color) }
.highlight .nb { color: var(--hl-nb-color) }
.highlight .nc { color: var(--hl-nc-color); font-weight: var(--hl-nc-font-weight) }
.highlight .no { color: var(--hl-no-color); font-weight: var(--hl-no-font-weight) }
.highlight .nd { color: var(--hl-nd-color); font-weight: var(--hl-nd-font-weight) }
.highlight .ni { color: var(--hl-ni-color) }
.highlight .ne { color: var(--hl-ne-color); font-weight: var(--hl-ne-font-weight) }
.highlight .nf { color: var(--hl-nf-color); font-weight: var(--hl-nf-font-weight) }
.highlight .nl { color: var(--hl-nl-color); font-weight: var(--hl-nl-font-weight) }
.highlight .nn { color: var(--hl-nn-color) }
.highlight .nx { color: var(--hl-nx-color) }
.highlight .py { color: var(--hl-py-color) }
.highlight .nt { color: var(--hl-nt-color) }
.highlight .nv { color: var(--hl-nv-color) }
.highlight .ow { color: var(--hl-ow-color); font-weight: var(--hl-ow-font-weight) }
.highlight .mb { color: var(--hl-mb-color) }
.highlight .mf { color: var(--hl-mf-color) }
.highlight .mh { color: var(--hl-mh-color) }
.highlight .mi { color: var(--hl-mi-color) }
.highlight .mo { color: var(--hl-mo-color) }
.highlight .sa { color: var(--hl-sa-color) }
.highlight .sb { color: var(--hl-sb-color) }
.highlight .sc { color: var(--hl-sc-color) }
.highlight .dl { color: var(--hl-dl-color) }
.highlight .sd { color: var(--hl-sd-color) }
.highlight .s2 { color: var(--hl-s2-color) }
.highlight .se { color: var(--hl-se-color) }
.highlight .sh { color: var(--hl-sh-color) }
.highlight .si { color: var(--hl-si-color) }
.highlight .sx { color: var(--hl-sx-color) }
.highlight .sr { color: var(--hl-sr-color) }
.highlight .s1 { color: var(--hl-s1-color) }
.highlight .ss { color: var(--hl-ss-color) }
.highlight .bp { color: var(--hl-bp-color) }
.highlight .fm { color: var(--hl-fm-color); font-weight: var(--hl-fm-font-weight) }
.highlight .vc { color: var(--hl-vc-color) }
.highlight .vg { color: var(--hl-vg-color) }
.highlight .vi { color: var(--hl-vi-color) }
.highlight .vm { color: var(--hl-vm-color) }
.highlight .il { color: var(--hl-il-color) }
.highlight .esc { color: var(--hl-esc-color) }
.highlight .g { color: var(--hl-g-color) }
.highlight .x { color: var(--hl-x-color) }
.highlight .p { color: var(--hl-p-color) }
.highlight .gd { color: var(--hl-gd-color); background-color: var(--hl-gd-background-color) }
.highlight .ge { color: var(--hl-ge-color); font-style: var(--hl-ge-font-style) }
.highlight .ges { color: var(--hl-ges-color); font-weight: var(--hl-ges-font-weight); font-style: var(--hl-ges-font-style) }
.highlight .gr { color: var(--hl-gr-color) }
.highlight .gh { color: var(--hl-gh-color); font-weight: var(--hl-gh-font-weight) }
.highlight .gi { color: var(--hl-gi-color); background-color: var(--hl-gi-background-color) }
.highlight .go { color: var(--hl-go-color) }
.highlight .gp { color: var(--hl-gp-color) }
.highlight .gs { color: var(--hl-gs-color); font-weight: var(--hl-gs-font-weight) }
.highlight .gu { color: var(--hl-gu-color) }
.highlight .gt { color: var(--hl-gt-color) }
.highlight .pm { color: var(--hl-pm-color) }
.highlight .w { color: var(--hl-w-color) }
