:root {
  --syntax-kw: #1e5670;
  --syntax-fn: #225747;
  --syntax-at: #6b3d75;
  --syntax-st: #7c421e;
  --syntax-num: #85354c;
  --syntax-op: #3b5259;
  --syntax-var: #254e70;
  --syntax-co: #4d6163;
  --syntax-err: #9e2a2b;
}

:root.dark,
:root:has(body.dark),
.slide-deck {
  --syntax-kw: #9ad0e5;
  --syntax-fn: #8fd4b8;
  --syntax-at: #d9addf;
  --syntax-st: #f0be8a;
  --syntax-num: #f2a7b8;
  --syntax-op: #b8c7c2;
  --syntax-var: #a2c9dc;
  --syntax-co: #9eb0aa;
  --syntax-err: #f4978e;
}

div.sourceCode {
  margin-block: 1.25rem;
}

.dh-course div.sourceCode {
  max-inline-size: var(--course-measure);
}

pre > code.sourceCode {
  white-space: pre;
  position: relative;
  overflow-wrap: normal;
  word-break: normal;
}

pre > code.sourceCode > span {
  display: inline-block;
  line-height: 1.5;
}

.dh-course pre > code:is(.sh, .bash, .shell) {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.dh-course pre > code:is(.sh, .bash, .shell) > span {
  display: inline;
}

pre > code.sourceCode > span:empty {
  height: 1.2em;
}

code.sourceCode > span {
  color: inherit;
  text-decoration: inherit;
}

pre > code.sourceCode > span > a:first-child:empty {
  display: none;
}

pre.numberSource code {
  counter-reset: source-line 0;
}

pre.numberSource code > span {
  position: relative;
  left: -4em;
  counter-increment: source-line;
}

pre.numberSource code > span > a:first-child {
  display: inline;
  text-decoration: none;
  border: 0;
}

pre.numberSource code > span > a:first-child::before {
  content: counter(source-line);
  position: relative;
  left: -1em;
  text-align: right;
  vertical-align: baseline;
  border: none;
  display: inline-block;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  padding: 0 4px;
  width: 4em;
  color: var(--syntax-co);
}

pre.numberSource {
  margin-left: 3em;
  padding-left: 4px;
}

code span.kw,
code span.cf,
code span.im {
  color: var(--syntax-kw);
  font-weight: 600;
} /* Keyword, ControlFlow, Import */

code span.fu,
code span.bu,
code span.ex {
  color: var(--syntax-fn);
  font-weight: 600;
} /* Function, BuiltIn, Extension/Command */

code span.at,
code span.ot {
  color: var(--syntax-at);
} /* Attribute / CLI flag, Other */

code span.st,
code span.ch,
code span.vs,
code span.ss,
code span.sc {
  color: var(--syntax-st);
} /* String, Char, VerbatimString, SpecialString, SpecialChar */

code span.dv,
code span.bn,
code span.fl,
code span.cn {
  color: var(--syntax-num);
} /* DecVal, BaseN, Float, Constant */

code span.op {
  color: var(--syntax-op);
} /* Operator */

code span.va,
code span.dt,
code span.pp {
  color: var(--syntax-var);
} /* Variable, DataType, Preprocessor */

code span.dt {
  text-decoration: none;
}

code span.co,
code span.an,
code span.cv,
code span.do,
code span.in {
  color: var(--syntax-co);
  font-style: italic;
} /* Comment, Annotation, CommentVar, Documentation, Information */

code span.al,
code span.er,
code span.wa {
  color: var(--syntax-err);
  font-weight: 700;
} /* Alert, Error, Warning */

li.side > ul.side {
  transform: translateX(-100%) scale(0);
}

li.side:hover > ul.side {
  transform: translateX(-100%) scale(1);
}
