/* Syntax highlighting theme for HyperTemplates' Chroma-rendered code blocks
   (any fenced code block with a language in its info string, e.g. ```js).
   Palette matches main.css: near-black text, the site's one blue accent,
   muted warm tones standing in for a second/third accent instead of
   introducing new bright colors. Base font/size/background/border for
   <pre>/<code> already come from main.css's generic pre/code rules — this
   file only adds token colors and the line-number/gutter behavior. */

/* A language string implicitly turns line numbers on and changes the
   markup to <pre class="chroma"><code><span class="line"><span
   class="ln">1</span><span class="cl">...code...</span></span>...
   Line numbers are turned back off here, in CSS — there's no documented
   HyperTemplates config for it. */
.chroma .ln {
  display: none;
}

.chroma {
  background-color: #f8f8f8;
}

.chroma code {
  color: #171717;
}

/* Remove the focus outline Chroma's tabindex="0" on <pre> invites, since
   the block isn't meant to be a tab stop with a visible affordance here. */
.chroma:focus {
  outline: none;
}

/* Comments */
.chroma .c,
.chroma .ch,
.chroma .cm,
.chroma .c1,
.chroma .cs {
  color: #8e8e8e;
  font-style: italic;
}

.chroma .cp,
.chroma .cpf {
  color: #8e8e8e;
}

/* Keywords */
.chroma .k,
.chroma .kc,
.chroma .kd,
.chroma .kn,
.chroma .kp,
.chroma .kr,
.chroma .kt,
.chroma .ow {
  color: #2277bf;
}

/* Strings */
.chroma .s,
.chroma .sa,
.chroma .sb,
.chroma .sc,
.chroma .dl,
.chroma .sd,
.chroma .s2,
.chroma .se,
.chroma .sh,
.chroma .si,
.chroma .sx,
.chroma .sr,
.chroma .s1,
.chroma .ss {
  color: #7a6d2c;
}

/* Numbers */
.chroma .m,
.chroma .mb,
.chroma .mf,
.chroma .mh,
.chroma .mi,
.chroma .mo,
.chroma .il {
  color: #b1601e;
}

/* Names */
.chroma .nf,
.chroma .fm {
  color: #5b3a8e;
}

.chroma .nc,
.chroma .nn {
  color: #5b3a8e;
  font-weight: 700;
}

.chroma .nb,
.chroma .bp {
  color: #2277bf;
}

.chroma .no,
.chroma .nd {
  color: #b1601e;
}

.chroma .ne {
  color: #a02f2f;
  font-weight: 700;
}

.chroma .nt {
  color: #2277bf;
}

.chroma .na {
  color: #7a6d2c;
}

.chroma .nv,
.chroma .vc,
.chroma .vg,
.chroma .vi,
.chroma .vm,
.chroma .nl {
  color: #171717;
}

.chroma .nx,
.chroma .py {
  color: #171717;
}

/* Operators & punctuation */
.chroma .o {
  color: #5c5c5c;
}

.chroma .p {
  color: #5c5c5c;
}

/* Errors */
.chroma .err {
  color: #a02f2f;
  background: #fbeaea;
}

/* Generic (diffs, tracebacks, etc.) */
.chroma .gd {
  color: #a02f2f;
}

.chroma .gi {
  color: #4b6d1e;
}

.chroma .gh,
.chroma .gu {
  color: #171717;
  font-weight: 700;
}

.chroma .ge {
  font-style: italic;
}

.chroma .gs {
  font-weight: 700;
}

.chroma .gr,
.chroma .gt {
  color: #a02f2f;
}

.chroma .gp {
  color: #8e8e8e;
}

/* Whitespace */
.chroma .w {
  color: #d2d2d2;
}

/* A highlighted line (Chroma's hl= option) — unused today, but styled to
   match the inline-code highlight color already used elsewhere in
   main.css (p code, li code's #ff6 background), just muted for a full
   line. */
.chroma .hl {
  background-color: #fffbdb;
}
