:root {
  /* Polar Night */
  --polar-night-0: #2E3440;
  --polar-night-1: #3B4252;
  --polar-night-2: #434C5E;
  --polar-night-3: #616E88;

  /* Snow Storm */
  --snow-storm-0: #D8DEE9;
  --snow-storm-1: #E5E9F0;
  --snow-storm-2: #ECEFF4;

  /* Frost */
  --frost-blue: #81A1C1;
  --frost-dark-blue: #5E81AC;
  --frost-cyan: #88C0D0;
  --frost-teal: #8FBCBB;

  /* Aurora */
  --aurora-red: #BF616A;
  --aurora-orange: #D08770;
  --aurora-yellow: #EBCB8B;
  --aurora-green: #A3BE8C;
  --aurora-purple: #B48EAD;
}

.highlight pre {
  background-color: var(--polar-night-0);
}

.highlight .hll {
  background-color: var(--polar-night-1);
}

.highlight .c {
  color: var(--polar-night-3);
}

/* Comment */
.highlight .err {
  color: var(--aurora-red);
  background-color: var(--polar-night-1);
}

/* Error */
.highlight .k {
  color: var(--frost-blue);
}

/* Literal */
.highlight .l {
  color: var(--aurora-purple);
}

/* Name */
.highlight .n {
  color: var(--snow-storm-0);
}

/* Operator */
.highlight .o {
  color: var(--frost-blue);
}

/* Punctuation */
.highlight .p {
  color: var(--snow-storm-0);
}

/* Generic Comment styles */
.highlight .cm,
.highlight .cp,
.highlight .c1,
.highlight .cs {
  color: var(--polar-night-3);
}

/* Generic Emphasis / Strong */
.highlight .ge {
  font-style: italic;
}

.highlight .gs {
  font-weight: bold;
}

/* Keywords */
.highlight .kc,
.highlight .kd,
.highlight .kp,
.highlight .kr,
.highlight .kt {
  color: var(--frost-blue);
}

/* Keyword.Namespace */
.highlight .kn {
  color: var(--frost-dark-blue);
}

/* Literal.Date */
.highlight .ld {
  color: var(--aurora-yellow);
}

/* Literal Number */
.highlight .m,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .mo,
.highlight .il {
  color: var(--aurora-purple);
}

/* String */
.highlight .s,
.highlight .sb,
.highlight .sc,
.highlight .sd,
.highlight .s2,
.highlight .se,
.highlight .sh,
.highlight .si,
.highlight .sx,
.highlight .sr,
.highlight .s1,
.highlight .ss {
  color: var(--aurora-green);
}

/* Name.Attribute / Class / Decorator / Exception / Function */
.highlight .na,
.highlight .nc,
.highlight .nd,
.highlight .ne,
.highlight .nf,
.highlight .nx {
  color: var(--frost-cyan);
}

/* Builtins and constants */
.highlight .nb,
.highlight .no,
.highlight .bp {
  color: var(--frost-teal);
}

/* Name.Tag */
.highlight .nt,
.highlight .ow {
  color: var(--frost-blue);
}

/* Variable, Label, Namespace, etc. */
.highlight .nv,
.highlight .vc,
.highlight .vg,
.highlight .vi,
.highlight .nn,
.highlight .nl,
.highlight .py,
.highlight .ni {
  color: var(--snow-storm-0);
}

/* Diff-related colors */
.highlight .gh {
  color: var(--snow-storm-2);
}

.highlight .gu {
  color: var(--polar-night-3);
}

.highlight .gd {
  color: var(--aurora-red);
}

.highlight .gi {
  color: var(--aurora-green);
}

/* Whitespace */
.highlight .w {
  color: var(--snow-storm-0);
}
