body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: calc(0.93em + 0.25vw);
  font-weight: default;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

body, blockquote, figure {
  margin: 0; }

a {
  color: inherit;
  text-decoration: inherit;
  transition: color 0.2s; }
  a.selected, a:hover {
    color: #949494; }

article a, b, strong, th {
  font-weight: default100; }

h1, h2, h3, h4, h5, h6 {
  font-weight: bold; }

article a {
  color: #68f; }

article header a, article footer a {
  font-weight: inherit;
  color: inherit; }

header time {
  color: #949494; }

hr {
  border: 1px solid rgba(148, 148, 148, 0.3);
  margin: 2em 0; }

blockquote {
  border-left: 4px solid #68f;
  padding-left: 1.5em; }

img {
  border-radius: 2px;
  max-width: 100%;
  height: auto;
  margin: 0.5em 0; }

@media (prefers-color-scheme: light) {
  body {
    background: #ffffff !important;
    color: black !important; } }
@media (prefers-color-scheme: dark) {
  body {
    background: #282828 !important;
    color: white !important; } }
body, aside, main {
  flex-direction: column; }

main, article {
  flex-grow: 1; }

header, footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center; }
  header nav > *, footer nav > * {
    margin: 0 0.8em; }
  header nav > :first-child, footer nav > :first-child {
    margin-left: 0; }
  header nav > :last-child, footer nav > :last-child {
    margin-right: 0; }

pre {
  background: rgba(38, 38, 38, 0.8);
  color: white;
  border-radius: 2px;
  margin: 1.5em 0;
  padding: 0.8em 1.2em;
  white-space: pre-wrap; }

p code {
  background: rgba(148, 148, 148, 0.2);
  opacity: 0.5;
  border-radius: 2px;
  font-size: 0.9em;
  margin: 0 0.1em;
  padding: 0.2em 0.4em; }

table {
  border-spacing: 1px;
  box-shadow: 0px 0px 0px 1px rgba(148, 148, 148, 0.16) inset; }

tr:hover, tr:nth-child(even) td {
  background: rgba(148, 148, 148, 0.06); }

th {
  background: rgba(148, 148, 148, 0.1);
  text-align: inherit; }

th, td {
  box-shadow: 0px 0px 0px 1px rgba(148, 148, 148, 0.16);
  padding: 0.5em 1em; }

.c {
  color: #a29f90; }

.err {
  color: #960050;
  background-color: #1e0010; }

.k {
  color: #66d9ef; }

.l {
  color: #ae81ff; }

.n {
  color: #f8f8f2; }

.o {
  color: #f92672; }

.p {
  color: #f8f8f2; }

.cm, .cp, .c1, .cs {
  color: #75715e; }

.ge {
  font-style: italic; }

.gs {
  font-weight: bold; }

.kc, .kd {
  color: #66d9ef; }

.kn {
  color: #f92672; }

.kp, .kr, .kt {
  color: #66d9ef; }

.ld {
  color: #e6db74; }

.m {
  color: #ae81ff; }

.s {
  color: #e6db74; }

.na {
  color: #a6e22e; }

.nb {
  color: #f8f8f2; }

.nc {
  color: #a6e22e; }

.no {
  color: #66d9ef; }

.nd {
  color: #a6e22e; }

.ni {
  color: #f8f8f2; }

.ne, .nf {
  color: #a6e22e; }

.nl, .nn {
  color: #f8f8f2; }

.nx {
  color: #a6e22e; }

.py {
  color: #f8f8f2; }

.nt {
  color: #f92672; }

.nv {
  color: #f8f8f2; }

.ow {
  color: #f92672; }

.w {
  color: #f8f8f2; }

.mf, .mh, .mi, .mo {
  color: #ae81ff; }

.sb, .sc, .sd, .s2 {
  color: #e6db74; }

.se {
  color: #ae81ff; }

.sh, .si, .sx, .sr, .s1, .ss {
  color: #e6db74; }

.bp, .vc, .vg, .vi {
  color: #f8f8f2; }

.il {
  color: #ae81ff; }

.gu {
  color: #75715e; }

.gd {
  color: #f92672; }

.gi {
  color: #a6e22e; }

body {
  display: flex;
  min-height: 100vh; }

table {
  width: 100%; }

h1 {
  font-size: 1.85em; }

header h1 {
  margin: 0;
  font-weight: 300; }

article header {
  flex-direction: column;
  align-items: inherit; }

article header {
  margin-bottom: 1.5em; }

article header h1 {
  margin: 0.2em 0; }

article footer {
  padding: 1em 0; }

body > header h1 {
  font-size: 1.7em; }

/************************** Further customisation **************************** */
:focus {
  outline: 2px solid #68f; }

.katex {
  font-size: 1.1em; }

.textsc {
  font-style: normal;
  font-variant: small-caps;
  font-variant-numeric: oldstyle-nums; }

table.lit-ratings {
  box-shadow: unset;
  width: unset; }
  table.lit-ratings tr:hover, table.lit-ratings tr:nth-child(even) td {
    background: unset; }
  table.lit-ratings th, table.lit-ratings td {
    box-shadow: unset;
    padding: unset; }
  table.lit-ratings th + th, table.lit-ratings td + td {
    padding-left: 1em; }

@font-face {
  font-family: "stars";
  src: url("data:application/octet-stream;base64,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") format("woff"); }
.stars {
  font-family: "stars"; }
