html, body {
  margin: 0;
}

body {
  font-family: "Iosevka Aile Web", sans-serif;
  font-weight: 300;
  background: #0a0a0a;
  color: whitesmoke;
  min-height: 100vh;
  padding: 0.5rem;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: whitesmoke #0a0a0a;
}

.--inverted body {
  background: whitesmoke;
  color: #0a0a0a;
  scrollbar-color: #0a0a0a whitesmoke;
}

body::-webkit-scrollbar {
  background: #0a0a0a;
  width: 0.5rem;
}

body::-webkit-scrollbar-thumb {
  background: whitesmoke;
  border-radius: 0.25rem;
}

.--inverted body::-webkit-scrollbar {
  background: whitesmoke;
}

.--inverted body::-webkit-scrollbar-thumb {
  background: #0a0a0a;
}

.link, .header__shortlinks a, .header__links a {
  color: #fca326;
  text-decoration: none;
  font-weight: 300;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
}
.link svg, .header__shortlinks a svg, .header__links a svg {
  vertical-align: middle;
  fill: #fca326;
}

.link:hover, .header__shortlinks a:hover, .header__links a:hover {
  border-top: 1px solid #fca326;
  border-bottom: 1px solid #fca326;
}

.--inverted .link, .--inverted .header__shortlinks a, .header__shortlinks .--inverted a, .--inverted .header__links a, .header__links .--inverted a {
  color: #3687d8;
}
.--inverted .link svg, .--inverted .header__shortlinks a svg, .header__shortlinks .--inverted a svg, .--inverted .header__links a svg, .header__links .--inverted a svg {
  fill: #3687d8;
}

.--inverted .link:hover, .--inverted .header__shortlinks a:hover, .header__shortlinks .--inverted a:hover, .--inverted .header__links a:hover, .header__links .--inverted a:hover {
  border-top: 1px solid #3687d8;
  border-bottom: 1px solid #3687d8;
}

button {
  border: none;
  padding: 0;
}

a {
  text-decoration: none;
  color: whitesmoke;
}

.--inverted a {
  color: #0a0a0a;
}

.container__root {
  display: flex;
  padding: 0.5rem;
  box-sizing: border-box;
}

.container__root.--column {
  flex-direction: column;
}

.container__root.--row {
  flex-direction: row;
}

.container__item {
  margin: 0.5rem;
  padding: 1rem;
  border: 1px solid whitesmoke;
  border-radius: 2px;
}

.content__column, .description__container {
  max-width: 64rem;
  text-align: justify;
  margin: 0 auto;
}

.content__column.--length-s, .--length-s.description__container {
  max-width: 32rem;
}

.content__column.--length-m, .--length-m.description__container {
  max-width: 64rem;
}

.content__column.--length-l, .--length-l.description__container {
  max-width: 80rem;
}

.post__body {
  line-height: 1.5;
}

.post__body a {
  color: #fca326;
  text-decoration: none;
  font-weight: 300;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
}
.post__body a svg {
  vertical-align: middle;
  fill: #fca326;
}

.post__body a:hover {
  border-top: 1px solid #fca326;
  border-bottom: 1px solid #fca326;
}

.--inverted .post__body a {
  color: #3687d8;
}
.--inverted .post__body a svg {
  fill: #3687d8;
}

.--inverted .post__body a:hover {
  border-top: 1px solid #3687d8;
  border-bottom: 1px solid #3687d8;
}

.--inverted .container__item {
  border: 1px solid #0a0a0a;
}

.container__item.--plain {
  margin: 1rem;
  padding: 0;
  border: unset;
}

.--inverted .container__item.--plain {
  border: unset;
}

.container__item.--thin {
  margin: 0.5rem;
  padding: 0.5rem;
}

.container__item.--fill {
  flex: 1 1 auto;
}

.header {
  display: flex;
  align-items: center;
}

.ico__canvas {
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
}

.header__name {
  font-size: 3rem;
}

.header__space {
  flex-grow: 1;
}

.header__links {
  font-size: 1.2rem;
  display: flex;
  flex-direction: row;
  gap: 2rem;
}

.header__shortlinks {
  display: none;
}

.footer {
  text-align: center;
  font-size: 0.8rem;
}

.footer__email {
  color: whitesmoke;
  text-decoration: none;
  font-weight: 300;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  float: right;
  color: whitesmoke;
}
.footer__email svg {
  vertical-align: middle;
  fill: whitesmoke;
}

.footer__email:hover {
  border-top: 1px solid whitesmoke;
  border-bottom: 1px solid whitesmoke;
}

.--inverted .footer__email {
  color: #0a0a0a;
}
.--inverted .footer__email svg {
  fill: #0a0a0a;
}

.--inverted .footer__email:hover {
  border-top: 1px solid #0a0a0a;
  border-bottom: 1px solid #0a0a0a;
}

.--inverted .footer__email {
  color: #0a0a0a;
}

.nospam .--at::before {
  padding-right: 0.15em;
  content: "@";
}

.darkness_toggle__button {
  height: 1rem;
  width: 2rem;
  border-radius: 1rem;
  float: left;
  background: whitesmoke;
  cursor: pointer;
}

.--inverted .darkness_toggle__button {
  background: #0a0a0a;
}

.darkness_toggle__dot {
  height: 0.5rem;
  width: 0.5rem;
  margin: 0.25rem;
  border-radius: 0.25rem;
  float: left;
  background: #0a0a0a;
  transition: margin-left 50ms;
}

.--inverted .darkness_toggle__dot {
  background: whitesmoke;
  margin-left: 1.25rem;
}

.center_span, .post__body a.center_pill, .center_pill {
  display: table;
  margin: 0 auto;
}

.pill, .post__body a.center_pill, .center_pill, .pill.--disabled:hover {
  background: #0a0a0a;
  color: whitesmoke;
  padding: 0rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid whitesmoke;
}

.pill.--warning, .post__body a.--warning.center_pill, .--warning.center_pill, .--inverted .pill.--warning {
  color: #d9332e;
  border: 1px solid #d9332e;
}

a.pill:hover, a.center_pill:hover {
  background: whitesmoke;
  color: #0a0a0a;
}

.--inverted .pill, .--inverted .post__body a.center_pill, .post__body .--inverted a.center_pill, .--inverted .center_pill, .--inverted .pill.--disabled:hover {
  background: whitesmoke;
  color: #0a0a0a;
  border: 1px solid #0a0a0a;
}

.--inverted a.pill:hover, .--inverted a.center_pill:hover {
  background: #0a0a0a;
  color: whitesmoke;
}

.pill.--disabled, .post__body a.--disabled.center_pill, .--disabled.center_pill, .pill.--disabled:hover, .--inverted .pill.--disabled:hover {
  border-style: dashed;
}

.pill__note {
  font-style: italic;
  font-size: 0.5em;
  vertical-align: middle;
}

.pill .nf, .center_pill .nf, .post__body a.center_pill .nf {
  font-size: 0.8em;
  vertical-align: 0.1em;
}

.--noicons .nf {
  display: none;
}

.tagline {
  display: table;
  margin: 0 auto;
}

.description__container {
  padding: 1rem 0;
}

.description__header {
  display: flex;
}

.description__container.--large {
  max-width: 100%;
  min-width: 64rem;
  width: fit-content;
}

.description__hash {
  color: #fca326;
  width: 2rem;
  float: left;
  font-size: 1.5rem;
  font-style: italic;
}

.description__container.--large .description__hash {
  font-size: 2.25rem;
}

.description__header.--hold .description__hash {
  font-style: inherit;
}

.description__title:hover .description__hash {
  font-style: inherit;
}

.--inverted .description__hash {
  color: #3687d8;
}

.description__title {
  flex-grow: 1;
  font-size: 1.5rem;
}

.description__container.--large .description__title {
  font-size: 2.25rem;
}

.description__date {
  margin-top: auto;
}

.description__authors {
  margin-bottom: 1rem;
}

.description__container.--large .description__authors {
  font-size: 1.5em;
}

.description__summary {
  margin-left: 2rem;
}

.description__summary p:first-of-type {
  display: inline;
}

.description__more {
  display: flex;
  margin-top: 1rem;
  margin-bottom: 1rem;
  flex-direction: row;
  justify-content: center;
  gap: 0.5rem 2rem;
  flex-wrap: wrap;
}

div.math {
  text-align: center;
  background: #0f1419;
  padding: 1em;
  border-radius: 2px;
  font-size: 1rem;
}

h1, h2, h3 {
  text-align: left;
  overflow: auto;
}

strong {
  font-weight: bold;
}

.--inverted div.math {
  background: #e7eaf1;
}

.hline {
  left: 0;
  right: 0;
  width: auto;
  margin: 1rem 0;
  border-bottom: 1px dashed whitesmoke;
}

.--inverted .hline {
  border-bottom: 1px dashed #0a0a0a;
}

.image, .diagram__image {
  display: block;
  margin: 2em auto;
  border-radius: 2px;
  object-fit: contain;
  box-sizing: content-box;
}
.image svg, .diagram__image svg {
  height: 100%;
}
.image.--xs, .--xs.diagram__image {
  height: 8rem;
  max-height: 8rem;
  max-width: 100%;
}
.image.--s, .--s.diagram__image {
  height: 12rem;
  max-height: 12rem;
  max-width: 100%;
}
.image.--m, .--m.diagram__image {
  height: 16rem;
  max-height: 16rem;
  max-width: 100%;
}
.image.--ml, .--ml.diagram__image {
  height: 20rem;
  max-height: 20rem;
  max-width: 100%;
}
.image.--l, .--l.diagram__image {
  height: 24rem;
  max-height: 24rem;
  max-width: 100%;
}
.image.--xl, .--xl.diagram__image {
  height: 32rem;
  max-height: 32rem;
  max-width: 100%;
}

.diagram__image {
  filter: invert(1) hue-rotate(180deg);
}

div .image, .diagram__image, .image_container {
  text-align: center;
  font-size: 0;
  display: flex;
  flex-direction: column;
  margin-bottom: 1rem;
}
div .image svg, .diagram__image svg, .image_container svg {
  align-self: center;
}

.--inverted .diagram__image {
  filter: unset;
}

.jumbotron {
  display: block;
  width: 100%;
  height: 30vh;
  border: 1px solid whitesmoke;
  border-radius: 2px;
  overflow: hidden;
}

.--inverted .jumbotron {
  border: 1px solid #0a0a0a;
}

svg .--diagram {
  filter: invert(1) hue-rotate(180deg);
}

.--inverted svg .--diagram {
  filter: unset;
}

svg .--border {
  stroke: whitesmoke;
  stroke-width: 1;
  stroke-opacity: 1;
}

.--inverted svg .--border {
  stroke: #0a0a0a;
  stroke-width: 1;
  stroke-opacity: 1;
}

svg .--fg {
  fill: whitesmoke !important;
}

.--inverted svg .--fg {
  fill: #0a0a0a !important;
}

svg .--bg {
  fill: whitesmoke !important;
}

.--inverted svg .--bg {
  fill: #0a0a0a !important;
}

svg .--fgs {
  stroke: whitesmoke !important;
}

.--inverted svg .--fgs {
  stroke: #0a0a0a !important;
}

svg .--bgs {
  stroke: whitesmoke !important;
}

.--inverted svg .--bgs {
  stroke: #0a0a0a !important;
}

table {
  margin: 0 auto;
}

pre {
  color: whitesmoke;
  background: #0e1419;
  padding: 1em;
  border-radius: 2px;
  overflow-x: auto;
}

.--inverted pre {
  filter: invert(1) hue-rotate(180deg) saturate(2.5);
}

pre code, .--inverted pre code {
  background: unset;
  padding: 0;
}

code {
  background: #0f1419;
  padding: 0.2em 0.5em;
  border-radius: 2px;
  font-family: "Iosevka Web", monospace;
}

.--inverted code {
  background: #e7eaf1;
}

.--inverted svg .codeblock-fg {
  filter: invert(1) hue-rotate(180deg);
}

img.--invertable {
  filter: invert(1) hue-rotate(180deg);
}

.--inverted img.--invertable {
  filter: unset;
}

img.--border {
  padding: 2px;
  border: 1px solid whitesmoke;
}

.--inverted img.--border {
  border: 1px solid #0a0a0a;
}

svg .codeblock-bg {
  fill: #0f1419;
}

.--inverted svg .codeblock-bg {
  fill: #e7eaf1;
}

blockquote {
  padding-left: 1em;
  border-left: 2px #fca326 solid;
}

.--inverted blockquote {
  border-left: 2px #3687d8 solid;
}

.caption {
  font-size: 10pt;
  align-self: start;
}

.attribution {
  font-size: 10pt;
  align-self: end;
}

h1, h2, h3 {
  text-align: left;
}

.bigfill_text {
  margin: auto;
  font-size: 4rem;
}

@media only screen and (max-device-width: 720px) {
  .container__root {
    font-size: 0.85rem;
  }
  .caption {
    font-size: 7pt;
  }
  .attribution {
    font-size: 7pt;
  }
  .ico__canvas {
    width: 64px;
    height: 64px;
  }
  .header__name {
    font-size: 1.2rem;
  }
  .header__links {
    display: none;
  }
  .header__shortlinks {
    font-size: 1rem;
    display: unset;
  }
  .header__shortlinks a {
    padding: 0 3px;
  }
  .description__header {
    flex-direction: column;
  }
  .description__header {
    margin-bottom: 1rem;
  }
  .description__title,
.description__hash {
    font-size: 1.2rem;
  }
  .description__container.--large .description__title,
.description__container.--large .description__hash {
    font-size: 1.5rem;
  }
  .description__container.--large .description__authors {
    font-size: 1.2em;
  }
  .description__container.--large .description__date {
    font-size: 1.2em;
  }
  .description__container.--large {
    max-width: unset;
    min-width: unset;
    width: 100%;
  }
  .description__summary {
    margin-left: unset;
  }
  .content__column, .description__container {
    text-align: left;
  }
  .image, .diagram__image {
    display: block;
    margin: 1em auto;
  }
  .image svg, .diagram__image svg {
    height: unset;
    width: 100%;
  }
  .image.--xs, .diagram__image.--xs {
    height: unset;
    width: 40%;
  }
  .image.--s, .diagram__image.--s {
    height: unset;
    width: 50%;
  }
  .image.--m, .diagram__image.--m {
    height: unset;
    width: 60%;
  }
  .image.--ml, .diagram__image.--ml {
    height: unset;
    width: 70%;
  }
  .image.--l, .diagram__image.--l {
    height: unset;
    width: 80%;
  }
  .image.--xl, .diagram__image.--xl {
    height: unset;
    width: 100%;
  }
  .footer {
    text-align: center;
    font-size: 0.5rem;
    line-height: 0.8rem;
  }
}
