/*!
 *  __  __                __                                     __
 * /\ \/\ \              /\ \             __                    /\ \
 * \ \ \_\ \   __  __    \_\ \      __   /\_\      __       ___ \ \ \/'\
 *  \ \  _  \ /\ \/\ \   /'_` \   /'__`\ \/\ \   /'__`\    /'___\\ \ , <
 *   \ \ \ \ \\ \ \_\ \ /\ \L\ \ /\  __/  \ \ \ /\ \L\.\_ /\ \__/ \ \ \\`\
 *    \ \_\ \_\\/`____ \\ \___,_\\ \____\ _\ \ \\ \__/.\_\\ \____\ \ \_\ \_\
 *     \/_/\/_/ `/___/> \\/__,_ / \/____//\ \_\ \\/__/\/_/ \/____/  \/_/\/_/
 *                 /\___/                \ \____/
 *                 \/__/                  \/___/
 *
 * Powered by Hydejack v9.1.6 <https://hydejack.com/>
 */
.clearfix, .sidebar-social::after {
  content: "";
  display: table;
  clear: both;
}

.color-transition, .content .avatar, .nav-btn, .nav-btn-bar, .navbar, .pagination, .message, .note-sm, #markdown-toc, .note, .pre-header-common, div.highlight > button, div.highlight > .pre-header, .figure-base, .pre-base, article .katex-display, article mjx-container[jax][display=true], pre, table:not(.rouge-table), code, .footnotes::before, table:not(.rouge-table) tbody tr:nth-child(odd) td,
table:not(.rouge-table) tbody tr:nth-child(odd) th, table:not(.rouge-table) tbody tr:nth-child(even) td,
table:not(.rouge-table) tbody tr:nth-child(even) th, table:not(.rouge-table) thead + tbody,
table:not(.rouge-table) tbody + tbody,
table:not(.rouge-table) tfoot, table:not(.rouge-table) thead, table:not(.rouge-table) td, table:not(.rouge-table) th, .faded, .figcaption, figure, .figure, .read-more, blockquote, .hr-bottom, .hr-after::after, hr, .hr, p, body {
  transition: none;
}

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

html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -ms-overflow-style: scrollbar;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

@-ms-viewport {
  width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}

[tabindex="-1"]:focus {
  outline: none !important;
}

abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
}

address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}

img {
  vertical-align: middle;
  border-style: none;
}

svg:not(:root) {
  overflow: hidden;
}

a,
area,
button,
[role=button],
input:not([type=range]),
label,
select,
summary,
textarea {
  touch-action: manipulation;
}

figure {
  margin: 0 0 1rem;
}

label {
  display: inline-block;
  margin-bottom: 0.25rem;
}

button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  padding: 0;
  border-style: none;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month] {
  -webkit-appearance: listbox;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}

legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
  white-space: normal;
}

progress {
  vertical-align: baseline;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
  -webkit-appearance: none;
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}

summary {
  display: list-item;
}

template {
  display: none;
}

[hidden] {
  display: none !important;
}

html {
  --font-family: Noto Sans, Helvetica, Arial, sans-serif;
  --font-family-heading: Roboto Slab, Helvetica, Arial, sans-serif;
  --code-font-family: ui-monospace, Menlo, Monaco, Cascadia Mono, Segoe UI Mono, Roboto Mono, Oxygen Mono, Ubuntu Monospace, Source Code Pro, Fira Mono, Droid Sans Mono, Courier New, monospace;
  --body-color: #333;
  --body-bg: #fff;
  --border-color: #ebebeb;
  --gray: #777;
  --gray-bg: rgba(0, 0, 0, 0.025);
  --gray-text: #666;
  --menu-text: #bbb;
  --inv-body-color: #ccc;
  --inv-body-bg: #282828;
  --root-font-size: 15px;
  --root-font-size-medium: 16px;
  --root-font-size-large: 17px;
  --root-font-size-print: 8pt;
  --root-line-height: 1.75;
  --font-weight: 400;
  --font-weight-bold: 700;
  --font-weight-heading: 700;
  --content-width-5: 54rem;
  --content-margin-5: 4rem;
  --sidebar-width: 21rem;
  --half-content: 31rem;
  --break-point-3: 64em;
  --break-point-5: 86em;
  --break-point-dynamic: 1664px;
}
html .content {
  -webkit-font-smoothing: initial;
  -moz-osx-font-smoothing: initial;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

html {
  font-family: var(--font-family);
  font-size: var(--root-font-size);
  line-height: var(--root-line-height);
}

body {
  color: var(--body-color);
  background-color: var(--body-bg);
  font-weight: var(--font-weight);
  overflow-y: scroll;
}

.content img, .img,
.content video, .video {
  max-width: 100%;
  height: auto;
}

.lead {
  margin-left: -1rem;
  margin-right: -1rem;
  margin-bottom: 1.5rem;
}

img.lead, video.lead {
  display: block;
  max-width: calc(100% + 2rem);
  width: calc(100% + 2rem);
  height: auto;
}

@media (display-mode: standalone) {
  body {
    overscroll-behavior-y: contain;
  }
}
:focus {
  outline-color: var(--accent-color) !important;
}

::selection {
  background: var(--accent-color-faded);
}

.heading, .tippy-content a, .f6, h6, .h6, .f5, h5, .h5, .f4, .sidebar-nav-item, h4, .h4, .post-date, .f3, h3, .h3, .f2, h2, .h2, .f1, h1, .h1 {
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-heading);
}

.f1, h1, .h1 {
  font-size: 2rem;
  line-height: 1.3;
}

.f2, h2, .h2 {
  font-size: 1.5rem;
  line-height: 1.4;
}

.f3, h3, .h3 {
  font-size: 1.2em;
  line-height: 1.5;
}

.f4, .sidebar-nav-item, h4, .h4, .post-date {
  font-size: 1.08rem;
  line-height: 1.6;
}

.f5, h5, .h5 {
  font-size: 1.04rem;
  line-height: 1.7;
}

.f6, h6, .h6 {
  font-size: 1rem;
}

.content h1 > a, .content .h1 > a {
  text-decoration: none;
  border-bottom: none;
}
@media screen and (max-width: 42em) {
  .content h1, .content .h1 {
    font-size: 1.7rem;
    line-height: 1.35;
  }
}
@media screen and (min-width: 86em) {
  .content h1, .content .h1 {
    font-size: 2.4rem;
    line-height: 1.25;
  }
}

@media screen and (min-width: 1664px) {
  body:not(.no-large-headings) .content h1, body:not(.no-large-headings) .content .h1 {
    width: calc(100% + 50vw - 32rem);
    font-size: 3rem;
    line-height: 1.2;
  }
}
@media screen and (min-width: 124em) {
  body:not(.no-large-headings) .content h1, body:not(.no-large-headings) .content .h1 {
    font-size: 4rem;
    line-height: 1.1;
  }
}

h1, h2, h3, .h1, .h2, .h3 {
  margin: 4rem 0 1rem;
}

h4, h5, h6, .h4, .post-date, .h5, .h6 {
  margin: 3rem 0 0.5rem;
}

p {
  margin-top: 0;
  margin-bottom: 1rem;
}
p.lead {
  font-size: 1.2em;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  padding: 0 1rem;
}

ul, ol, dl {
  margin-top: 0;
  margin-bottom: 1rem;
}

ul, ol {
  padding-left: 1.25rem;
}

hr, .hr {
  border: 0;
  margin: 1rem 0;
  border-top: 1px solid var(--border-color);
}

.hr-after::after {
  content: "";
  display: block;
  margin: 1rem 0;
  border-top: 1px solid var(--border-color);
}

.hr-bottom {
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.75rem;
  margin-bottom: 1rem;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .post-date, .h5, .h6, .heading, .tippy-content a, .f1, .f2, .f3, .f4, .sidebar-nav-item, .f5, .f6 {
  text-rendering: optimizeLegibility;
}

h1 + h2, .h1 + .h2, h1 + .h2, .h1 + h2,
h2 + h3, .h2 + .h3, h2 + .h3, .h2 + h3,
h3 + h4, .h3 + .h4, .h3 + .post-date, h3 + .h4, h3 + .post-date, .h3 + h4,
h4 + h5, .h4 + .h5, .post-date + .h5, h4 + .h5, .h4 + h5, .post-date + h5,
h5 + h6, .h5 + .h6, h5 + .h6, .h5 + h6 {
  margin-top: 0;
}

dt, strong {
  font-weight: var(--font-weight-bold);
}

dt:after {
  content: " :";
  color: var(--menu-text);
}

dd {
  margin-bottom: 0.5rem;
}

abbr {
  font-size: 85%;
  font-weight: var(--font-weight-bold);
  text-transform: uppercase;
}
abbr[title] {
  cursor: help;
  border-bottom: 1px dotted var(--border-color);
}

blockquote {
  padding: 0.5rem 1rem;
  margin: 0.8rem 0;
  color: var(--gray);
  border-left: 0.25rem solid var(--border-color);
}
blockquote.lead {
  font-size: 1.2em;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  border-left-width: 0.4rem;
}
blockquote > p:last-child {
  margin-bottom: 0;
}

.heading, .tippy-content a, .f1, .f2, .f3, .f4, .sidebar-nav-item, .f5, .f6, h1, .h1, h2, .h2, h3, .h3, h4, .h4, .post-date, h5, .h5, h6, .h6 {
  font-weight: var(--font-weight-heading);
}

.fine, .figcaption, figure, .figure, .smaller {
  font-size: smaller;
}

.faded, .figcaption, figure, .figure, .read-more {
  color: var(--gray);
}

.centered, .figcaption, figure, .figure {
  text-align: center;
}

h1[id], h2[id], h3[id], h4[id], h5[id], h6[id] {
  position: relative;
}
h1[id] > .permalink, h2[id] > .permalink, h3[id] > .permalink, h4[id] > .permalink, h5[id] > .permalink, h6[id] > .permalink {
  text-decoration: none;
  border: none;
  opacity: 0;
  transition: opacity 400ms;
}
@media print {
  h1[id] > .permalink, h2[id] > .permalink, h3[id] > .permalink, h4[id] > .permalink, h5[id] > .permalink, h6[id] > .permalink {
    display: none;
  }
}
h1[id]:hover > .permalink, h2[id]:hover > .permalink, h3[id]:hover > .permalink, h4[id]:hover > .permalink, h5[id]:hover > .permalink, h6[id]:hover > .permalink {
  opacity: 0.5;
}
h1[id] > .permalink:hover, h1[id] > .permalink:focus, h2[id] > .permalink:hover, h2[id] > .permalink:focus, h3[id] > .permalink:hover, h3[id] > .permalink:focus, h4[id] > .permalink:hover, h4[id] > .permalink:focus, h5[id] > .permalink:hover, h5[id] > .permalink:focus, h6[id] > .permalink:hover, h6[id] > .permalink:focus {
  opacity: 1;
  transition: opacity 200ms;
}

.content-hash::before {
  content: "#";
}

.content-json::before {
  content: "{}";
}

@media print {
  h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .post-date, .h5, .h6, dt {
    page-break-inside: avoid;
    break-inside: avoid-page;
    page-break-after: avoid;
    break-after: avoid-page;
  }
}
table:not(.rouge-table) {
  border-collapse: collapse;
  border-radius: 0 !important;
  display: block;
  margin-bottom: 1.5rem;
}
table:not(.rouge-table) td, table:not(.rouge-table) th {
  padding: 0.5em 0.75em;
}
table:not(.rouge-table) td:first-child, table:not(.rouge-table) th:first-child {
  padding-left: 1rem;
  border-left: 1px solid var(--border-color);
}
table:not(.rouge-table) td:last-child, table:not(.rouge-table) th:last-child {
  padding-right: 1rem;
  border-right: 1px solid var(--border-color);
}
table:not(.rouge-table) > *:first-child {
  border-top: 1px solid var(--border-color);
}
table:not(.rouge-table) > *:last-child {
  border-bottom: 1px solid var(--border-color);
}
table:not(.rouge-table) thead {
  background-color: var(--body-bg);
}
table:not(.rouge-table) thead + tbody,
table:not(.rouge-table) tbody + tbody,
table:not(.rouge-table) tfoot {
  border-top: 1px solid var(--border-color);
}
table:not(.rouge-table) tbody tr:nth-child(even) td,
table:not(.rouge-table) tbody tr:nth-child(even) th {
  background-color: var(--body-bg);
}
table:not(.rouge-table) tbody tr:nth-child(odd) td,
table:not(.rouge-table) tbody tr:nth-child(odd) th {
  background-color: var(--gray-bg);
}

table.stretch-table {
  display: table;
  width: 100% !important;
  width: calc(100% + 2em) !important;
}

table.scroll-table {
  white-space: nowrap;
}

table.flip-table {
  display: flex;
  overflow: hidden;
}
table.flip-table thead, table.flip-table tbody {
  display: flex;
}
table.flip-table thead {
  flex-shrink: 0;
  min-width: min-content;
  border-left: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}
table.flip-table thead th {
  padding-left: 1em;
}
table.flip-table tbody {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
table.flip-table tr {
  display: flex;
  flex-direction: column;
  min-width: min-content;
  flex-shrink: 0;
}
table.flip-table tr:last-child {
  border-right: 1px solid var(--border-color);
}
table.flip-table tr:last-child td {
  padding-right: 1em;
}
table.flip-table td, table.flip-table th {
  display: block;
}
table.flip-table td:first-child, table.flip-table th:first-child {
  padding-left: 0.5em;
  border-left: none;
}
table.flip-table td:last-child, table.flip-table th:last-child {
  padding-right: 0.5em;
  border-right: none;
}

@media screen and (max-width: 72em) {
  table.scroll-table-small {
    white-space: nowrap;
  }
  table.flip-table-small {
    display: flex;
    overflow: hidden;
  }
  table.flip-table-small thead, table.flip-table-small tbody {
    display: flex;
  }
  table.flip-table-small thead {
    flex-shrink: 0;
    min-width: min-content;
    border-left: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
  }
  table.flip-table-small thead th {
    padding-left: 1em;
  }
  table.flip-table-small tbody {
    position: relative;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }
  table.flip-table-small tr {
    display: flex;
    flex-direction: column;
    min-width: min-content;
    flex-shrink: 0;
  }
  table.flip-table-small tr:last-child {
    border-right: 1px solid var(--border-color);
  }
  table.flip-table-small tr:last-child td {
    padding-right: 1em;
  }
  table.flip-table-small td, table.flip-table-small th {
    display: block;
  }
  table.flip-table-small td:first-child, table.flip-table-small th:first-child {
    padding-left: 0.5em;
    border-left: none;
  }
  table.flip-table-small td:last-child, table.flip-table-small th:last-child {
    padding-right: 0.5em;
    border-right: none;
  }
}
@media print {
  table:not(.rouge-table) {
    width: 100% !important;
  }
}
footer {
  margin-bottom: 2rem;
}

a[href^="#fn:"],
a[href^="#fnref:"] {
  margin-left: 0.1rem;
  font-weight: var(--font-weight-bold);
}
@media screen and (max-width: 72em) {
  a[href^="#fn:"],
  a[href^="#fnref:"] {
    font-weight: normal;
  }
  a[href^="#fn:"]::before,
  a[href^="#fnref:"]::before {
    content: "[";
  }
  a[href^="#fn:"]::after,
  a[href^="#fnref:"]::after {
    content: "]";
  }
}

sup {
  line-height: 1;
}
@media screen and (max-width: 72em) {
  sup[id^=fnref] {
    vertical-align: baseline;
    font-size: inherit;
  }
}

.footnotes {
  margin-top: 5rem;
  margin-bottom: 5rem;
}
.footnotes > ol {
  color: var(--gray);
}
.footnotes > ol > li {
  padding: 0.5rem;
  margin-left: 0.5rem;
}
.footnotes > ol > li > p {
  margin: 0;
}
.footnotes > ol > li:focus {
  outline: none;
  color: var(--gray-text);
  background: var(--gray-bg);
}
.footnotes::before {
  content: "";
  display: block;
  margin: 1rem 0;
  border: 0;
  border-top: 1px solid var(--border-color);
}

code, pre {
  font-family: var(--code-font-family);
}

code {
  padding: 0.25em 0.5em;
  background-color: var(--gray-bg);
  font-size: smaller;
}

.figure-base, div.highlight > .pre-header, .pre-base, article .katex-display, article mjx-container[jax][display=true], pre, table:not(.rouge-table) {
  margin-left: -1rem;
  margin-right: -1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 42em) {
  .figure-base, div.highlight > .pre-header, .pre-base, article .katex-display, article mjx-container[jax][display=true], pre, table:not(.rouge-table) {
    border-radius: 0.5rem;
  }
}

.pre-base, article .katex-display, article mjx-container[jax][display=true], pre {
  padding: 1rem;
  margin-bottom: 1.5rem;
  background-color: var(--gray-bg);
  backface-visibility: hidden;
}
@media print {
  .pre-base, article .katex-display, article mjx-container[jax][display=true], pre {
    width: 100% !important;
    page-break-inside: avoid;
    break-inside: avoid-page;
  }
}

pre {
  margin-top: 0;
  display: block;
  font-size: 0.83em;
  line-height: 1.5em;
  position: relative;
}

pre > code {
  display: inline-block;
  position: relative;
  min-width: 100%;
  padding: 0;
  color: inherit;
  background-color: transparent;
  font-size: 1em;
}

.pre-header-common, div.highlight > button, div.highlight > .pre-header {
  height: 2rem;
  border: none;
  border-bottom: 1px solid var(--border-color);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

div.highlight {
  position: relative;
}
div.highlight > .pre-header {
  display: block;
  color: var(--gray) !important;
  background-color: var(--gray-bg);
}
div.highlight > .pre-header > span {
  font-size: smaller;
}
div.highlight > .pre-header > * {
  display: inline-block;
  padding: 0.3rem 1rem 0.2rem;
}
div.highlight > button {
  position: absolute;
  top: 0;
  right: -1rem;
  color: var(--menu-text);
  background: none;
  border-left: 1px solid var(--border-color);
  border-right: 1px solid var(--border-color);
  border-top-left-radius: 0;
  padding-left: 1rem;
  padding-right: 1rem;
  overflow: hidden;
  cursor: pointer;
  opacity: 0;
  transition: opacity 300ms;
}
div.highlight > button:hover {
  background: var(--gray-bg);
}
div.highlight > button.copy-success > .icon-copy {
  animation-name: icon-copy;
  animation-duration: 1.5s;
  animation-timing-function: ease;
}
div.highlight > button.copy-success > .icon-checkmark {
  animation-name: icon-checkmark;
  animation-duration: 1.5s;
  animation-timing-function: ease;
}
div.highlight > button > .icon-copy {
  display: inline-block;
}
div.highlight > button > .icon-checkmark {
  position: absolute;
  top: 50%;
  margin-top: -3em;
  left: 0;
  right: 0;
  text-align: center;
}
div.highlight:hover > button {
  opacity: 1;
  transition: opacity 100ms;
}
div.highlight > .pre-header ~ pre.highlight {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  padding-top: 0.65rem;
}
div.highlight > .pre-header ~ button {
  opacity: 1;
}

body.no-break-layout div.highlight > button {
  border-right: none;
}

@keyframes icon-checkmark {
  0% {
    transform: translateY(0);
  }
  15%, 85% {
    transform: translateY(2.5em);
  }
  100% {
    transform: translateY(5em);
  }
}
@keyframes icon-copy {
  0% {
    transform: translateY(0);
  }
  15% {
    transform: translateY(2.5em);
  }
  15.01%, 85% {
    transform: translateY(-2.5em);
  }
  100% {
    transform: translateY(0);
  }
}
.page {
  margin-bottom: 3em;
}
.page li + li {
  margin-top: 0.25rem;
}
.page > header {
  position: relative;
  margin-bottom: 2rem;
}
@media screen and (min-width: 1664px) {
  body:not(.no-third-column) .page > header > .lead + .note-sm, body:not(.no-third-column) .page > header > .lead + #markdown-toc, body:not(.no-third-column) .page > header > .lead + .note,
  body:not(.no-third-column) .page > header > a.no-hover + .note-sm,
  body:not(.no-third-column) .page > header > a.no-hover + #markdown-toc,
  body:not(.no-third-column) .page > header > a.no-hover + .note {
    position: absolute;
    right: -25rem;
    width: 21rem;
    bottom: 0;
    margin-bottom: 0;
  }
}

.page-title, .post-title {
  margin-top: 0;
}

.post-date {
  display: flex;
  justify-content: space-between;
  margin-top: -0.6rem;
  height: 2rem;
  margin-bottom: 0.85rem;
  color: var(--gray);
}
.post-date > .ellipsis, #breadcrumbs.post-date > ul {
  cursor: pointer;
}
.post-date [class^=icon-] {
  display: inline-block;
  font-size: smaller;
  margin-right: 0.25rem;
}

clap-button {
  margin-left: auto;
  margin-right: auto;
  --clap-button-color: var(--accent-color);
}

clap-button + p.message, clap-button + p.note-sm, clap-button + p#markdown-toc, clap-button + p.note {
  margin: -2rem auto 0;
  max-width: 32rem;
  font-size: smaller;
}

hr.dingbat {
  border: 0;
}
hr.dingbat:after {
  content: "❖";
  display: block;
  text-align: center;
  font-size: 1.5rem;
  color: var(--menu-text);
}

@media print {
  .page {
    margin-bottom: 0;
  }
}
.related-posts {
  padding-left: 0;
  list-style: none;
  margin-bottom: 2rem;
}
.related-posts > li,
.related-posts > li + li {
  margin-top: 1rem;
}

@media print {
  .comments {
    display: none;
  }
}

.read-more {
  margin-top: 1.5rem;
  margin-bottom: 3rem;
  text-align: right;
}
.read-more::after {
  content: " →";
  font-family: "icomoon" !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  font-size: smaller;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.message, .note-sm, #markdown-toc, .note {
  margin-bottom: 1rem;
  padding: 1rem;
  color: var(--gray-text);
  background-color: var(--gray-bg);
  margin-left: -1rem;
  margin-right: -1rem;
}

.note-sm, #markdown-toc, .note {
  background: transparent;
  color: var(--body-color);
  font-size: smaller;
  border-left: 1px solid var(--border-color);
  padding: 1.2rem 1rem 0 1rem;
  margin: 1rem -1rem;
  position: relative;
}
.note-sm:before, #markdown-toc:before, .note:before {
  font-size: 0.667rem;
  font-weight: bold;
  font-style: normal;
  letter-spacing: 0.025rem;
  text-transform: uppercase;
  color: var(--menu-text);
  position: absolute;
  top: 0;
}
.note-sm[title]:before, [title]#markdown-toc:before, [title].note:before {
  content: attr(title) !important;
}

.note {
  font-size: 1rem;
}

.pagination {
  width: calc(100% + 2rem);
  margin: 0 -1rem 1rem;
  color: var(--gray);
  text-align: center;
}
.pagination > ul {
  list-style: none;
  padding: 0;
}

.pagination-item > * {
  display: block;
  padding: 0.25rem 1rem;
  border: solid var(--border-color);
  border-width: 1px 0;
  transition: border-color 1s ease;
}
.pagination-item > a, .pagination-item > a:hover, .pagination-item > a:focus {
  border-color: var(--border-color) !important;
  text-decoration: none;
}
.pagination-item:first-child > * {
  margin-bottom: -1px;
}
.pagination-item > a:hover, .pagination-item > a:focus {
  background-color: var(--gray-bg);
  border-bottom: 1px solid var(--border-color);
}

@media (min-width: 23.5em) {
  .pagination {
    width: 100%;
    margin: 3rem 0;
  }
  .pagination-item > * {
    float: left;
    width: 50%;
    border-width: 1px;
  }
  .pagination-item:first-child > * {
    margin-bottom: 0;
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
  }
  .pagination-item:last-child > * {
    margin-left: -1px;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
  }
}
body {
  /* Prevent side-scrolling on mobile */
  display: block;
  position: relative;
  overflow-x: hidden;
}

hy-push-state, hy-drawer {
  display: block;
  overflow: hidden;
}

@media screen {
  body::before {
    content: "";
    width: 0.5rem;
    background: var(--gray-bg);
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
  }
}
@media (min-width: 64em) {
  body::before {
    width: 21rem;
  }
}
@media (min-width: 1664px) {
  body::before {
    width: calc(50% - 31rem);
  }
}

@media screen and (min-width: 42em) {
  html {
    font-size: var(--root-font-size-medium);
  }
}
@media screen and (min-width: 124em) {
  html {
    font-size: var(--root-font-size-large);
  }
}

#breadcrumbs > ul {
  height: 1rem;
  margin: -1.5rem 0 0.5rem;
  padding: 0;
  font-size: 0.667rem;
  color: var(--menu-text);
  text-transform: uppercase;
  width: 100%;
  list-style: none;
}
#breadcrumbs > ul > li {
  display: inline;
}
#breadcrumbs > ul > li a {
  color: var(--gray);
  text-decoration: none;
  border-bottom: none;
}

@media print {
  html {
    font-size: var(--root-font-size-print);
  }
}
@page {
  margin: 16mm;
}
.fl {
  float: left;
}

.fr {
  float: right;
}

.mb4 {
  margin-bottom: 4rem;
}

.mb6 {
  margin-bottom: 6rem;
}

.mt0 {
  margin-top: 0;
}

.mt1 {
  margin-top: 1rem;
}

.mt2 {
  margin-top: 2rem;
}

.mt3 {
  margin-top: 3rem;
}

.mt4 {
  margin-top: 4rem;
}

.pb0 {
  padding-bottom: 0;
}

.ml1 {
  margin-left: 1rem;
}

.mr1 {
  margin-right: 1rem;
}

.sixteen-nine {
  position: relative;
}
.sixteen-nine::before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 56.25%;
}
.sixteen-nine > * {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.sixteen-ten {
  position: relative;
}
.sixteen-ten::before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 62.5%;
}
.sixteen-ten > * {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.four-three {
  position: relative;
}
.four-three::before {
  display: block;
  content: "";
  width: 100%;
  padding-top: 75%;
}
.four-three > * {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.sr-only {
  display: none;
  display: unset;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.larger {
  font-size: larger;
}

.smaller {
  font-size: smaller;
}

.clearfix, .sidebar-social::after {
  content: "";
  display: table;
  clear: both;
}

.ellipsis, #breadcrumbs > ul {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.border {
  border: 1px solid var(--border-color);
  transition: border-color 1s ease;
}

@media (min-width: 42em) {
  .border-radius, .lead, .page .aspect-ratio.sixteen-nine.lead {
    border-radius: 0.5rem;
  }
}

.fallback-img {
  background-position: center;
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTYwIiBoZWlnaHQ9IjkwIiB2aWV3Qm94PSIwIDAgMTYwIDkwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuMDQ4ODI4LCAwLCAwLCAwLjA0Nzk5MSwgNTQuOTk5OTczLCAyMC40MjgxNDgpIj4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOnJnYmEoMTI4LDEyOCwxMjgsLjMzKSIgZD0iTTk1OS44ODQgMTI4YzAuMDQwIDAuMDM0IDAuMDgyIDAuMDc2IDAuMTE2IDAuMTE2djc2Ny43N2MtMC4wMzQgMC4wNDAtMC4wNzYgMC4wODItMC4xMTYgMC4xMTZoLTg5NS43N2MtMC4wNDAtMC4wMzQtMC4wODItMC4wNzYtMC4xMTQtMC4xMTZ2LTc2Ny43NzJjMC4wMzQtMC4wNDAgMC4wNzYtMC4wODIgMC4xMTQtMC4xMTRoODk1Ljc3ek05NjAgNjRoLTg5NmMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2NzY4YzAgMzUuMiAyOC44IDY0IDY0IDY0aDg5NmMzNS4yIDAgNjQtMjguOCA2NC02NHYtNzY4YzAtMzUuMi0yOC44LTY0LTY0LTY0djB6Ii8+CiAgICA8cGF0aCBzdHlsZT0iZmlsbDpyZ2JhKDEyOCwxMjgsMTI4LC4zMykiIGQ9Ik04MzIgMjg4YzAgNTMuMDIwLTQyLjk4IDk2LTk2IDk2cy05Ni00Mi45OC05Ni05NiA0Mi45OC05NiA5Ni05NiA5NiA0Mi45OCA5NiA5NnoiLz4KICAgIDxwYXRoIHN0eWxlPSJmaWxsOnJnYmEoMTI4LDEyOCwxMjgsLjMzKSIgZD0iTTg5NiA4MzJoLTc2OHYtMTI4bDIyNC0zODQgMjU2IDMyMGg2NGwyMjQtMTkyeiIvPgogIDwvZz4KPC9zdmc+");
}

hy-push-state a {
  color: var(--body-color);
  transition: color 250ms, text-decoration-color 250ms, border-color 250ms;
}
@supports not ((text-decoration-thickness: initial) and (text-underline-offset: initial)) {
  hy-push-state a {
    text-decoration: none;
    border-bottom: 2px solid;
  }
}
@supports (text-decoration-thickness: initial) and (text-underline-offset: initial) {
  hy-push-state a {
    text-decoration-style: solid;
    text-underline-offset: 0.35rem;
    text-decoration-thickness: 2px;
  }
}
hy-push-state a:hover {
  transition: color 50ms, text-decoration-color 50ms, border-color 50ms;
}
hy-push-state a.no-hover {
  border-bottom: none;
  text-decoration-thickness: unset;
  text-underline-offset: unset;
}

.content a:not(.btn):not(.no-hover) {
  border-color: var(--accent-color-faded);
}
@supports (text-decoration-thickness: initial) and (text-underline-offset: initial) {
  .content a:not(.btn):not(.no-hover) {
    text-decoration-color: var(--accent-color-faded);
  }
}
.content a:not(.btn):not(.no-hover):hover {
  border-color: var(--accent-color);
}
@supports (text-decoration-thickness: initial) and (text-underline-offset: initial) {
  .content a:not(.btn):not(.no-hover):hover {
    text-decoration-color: var(--accent-color);
  }
}

a.btn {
  text-decoration: none;
}

@media print {
  a:not(.no-print-link)::after {
    content: " (" attr(href) ") ";
    color: var(--gray);
    font-size: 62%;
  }
}
.content .aspect-ratio {
  overflow: hidden;
}
.content .aspect-ratio img {
  margin: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background-color: var(--gray-bg);
}

figure, .figure {
  margin-bottom: 2rem;
}
figure > *:first-child, .figure > *:first-child {
  margin-bottom: 1rem;
}

.highlighter-rouge + .figure {
  margin-top: -1.5rem;
}

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

hy-drawer {
  width: 100%;
  position: relative;
  overflow: hidden;
  display: block;
  z-index: 4;
}
@media screen {
  hy-drawer {
    --hy-drawer-width: 100%;
    --hy-drawer-peek-width: .5rem;
    --hy-drawer-box-shadow: 0 0 1rem rgba(0, 0, 0, 0.25);
  }
}
@media screen and (min-width: 64em) {
  hy-drawer {
    position: fixed;
    width: 21rem;
    top: 0;
    left: 0;
    bottom: 0;
    margin-left: 0;
    --hy-drawer-peek-width: 21rem;
  }
  hy-drawer.cover {
    position: relative;
    width: 100%;
  }
}
@media screen and (min-width: 1664px) {
  hy-drawer {
    width: calc(50% - 31rem);
    --hy-drawer-peek-width: calc(50% - 31rem);
  }
}
@media screen {
  hy-drawer.loaded {
    position: static;
  }
}

.sidebar {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  color: rgba(255, 255, 255, 0.75);
  text-align: center;
  min-height: 100vh;
}
.sidebar.invert {
  color: rgba(32, 32, 32, 0.75);
}
.sidebar a {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.2);
  text-decoration-color: rgba(255, 255, 255, 0.2);
}
.sidebar a:hover {
  border-bottom-color: #fff;
  text-decoration-color: #fff;
}
.sidebar.invert a {
  color: #222;
  border-bottom-color: rgba(32, 32, 32, 0.2);
  text-decoration-color: rgba(32, 32, 32, 0.2);
}
.sidebar.invert a:hover {
  border-bottom-color: #222;
  text-decoration-color: #222;
}

hy-drawer.loaded .sidebar {
  min-height: 100%;
}

.sidebar-bg {
  position: absolute;
  top: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  height: 100%;
  background: #202020 center/cover;
}
.sidebar-bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.05);
}
.sidebar-bg.sidebar-overlay::after {
  background: -moz-linear-gradient(top, rgba(32, 32, 32, 0) 0%, rgba(32, 32, 32, 0.5) 50%, rgba(32, 32, 32, 0) 100%);
  background: -webkit-linear-gradient(top, rgba(32, 32, 32, 0) 0%, rgba(32, 32, 32, 0.5) 50%, rgba(32, 32, 32, 0) 100%);
  background: linear-gradient(to bottom, rgba(32, 32, 32, 0) 0%, rgba(32, 32, 32, 0.5) 50%, rgba(32, 32, 32, 0) 100%);
}

.sidebar-sticky {
  position: relative;
  z-index: 3;
  max-width: 21rem;
  padding: 1.5rem;
  contain: content;
}

.sidebar-about .avatar {
  margin-bottom: 1.5rem;
}
.sidebar-about > a.sidebar-title {
  text-decoration: none;
}
.sidebar-about > a.sidebar-title > h2 {
  margin: 0;
  padding-bottom: 0.5rem;
}
.sidebar-about > a.sidebar-title::after {
  content: "";
  display: block;
  border-bottom: 2px solid;
  margin: 0 auto 0.5rem;
  width: 4rem;
  border-color: rgba(255, 255, 255, 0.2);
  transition: border-color 250ms;
}
.sidebar-about > a.sidebar-title:hover::after {
  border-color: rgb(255, 255, 255);
  transition: border-color 50ms;
}

.sidebar.invert .sidebar-about > a.sidebar-title::after {
  border-color: rgba(32, 32, 32, 0.2);
}
.sidebar.invert .sidebar-about > a.sidebar-title:hover::after {
  border-color: #222;
}

.sidebar-nav > ul {
  list-style: none;
  padding-left: 0;
}

.sidebar-nav-item {
  display: inline-block;
  margin-bottom: 0.5rem;
}

@media (min-width: 64em) {
  #_main.no-drawer #_menu {
    display: none;
  }
  #_main.no-drawer .nav-btn-bar > :nth-child(2) {
    border: none;
  }
}

@media print {
  .sidebar {
    display: none;
  }
}
#_swipe {
  position: absolute;
  z-index: 4;
  opacity: 0.33;
  top: 5vw;
  right: 5vw;
  transform: scale(0.67);
}
@media screen and (min-width: 42em) {
  #_swipe {
    top: calc(50% - 48px);
    right: 10vw;
    transform: scale(1);
  }
}

.sidebar-social > ul {
  display: inline-block;
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}
.sidebar-social > ul > li {
  float: left;
}
.sidebar-social > ul > li > a {
  display: inline-block;
  text-align: center;
  font-size: 1.4rem;
  width: 3rem;
  height: 4rem;
  padding: 0.5rem 0;
  line-height: 3rem;
  text-decoration: none;
  border-bottom-width: 2px;
  border-bottom-style: solid;
}
.sidebar-social > ul li + li {
  margin-top: 0;
}

@media print {
  .sidebar-social {
    display: none;
  }
}

.fixed-common, .fixed-bottom, .fixed-top {
  position: fixed;
  left: 0;
  width: 100%;
  z-index: 2;
}

.fixed-top {
  top: 0;
}

.fixed-bottom {
  bottom: 0;
}

.navbar > .content {
  position: relative;
  padding-top: 0;
  padding-bottom: 0;
  min-height: 0;
  max-height: 5rem;
}
.navbar > .content::before {
  content: "";
  position: absolute;
  display: block;
  width: calc(100% - 6rem);
  height: 5rem;
  left: 3rem;
  margin: auto;
  box-shadow: 0 0 2rem rgba(0, 0, 0, 0.25);
  z-index: -1;
}
.navbar.fixed-top > .content::before {
  bottom: 1px;
}
.navbar.fixed-bottom > .content::before {
  top: 1px;
}

.nav-btn-bar {
  margin: 0 -1rem;
  background-color: white;
  background-color: var(--body-bg);
  height: 5rem;
  display: flex;
  align-items: center;
  position: relative;
}
.nav-btn-bar > :first-child, .nav-btn-bar > :last-child {
  border: none;
}

.nav-btn {
  background: none;
  border: none;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 5rem;
  color: var(--menu-text);
  border-right: 1px solid var(--border-color);
  border-left: 1px solid var(--border-color);
  margin-left: -1px;
}

a.nav-btn, button.nav-btn {
  cursor: pointer;
}
a.nav-btn:hover, a.nav-btn:focus, button.nav-btn:hover, button.nav-btn:focus {
  background-image: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05));
}

.nav-span {
  flex: 1;
}

.animation-main {
  opacity: 0;
  pointer-events: none;
}

#_navbar {
  z-index: 3;
  background-color: var(--body-bg);
}

.navbar .loading {
  display: none;
}
@media print {
  .navbar {
    display: none;
  }
}

#markdown-toc {
  margin: 2rem -1rem 2rem calc(-1rem + 1px);
  padding-left: 2.5rem;
  padding-bottom: 0.5rem;
  transition: opacity 300ms ease, transform 300ms ease, border-color 1s ease;
}
#markdown-toc:before {
  left: 1rem;
}

@media screen and (min-width: 1664px) {
  body:not(.no-toc) #markdown-toc {
    position: absolute;
    z-index: 4;
    width: 20.5rem;
    right: 0;
    margin: auto;
    overflow: auto;
    overscroll-behavior: contain;
  }
  body:not(.no-toc) #markdown-toc.toc-hide {
    opacity: 0;
    transform: translateX(-2rem);
  }
  body:not(.no-toc) #markdown-toc.toc-show {
    opacity: 1;
    transform: translateX(0);
  }
  body:not(.no-toc) #markdown-toc.affix {
    position: fixed;
    top: 1rem;
    max-height: calc(100vh - 1rem);
  }
}

@media screen and (min-width: 1664px) {
  body.no-break-layout:not(.no-toc) #markdown-toc {
    width: calc(50% - 31rem);
  }
}

.content {
  margin-left: auto;
  margin-right: auto;
  padding: 8rem 1rem 12rem;
}
@media screen {
  .content {
    padding-left: 1.5rem;
    min-height: 100vh;
  }
}
@media screen and (min-width: 42em) {
  .content {
    max-width: 42rem;
  }
}
@media screen and (min-width: 54em) {
  .content {
    max-width: 48rem;
  }
}
@media screen and (min-width: 64em) {
  .content {
    padding-left: 1rem;
    margin-left: 24rem;
    margin-right: 3rem;
  }
}
@media screen and (min-width: 86em) {
  .content {
    padding-top: 9rem;
    margin-left: 25rem;
    margin-right: 4rem;
    max-width: 54rem;
  }
}
@media screen and (min-width: 1664px) {
  .content {
    margin: auto;
  }
}
@media print {
  .content {
    padding: 1rem;
  }
}

.large-only {
  display: none;
}
@media screen and (min-width: 1664px) {
  .large-only {
    display: block;
  }
}

.avatar {
  width: 7rem;
  height: 7rem;
  border-radius: 100%;
  overflow: hidden;
  display: inline-block;
  position: relative;
  z-index: 1;
}
.avatar img {
  width: 100%;
}

.content .avatar {
  float: right;
  box-sizing: content-box;
  border: 1rem solid var(--body-bg);
  transition: border-color 1s ease;
  margin-top: -1.5rem;
  margin-right: -1rem;
}

article .katex-display, article mjx-container[jax][display=true] {
  padding: 2rem;
}

main > footer.content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  color: var(--gray);
  text-align: center;
  min-height: 0;
  padding-top: 0;
  padding-bottom: 2rem;
}
main > footer.content > p {
  margin-bottom: 0;
}
@media print {
  main > footer.content {
    display: none;
  }
}

@media screen {
  a.external::after,
  a[href*="://"]:not(.no-mark-external):not(.no-mark)::after,
  a.no-push-state:not(.no-mark-external):not(.no-mark)::after {
    content: " \ea7e";
    font-family: "icomoon" !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    font-size: smaller;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: var(--menu-text);
  }
}
@media screen {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    position: relative;
    width: calc(100% + 2rem);
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }
}
@media screen and (min-width: 42rem) {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    width: calc(100% + 50vw - 19rem);
  }
}
@media screen and (min-width: 54em) {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    width: calc(100% + 50vw - 22rem);
  }
}
@media screen and (min-width: 64em) {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    width: calc(100vw - 24rem);
  }
}
@media screen and (min-width: 86em) {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    width: calc(100% + 100vw - 77rem);
  }
}
@media screen and (min-width: 1664px) {
  pre, table:not(.highlight), .katex-display, .break-layout, mjx-container[jax=CHTML][display=true] {
    width: calc(100% + 50vw - 46rem + 2px);
  }
}

body:not(.no-break-layout) .katex-display > .katex, body:not(.no-break-layout) mjx-container[jax][display=true] {
  text-align: left !important;
}

body.no-break-layout {
  width: calc(100% + 6rem);
}

@media screen and (min-width: 1664px) {
  body.no-toc:not(.no-break-layout) pre, body.no-toc:not(.no-break-layout) table:not(.highlight), body.no-toc:not(.no-break-layout) .katex-display, body.no-toc:not(.no-break-layout) .break-layout, body.no-toc:not(.no-break-layout) mjx-container[jax=CHTML][display=true] {
    width: calc(100% + 50vw - 25rem);
  }
}

.note:before {
  content: "Note";
}

.page > header > .note-sm:before, .page > header > .note:before, .page > header > #markdown-toc:before {
  content: "Description";
}

#markdown-toc:before {
  content: "Table of Contents";
}

.layout-resume .note-sm:before, .layout-resume .note:before, .layout-resume #markdown-toc:before {
  content: "Summary";
}

.loading > [class*=icon-] {
  display: inline-block;
  -webkit-animation: rotate 2s infinite linear both;
  animation: rotate 2s infinite linear both;
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
}

@-webkit-keyframes rotate {
  0% {
    -webkit-transform: rotateZ(0);
    transform: rotateZ(0);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}
@keyframes rotate {
  0% {
    -webkit-transform: rotateZ(0);
    transform: rotateZ(0);
  }
  100% {
    -webkit-transform: rotateZ(360deg);
    transform: rotateZ(360deg);
  }
}
.tippy-box[data-animation=fade][data-state=hidden] {
  opacity: 0;
}

[data-tippy-root] {
  max-width: calc(100vw - 10px);
}

.tippy-box {
  position: relative;
  background-color: #333;
  color: white;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.4;
  outline: 0;
  transition-property: transform, visibility, opacity;
}
.tippy-box[data-placement^=top] > .tippy-arrow {
  bottom: 0;
}
.tippy-box[data-placement^=top] > .tippy-arrow::before {
  bottom: -7px;
  left: 0;
  border-width: 8px 8px 0;
  border-top-color: initial;
  transform-origin: center top;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow {
  top: 0;
}
.tippy-box[data-placement^=bottom] > .tippy-arrow::before {
  top: -7px;
  left: 0;
  border-width: 0 8px 8px;
  border-bottom-color: initial;
  transform-origin: center bottom;
}
.tippy-box[data-placement^=left] > .tippy-arrow {
  right: 0;
}
.tippy-box[data-placement^=left] > .tippy-arrow::before {
  border-width: 8px 0 8px 8px;
  border-left-color: initial;
  right: -7px;
  transform-origin: center left;
}
.tippy-box[data-placement^=right] > .tippy-arrow {
  left: 0;
}
.tippy-box[data-placement^=right] > .tippy-arrow::before {
  left: -7px;
  border-width: 8px 8px 8px 0;
  border-right-color: initial;
  transform-origin: center right;
}
.tippy-box[data-inertia][data-state=visible] {
  transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
}

.tippy-arrow {
  width: 16px;
  height: 16px;
  color: #333;
}
.tippy-arrow::before {
  content: "";
  position: absolute;
  border-color: transparent;
  border-style: solid;
}

.tippy-content {
  position: relative;
  padding: 5px 9px;
  z-index: 1;
}

[data-tippy-root] {
  --body-color: var(--inv-body-color);
  --body-bg: var(--inv-body-bg);
}

.tippy-box {
  color: var(--body-color) !important;
  background-color: var(--body-bg) !important;
}

.tippy-content {
  font-family: Noto Sans, Helvetica, Arial, sans-serif !important;
  font-weight: normal !important;
}
.tippy-content a {
  text-decoration: none;
  border: none;
}
.tippy-content a:after {
  color: var(--body-color) !important;
}

.tippy-arrow {
  color: var(--body-bg) !important;
}

.dark-mode .tippy-content {
  -webkit-font-smoothing: initial;
  -moz-osx-font-smoothing: initial;
}

.light-mode .tippy-content {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body .highlight,
body pre.highlight {
  color: #383a42;
}
body .highlight .ge {
  font-style: italic;
}
body .highlight .gs {
  font-weight: 700;
}
body .highlight .ow {
  font-weight: 700;
}
body .highlight .n,
body .highlight .nf,
body .highlight .nn,
body .highlight .o,
body .highlight .p {
  color: #383a42;
}
body .highlight .c,
body .highlight .c1,
body .highlight .cm,
body .highlight .cp,
body .highlight .cs {
  color: #a0a1a7;
  font-style: italic;
}
body .highlight .sr,
body .highlight .ss {
  color: #0184bc;
}
body .highlight .k,
body .highlight .kc,
body .highlight .kd,
body .highlight .kn,
body .highlight .kp,
body .highlight .kr,
body .highlight .kt {
  color: #a626a4;
}
body .highlight .l,
body .highlight .ld,
body .highlight .s,
body .highlight .s1,
body .highlight .s2,
body .highlight .sb,
body .highlight .sc,
body .highlight .sd,
body .highlight .se,
body .highlight .sh,
body .highlight .si,
body .highlight .sx {
  color: #50a14f;
}
body .highlight .nt,
body .highlight .nx,
body .highlight .vi {
  color: #e45649;
}
body .highlight .il,
body .highlight .m,
body .highlight .mf,
body .highlight .mh,
body .highlight .mi,
body .highlight .mo,
body .highlight .na {
  color: #986801;
}
body .highlight .bp,
body .highlight .nb,
body .highlight .nc,
body .highlight .nd,
body .highlight .ne,
body .highlight .ni,
body .highlight .nl,
body .highlight .no,
body .highlight .nv,
body .highlight .py,
body .highlight .vc,
body .highlight .vg {
  color: #c18401;
}
body .highlight .gd {
  color: #ff1414;
}
body .highlight .gi {
  color: #2db448;
}
body .highlight .w {
  color: #f8f8f2;
}
body .highlight .cpf {
  color: navy;
}
body .highlight .gu {
  color: #75715e;
}
body .highlight .lineno {
  color: #9d9d9f;
  user-select: none;
}
body .highlight .ln {
  color: #9d9d9f;
  user-select: none;
}
body .highlight .ln:after {
  content: " ";
}
body .highlight .hll {
  color: #383a42;
  background-color: #e5e5e6;
}
body .highlight .hl {
  color: #383a42;
  background-color: #e5e5e6;
}
body .highlight .language-json .w + .s2 {
  color: #e45649;
}
body .highlight .language-json .kc {
  color: #0184bc;
}

@media screen {
  body.light-mode .highlight,
  body.light-mode pre.highlight {
    color: #383a42;
  }
  body.light-mode .highlight .ge {
    font-style: italic;
  }
  body.light-mode .highlight .gs {
    font-weight: 700;
  }
  body.light-mode .highlight .ow {
    font-weight: 700;
  }
  body.light-mode .highlight .n,
  body.light-mode .highlight .nf,
  body.light-mode .highlight .nn,
  body.light-mode .highlight .o,
  body.light-mode .highlight .p {
    color: #383a42;
  }
  body.light-mode .highlight .c,
  body.light-mode .highlight .c1,
  body.light-mode .highlight .cm,
  body.light-mode .highlight .cp,
  body.light-mode .highlight .cs {
    color: #a0a1a7;
    font-style: italic;
  }
  body.light-mode .highlight .sr,
  body.light-mode .highlight .ss {
    color: #0184bc;
  }
  body.light-mode .highlight .k,
  body.light-mode .highlight .kc,
  body.light-mode .highlight .kd,
  body.light-mode .highlight .kn,
  body.light-mode .highlight .kp,
  body.light-mode .highlight .kr,
  body.light-mode .highlight .kt {
    color: #a626a4;
  }
  body.light-mode .highlight .l,
  body.light-mode .highlight .ld,
  body.light-mode .highlight .s,
  body.light-mode .highlight .s1,
  body.light-mode .highlight .s2,
  body.light-mode .highlight .sb,
  body.light-mode .highlight .sc,
  body.light-mode .highlight .sd,
  body.light-mode .highlight .se,
  body.light-mode .highlight .sh,
  body.light-mode .highlight .si,
  body.light-mode .highlight .sx {
    color: #50a14f;
  }
  body.light-mode .highlight .nt,
  body.light-mode .highlight .nx,
  body.light-mode .highlight .vi {
    color: #e45649;
  }
  body.light-mode .highlight .il,
  body.light-mode .highlight .m,
  body.light-mode .highlight .mf,
  body.light-mode .highlight .mh,
  body.light-mode .highlight .mi,
  body.light-mode .highlight .mo,
  body.light-mode .highlight .na {
    color: #986801;
  }
  body.light-mode .highlight .bp,
  body.light-mode .highlight .nb,
  body.light-mode .highlight .nc,
  body.light-mode .highlight .nd,
  body.light-mode .highlight .ne,
  body.light-mode .highlight .ni,
  body.light-mode .highlight .nl,
  body.light-mode .highlight .no,
  body.light-mode .highlight .nv,
  body.light-mode .highlight .py,
  body.light-mode .highlight .vc,
  body.light-mode .highlight .vg {
    color: #c18401;
  }
  body.light-mode .highlight .gd {
    color: #ff1414;
  }
  body.light-mode .highlight .gi {
    color: #2db448;
  }
  body.light-mode .highlight .w {
    color: #f8f8f2;
  }
  body.light-mode .highlight .cpf {
    color: navy;
  }
  body.light-mode .highlight .gu {
    color: #75715e;
  }
  body.light-mode .highlight .lineno {
    color: #9d9d9f;
    user-select: none;
  }
  body.light-mode .highlight .ln {
    color: #9d9d9f;
    user-select: none;
  }
  body.light-mode .highlight .ln:after {
    content: " ";
  }
  body.light-mode .highlight .hll {
    color: #383a42;
    background-color: #e5e5e6;
  }
  body.light-mode .highlight .hl {
    color: #383a42;
    background-color: #e5e5e6;
  }
  body.light-mode .highlight .language-json .w + .s2 {
    color: #e45649;
  }
  body.light-mode .highlight .language-json .kc {
    color: #0184bc;
  }
}
