/*
 * Syntax highlighting, run at build time so none of highlight.js reaches the
 * browser. Colours are --slide-syn-* tokens, tuned for WCAG AA against the
 * code panel in both schemes; anything without a role stays body text.
 */

.hljs {
  color: var(--slide-color-fg);
  background: transparent;
}

.hljs-comment,
.hljs-quote {
  color: var(--slide-syn-comment);
  font-style: italic;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-variable.language_,
.hljs-meta .hljs-keyword,
.hljs-doctag {
  color: var(--slide-syn-keyword);
}

.hljs-title,
.hljs-title.function_,
.hljs-section {
  color: var(--slide-syn-function);
}

.hljs-title.class_,
.hljs-title.class_.inherited__,
.hljs-type {
  color: var(--slide-syn-class);
}

.hljs-built_in,
.hljs-builtin-name {
  color: var(--slide-syn-builtin);
}

.hljs-string,
.hljs-regexp,
.hljs-char.escape_,
.hljs-addition,
.hljs-template-tag,
.hljs-template-variable {
  color: var(--slide-syn-string);
}

.hljs-number,
.hljs-literal {
  color: var(--slide-syn-number);
}

.hljs-attr,
.hljs-attribute,
.hljs-property,
.hljs-tag,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-symbol,
.hljs-bullet,
.hljs-link {
  color: var(--slide-syn-property);
}

/* Variables, parameters and substitutions stay body text, for calm. */
.hljs-variable,
.hljs-params,
.hljs-subst {
  color: var(--slide-color-fg);
}

.hljs-meta,
.hljs-operator,
.hljs-punctuation {
  color: var(--slide-syn-punct);
}

.hljs-deletion {
  color: var(--slide-syn-property);
}

.hljs-emphasis {
  font-style: italic;
}

.hljs-strong {
  font-weight: 700;
}
