body {
    counter-reset: definition lemma proposition theorem corollary;
    background-color: #282a36;
    color: #f8f8f2;
    font-family: "serif";
}

a {
    color: #8be9fd;
}

pre.src {
    background-color: #21222c;
    color: #f8f8f2;
    border: none;
    font-size: 1em;
    border-radius: 1em;
    font-family: "monospace";
}

pre.src:hover::before {
  display: inline;
  margin-top: 14px;
}

pre.src::before {
  display: none;
  position: absolute;
  top: -8px;
  right: 12px;
  padding: 3px;
  color: #555;
  background-color: #f2f2f2;
}

pre.src-C++::before {
    content: "C++";
}

pre.example {
    background-color: #21222c;
    color: #f8f8f2;
    border: none;
    font-size: 1em;
    border-radius: 1em;
}

.definition::before {
    counter-increment: definition;
    content: "Definition " counter(definition);
    font-weight: bold;
}

.definition {
    border: 1px;
    border-style: solid;
    border-color: #50fa7b;
    border-radius: 1em;
    padding: 1em;
    margin: 1em 0 1em 0;
}

.proposition::before {
    counter-increment: proposition;
    content: "Proposition " counter(proposition);
    font-weight: bold;
}

.proposition {
    border: 1px;
    border-style: solid;
    border-color: #bd93f9;
    border-radius: 1em;
    padding: 1em;
    margin: 1em 0 1em 0;
}

.theorem::before {
    counter-increment: theorem;
    content: "Theorem " counter(theorem);
    font-weight: bold;
}

.theorem {
    border: 1px;
    border-style: solid;
    border-color: #ff6e6e;
    border-radius: 1em;
    padding: 1em;
    margin: 1em 0 1em 0;
}

.corollary::before {
    counter-increment: corollary;
    content: "Corollary " counter(corollary);
    font-weight: bold;
}

.corollary {
    border: 1px;
    border-style: solid;
    border-color: #f1fa8c;
    border-radius: 1em;    
    padding: 1em;
    margin: 1em 0 1em 0;
}

.lemma::before {
    counter-increment: lemma;
    content: "Lemma " counter(lemma);
    font-weight: bold;
}

.lemma {
    border: 1px;
    border-style:solid;
    border-color: #8be9fd;
    border-radius: 1em;    
    padding: 1em;
    margin: 1em 0 1em 0;
}

.proof::before {
    content: "Proof";
    font-style: italic;
    font-weight: light;
}

.proof {
    font-weight: light;
    font-style: italic;
}

.proof::after {
    content: "∎";
    padding-left: 100%;
}

blockquote {
    font-weight: light;
    font-style: italic;
}
