/*
 * Warm analog.press syntax theme for Rouge.
 * Amber keywords, olive strings, soft sepia names on a warm-dark ground.
 */

@layer components {
.highlight {
  --hl-bg: oklch(19% 0.025 52);
  --hl-fg: oklch(87% 0.018 72);
  --hl-hll: oklch(30% 0.04 55 / 0.35);
  --hl-comment: oklch(50% 0.016 62);
  --hl-keyword: oklch(68% 0.12 38);
  --hl-literal: oklch(72% 0.10 128);
  --hl-name: oklch(76% 0.08 66);
  --hl-operator: oklch(68% 0.12 38);
  --hl-punctuation: oklch(56% 0.016 62);
  --hl-preprocessor: oklch(66% 0.08 200);
  --hl-deleted: oklch(65% 0.14 18);
  --hl-heading: oklch(72% 0.10 66);
  --hl-inserted: oklch(68% 0.12 145);
  --hl-output: oklch(70% 0.04 70);
  --hl-prompt: oklch(56% 0.03 55);
  --hl-constant: oklch(72% 0.12 72);
  --hl-builtin: oklch(66% 0.08 200);
  --hl-global: oklch(72% 0.12 72);
  --hl-decorator: oklch(72% 0.10 128);
  --hl-property: oklch(66% 0.08 200);
  --hl-tag: oklch(70% 0.09 56);
  --hl-regex: oklch(70% 0.08 128);
  --hl-interpolation: oklch(66% 0.08 200);
  --hl-traceback: oklch(65% 0.14 18);
  --hl-error: oklch(65% 0.14 18);
  --hl-escape: oklch(66% 0.08 200);

  background-color: var(--hl-bg);
  color: var(--hl-fg);

  code:has(.hll) > :not(.hll) {
    opacity: 0.35;
    filter: blur(0.5px);
  }
  .hll { background: var(--hl-hll); }

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

}
