/* Realce de sintaxe do site público (spec realce-de-sintaxe). Só carrega na
   página que tem um bloco de código com linguagem. Os tokens leem as variáveis
   `--exo-hl-*`, que o tema do site (theme.css) pode redefinir; os valores
   padrão têm contraste de pelo menos 4,5:1 sobre o fundo do bloco (cinza 100 no
   claro, cinza 800 no escuro), e um teste confere. */
:root {
  --exo-hl-keyword: #a3195b;
  --exo-hl-string: #0b6e4f;
  --exo-hl-number: #0a5aa8;
  --exo-hl-comment: #5b6472;
  --exo-hl-function: #6639ba;
  --exo-hl-type: #8a4600;
  --exo-hl-attr: #0a5f7a;
  --exo-hl-meta: #8b3a62;
  --exo-hl-punct: #3d4452;
}

.theme-dark {
  --exo-hl-keyword: #ff8ab8;
  --exo-hl-string: #7ee2b0;
  --exo-hl-number: #79c0ff;
  --exo-hl-comment: #9aa4b2;
  --exo-hl-function: #d2a8ff;
  --exo-hl-type: #ffb86b;
  --exo-hl-attr: #7dd3e8;
  --exo-hl-meta: #f0a6c8;
  --exo-hl-punct: #c3cad6;
}

@media (prefers-color-scheme: dark) {
  .theme-auto {
    --exo-hl-keyword: #ff8ab8;
    --exo-hl-string: #7ee2b0;
    --exo-hl-number: #79c0ff;
    --exo-hl-comment: #9aa4b2;
    --exo-hl-function: #d2a8ff;
    --exo-hl-type: #ffb86b;
    --exo-hl-attr: #7dd3e8;
    --exo-hl-meta: #f0a6c8;
    --exo-hl-punct: #c3cad6;
  }
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-name,
.hljs-doctag {
  color: var(--exo-hl-keyword);
}

.hljs-string,
.hljs-regexp,
.hljs-symbol,
.hljs-bullet,
.hljs-template-string,
.hljs-addition {
  color: var(--exo-hl-string);
}

.hljs-number {
  color: var(--exo-hl-number);
}

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

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

.hljs-type,
.hljs-built_in,
.hljs-title.class_,
.hljs-class .hljs-title,
.hljs-title {
  color: var(--exo-hl-type);
}

.hljs-attr,
.hljs-attribute,
.hljs-variable,
.hljs-property,
.hljs-template-variable,
.hljs-selector-class,
.hljs-selector-id,
.hljs-selector-attr,
.hljs-selector-pseudo {
  color: var(--exo-hl-attr);
}

.hljs-meta,
.hljs-link,
.hljs-deletion {
  color: var(--exo-hl-meta);
}

.hljs-punctuation,
.hljs-operator {
  color: var(--exo-hl-punct);
}

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

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