@font-face {
  font-family: "monospace";
  src: url("fonts/ShareTechMono-Regular.woff2") format("woff2"), url("fonts/ShareTechMono-Regular.woff") format("woff"), url("fonts/ShareTechMono-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "serif";
  src: url("fonts/ZillaSlab-Regular.woff2") format("woff2"), url("fonts/ZillaSlab-Regular.woff") format("woff"), url("fonts/ZillaSlab-Regular.ttf") format("truetype");
  font-weight: normal;
}
@font-face {
  font-family: "serif";
  src: url("fonts/ZillaSlab-Bold.ttf") format("truetype");
  font-weight: bold;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Regular.ttf") format("truetype");
  font-weight: normal;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Bold.ttf") format("truetype");
  font-weight: bold;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Italic.ttf") format("truetype");
  font-style: italic;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/FiraSans/CourierPrime-BoldItalic.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: "Fira Sans";
  src: url("fonts/FiraSans/FiraSans-Regular.ttf") format("truetype");
  font-weight: normal;
}
@font-face {
  font-family: "Fira Sans";
  src: url("fonts/FiraSans/FiraSans-Bold.ttf") format("truetype");
  font-weight: bold;
}
@font-face {
  font-family: "Fira Sans";
  src: url("fonts/FiraSans/FiraSans-Italic.ttf") format("truetype");
  font-style: italic;
}
@font-face {
  font-family: "Fira Sans";
  src: url("fonts/FiraSans/FiraSans-BoldItalic.ttf") format("truetype");
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: "Fira Mono";
  src: url("fonts/Fira_Mono/FiraMono-Regular.ttf") format("truetype");
  font-weight: normal;
}
@font-face {
  font-family: "Fira Mono";
  src: url("fonts/Fira_Mono/FiraMono-Bold.ttf") format("truetype");
  font-weight: bold;
}
@font-face {
  font-family: "Fira Mono";
  src: url("fonts/FiraMono/FiraMono-Italic.ttf") format("truetype");
  font-style: italic;
}
:root {
  --font-large: 35px;
  --font-medium: 28px;
  --font-modest: 18px;
  --font-small: 16px;
}
@media (max-aspect-ratio: 4/3), (max-width: 820px) {
  :root {
    --font-large: 25px;
    --font-medium: 20px;
    --font-modest: 16px;
    --font-small: 16px;
  }
}
:root {
  --accent: #dc1e61;
  --black-gray: rgb(30, 30, 30);
  --dark-gray: rgb(50, 50, 50);
  --gray: rgb(100, 100, 100);
  --light-gray: rgb(200, 200, 200);
}
:root {
  --hover-duration: 0.3s;
}

* {
  box-sizing: border-box;
}

::selection {
  background-color: rgba(220, 30, 97, 0.2666666667);
}

.block {
  display: block;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.full-width {
  width: 100%;
}

.content-width {
  width: max-content;
}

.full-height {
  height: 100%;
}

.content-height {
  height: max-content;
}

.no-margin {
  margin: 0;
}

.auto-margin {
  margin-left: auto !important;
  margin-right: auto !important;
}

.no-overflow-x {
  overflow-x: hidden;
}

.text-center {
  text-align: center !important;
}

.bold {
  font-weight: bolder;
}

.accent {
  color: #dc1e61;
}

.accent-two {
  color: #350d9a;
}

.black {
  color: black;
}

.black-gray {
  color: rgb(30, 30, 30);
}

.dark-gray {
  color: rgb(50, 50, 50);
}

.gray {
  color: rgb(100, 100, 100);
}

.light-gray {
  color: rgb(200, 200, 200);
}

.white {
  color: white;
}

.color-inherit {
  color: inherit !important;
}

.green {
  color: #92c10c;
}

.purple {
  color: #750869;
}

.cyan {
  color: #28b0bb;
}

.bg-accent {
  background-color: #dc1e61;
}

.bg-black {
  background-color: black;
}

.bg-black-gray {
  background-color: rgb(30, 30, 30);
}

.bg-dark-gray {
  background-color: rgb(50, 50, 50);
}

.bg-gray {
  background-color: rgb(100, 100, 100);
}

.bg-white {
  background-color: white;
}

.bg-transparent {
  background-color: transparent;
}

.bg-black-transparent {
  background-color: rgba(0, 0, 0, 0.5);
}

.border-dark-gray {
  border-color: rgb(50, 50, 50);
}

.pre {
  white-space: pre;
}

.wrap {
  white-space: pre-wrap;
}

.nowrap {
  white-space: nowrap;
}

.no-animation {
  animation-duration: 0s !important;
}

.font-large {
  font-size: var(--font-large) !important;
  line-height: calc(var(--font-large) * 1.2);
}

.font-medium {
  font-size: var(--font-medium) !important;
  line-height: calc(var(--font-medium) * 1.2);
}

.font-modest {
  font-size: var(--font-modest) !important;
  line-height: calc(var(--font-modest) * 1.2);
}

.font-small {
  font-size: var(--font-small) !important;
  line-height: calc(var(--font-small) * 1.2);
}

.portrait {
  display: none;
}
@media (max-aspect-ratio: 4/3), (max-width: 820px) {
  .portrait {
    display: inherit;
  }
}

.anti-portrait {
  display: inherit;
}
@media (max-aspect-ratio: 4/3), (max-width: 820px) {
  .anti-portrait {
    display: none;
  }
}

#h2-nav {
  position: fixed;
  display: flex;
  width: 270px;
  height: 90%;
  max-height: 500px;
  padding: 50px 0;
  box-sizing: border-box;
  mask-image: linear-gradient(transparent 0%, white 10%, white 90%, transparent 100%);
  top: max(50vh - 250px, 5vh);
  left: calc((100% - 650px + min(15%, 500px) + 150px) / 2);
  transform: translateX(-130%);
  flex-direction: column;
  justify-content: center;
  counter-reset: section-link;
  overflow-y: scroll;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
#h2-nav::-webkit-scrollbar {
  display: none;
}
@media (max-width: 1100px) {
  #h2-nav {
    display: none;
  }
}
#h2-nav span {
  margin-top: 5px;
}
#h2-nav a {
  background: linear-gradient(to right, transparent, transparent), linear-gradient(to right, rgba(255, 0, 0, 0.8), rgba(255, 0, 180, 0.8), rgba(0, 100, 200, 0.8));
  background-size: 100% 3px, 0 3px;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 1px;
  color: #dc1e61;
  transition: background-size 0.3s, color 0.3s;
  width: 100%;
  white-space: pre-wrap;
  color: rgb(200, 200, 200);
}
#h2-nav a:hover {
  background-size: 0 3px, 100% 3px;
  cursor: pointer;
}
#h2-nav a:not(.no-numbering)::before {
  counter-increment: section-link;
  content: counter(section-link) ". ";
}
#h2-nav a:hover, #h2-nav a.focused {
  color: #dc1e61;
}
#h2-nav a.focused {
  font-weight: bold;
  color: rgb(50, 50, 50);
}

body.expanded #h2-nav {
  position: absolute;
}

header {
  padding-top: 50px;
  font-family: "Fira Sans";
  letter-spacing: 0px;
  font-size: var(--font-small);
}
header .notes-content {
  max-width: 650px;
  width: 85%;
  padding-left: calc(min(15%, 500px) + 150px);
  box-sizing: content-box;
  counter-reset: section;
}
@media (max-width: 1100px) {
  header .notes-content {
    padding-left: 0;
  }
}
header .notes-content a {
  color: #dc1e61;
  outline: none;
  transition-property: color;
  transition-duration: 0.3s;
}
header .notes-content a:hover {
  color: rgb(50, 50, 50);
}
header .notes-content h2 i {
  transform: rotateY(180deg);
}
header .notes-content h3 {
  font-weight: normal;
}
header .notes-content .tags {
  margin-top: 10px;
}
header .notes-content .tags code {
  position: relative;
  background-color: rgb(235, 235, 235);
  display: inline-block;
  margin-right: 20px;
  padding: 3px 8px 3px 15px;
  border-top-left-radius: 50px;
  border-bottom-left-radius: 50px;
  left: 5px;
}
header .notes-content .tags code::before {
  position: absolute;
  width: 20px;
  height: 100%;
  content: "";
  top: 0;
  left: -9px;
  border-right: 15px solid;
  border-color: rgb(235, 235, 235);
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  box-sizing: border-box;
}
header .notes-content .tags code::after {
  position: absolute;
  background-color: white;
  width: 4px;
  height: 4px;
  content: "";
  top: calc(50% - 2px);
  left: 0;
  border-radius: 100%;
}
header .notes-content .markdown {
  padding-bottom: 50px;
  counter-reset: footnote -1;
}
header .notes-content .markdown h2, header .notes-content .markdown h3, header .notes-content .markdown h4 {
  max-width: 100%;
  margin-bottom: 0;
  white-space: pre-wrap;
}
header .notes-content .markdown h2 {
  background: linear-gradient(to right, transparent, transparent), linear-gradient(to right, rgba(255, 0, 0, 0.8), rgba(255, 0, 180, 0.8), rgba(0, 100, 200, 0.8));
  background-size: 100% 3px, 0 3px;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 1px;
  color: #dc1e61;
  transition: background-size 0.3s, color 0.3s;
  display: inline;
  position: relative;
  width: max-content;
  color: rgb(50, 50, 50);
  font-size: var(--font-medium);
  counter-reset: subsection;
}
header .notes-content .markdown h2:hover {
  background-size: 0 3px, 100% 3px;
  cursor: pointer;
}
header .notes-content .markdown h2:hover {
  cursor: pointer;
}
header .notes-content .markdown h2:hover::after {
  position: absolute;
  width: 30px;
  content: "#";
  top: 0;
  left: -50px;
  color: #dc1e61;
  opacity: 0.8;
  text-align: right;
}
@media (max-aspect-ratio: 4/3), (max-width: 820px) {
  header .notes-content .markdown h2:hover::after {
    left: -35px;
  }
}
header .notes-content .markdown h2:hover.no-numbering::after {
  top: 25px;
}
header .notes-content .markdown h2::before {
  display: block;
  padding-top: 25px;
  content: "";
}
header .notes-content .markdown h2:not(.no-numbering)::before {
  display: inline-block;
  counter-increment: section;
  content: counter(section) ". ";
}
header .notes-content .markdown h3 {
  margin-top: 30px;
  font-weight: bold;
  font-style: normal;
  color: rgb(100, 100, 100);
}
header .notes-content .markdown h3:not(.no-numbering)::before {
  counter-increment: subsection;
  content: counter(section) "." counter(subsection) " ";
}
header .notes-content .markdown h4 {
  margin-top: 0;
  font-weight: normal;
  font-style: italic;
}
header .notes-content .markdown a:not(.backlink) {
  background: linear-gradient(to right, transparent, transparent), linear-gradient(to right, rgba(255, 0, 0, 0.8), rgba(255, 0, 180, 0.8), rgba(0, 100, 200, 0.8));
  background-size: 100% 3px, 0 3px;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
  padding-bottom: 1px;
  color: #dc1e61;
  transition: background-size 0.3s, color 0.3s;
}
header .notes-content .markdown a:not(.backlink):hover {
  background-size: 0 3px, 100% 3px;
  cursor: pointer;
}
header .notes-content .markdown pre code {
  display: block;
  background-color: rgb(235, 235, 235);
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
}
header .notes-content .markdown code {
  overflow-x: scroll;
}
header .notes-content .markdown input {
  border: none;
  border-bottom: 2px solid rgb(200, 200, 200);
  outline: none;
  font-family: inherit;
}
header .notes-content .markdown img:not(.affiliation) {
  width: 100%;
  margin: auto;
}
header .notes-content .markdown img.affiliation {
  max-width: calc(1.5 * var(--font-modest));
  max-height: var(--font-modest);
  transform: translateY(15%);
}
header .notes-content .markdown p {
  margin: 0;
  padding: 10px 0;
  text-align: justify;
}
@media (max-width: 650px) {
  header .notes-content .markdown p {
    text-align: left;
  }
}
header .notes-content .markdown blockquote {
  position: relative;
  margin: 0;
  margin-bottom: 10px;
  padding: 0;
  font-style: italic;
}
header .notes-content .markdown blockquote p {
  padding-bottom: 0;
}
header .notes-content .markdown blockquote p::before, header .notes-content .markdown blockquote p::after {
  display: inline-block;
  font-family: "Font Awesome 6 Free";
  font-weight: bold;
  color: rgb(200, 200, 200);
}
header .notes-content .markdown blockquote p::before {
  margin-right: 20px;
  content: "\f10d";
  transform: translate(0, -5px) scale(1.5);
}
header .notes-content .markdown blockquote p::after {
  margin-left: 20px;
  content: "\f10e";
  transform: translate(0, 2px) scale(1.5);
}
header .notes-content .markdown blockquote::after {
  content: "-- " attr(author);
  font-weight: bold;
}
header .notes-content .markdown table {
  width: 100%;
  margin-top: 10px;
  border-spacing: 0;
  font-size: 12px;
  text-align: left;
  overflow-x: scroll;
}
header .notes-content .markdown table th {
  background-color: rgb(235, 235, 235);
  font-size: 12px;
  font-weight: bold;
}
header .notes-content .markdown table th, header .notes-content .markdown table td {
  padding: 5px 10px;
}
header .notes-content .markdown table td {
  background-color: #f8f8f8;
  border-top: 1px solid rgb(235, 235, 235);
}
header .notes-content .markdown ul {
  margin: 0;
  padding-left: 30px;
}
header .notes-content .markdown ul li {
  margin: 10px 0;
  padding-left: 10px;
}
header .notes-content .markdown ul ul {
  padding-left: 0;
}
header .notes-content .markdown em.indent, header .notes-content .markdown .indent {
  display: inline-block;
  margin-left: 40px;
}
header .notes-content .markdown em.print {
  display: inline-block;
  font-size: 13px;
  font-style: normal;
  font-family: inherit;
}
header .notes-content .markdown em.hl {
  background-color: yellow;
  font-style: normal;
}
header .notes-content .markdown em.left {
  display: inline-block;
  font-style: normal;
  text-align: left;
}
header .notes-content .markdown em.fill {
  padding: 2px 7px;
  font-weight: bold;
  font-style: normal;
}
header .notes-content .markdown a.footnote {
  display: inline-block;
  transform: scale(80%);
  transform-origin: top;
}
header .notes-content .markdown a.footnote::after {
  content: counter(footnote);
  font-weight: bold;
  top: -10%;
}
header .notes-content .markdown #footnotes {
  counter-reset: footnote -1;
}
header .notes-content .markdown h4.footnote {
  font-style: normal;
}
header .notes-content .markdown h4.footnote::before {
  display: inline-block;
  padding-top: 20px;
  box-sizing: border-box;
  content: counter(footnote) "  ";
  counter-increment: footnote;
  font-weight: bold;
  color: rgb(100, 100, 100);
  transform: scale(150%) translateY(10%);
  transform-origin: left bottom;
}
header .notes-content .markdown .backlink::after {
  display: inline-block;
  content: "\f3be";
  margin-left: 5px;
  font-family: "Font Awesome 6 Free";
  font-weight: bold;
  transform: rotate(90deg) translateX(10%);
}

hr {
  display: inline-block;
  width: 100%;
}

#note-ad {
  margin-top: 80px;
  margin-bottom: 20px;
  border: 1px solid black;
  padding: 20px;
}
#note-ad h4 i.fa-arrow-left {
  margin-right: 0.5em;
}
#note-ad h4 i.fa-arrow-right {
  margin-left: 0.5em;
}
#note-ad a {
  display: flex;
  width: 100%;
  justify-content: space-between;
}
@media (max-aspect-ratio: 4/3), (max-width: 820px) {
  #note-ad a span.gray {
    display: none;
  }
}

footer {
  background-color: #c90057 !important;
  color: white !important;
}
footer h3 {
  color: rgb(200, 200, 200) !important;
}

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