:root {
  --bg: #282a36;
  --card: #383a59;
  --fg: #f8f8f2;
  --accent: #bd93f9;
  --comment: #6272a4;
  --selection: #44475a;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-size: 1.1rem;
}

body {
  font-family: system-ui, sans-serif;
  background: var(--bg);
  color: var(--fg);
  line-height: 1.6;
  display: flex;
  justify-content: center;
}

.wrap {
  width: 100%;
  max-width: 900px;
  background: var(--card);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

header {
  border-bottom: 1px solid var(--selection);
  padding: 1rem clamp(1rem, 4vw, 3rem);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

nav a {
  color: var(--fg);
  text-decoration: none;
  margin-left: 1rem;
}

nav a:hover,
nav a:first-child {
  color: var(--accent);
}

main {
  flex: 1;
  padding: 2rem clamp(1rem, 4vw, 3rem);
}

footer {
  text-align: center;
  padding: 1rem 0;
  border-top: 1px solid var(--selection);
  color: var(--comment);
}

a {
  color: var(--accent);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

h1,
h2 {
  margin-top: 1rem;
}

h1 {
  font-size: 1.42rem;
}
h2 {
  font-size: 1.23rem;
}

p {
  margin-bottom: 0.4rem;
}

ul {
  padding: 0 0 0 1.2rem;
}

li {
  margin-bottom: clamp(0.4rem, 1.8vw, 0.9rem);
  padding-left: clamp(0.2rem, 1vw, 0.4rem);
}

time,
small {
  color: var(--comment);
  font-size: clamp(0.75rem, 2vw, 0.9rem);
}

article {
  max-width: 65ch;
  margin: auto;
}
pre {
  line-height: 125%;
}
td.linenos .normal {
  color: #f1fa8c;
  background-color: #44475a;
  padding-left: 5px;
  padding-right: 5px;
}
span.linenos {
  color: #f1fa8c;
  background-color: #44475a;
  padding-left: 5px;
  padding-right: 5px;
}
td.linenos .special {
  color: #50fa7b;
  background-color: #6272a4;
  padding-left: 5px;
  padding-right: 5px;
}
span.linenos.special {
  color: #50fa7b;
  background-color: #6272a4;
  padding-left: 5px;
  padding-right: 5px;
}

.codehilite .hll {
  background-color: #44475a;
}
.codehilite {
  background: #282a36;
  color: #f8f8f2;
  overflow-x: scroll;
  scrollbar-color: #f8f8f2;
  scrollbar-width: thin;
}
.codehilite .c {
  color: #6272a4;
} /* Comment */
.codehilite .err {
  color: #f8f8f2;
} /* Error */
.codehilite .g {
  color: #f8f8f2;
} /* Generic */
.codehilite .k {
  color: #ff79c6;
} /* Keyword */
.codehilite .l {
  color: #f8f8f2;
} /* Literal */
.codehilite .n {
  color: #f8f8f2;
} /* Name */
.codehilite .o {
  color: #ff79c6;
} /* Operator */
.codehilite .x {
  color: #f8f8f2;
} /* Other */
.codehilite .p {
  color: #f8f8f2;
} /* Punctuation */
.codehilite .ch {
  color: #6272a4;
} /* Comment.Hashbang */
.codehilite .cm {
  color: #6272a4;
} /* Comment.Multiline */
.codehilite .cp {
  color: #ff79c6;
} /* Comment.Preproc */
.codehilite .cpf {
  color: #6272a4;
} /* Comment.PreprocFile */
.codehilite .c1 {
  color: #6272a4;
} /* Comment.Single */
.codehilite .cs {
  color: #6272a4;
} /* Comment.Special */
.codehilite .gd {
  color: #8b080b;
} /* Generic.Deleted */
.codehilite .ge {
  color: #f8f8f2;
  text-decoration: underline;
} /* Generic.Emph */
.codehilite .ges {
  color: #f8f8f2;
  text-decoration: underline;
} /* Generic.EmphStrong */
.codehilite .gr {
  color: #f8f8f2;
} /* Generic.Error */
.codehilite .gh {
  color: #f8f8f2;
  font-weight: bold;
} /* Generic.Heading */
.codehilite .gi {
  color: #f8f8f2;
  font-weight: bold;
} /* Generic.Inserted */
.codehilite .go {
  color: #44475a;
} /* Generic.Output */
.codehilite .gp {
  color: #f8f8f2;
} /* Generic.Prompt */
.codehilite .gs {
  color: #f8f8f2;
} /* Generic.Strong */
.codehilite .gu {
  color: #f8f8f2;
  font-weight: bold;
} /* Generic.Subheading */
.codehilite .gt {
  color: #f8f8f2;
} /* Generic.Traceback */
.codehilite .kc {
  color: #ff79c6;
} /* Keyword.Constant */
.codehilite .kd {
  color: #8be9fd;
  font-style: italic;
} /* Keyword.Declaration */
.codehilite .kn {
  color: #ff79c6;
} /* Keyword.Namespace */
.codehilite .kp {
  color: #ff79c6;
} /* Keyword.Pseudo */
.codehilite .kr {
  color: #ff79c6;
} /* Keyword.Reserved */
.codehilite .kt {
  color: #8be9fd;
} /* Keyword.Type */
.codehilite .ld {
  color: #f8f8f2;
} /* Literal.Date */
.codehilite .m {
  color: #ffb86c;
} /* Literal.Number */
.codehilite .s {
  color: #bd93f9;
} /* Literal.String */
.codehilite .na {
  color: #50fa7b;
} /* Name.Attribute */
.codehilite .nb {
  color: #8be9fd;
  font-style: italic;
} /* Name.Builtin */
.codehilite .nc {
  color: #50fa7b;
} /* Name.Class */
.codehilite .no {
  color: #f8f8f2;
} /* Name.Constant */
.codehilite .nd {
  color: #f8f8f2;
} /* Name.Decorator */
.codehilite .ni {
  color: #f8f8f2;
} /* Name.Entity */
.codehilite .ne {
  color: #f8f8f2;
} /* Name.Exception */
.codehilite .nf {
  color: #50fa7b;
} /* Name.Function */
.codehilite .nl {
  color: #8be9fd;
  font-style: italic;
} /* Name.Label */
.codehilite .nn {
  color: #f8f8f2;
} /* Name.Namespace */
.codehilite .nx {
  color: #f8f8f2;
} /* Name.Other */
.codehilite .py {
  color: #f8f8f2;
} /* Name.Property */
.codehilite .nt {
  color: #ff79c6;
} /* Name.Tag */
.codehilite .nv {
  color: #8be9fd;
  font-style: italic;
} /* Name.Variable */
.codehilite .ow {
  color: #ff79c6;
} /* Operator.Word */
.codehilite .pm {
  color: #f8f8f2;
} /* Punctuation.Marker */
.codehilite .w {
  color: #f8f8f2;
} /* Text.Whitespace */
.codehilite .mb {
  color: #ffb86c;
} /* Literal.Number.Bin */
.codehilite .mf {
  color: #ffb86c;
} /* Literal.Number.Float */
.codehilite .mh {
  color: #ffb86c;
} /* Literal.Number.Hex */
.codehilite .mi {
  color: #ffb86c;
} /* Literal.Number.Integer */
.codehilite .mo {
  color: #ffb86c;
} /* Literal.Number.Oct */
.codehilite .sa {
  color: #bd93f9;
} /* Literal.String.Affix */
.codehilite .sb {
  color: #bd93f9;
} /* Literal.String.Backtick */
.codehilite .sc {
  color: #bd93f9;
} /* Literal.String.Char */
.codehilite .dl {
  color: #bd93f9;
} /* Literal.String.Delimiter */
.codehilite .sd {
  color: #bd93f9;
} /* Literal.String.Doc */
.codehilite .s2 {
  color: #bd93f9;
} /* Literal.String.Double */
.codehilite .se {
  color: #bd93f9;
} /* Literal.String.Escape */
.codehilite .sh {
  color: #bd93f9;
} /* Literal.String.Heredoc */
.codehilite .si {
  color: #bd93f9;
} /* Literal.String.Interpol */
.codehilite .sx {
  color: #bd93f9;
} /* Literal.String.Other */
.codehilite .sr {
  color: #bd93f9;
} /* Literal.String.Regex */
.codehilite .s1 {
  color: #bd93f9;
} /* Literal.String.Single */
.codehilite .ss {
  color: #bd93f9;
} /* Literal.String.Symbol */
.codehilite .bp {
  color: #f8f8f2;
  font-style: italic;
} /* Name.Builtin.Pseudo */
.codehilite .fm {
  color: #50fa7b;
} /* Name.Function.Magic */
.codehilite .vc {
  color: #8be9fd;
  font-style: italic;
} /* Name.Variable.Class */
.codehilite .vg {
  color: #8be9fd;
  font-style: italic;
} /* Name.Variable.Global */
.codehilite .vi {
  color: #8be9fd;
  font-style: italic;
} /* Name.Variable.Instance */
.codehilite .vm {
  color: #8be9fd;
  font-style: italic;
} /* Name.Variable.Magic */
.codehilite .il {
  color: #ffb86c;
} /* Literal.Number.Integer.Long */
