/* Tokyo Night - Adaptive Syntax Highlighting */
/* Based on https://github.com/tokyo-night/tokyo-night-vscode-theme */

.highlight {
  --hl-bg: light-dark(var(--color-stone-200), var(--color-stone-900));
  --hl-fg: light-dark(var(--color-stone-900), var(--color-stone-100));
  --hl-hll: light-dark(#2959aa22, #3d59a166);
  --hl-comment: light-dark(#888b94, #51597d);
  --hl-error: light-dark(#942f2f, #ff5370);
  --hl-escape: light-dark(#363c4d, #89ddff);
  --hl-keyword: light-dark(#65359d, #bb9af7);
  --hl-literal: light-dark(#385f0d, #9ece6a);
  --hl-name: light-dark(#343b58, #c0caf5);
  --hl-operator: light-dark(#006C86, #89ddff);
  --hl-punctuation: light-dark(#484c61, #9abdf5);
  --hl-preprocessor: light-dark(#33635c, #73daca);
  --hl-deleted: light-dark(#8c4351, #f7768e);
  --hl-heading: light-dark(#363c4d, #89ddff);
  --hl-inserted: light-dark(#449dab, #449dab);
  --hl-output: light-dark(#40434f, #9aa5ce);
  --hl-prompt: light-dark(#363c4d, #787c99);
  --hl-traceback: light-dark(#bd4040, #db4b4b);
  --hl-constant: light-dark(#965027, #ff9e64);
  --hl-kd: light-dark(#65359d, #bb9af7);
  --hl-kn: light-dark(#0f4b6e, #7dcfff);
  --hl-builtin: light-dark(#006c86, #0db9d7);
  --hl-global: light-dark(#8f5e15, #e0af68);
  --hl-decorator: light-dark(#2959aa, #7aa2f7);
  --hl-property: light-dark(#33635c, #73daca);
  --hl-tag: light-dark(#8c4351, #f7768e);
  --hl-regex: light-dark(#3e6968, #b4f9f8);
  --hl-interpolation: light-dark(#0f4b6e, #7dcfff);

  background-color: var(--hl-bg);
  color: var(--hl-fg);
  padding: calc(var(--spacing) * 4);
  overflow-inline: auto;
}

.highlight code:has(.hll) > :not(.hll) {
  opacity: 0.3;
  filter: blur(1px);
}

.highlight .c { color: var(--hl-comment); font-style: italic; }
.highlight .err { color: var(--hl-error); }
.highlight .esc { color: var(--hl-escape); }
.highlight .g { color: var(--hl-fg); }
.highlight .k { color: var(--hl-keyword); }
.highlight .l { color: var(--hl-literal); }
.highlight .n { color: var(--hl-name); }
.highlight .o { color: var(--hl-operator); }
.highlight .x { color: var(--hl-fg); }
.highlight .p { color: var(--hl-punctuation); }
.highlight .ch { color: var(--hl-comment); font-style: italic; }
.highlight .cm { color: var(--hl-comment); font-style: italic; }
.highlight .cp { color: var(--hl-preprocessor); }
.highlight .cpf { color: var(--hl-comment); font-style: italic; }
.highlight .c1 { color: var(--hl-comment); font-style: italic; }
.highlight .cs { color: var(--hl-comment); font-style: italic; }
.highlight .gd { color: var(--hl-deleted); }
.highlight .ge { font-style: italic; }
.highlight .gr { color: var(--hl-error); }
.highlight .gh { color: var(--hl-heading); font-weight: bold; }
.highlight .gi { color: var(--hl-inserted); }
.highlight .go { color: var(--hl-output); }
.highlight .gp { color: var(--hl-prompt); }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: var(--hl-heading); font-weight: bold; }
.highlight .gt { color: var(--hl-traceback); }
.highlight .kc { color: var(--hl-constant); }
.highlight .kd { color: var(--hl-kd); }
.highlight .kn { color: var(--hl-kn); }
.highlight .kp { color: var(--hl-keyword); }
.highlight .kr { color: var(--hl-keyword); }
.highlight .kt { color: var(--hl-keyword); }
.highlight .ld { color: var(--hl-literal); }
.highlight .m { color: var(--hl-constant); }
.highlight .s { color: var(--hl-literal); }
.highlight .na { color: var(--hl-keyword); }
.highlight .nb { color: var(--hl-builtin); }
.highlight .nc { color: var(--hl-builtin); }
.highlight .no { color: var(--hl-global); }
.highlight .nd { color: var(--hl-decorator); }
.highlight .ni { color: var(--hl-builtin); }
.highlight .ne { color: var(--hl-name); }
.highlight .nf { color: var(--hl-decorator); }
.highlight .nl { color: var(--hl-property); }
.highlight .nn { color: var(--hl-builtin); }
.highlight .nx { color: var(--hl-name); }
.highlight .py { color: var(--hl-name); }
.highlight .nt { color: var(--hl-tag); }
.highlight .nv { color: var(--hl-name); }
.highlight .ow { color: var(--hl-keyword); }
.highlight .w { color: var(--hl-fg); }
.highlight .mb { color: var(--hl-constant); }
.highlight .mf { color: var(--hl-constant); }
.highlight .mh { color: var(--hl-constant); }
.highlight .mi { color: var(--hl-constant); }
.highlight .mo { color: var(--hl-constant); }
.highlight .sa { color: var(--hl-literal); }
.highlight .sb { color: var(--hl-literal); }
.highlight .sc { color: var(--hl-literal); }
.highlight .dl { color: var(--hl-literal); }
.highlight .sd { color: var(--hl-comment); font-style: italic; }
.highlight .s2 { color: var(--hl-literal); }
.highlight .se { color: var(--hl-escape); }
.highlight .sh { color: var(--hl-literal); }
.highlight .si { color: var(--hl-interpolation); }
.highlight .sx { color: var(--hl-literal); }
.highlight .sr { color: var(--hl-regex); }
.highlight .s1 { color: var(--hl-literal); }
.highlight .ss { color: var(--hl-literal); }
.highlight .bp { color: var(--hl-builtin); }
.highlight .fm { color: var(--hl-decorator); }
.highlight .vc { color: var(--hl-name); }
.highlight .vg { color: var(--hl-global); }
.highlight .vi { color: var(--hl-name); }
.highlight .vm { color: var(--hl-name); }
.highlight .il { color: var(--hl-constant); }
