/* Pandoc skylighting class names → warm, low-chroma palette.
   Goal: code reads as text, not as a Christmas tree.
   Themes via CSS variables so both light + dark mode work. */

:root {
  --syn-comment:    #8a8780;
  --syn-keyword:    #1a1816;
  --syn-string:     #7a3a16;
  --syn-number:     #6a4a8e;
  --syn-function:   #1a1816;
  --syn-type:       #2a4a6e;
  --syn-error:      #b8421e;
}

@media (prefers-color-scheme: dark) {
  :root {
    --syn-comment:    #7a766b;
    --syn-keyword:    #f5f0e2;
    --syn-string:     #d9a878;
    --syn-number:     #b89cd6;
    --syn-function:   #f5f0e2;
    --syn-type:       #8db3d6;
    --syn-error:      #e8a978;
  }
}

/* Skylighting class map */
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { line-height: 1.55; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }

code span.kw  { color: var(--syn-keyword); font-weight: 500; }     /* Keyword */
code span.dt  { color: var(--syn-type); }                           /* DataType */
code span.dv  { color: var(--syn-number); }                         /* DecVal */
code span.bn  { color: var(--syn-number); }                         /* BaseN */
code span.fl  { color: var(--syn-number); }                         /* Float */
code span.ch  { color: var(--syn-string); }                         /* Char */
code span.st  { color: var(--syn-string); }                         /* String */
code span.co  { color: var(--syn-comment); font-style: italic; }    /* Comment */
code span.ot  { color: var(--syn-keyword); }                        /* Other */
code span.al  { color: var(--syn-error); font-weight: 500; }        /* Alert */
code span.fu  { color: var(--syn-function); font-weight: 500; }     /* Function */
code span.er  { color: var(--syn-error); font-weight: 500; }        /* Error */
code span.wa  { color: var(--syn-error); font-style: italic; }      /* Warning */
code span.cn  { color: var(--syn-number); }                         /* Constant */
code span.sc  { color: var(--syn-string); }                         /* SpecialChar */
code span.vs  { color: var(--syn-string); }                         /* VerbatimString */
code span.ss  { color: var(--syn-string); }                         /* SpecialString */
code span.im  { color: var(--syn-keyword); }                        /* Import */
code span.va  { color: inherit; }                                   /* Variable */
code span.cf  { color: var(--syn-keyword); font-weight: 500; }      /* ControlFlow */
code span.op  { color: inherit; }                                   /* Operator */
code span.bu  { color: var(--syn-function); }                       /* BuiltIn */
code span.ex  { color: inherit; }                                   /* Extension */
code span.pp  { color: var(--syn-keyword); }                        /* Preprocessor */
code span.at  { color: var(--syn-type); }                           /* Attribute */
code span.do  { color: var(--syn-comment); font-style: italic; }    /* Documentation */
code span.an  { color: var(--syn-comment); font-style: italic; }    /* Annotation */
code span.cv  { color: var(--syn-comment); font-style: italic; }    /* CommentVar */
code span.in  { color: var(--syn-comment); font-style: italic; }    /* Information */
