pre[class*="language-"],
code[class*="language-"] {
  direction: ltr;
  -moz-tab-size: 4;
    -o-tab-size: 4;
       tab-size: 4;
  text-align: left;
  text-shadow: none;
  word-spacing: normal;
  white-space: pre;
  word-break: normal;
  color: var(--color-black-95);
  font-family: Monaco, Menlo, Consolas, "Andale Mono", "Ubuntu Mono",
    "Courier New", monospace;
  font-size: var(--font-size-s);
  -webkit-hyphens: none;
          hyphens: none;
}

pre[class*="language-"]::-moz-selection, code[class*="language-"]::-moz-selection, pre[class*="language-"] *::-moz-selection, code[class*="language-"] *::-moz-selection {
  background: #264f78;
  text-shadow: none;
}

pre[class*="language-"]::selection,
code[class*="language-"]::selection,
pre[class*="language-"] *::selection,
code[class*="language-"] *::selection {
  background: #264f78;
  text-shadow: none;
}

@media print {
  pre[class*="language-"],
  code[class*="language-"] {
    text-shadow: none;
  }
}

pre[class*="language-"] {
  border: 1px solid var(--color-black-30);
  border-radius: var(--radius-m);
  padding: var(--space-m);
  overflow: auto;
}

:not(pre) > code[class*="language-"] {
  border-radius: 0.3em;
  background: #1e1e1e;
  padding: 0.1em 0.3em;
  color: #db4c69;
}

:not(pre) > code {
  border-radius: var(--radius-s);
  background-color: var(--color-black-25);
  padding: 3px 6px;
  font-size: var(--font-size-base);
}

/*********************************************************
* Tokens
*/
.namespace {
  opacity: 0.7;
}

.token.prolog,
.token.doctype,
.token.cdata {
  color: var(--color-black-70);
}

.token.punctuation {
  color: var(--color-black-95);
}

.token.comment {
  color: #6a9955;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: hsl(142deg 71% 45%);
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: var(--color-purple-70);
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.regex,
.token.important,
.token.variable {
  color: hsl(45deg 93% 47%);
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: hsl(217deg 91% 60%);
}

.token.function,
.token.class-name {
  color: hsl(330deg 81% 60%);
}

/*********************************************************
* Line highlighting
*/
pre[class*="language-"] > code[class*="language-"] {
  position: relative;
  z-index: 1;
}

.line-highlight.line-highlight {
  z-index: 0;
  box-shadow: inset 5px 0 0 #f7d87c;
  background: #f7ebc6;
}

/**
* line highlighting and line numbers
*/
pre {
  overflow-x: auto;
}

/**
 * Inspired by gatsby remark prism - https://www.gatsbyjs.com/plugins/gatsby-remark-prismjs/
 * 1. Make the element just wide enough to fit its content.
 * 2. Always fill the visible space in .code-highlight.
 */
.code-highlight {
  float: left; /* 1 */
  min-width: 100%; /* 2 */
}

.code-line {
  display: block;
  margin: 0 calc(var(--space-m) * -1);
  border-left: 4px solid rgb(31 41 55 / 0%); /* Set code block color */
  padding: 0 var(--space-m);
}

.code-line.inserted {
  background-color: rgb(16 185 129 / 20%); /* Set inserted line (+) color */
}

.code-line.deleted {
  background-color: rgb(239 68 68 / 20%); /* Set deleted line (-) color */
}

.highlight-line {
  margin: 0 calc(var(--space-m) * -1);
  border-left: 4px solid rgb(59 130 246); /* Set highlight accent border color */
  background-color: var(--color-black-10); /* Set highlight bg color */
}

.line-number::before {
  display: inline-block;
  margin-right: var(--space-m);
  margin-left: calc(var(--space-xs) * -1);
  width: 16px;
  text-align: right;
  color: rgb(156 163 175); /* Line number color */
  content: attr(line);
}
