/* ============================================================================
   OLISEMEKA.DEV — SYNTAX HIGHLIGHTING
   ----------------------------------------------------------------------------
   Chroma token classes for fenced code blocks. Hugo emits these because
   `markup.highlight.noClasses = false` in config.toml; the bare colour values
   below are the paper palette's own inks, so highlighting stays part of the
   site rather than a pasted-in editor theme.
   ============================================================================ */

.prose .chroma {
  color: var(--ink);
  background: transparent;
}

/* Comments ------------------------------------------------------------------ */
.prose .chroma .c,
.prose .chroma .ch,
.prose .chroma .cm,
.prose .chroma .c1,
.prose .chroma .cs,
.prose .chroma .cp,
.prose .chroma .cpf {
  color: var(--ink-4);
  font-style: italic;
}

/* Keywords ------------------------------------------------------------------ */
.prose .chroma .k,
.prose .chroma .kc,
.prose .chroma .kd,
.prose .chroma .kn,
.prose .chroma .kp,
.prose .chroma .kr,
.prose .chroma .kt {
  color: var(--accent-deep);
  font-weight: 600;
}

/* Names --------------------------------------------------------------------- */
.prose .chroma .nf,
.prose .chroma .fm,
.prose .chroma .nb,
.prose .chroma .bp {
  color: #0369a1;
}
.prose .chroma .nc,
.prose .chroma .nd,
.prose .chroma .nl {
  color: #0369a1;
  font-weight: 600;
}
.prose .chroma .no,
.prose .chroma .ne {
  color: #6d28d9;
}
.prose .chroma .na,
.prose .chroma .nt {
  color: var(--accent);
}
.prose .chroma .nv,
.prose .chroma .vc,
.prose .chroma .vg,
.prose .chroma .vi,
.prose .chroma .vm {
  color: var(--accent-deep);
}

/* Strings ------------------------------------------------------------------- */
.prose .chroma .s,
.prose .chroma .sa,
.prose .chroma .sb,
.prose .chroma .sc,
.prose .chroma .dl,
.prose .chroma .sd,
.prose .chroma .s2,
.prose .chroma .sh,
.prose .chroma .si,
.prose .chroma .sx,
.prose .chroma .s1,
.prose .chroma .ss {
  color: #a16207;
}
.prose .chroma .se {
  color: #b45309;
}
.prose .chroma .sr {
  color: #15803d;
}

/* Numbers ------------------------------------------------------------------- */
.prose .chroma .m,
.prose .chroma .mb,
.prose .chroma .mf,
.prose .chroma .mh,
.prose .chroma .mi,
.prose .chroma .il,
.prose .chroma .mo {
  color: #6d28d9;
}

/* Operators and punctuation ------------------------------------------------- */
.prose .chroma .o,
.prose .chroma .ow {
  color: var(--ink-2);
}
.prose .chroma .p {
  color: var(--ink-3);
}

/* Lexer errors are usually false positives in shell snippets (PowerShell
   marks the colon in `https:` as an error), so keep them quiet. */
.prose .chroma .err {
  color: inherit;
  background: transparent;
}

/* Diff and generic output ---------------------------------------------------- */
.prose .chroma .gd {
  color: #b91c1c;
  background: #fef2f2;
}
.prose .chroma .gi {
  color: #15803d;
  background: #f0fdf4;
}
.prose .chroma .gh {
  color: var(--accent-deep);
  font-weight: 600;
}
.prose .chroma .gu {
  color: #0369a1;
  font-weight: 600;
}
.prose .chroma .gs {
  font-weight: 600;
}
.prose .chroma .ge {
  font-style: italic;
}
.prose .chroma .gr {
  color: #b91c1c;
}
.prose .chroma .gt {
  color: #b91c1c;
}

/* Highlighted lines --------------------------------------------------------- */
.prose .chroma .hl {
  background: #fdf0c8;
}

/* Line numbers, if a future block enables them --------------------------------- */
.prose .chroma .lnt,
.prose .chroma .ln {
  color: var(--ink-4);
  user-select: none;
}
