:root {
  --prism-scheme: light;

  /* Colors */
  --prism-foreground: #6e6e6e;
  --prism-background: #f4f4f4;

  /* Tokens */
  --prism-comment: #a8a8a8;
  --prism-string: #555555;
  --prism-literal: #333333;
  --prism-keyword: #000000;
  --prism-function: #4f4f4f;
  --prism-deleted: #333333;
  --prism-class: #333333;
  --prism-builtin: #757575;
  --prism-property: #333333;
  --prism-namespace: #4f4f4f;
  --prism-punctuation: #ababab;
  --prism-decorator: var(--prism-class);
  --prism-operator: var(--prism-punctuation);
  --prism-number: var(--prism-literal);
  --prism-boolean: var(--prism-literal);
  --prism-variable: var(--prism-literal);
  --prism-constant: var(--prism-literal);
  --prism-symbol: var(--prism-literal);
  --prism-interpolation: var(--prism-literal);
  --prism-selector: var(--prism-keyword);
  --prism-keyword-control: var(--prism-keyword);
  --prism-regex: var(--prism-string);
  --prism-json-property: var(--prism-property);
  --prism-inline-background: var(--prism-background);

  /* Token Styles */
  --prism-comment-style: italic;
  --prism-url-decoration: underline;

  /* Extension */
  --prism-line-number: #a5a5a5;
  --prism-line-number-gutter: #333333;
  --prism-line-highlight-background: #eeeeee;
  --prism-selection-background: #aaaaaa;
  --prism-marker-color: var(--prism-foreground);
  --prism-marker-opacity: 0.4;
  --prism-marker-font-size: 0.8em;

  /* Font */
  --prism-font-size: 1em;
  --prism-line-height: 1.5em;
  --prism-font-family: monospace;
  --prism-inline-font-size: var(--prism-font-size);
  --prism-block-font-size: var(--prism-font-size);

  /* Sizing */
  --prism-tab-size: 2;

  --prism-block-padding-x: 1em;
  --prism-block-padding-y: 1em;
  --prism-block-margin-x: 0;
  --prism-block-margin-y: 0.5em;
  --prism-block-radius: 0.3em;
  --prism-inline-padding-x: 0.3em;
  --prism-inline-padding-y: 0.1em;
  --prism-inline-radius: 0.3em;
}

:root {
  --prism-foreground: #393a34;
  --prism-background: #fbfbfb;
  --prism-comment: #a0ada0;
  --prism-string: #b56959;
  --prism-literal: #2f8a89;
  --prism-number: #296aa3;
  --prism-keyword: #1c6b48;
  --prism-function: #6c7834;
  --prism-boolean: #1c6b48;
  --prism-constant: #a65e2b;
  --prism-deleted: #a14f55;
  --prism-class: #2993a3;
  --prism-builtin: #ab5959;
  --prism-property: #b58451;
  --prism-namespace: #b05a78;
  --prism-punctuation: #8e8f8b;
  --prism-decorator: #bd8f8f;
  --prism-regex: #ab5e3f;
  --prism-json-property: #698c96;
}

html.dark {
  --prism-scheme: dark;
  --prism-foreground: #d4cfbf;
  --prism-background: #1e1e1e;
  --prism-comment: #758575;
  --prism-string: #d48372;
  --prism-literal: #429988;
  --prism-keyword: #4d9375;
  --prism-boolean: #1c6b48;
  --prism-number: #6394bf;
  --prism-variable: #c2b36e;
  --prism-function: #a1b567;
  --prism-deleted: #a14f55;
  --prism-class: #54b1bf;
  --prism-builtin: #e0a569;
  --prism-property: #dd8e6e;
  --prism-namespace: #db889a;
  --prism-punctuation: #858585;
  --prism-decorator: #bd8f8f;
  --prism-regex: #ab5e3f;
  --prism-json-property: #6b8b9e;
  --prism-line-number: #888888;
  --prism-line-number-gutter: #eeeeee;
  --prism-line-highlight-background: #444444;
  --prism-selection-background: #444444;
}

div[class*='language-'] pre {
  font-size: var(--prism-font-size);
  font-family: var(--prism-font-family);
  direction: ltr;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  line-height: var(--prism-line-height);
  -moz-tab-size: var(--prism-tab-size);
  -o-tab-size: var(--prism-tab-size);
  tab-size: var(--prism-tab-size);
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
  color: var(--prism-foreground) !important;
}

/* Code blocks */
div[class*='language-'] pre {
  font-size: var(--prism-block-font-size);
  padding: var(--prism-block-padding-y) var(--prism-block-padding-x);
  margin: var(--prism-block-margin-y) var(--prism-block-margin-x);
  border-radius: var(--prism-block-radius);
  overflow: auto;
  background: var(--prism-background);
}

/* Selection */
div[class*='language-'] ::selection {
  background: var(--prism-selection-background);
}
