/***************/
/* MEYER RESET */
/***************/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

@font-face {
  font-family: "Silian Rail";
  src: url("/assets/fonts/silian-rail/silian-rail-regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Silian Rail";
  src: url("/assets/fonts/silian-rail/silian-rail-bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PlayFair Display";
  src: url("/assets/fonts/playfair-display/playfair-display-variable-italic.ttf") format("truetype");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "PlayFair Display";
  src: url("/assets/fonts/playfair-display/playfair-display-variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/** Flex **/
.flex {
  display: flex;
}

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

.flex-grow {
  flex-grow: 1;
}

.flex-shrink {
  flex-shrink: 0;
}

.align-center {
  align-items: center;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-0 {
  gap: 0;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-5 {
  gap: 1.25rem;
}

.gap-6 {
  gap: 1.5rem;
}

/** Margin & Padding **/
.p-0 {
  padding: 0rem;
}

.pt-0 {
  padding-top: 0rem;
}

.pr-0 {
  padding-right: 0rem;
}

.pb-0 {
  padding-bottom: 0rem;
}

.pl-0 {
  padding-left: 0rem;
}

.px-0 {
  padding-left: 0rem;
  padding-right: 0rem;
}

.py-0 {
  padding-top: 0rem;
  padding-bottom: 0rem;
}

.m-0 {
  margin: 0rem;
}

.mt-0 {
  margin-top: 0rem;
}

.mr-0 {
  margin-right: 0rem;
}

.mb-0 {
  margin-bottom: 0rem;
}

.ml-0 {
  margin-left: 0rem;
}

.mx-0 {
  margin-left: 0rem;
  margin-right: 0rem;
}

.my-0 {
  margin-top: 0rem;
  margin-bottom: 0rem;
}

.p-1 {
  padding: 0.25rem;
}

.pt-1 {
  padding-top: 0.25rem;
}

.pr-1 {
  padding-right: 0.25rem;
}

.pb-1 {
  padding-bottom: 0.25rem;
}

.pl-1 {
  padding-left: 0.25rem;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.m-1 {
  margin: 0.25rem;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.p-2 {
  padding: 0.5rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pr-2 {
  padding-right: 0.5rem;
}

.pb-2 {
  padding-bottom: 0.5rem;
}

.pl-2 {
  padding-left: 0.5rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.m-2 {
  margin: 0.5rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.p-3 {
  padding: 0.75rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pr-3 {
  padding-right: 0.75rem;
}

.pb-3 {
  padding-bottom: 0.75rem;
}

.pl-3 {
  padding-left: 0.75rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.m-3 {
  margin: 0.75rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mr-3 {
  margin-right: 0.75rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.ml-3 {
  margin-left: 0.75rem;
}

.mx-3 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}

.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}

.p-4 {
  padding: 1rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pr-4 {
  padding-right: 1rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pl-4 {
  padding-left: 1rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.m-4 {
  margin: 1rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mr-4 {
  margin-right: 1rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.ml-4 {
  margin-left: 1rem;
}

.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}

.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.pt-5 {
  padding-top: 1.25rem;
}

.pr-5 {
  padding-right: 1.25rem;
}

.pb-5 {
  padding-bottom: 1.25rem;
}

.pl-5 {
  padding-left: 1.25rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.m-5 {
  margin: 1.25rem;
}

.mt-5 {
  margin-top: 1.25rem;
}

.mr-5 {
  margin-right: 1.25rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.ml-5 {
  margin-left: 1.25rem;
}

.mx-5 {
  margin-left: 1.25rem;
  margin-right: 1.25rem;
}

.my-5 {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.pt-6 {
  padding-top: 1.5rem;
}

.pr-6 {
  padding-right: 1.5rem;
}

.pb-6 {
  padding-bottom: 1.5rem;
}

.pl-6 {
  padding-left: 1.5rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.m-6 {
  margin: 1.5rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mr-6 {
  margin-right: 1.5rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.ml-6 {
  margin-left: 1.5rem;
}

.mx-6 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}

.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.p-8 {
  padding: 2rem;
}

.pt-8 {
  padding-top: 2rem;
}

.pr-8 {
  padding-right: 2rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pl-8 {
  padding-left: 2rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.m-8 {
  margin: 2rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mr-8 {
  margin-right: 2rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.ml-8 {
  margin-left: 2rem;
}

.mx-8 {
  margin-left: 2rem;
  margin-right: 2rem;
}

.my-8 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.p-10 {
  padding: 2.5rem;
}

.pt-10 {
  padding-top: 2.5rem;
}

.pr-10 {
  padding-right: 2.5rem;
}

.pb-10 {
  padding-bottom: 2.5rem;
}

.pl-10 {
  padding-left: 2.5rem;
}

.px-10 {
  padding-left: 2.5rem;
  padding-right: 2.5rem;
}

.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.m-10 {
  margin: 2.5rem;
}

.mt-10 {
  margin-top: 2.5rem;
}

.mr-10 {
  margin-right: 2.5rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.ml-10 {
  margin-left: 2.5rem;
}

.mx-10 {
  margin-left: 2.5rem;
  margin-right: 2.5rem;
}

.my-10 {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

.p-12 {
  padding: 3rem;
}

.pt-12 {
  padding-top: 3rem;
}

.pr-12 {
  padding-right: 3rem;
}

.pb-12 {
  padding-bottom: 3rem;
}

.pl-12 {
  padding-left: 3rem;
}

.px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}

.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.m-12 {
  margin: 3rem;
}

.mt-12 {
  margin-top: 3rem;
}

.mr-12 {
  margin-right: 3rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.ml-12 {
  margin-left: 3rem;
}

.mx-12 {
  margin-left: 3rem;
  margin-right: 3rem;
}

.my-12 {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.p-16 {
  padding: 4rem;
}

.pt-16 {
  padding-top: 4rem;
}

.pr-16 {
  padding-right: 4rem;
}

.pb-16 {
  padding-bottom: 4rem;
}

.pl-16 {
  padding-left: 4rem;
}

.px-16 {
  padding-left: 4rem;
  padding-right: 4rem;
}

.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.m-16 {
  margin: 4rem;
}

.mt-16 {
  margin-top: 4rem;
}

.mr-16 {
  margin-right: 4rem;
}

.mb-16 {
  margin-bottom: 4rem;
}

.ml-16 {
  margin-left: 4rem;
}

.mx-16 {
  margin-left: 4rem;
  margin-right: 4rem;
}

.my-16 {
  margin-top: 4rem;
  margin-bottom: 4rem;
}

/** Text **/
.text-offset {
  color: #14121a;
}

.text-accent {
  color: #9b5fa1;
}

.font-monospace {
  font-family: "Cascadia Mono", monospace;
}

.text-b {
  font-weight: bold;
}

.text-i {
  font-style: italic;
}

.underline {
  text-decoration-line: underline;
}

.language-plaintext {
  font-weight: bold;
  font-family: "Cascadia Mono", monospace;
  padding: 3px;
  border: 1px solid #c49dcf;
}

.highlight {
  background-color: none;
  font-family: "Cascadia Mono", monospace;
}

.highlight table td {
  padding: 5px;
}

.highlight table pre {
  margin: 0;
}

.highlight .w {
  color: #fbf1c7;
  background-color: #282828;
}

.highlight .err {
  color: #fb4934;
  background-color: #282828;
  font-weight: bold;
}

.highlight .c {
  color: #928374;
  font-style: italic;
}

.highlight .ch {
  color: #928374;
  font-style: italic;
}

.highlight .cd {
  color: #928374;
  font-style: italic;
}

.highlight .cm {
  color: #928374;
  font-style: italic;
}

.highlight .cpf {
  color: #928374;
  font-style: italic;
}

.highlight .c1 {
  color: #928374;
  font-style: italic;
}

.highlight .cs {
  color: #928374;
  font-style: italic;
}

.highlight .cp {
  color: #8ec07c;
}

.highlight .nt {
  color: #fb4934;
}

.highlight .o {
  color: #fbf1c7;
}

.highlight .ow {
  color: #fbf1c7;
}

.highlight .p {
  color: #fbf1c7;
}

.highlight .pi {
  color: #fbf1c7;
}

.highlight .gi {
  color: #b8bb26;
  background-color: #282828;
}

.highlight .gd {
  color: #fb4934;
  background-color: #282828;
}

.highlight .gh {
  color: #b8bb26;
  font-weight: bold;
}

.highlight .k {
  color: #fb4934;
}

.highlight .kn {
  color: #fb4934;
}

.highlight .kp {
  color: #fb4934;
}

.highlight .kr {
  color: #fb4934;
}

.highlight .kv {
  color: #fb4934;
}

.highlight .kc {
  color: #d3869b;
}

.highlight .kt {
  color: #fabd2f;
}

.highlight .kd {
  color: #fe8019;
}

.highlight .s {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sb {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sc {
  color: #b8bb26;
  font-style: italic;
}

.highlight .dl {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sd {
  color: #b8bb26;
  font-style: italic;
}

.highlight .s2 {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sh {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sx {
  color: #b8bb26;
  font-style: italic;
}

.highlight .s1 {
  color: #b8bb26;
  font-style: italic;
}

.highlight .si {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sr {
  color: #b8bb26;
  font-style: italic;
}

.highlight .sa {
  color: #fb4934;
}

.highlight .se {
  color: #fe8019;
}

.highlight .nn {
  color: #8ec07c;
}

.highlight .nc {
  color: #8ec07c;
}

.highlight .no {
  color: #d3869b;
}

.highlight .na {
  color: #b8bb26;
}

.highlight .m {
  color: #d3869b;
}

.highlight .mb {
  color: #d3869b;
}

.highlight .mf {
  color: #d3869b;
}

.highlight .mh {
  color: #d3869b;
}

.highlight .mi {
  color: #d3869b;
}

.highlight .il {
  color: #d3869b;
}

.highlight .mo {
  color: #d3869b;
}

.highlight .mx {
  color: #d3869b;
}

.highlight .ss {
  color: #83a598;
}

.codeblock {
  border: 2px solid #9b5fa1;
}

pre {
  font-family: "Cascadia Mono", monospace;
  margin: 0px;
  padding: 1em;
  border: 1px solid #9b5fa1;
  overflow-x: auto;
}
pre code {
  border: none;
  padding: 0;
}

.code-filename {
  background-color: #c49dcf;
  color: black;
  text-align: left;
  padding: 0.5em;
}

.code-description {
  background-color: #e3dac9;
  border: 1px solid #9b5fa1;
  color: black;
  text-align: left;
  padding: 0.5em;
}

/**************/
/* BASE RULES */
/**************/
html, body {
  overflow-x: hidden;
}

html {
  font-size: 100%;
}

body {
  background: #0d0c10;
  font: 18px/1.4 "Inter", sans-serif;
  color: #e3dac9;
  max-width: 100%;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "PlayFair Display", serif;
  color: #cbbec9;
  font-weight: bold;
  line-height: 1.7;
  margin: 1em 0 15px;
  padding: 0;
}
@media screen and (max-width: 640px) {
  h1, h2, h3, h4, h5, h6 {
    line-height: 1.4;
  }
}

h1 {
  font-size: 30px;
}
h1 a {
  color: inherit;
}

h2 {
  font-size: 24px;
}

h3 {
  font-size: 20px;
}

h4 {
  font-size: 18px;
  color: #857b88;
}

p {
  margin: 15px 0;
}

a {
  color: #9b5fa1;
  text-decoration: none;
  cursor: pointer;
}
a:hover, a:active {
  color: #c49dcf;
}

img {
  max-width: 100%;
}

em {
  font-weight: lighter;
  font-style: italic;
}

strong {
  font-weight: bold;
}

::-moz-selection {
  color: #0d0c10;
  background: #c49dcf;
}

::selection {
  color: #0d0c10;
  background: #c49dcf;
}

header {
  padding: 20px 0;
  border-bottom: 1px solid #322b39;
  background: #9b5fa1;
}
@media screen and (max-width: 640px) {
  header {
    text-align: center;
  }
}

nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  font-family: "PlayFair Display", serif;
  font-size: 18px;
}
@media screen and (max-width: 640px) {
  nav {
    float: none;
    margin-top: 9px;
    font-size: 16px;
    flex-direction: column;
    align-items: center;
  }
}
nav a {
  font-weight: 500;
  letter-spacing: 1px;
  padding: 3px;
  font-size: 24px;
}
@media screen and (max-width: 640px) {
  nav a {
    margin: 0 10px;
    color: #5a6cad;
    display: block;
    margin: 6px 0;
  }
}
nav a:hover {
  color: #9b5fa1;
  background-color: #14121a;
}

/*********************/
/* LAYOUT / SECTIONS */
/*********************/
ol, ul:not(.aligned-list) {
  padding-left: 1.5rem;
  margin-left: 0;
  margin-bottom: 1rem;
}

.aligned-list li {
  display: flex;
  margin-bottom: 1em;
}
@media screen and (max-width: 640px) {
  .aligned-list li div {
    flex-direction: column;
  }
}
.aligned-list li div > :first-child {
  min-width: 125px;
  font-weight: bold;
}
.aligned-list li::before {
  content: "->";
  max-width: 4ch; /* roughly equal to 4 '0' characters */
  min-width: 4ch; /* roughly equal to 4 '0' characters */
  margin-right: 0.5em;
  font-family: "Cascadia Mono", monospace;
  font-weight: bold;
}

.posts > .post {
  padding-bottom: 2em;
  border-bottom: 1px solid #322b39;
}

.posts > .post:last-child {
  padding-bottom: 1em;
  border-bottom: none;
}

.post blockquote {
  margin: 1.8em 0.8em;
  border-left: 2px solid #9b5fa1;
  padding: 0.1em 1em;
  color: #a396a8;
  font-size: 22px;
  font-style: italic;
}
.post .comments {
  margin-top: 10px;
}
.post .read-more {
  text-transform: uppercase;
  font-size: 15px;
}

.article-meta {
  flex: 1 1 auto;
  min-width: 0;
}

.splash {
  width: 100%;
  height: auto;
  max-width: 500px;
  border: 2px solid #9b5fa1;
}

.date {
  font-style: italic;
  color: #a396a8;
}

.container {
  margin: 0 auto;
  max-width: 90ch;
  padding: 0 10px;
  width: 100%;
}

.hamburger {
  font-size: 30px;
  background: none;
  border: none;
  color: #14121a;
  padding: 0.5rem 1rem;
  display: none;
  cursor: pointer;
}
@media screen and (max-width: 640px) {
  .hamburger {
    display: block;
    margin: 0 auto;
  }
}

.menu-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}
@media screen and (max-width: 640px) {
  .menu-items {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
  }
}

@media screen and (max-width: 640px) {
  .menu-items.show {
    display: flex;
  }
}

/*# sourceMappingURL=style.css.map */