/* fira-sans-cyrillic-ext-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(0bb491c13dfdef41fd12.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* fira-sans-cyrillic-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(038579499fa490304b9c.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* fira-sans-greek-ext-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(d793f0398b22e6d9e5ad.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* fira-sans-greek-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(816df09f04129408b415.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* fira-sans-vietnamese-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(c5a3bbdcaab47e0d8a49.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* fira-sans-latin-ext-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(27c261afb50b75341595.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* fira-sans-latin-200-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 200;
  src: url(6fc8caac73945ffe62a0.woff2) format('woff2'), url(fde79853e0e6ded67d96.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* fira-sans-cyrillic-ext-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(e2d54a21d31645a6a514.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* fira-sans-cyrillic-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(42959d3a2a32561ff394.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* fira-sans-greek-ext-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(7053d80c4066adcee6e3.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* fira-sans-greek-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(acc872e9149d78aeba9d.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* fira-sans-vietnamese-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(51ccfea37e4062064055.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* fira-sans-latin-ext-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(ed0d693025283f94c85b.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* fira-sans-latin-200-italic*/
@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 200;
  src: url(ebbceaa3237e3b98b015.woff2) format('woff2'), url(da77fba8e642f43960b5.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* fira-sans-cyrillic-ext-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(bdee102343b8207c870c.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* fira-sans-cyrillic-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(da27354a25e92aa1adf0.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* fira-sans-greek-ext-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(9ec8bc140a8c9b1a867b.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* fira-sans-greek-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(bf2c6892a1c7862af89b.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* fira-sans-vietnamese-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(e7b617fd7baf66bd027c.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* fira-sans-latin-ext-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(6bc476ebf08cbd8a90ce.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* fira-sans-latin-300-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(5050dc784d6713f275f7.woff2) format('woff2'), url(ea62ad735986d930ec14.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* fira-sans-cyrillic-ext-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(d68444561f969b0ec505.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* fira-sans-cyrillic-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(9bfda67e3f43aa0ea53d.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* fira-sans-greek-ext-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(2a7a57f95a4f314a9945.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* fira-sans-greek-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fc6dfdfac47f5b7efb29.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* fira-sans-vietnamese-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fe7c1b42f70ca2c9ae55.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* fira-sans-latin-ext-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(de53e7e7580bf5bc0690.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* fira-sans-latin-400-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(684226288210a40c6acc.woff2) format('woff2'), url(a53186151b57dec16d41.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* fira-sans-cyrillic-ext-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(b0cabda2ce257d7edc6f.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* fira-sans-cyrillic-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(cb0ad9751b707e59d23e.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* fira-sans-greek-ext-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(d0607fe678a90b94ceae.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* fira-sans-greek-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(b2d3be414318070023ae.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* fira-sans-vietnamese-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(74957d08843dfba79269.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* fira-sans-latin-ext-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(a356cec6a04d2aa3d971.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* fira-sans-latin-500-normal*/
@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(6f2008a3bdf4b85d393b.woff2) format('woff2'), url(e75069e821ee72379198.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* source-code-pro-cyrillic-ext-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(0573a2ae2e466eba0356.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}
/* source-code-pro-cyrillic-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(e5904d7796f14a6284b7.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
/* source-code-pro-greek-ext-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(cc20b15eacd73fe42dfe.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+1F00-1FFF;
}
/* source-code-pro-greek-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(6c09b07bbd10f336c332.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0370-03FF;
}
/* source-code-pro-vietnamese-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(add6a1fe8239b714d178.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB;
}
/* source-code-pro-latin-ext-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(1d8ea3d31970f45e1efa.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* source-code-pro-latin-400-normal*/
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(06101a7ccf85875d015f.woff2) format('woff2'), url(7df0968e0f981f08d253.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/**
 * Fork of Eric Meyer's Reset
 * Includes Default box-sizing/typekit
 */
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;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}

* {
  box-sizing: border-box;
}

.hljs-attr {
  color: #9cdcfe;
}

.hljs-number {
  color: #b5cea8;
}

.hljs-tag,
.hljs-type,
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-strong,
.hljs-name {
  color: #569cd6;
}

.hljs-code {
  color: #66d9ef;
}

.hljs-class,
.hljs-title,
.hljs-built_in {
  color: #4ec9b0;
}

.hljs-meta,
.hljs-attribute,
.hljs-symbol,
.hljs-regexp,
.hljs-link,
.hljs-meta-keyword,
.hljs-meta > .hljs-keyword {
  color: #c586c0;
}

.hljs-string,
.hljs-bullet,
.hljs-subst,
.hljs-section,
.hljs-emphasis,
.hljs-builtin-name,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-addition,
.hljs-variable,
.hljs-template-tag,
.hljs-template-variable,
.hljs-meta-string {
  color: #ce9178;
}

.hljs-comment,
.hljs-quote,
.hljs-deletion {
  color: #608b4e;
}

/* for block of numbers */
.hljs-ln-n::before {
  content: attr(data-line-number);
}
.hljs-ln-numbers {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;

  text-align: right;
  color: rgba(238,238,238,0.13333);
  vertical-align: top;
  padding-right: 1em;
  width: 2.5em;

  /* your custom style here */
}


/* dark cobalt */

/**
* Base Styles
*/
:root {
    color-scheme: dark;
}

html {
    scroll-behavior: smooth;
    scrollbar-color: rgba(0, 0, 0, 0.75) rgba(0, 0, 0, 0.1);
}

html,
body {
    margin: 0;
    padding: 0;
    width: 100%;
    font-family: 'Fira Sans', sans-serif;
    font-size: calc(16.5px);
    font-weight: 300;
    color: #fff;
    z-index: -2;
    scroll-margin-top: 1.5em;
}

body {
    background-color: #15191f;
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
    overflow-x: hidden;
    overflow-y: -moz-scrollbars-none, scroll;
}

input {
    border: 0 none;
    background: rgba(0, 0, 0, 0);
    color: #fff;
}

input:focus {
        outline: none;
    }

a {
    -webkit-text-decoration: none;
    text-decoration: none;
    cursor: pointer;
    outline: 0;
}

a:link,
    a:visited {
        color: #fff;
    }

a:hover {
        color: #abcde8;
    }

a:active {
        color: #4c8abd;
    }

h1,
h2,
h3,
h4,
h5,
h6 {
    font-style: normal;
    font-size: 3em;
    font-weight: 200;
}

h2 {
    font-size: 2em;
}

h3 {
    font-size: 1.6666em;
}

h4 {
    font-size: 1.5em;
}

h5 {
    font-size: 1.12em;
}

h6 {
    font-size: 1.05em;
}

img {
    max-width: 100%;
}

table {
    display: table;
}

table,
span {
    max-width: 100%;
}

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

strong {
    font-weight: 500;
}

p {
    line-height: 1.75em;
}

p a:link,
        p a:visited {
            color: #639dcc;
        }

p a:hover {
            color: #abcde8;
        }

p a:active {
            color: #4c8abd;
        }

pre {
    text-shadow: 0 0px 0px rgba(0, 0, 0, 0);
    background-color: rgba(0, 0, 0, 0.23);
    padding: 0.5em;
    overflow: auto;
    border-radius: 0.5em;
    margin: 1em 0;
    border: 2px solid rgba(255,255,255,0.03137);
}

code {
    font-family: 'Source Code Pro';
    line-height: 1.5em;
    font-weight: 400;
    font-feature-settings: "calt";
    font-variant-ligatures: contextual;
}

select {
    background-color: #0d0f11;
    border: 0;
    color: #fff;
    padding: 0.4em;
    border-radius: 0.25em;
    border: none;
    outline: none;
}

select::-ms-expand {
        display: none;
    }

::-moz-selection {
    background-color: #147ea1;
}

::selection {
    background-color: #147ea1;
}

::-webkit-scrollbar {
    width: auto;
    width: initial;
}

::-webkit-scrollbar-corner {
    background: rgba(0, 0, 0, 0);
}

::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.5);
}

body::-webkit-scrollbar-track {
    background: #101318;
}

::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.75);
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.85);
}

::-webkit-scrollbar-thumb:active {
    background: rgba(0, 0, 0, 0.85);
}

/* Buttons */
::-webkit-scrollbar-button {
    border-style: solid;
    height: 1em;
    width: 1em;
}

/* Up */
::-webkit-scrollbar-button:vertical:decrement {
    border-width: 0 0.5em 0.75em 0.5em;
    border-color: transparent transparent rgba(0,0,0,0.26667) transparent;
}

::-webkit-scrollbar-button:vertical:decrement:hover {
    border-color: transparent transparent rgba(0,0,0,0.66667) transparent;
}

/* Down */
::-webkit-scrollbar-button:vertical:increment {
    border-width: 0.75em 0.5em 0 0.5em;
    border-color: rgba(0,0,0,0.26667) transparent transparent transparent;
}

::-webkit-scrollbar-button:vertical:increment:hover {
    border-color: rgba(0,0,0,0.66667) transparent transparent transparent;
}

/* Left */
::-webkit-scrollbar-button:horizontal:decrement {
    border-width: 0.5em 0.75em 0.5em 0;
    border-color: transparent rgba(0,0,0,0.26667) transparent transparent;
}

::-webkit-scrollbar-button:horizontal:decrement:hover {
    border-color: transparent rgba(0,0,0,0.66667) transparent transparent;
}

/* Right */
::-webkit-scrollbar-button:horizontal:increment {
    border-width: 0.5em 0 0.5em 0.75em;
    border-color: transparent transparent transparent rgba(0,0,0,0.26667);
}

::-webkit-scrollbar-button:horizontal:increment:hover {
    border-color: transparent transparent transparent rgba(0,0,0,0.66667);
}

ul,
pre,
table {
    scrollbar-color: rgba(0, 0, 0, 0.175) rgba(0, 0, 0, 0.04);
}

ul::-webkit-scrollbar, pre::-webkit-scrollbar, table::-webkit-scrollbar {
        width: auto;
        width: initial;
    }

ul::-webkit-scrollbar-thumb, pre::-webkit-scrollbar-thumb, table::-webkit-scrollbar-thumb {
        background: rgba(0, 0, 0, 0.175);
    }

ul::-webkit-scrollbar-track, pre::-webkit-scrollbar-track, table::-webkit-scrollbar-track {
        background: rgba(0, 0, 0, 0.04);
    }

ul::-webkit-scrollbar-thumb:hover, pre::-webkit-scrollbar-thumb:hover, table::-webkit-scrollbar-thumb:hover {
        background: rgba(0, 0, 0, 0.25);
    }

ul::-webkit-scrollbar-thumb:active, pre::-webkit-scrollbar-thumb:active, table::-webkit-scrollbar-thumb:active {
        background: rgba(0, 0, 0, 0.25);
    }
/* Article Specific CSS */

article .language-hlsl::before {
        content: ' HLSL';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-glsl::before {
        content: ' GLSL';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-wgsl::before {
        content: ' WGSL';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-msl::before {
        content: ' MSL';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-asm::before {
        content: ' ASM';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-c::before {
        content: ' C';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-cpp::before {
        content: ' C++';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-py::before {
        content: ' Python';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-cs::before {
        content: ' C#';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-m::before {
        content: ' Objective C';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-mm::before {
        content: ' Objective C++';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-bash::before {
        content: ' Bash';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-rust::before {
        content: ' Rust';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-js::before {
        content: ' JavaScript';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-ts::before {
        content: ' TypeScript';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-bash::before {
        content: ' Bash';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-yml::before {
        content: ' YML';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-yaml::before {
        content: ' Yaml';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-groovy::before {
        content: ' Grovy';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-cmake::before {
        content: ' CMake';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article .language-txt::before {
        content: ' Text';
        display: block;
        font-size: 0.75rem;
        opacity: 0.5;
    }

article p {
        line-height: 1.75em;
    }

article img {
        display: block;
        margin: auto;
        position: relative;
    }

article img[title]::after {
            content: attr(title);
            text-align: center;
            display: inline-block;
            font-weight: 300;
            font-style: italic;
        }

article blockquote {
        border-left-width: 0.5em;
        background-color: rgba(37, 83, 117, 0.151);
        border-top-right-radius: 1em;
        border-bottom-right-radius: 1em;
        padding: 1em 2em;
        margin: 0 0 1.1em;
        border-left: 0.5em solid rgba(54, 140, 202, 0.52);
    }

article strong {
        font-weight: 500;
    }

article > p {
        padding: 1em 0;
    }

article h1,
    article h2,
    article h3,
    article h4,
    article h5,
    article h6,
    article ul,
    article ol {
        padding: 1em 0;
    }

article a[href^='#'] {
            font-weight: 400;
            white-space: nowrap;
        }

article a:hover {
            -webkit-text-decoration: underline;
            text-decoration: underline;
        }

article a[title]::after {
            content: '“' attr(title) '”';
            text-align: center;
            display: inline-block;
            font-weight: 300;
            width: 100%;
            font-style: italic;
            line-height: 2em;
        }

article ul {
        list-style: disc;
        padding-left: 2em;
    }

article ol {
        list-style: decimal;
        padding-left: 2em;
    }

article ol > ol {
            list-style: lower-alpha;
        }

article ol > ol > ol {
                list-style: lower-roman;
            }

article ul,
    article ol {
        line-height: 1.5em;
    }

article > table {
        display: block;
        line-height: 2em;
        overflow-x: auto;
        max-width: 80vw;
    }

article > table th {
            padding: 0.5em 0.7em;
            font-weight: 500;
        }

article > table tr:nth-child(2n) {
                background-color: rgba(0, 0, 0, 0.3);
            }

article > table tr td {
                padding: 0.4em 0.7em;
            }

article pre {
        max-height: 75vh;
    }

article pre code {
            width: 100%;
        }

article pre table {
            width: 100%;
        }

article pre table tr:hover {
                    background-color: rgba(20,126,161,0.06667);
                }

article h1,
    article h2,
    article h3,
    article td {
        border-left: 0em solid rgb(78, 160, 232);
        transition: border-left 0.3s ease 0s;
    }

article h1:target, article h2:target, article h3:target, article td:target {
            border-left: 0.5em solid rgb(78, 160, 232);
            padding-left: 0.5em;
            scroll-margin-top: 0.5em;
        }

article li a:link,
            article li a:visited {
                color: #639dcc;
            }

article li a:hover {
                color: #abcde8;
            }

article li a:active {
                color: #4c8abd;
            }

article hr {
        border: none;
        text-align: center;
        font-size: 1.2em;
    }

article hr::before {
            content: '...';
            letter-spacing: 0.5em;
            line-height: 2em;
        }

article p > code,
    article p > em > code,
    article p > strong > code {
        background-color: rgba(0, 0, 0, 0.2);
        border-radius: 0.5em;
        padding: 0.2em 0.4em;
        border: 2px solid rgba(255,255,255,0.03137);
        color: #d3d3d3;
    }

article .profile-picture {
        display: inline;
        margin: 0;
        border-radius: 100%;
        width: 1.625em;
        vertical-align: middle;
        padding: 0.125em;
    }

article .markademic-profile {
        display: inline;
        margin: 0;
        border-radius: 100%;
        width: 1.5em;
        vertical-align: middle;
    }

.katex-display {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2em 0;
}

.markademic-citename {
    font-weight: 400;
}

.markademic-citations {
    max-height: 50vh;
    font-size: 0.75rem;
    display: block;
    border-radius: .5em;
    opacity: .875;
    background: rgba(0,0,0,0.09412);
}

.markademic-citations::before {
        content: '∴ References';
        font-size: 1.33333em;
        font-weight: 300;
        line-height: 2.5em;
        padding: .5em;
    }

.markademic-citations a:link,
        .markademic-citations a:visited {
            color: #639dcc;
        }

.markademic-citations a:hover {
            color: #abcde8;
        }

.markademic-citations a:active {
            color: #4c8abd;
        }

.markademic-citations tbody {
        width: 100%;
        display: block;
    }

.markademic-citations tr {
        width: 100%;
        display: block;
        background-color: rgba(0, 0, 0, 0.05);
    }

.markademic-citations tr:nth-child(2n) {
            background-color: rgba(0, 0, 0, 0.1);
        }

.markademic-citations {
    margin: 0;
    width: 100%;
}

.markademic-symbols::before {
        content: '∑ Symbols';
        font-size: 2em;
        font-weight: 100;
        line-height: 2em;
    }

/* Buttons */

.btn {
    display: inline-block;
    box-shadow: 0 10em 0 rgba(255, 255, 255, 0) inset;
    -webkit-text-decoration: none;
    text-decoration: none;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.3);
    transition: box-shadow 0.3s ease-out, background-color 0.3s ease-out;
    cursor: pointer;
    border-radius: 2em;
    border-width: 0.1em;
    border-style: solid;
    margin: 0.5em 0.25em;
    padding: 0.75em 1.5em;
}

.btn:not(:hover) {
        background-color: transparent !important;
    }

.btn:active {
        box-shadow: 0 10em 0 rgba(0, 0, 0, 0.4) inset;
    }

a.btn {
    -webkit-text-decoration: none;
    text-decoration: none;
    color: #eee;
}

a.btn:hover {
        color: #fff;
    }

a.btn:active {
        color: #ddd;
    }

/* Loading Screen */

.ag-loading-screen {
    display: flex;
    width: 100vw;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.ag-loading {
    width: 160px;
    margin: 0 auto;
    display: block;
}

.ag-loading path {
        fill: none;
        stroke: #fff;
        stroke-width: 2;
        stroke-miterlimit: 10;
        animation: ag-loading-ani 1.75s ease infinite;
        stroke-dasharray: 248.25230407714844;
        stroke-dashoffset: 248.25230407714844;
    }

@keyframes ag-loading-ani {
    from {
    }
    to {
        stroke-dashoffset: -248.25230407714844;
    }
}

.animation-backraise {
    transition: background-color 0.3s ease;
    background-color: rgba(0, 0, 0, 0);
}

.animation-backraise:hover {
        background-color: rgba(23, 26, 30, 0.5);
    }

@keyframes fade-from-top {
    from {
        opacity: 0;
        transform: translateY(-2em);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animation-fadedown {
    opacity: 0;
    animation: fade-from-top 0.171s ease-in forwards;
}

.animation-fadedown:nth-child(1) {
        animation-delay: 100ms;
    }

.animation-fadedown:nth-child(2) {
        animation-delay: 200ms;
    }

.animation-fadedown:nth-child(3) {
        animation-delay: 300ms;
    }

.animation-fadedown:nth-child(4) {
        animation-delay: 400ms;
    }

.animation-fadedown:nth-child(5) {
        animation-delay: 500ms;
    }

.animation-fadedown:nth-child(6) {
        animation-delay: 600ms;
    }

.animation-fadedown:nth-child(7) {
        animation-delay: 700ms;
    }

.animation-fadedown:nth-child(8) {
        animation-delay: 800ms;
    }

.animation-fadedown:nth-child(9) {
        animation-delay: 900ms;
    }

.animation-fadedown:nth-child(10) {
        animation-delay: 1000ms;
    }

.animation-fadedown:nth-child(11) {
        animation-delay: 1100ms;
    }

.animation-fadedown:nth-child(12) {
        animation-delay: 1200ms;
    }

@keyframes ani-swing {
    20% {
        transform: rotate3d(0, 0, 1, 15deg);
    }

    40% {
        transform: rotate3d(0, 0, 1, -10deg);
    }

    60% {
        transform: rotate3d(0, 0, 1, 5deg);
    }

    80% {
        transform: rotate3d(0, 0, 1, -5deg);
    }

    to {
        transform: rotate3d(0, 0, 1, 0deg);
    }
}
.animation-swing {
    transform-origin: bottom center;
    animation: ani-swing 3s ease forwards;
}

@keyframes ani-bounce {
    0% {
        transform: scale(0);
    }
    80% {
        transform: scale(1.02);
    }
    80% {
        transform: scale(0.98);
    }
    100% {
        transform: scale(1);
    }
}
.animation-bounce {
    animation: ani-bounce .3s ease-in-out forwards;
}

.animation-fade-from-top {
    animation: fade-from-top 0.171s ease-in forwards;
}
.animation-colortransition {
    transition: color 0.3s ease;
}

.media-query-flex {
    flex-direction: row;
}

@media only screen and (max-width: 768px) {

.media-query-flex {
        flex-direction: column !important
}

.media-query-flex {
        /* For mobile phones: */
}
    }

.utterances {
    margin-left: 0;
}
.react-utterances .utterances {
        max-width: 54em;
    }

/* stylelint-disable font-family-no-missing-generic-family-keyword */
@font-face {
  font-family: 'KaTeX_AMS';
  src: url(73ea273a72f4aca30ca5.woff2) format('woff2'), url(d562e886c52f12660a41.woff) format('woff'), url(853be92419a6c3766b9a.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Caligraphic';
  src: url(a1abf90dfd72792a577a.woff2) format('woff2'), url(d757c535a2e5902f1325.woff) format('woff'), url(7489a2fbfb9bfe704420.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Caligraphic';
  src: url(d6484fce1ef428d5bd94.woff2) format('woff2'), url(db074fa22cf224af93d7.woff) format('woff'), url(7e873d3833eb108a0758.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Fraktur';
  src: url(931d67ea207ab37ee693.woff2) format('woff2'), url(354501bac435c3264834.woff) format('woff'), url(4c761b3711973ab04edf.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Fraktur';
  src: url(172d3529b26f8cedef6b.woff2) format('woff2'), url(6fdf0ac577be0ba82a4c.woff) format('woff'), url(ed305b5434865e06ffde.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Main';
  src: url(39890742bc957b368704.woff2) format('woff2'), url(0c3b8929d377c0e9b2f3.woff) format('woff'), url(8169508bf58f8bd92ad8.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Main';
  src: url(20f389c4120be058d80a.woff2) format('woff2'), url(428978dc7837d46de091.woff) format('woff'), url(828abcb200061cffbaae.ttf) format('truetype');
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: 'KaTeX_Main';
  src: url(fe2176f79edaa716e621.woff2) format('woff2'), url(fd947498bc16392e76c2.woff) format('woff'), url(fa675e5e4bec9eb250b6.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: 'KaTeX_Main';
  src: url(f650f111a3b890d116f1.woff2) format('woff2'), url(4f35fbcc9ee8614c2bcc.woff) format('woff'), url(9eba1d77abcf2aa6e94e.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Math';
  src: url(dcbcbd93bac0470b462d.woff2) format('woff2'), url(3f07ed67f06c720120ce.woff) format('woff'), url(bf2d440b3a42ea78a998.ttf) format('truetype');
  font-weight: bold;
  font-style: italic;
}
@font-face {
  font-family: 'KaTeX_Math';
  src: url(6d3d25f4820d0da8f01f.woff2) format('woff2'), url(96759856b4e70f3a8338.woff) format('woff'), url(8a5f936332e8028c7278.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(95591a929f0d32aa282a.woff2) format('woff2'), url(b9cd458ac6d5889ff9c3.woff) format('woff'), url(5b49f4993ae22d7975b4.ttf) format('truetype');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(7d393d382f3e7fb1c637.woff2) format('woff2'), url(8d593cfaa96238d5e2f8.woff) format('woff'), url(b257a18c016f37ee4543.ttf) format('truetype');
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: 'KaTeX_SansSerif';
  src: url(cd5e231e0cc53b2cb2c0.woff2) format('woff2'), url(02271ec5cb9f5b4588ac.woff) format('woff'), url(2f7bc363fc5424ebda59.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Script';
  src: url(c81d1b2a4b75d3eded60.woff2) format('woff2'), url(073b3402d036714b4370.woff) format('woff'), url(fc9ba5249878cd8f8d88.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Size1';
  src: url(6eec866c69313624be60.woff2) format('woff2'), url(0108e89c9003e8c14ea3.woff) format('woff'), url(6de7d4b539221a49e9e2.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Size2';
  src: url(2960900c4f271311eb36.woff2) format('woff2'), url(3a99e70aee4076660d38.woff) format('woff'), url(57f5c1837853986ea1db.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Size3';
  src: url(e1951519f6f0596f7356.woff2) format('woff2'), url(7947224e8a9914fa332b.woff) format('woff'), url(8d6b6822586eea3d3b20.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Size4';
  src: url(e418bf257af1052628d8.woff2) format('woff2'), url(aeffd8025cba3647f1a6.woff) format('woff'), url(4ad7c7e8bb8d10a34bb7.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'KaTeX_Typewriter';
  src: url(c295e7f71970f03c0549.woff2) format('woff2'), url(4c6b94fd1d07f8beff7c.woff) format('woff'), url(c5c02d763c89380dcb4e.ttf) format('truetype');
  font-weight: normal;
  font-style: normal;
}
.katex {
  font: normal 1.21em KaTeX_Main, Times New Roman, serif;
  line-height: 1.2;
  text-indent: 0;
  text-rendering: auto;
}
.katex * {
  -ms-high-contrast-adjust: none !important;
}
.katex * {
  border-color: currentColor;
}
.katex .katex-version::after {
  content: "0.16.4";
}
.katex .katex-mathml {
  /* Accessibility hack to only show to screen readers
         Found at: http://a11yproject.com/posts/how-to-hide-content/ */
  position: absolute;
  clip: rect(1px, 1px, 1px, 1px);
  padding: 0;
  border: 0;
  height: 1px;
  width: 1px;
  overflow: hidden;
}
.katex .katex-html {
  /* \newline is an empty block at top level, between .base elements */
}
.katex .katex-html > .newline {
  display: block;
}
.katex .base {
  position: relative;
  display: inline-block;
  white-space: nowrap;
  width: -moz-min-content;
  width: min-content;
}
.katex .strut {
  display: inline-block;
}
.katex .textbf {
  font-weight: bold;
}
.katex .textit {
  font-style: italic;
}
.katex .textrm {
  font-family: KaTeX_Main;
}
.katex .textsf {
  font-family: KaTeX_SansSerif;
}
.katex .texttt {
  font-family: KaTeX_Typewriter;
}
.katex .mathnormal {
  font-family: KaTeX_Math;
  font-style: italic;
}
.katex .mathit {
  font-family: KaTeX_Main;
  font-style: italic;
}
.katex .mathrm {
  font-style: normal;
}
.katex .mathbf {
  font-family: KaTeX_Main;
  font-weight: bold;
}
.katex .boldsymbol {
  font-family: KaTeX_Math;
  font-weight: bold;
  font-style: italic;
}
.katex .amsrm {
  font-family: KaTeX_AMS;
}
.katex .mathbb,
.katex .textbb {
  font-family: KaTeX_AMS;
}
.katex .mathcal {
  font-family: KaTeX_Caligraphic;
}
.katex .mathfrak,
.katex .textfrak {
  font-family: KaTeX_Fraktur;
}
.katex .mathtt {
  font-family: KaTeX_Typewriter;
}
.katex .mathscr,
.katex .textscr {
  font-family: KaTeX_Script;
}
.katex .mathsf,
.katex .textsf {
  font-family: KaTeX_SansSerif;
}
.katex .mathboldsf,
.katex .textboldsf {
  font-family: KaTeX_SansSerif;
  font-weight: bold;
}
.katex .mathitsf,
.katex .textitsf {
  font-family: KaTeX_SansSerif;
  font-style: italic;
}
.katex .mainrm {
  font-family: KaTeX_Main;
  font-style: normal;
}
.katex .vlist-t {
  display: inline-table;
  table-layout: fixed;
  border-collapse: collapse;
}
.katex .vlist-r {
  display: table-row;
}
.katex .vlist {
  display: table-cell;
  vertical-align: bottom;
  position: relative;
}
.katex .vlist > span {
  display: block;
  height: 0;
  position: relative;
}
.katex .vlist > span > span {
  display: inline-block;
}
.katex .vlist > span > .pstrut {
  overflow: hidden;
  width: 0;
}
.katex .vlist-t2 {
  margin-right: -2px;
}
.katex .vlist-s {
  display: table-cell;
  vertical-align: bottom;
  font-size: 1px;
  width: 2px;
  min-width: 2px;
}
.katex .vbox {
  display: inline-flex;
  flex-direction: column;
  align-items: baseline;
}
.katex .hbox {
  display: inline-flex;
  flex-direction: row;
  width: 100%;
}
.katex .thinbox {
  display: inline-flex;
  flex-direction: row;
  width: 0;
  max-width: 0;
}
.katex .msupsub {
  text-align: left;
}
.katex .mfrac > span > span {
  text-align: center;
}
.katex .mfrac .frac-line {
  display: inline-block;
  width: 100%;
  border-bottom-style: solid;
}
.katex .mfrac .frac-line,
.katex .overline .overline-line,
.katex .underline .underline-line,
.katex .hline,
.katex .hdashline,
.katex .rule {
  min-height: 1px;
}
.katex .mspace {
  display: inline-block;
}
.katex .llap,
.katex .rlap,
.katex .clap {
  width: 0;
  position: relative;
}
.katex .llap > .inner,
.katex .rlap > .inner,
.katex .clap > .inner {
  position: absolute;
}
.katex .llap > .fix,
.katex .rlap > .fix,
.katex .clap > .fix {
  display: inline-block;
}
.katex .llap > .inner {
  right: 0;
}
.katex .rlap > .inner,
.katex .clap > .inner {
  left: 0;
}
.katex .clap > .inner > span {
  margin-left: -50%;
  margin-right: 50%;
}
.katex .rule {
  display: inline-block;
  border: solid 0;
  position: relative;
}
.katex .overline .overline-line,
.katex .underline .underline-line,
.katex .hline {
  display: inline-block;
  width: 100%;
  border-bottom-style: solid;
}
.katex .hdashline {
  display: inline-block;
  width: 100%;
  border-bottom-style: dashed;
}
.katex .sqrt > .root {
  /* These values are taken from the definition of `\r@@t`,
             `\mkern 5mu` and `\mkern -10mu`. */
  margin-left: 0.27777778em;
  margin-right: -0.55555556em;
}
.katex .sizing.reset-size1.size1,
.katex .fontsize-ensurer.reset-size1.size1 {
  font-size: 1em;
}
.katex .sizing.reset-size1.size2,
.katex .fontsize-ensurer.reset-size1.size2 {
  font-size: 1.2em;
}
.katex .sizing.reset-size1.size3,
.katex .fontsize-ensurer.reset-size1.size3 {
  font-size: 1.4em;
}
.katex .sizing.reset-size1.size4,
.katex .fontsize-ensurer.reset-size1.size4 {
  font-size: 1.6em;
}
.katex .sizing.reset-size1.size5,
.katex .fontsize-ensurer.reset-size1.size5 {
  font-size: 1.8em;
}
.katex .sizing.reset-size1.size6,
.katex .fontsize-ensurer.reset-size1.size6 {
  font-size: 2em;
}
.katex .sizing.reset-size1.size7,
.katex .fontsize-ensurer.reset-size1.size7 {
  font-size: 2.4em;
}
.katex .sizing.reset-size1.size8,
.katex .fontsize-ensurer.reset-size1.size8 {
  font-size: 2.88em;
}
.katex .sizing.reset-size1.size9,
.katex .fontsize-ensurer.reset-size1.size9 {
  font-size: 3.456em;
}
.katex .sizing.reset-size1.size10,
.katex .fontsize-ensurer.reset-size1.size10 {
  font-size: 4.148em;
}
.katex .sizing.reset-size1.size11,
.katex .fontsize-ensurer.reset-size1.size11 {
  font-size: 4.976em;
}
.katex .sizing.reset-size2.size1,
.katex .fontsize-ensurer.reset-size2.size1 {
  font-size: 0.83333333em;
}
.katex .sizing.reset-size2.size2,
.katex .fontsize-ensurer.reset-size2.size2 {
  font-size: 1em;
}
.katex .sizing.reset-size2.size3,
.katex .fontsize-ensurer.reset-size2.size3 {
  font-size: 1.16666667em;
}
.katex .sizing.reset-size2.size4,
.katex .fontsize-ensurer.reset-size2.size4 {
  font-size: 1.33333333em;
}
.katex .sizing.reset-size2.size5,
.katex .fontsize-ensurer.reset-size2.size5 {
  font-size: 1.5em;
}
.katex .sizing.reset-size2.size6,
.katex .fontsize-ensurer.reset-size2.size6 {
  font-size: 1.66666667em;
}
.katex .sizing.reset-size2.size7,
.katex .fontsize-ensurer.reset-size2.size7 {
  font-size: 2em;
}
.katex .sizing.reset-size2.size8,
.katex .fontsize-ensurer.reset-size2.size8 {
  font-size: 2.4em;
}
.katex .sizing.reset-size2.size9,
.katex .fontsize-ensurer.reset-size2.size9 {
  font-size: 2.88em;
}
.katex .sizing.reset-size2.size10,
.katex .fontsize-ensurer.reset-size2.size10 {
  font-size: 3.45666667em;
}
.katex .sizing.reset-size2.size11,
.katex .fontsize-ensurer.reset-size2.size11 {
  font-size: 4.14666667em;
}
.katex .sizing.reset-size3.size1,
.katex .fontsize-ensurer.reset-size3.size1 {
  font-size: 0.71428571em;
}
.katex .sizing.reset-size3.size2,
.katex .fontsize-ensurer.reset-size3.size2 {
  font-size: 0.85714286em;
}
.katex .sizing.reset-size3.size3,
.katex .fontsize-ensurer.reset-size3.size3 {
  font-size: 1em;
}
.katex .sizing.reset-size3.size4,
.katex .fontsize-ensurer.reset-size3.size4 {
  font-size: 1.14285714em;
}
.katex .sizing.reset-size3.size5,
.katex .fontsize-ensurer.reset-size3.size5 {
  font-size: 1.28571429em;
}
.katex .sizing.reset-size3.size6,
.katex .fontsize-ensurer.reset-size3.size6 {
  font-size: 1.42857143em;
}
.katex .sizing.reset-size3.size7,
.katex .fontsize-ensurer.reset-size3.size7 {
  font-size: 1.71428571em;
}
.katex .sizing.reset-size3.size8,
.katex .fontsize-ensurer.reset-size3.size8 {
  font-size: 2.05714286em;
}
.katex .sizing.reset-size3.size9,
.katex .fontsize-ensurer.reset-size3.size9 {
  font-size: 2.46857143em;
}
.katex .sizing.reset-size3.size10,
.katex .fontsize-ensurer.reset-size3.size10 {
  font-size: 2.96285714em;
}
.katex .sizing.reset-size3.size11,
.katex .fontsize-ensurer.reset-size3.size11 {
  font-size: 3.55428571em;
}
.katex .sizing.reset-size4.size1,
.katex .fontsize-ensurer.reset-size4.size1 {
  font-size: 0.625em;
}
.katex .sizing.reset-size4.size2,
.katex .fontsize-ensurer.reset-size4.size2 {
  font-size: 0.75em;
}
.katex .sizing.reset-size4.size3,
.katex .fontsize-ensurer.reset-size4.size3 {
  font-size: 0.875em;
}
.katex .sizing.reset-size4.size4,
.katex .fontsize-ensurer.reset-size4.size4 {
  font-size: 1em;
}
.katex .sizing.reset-size4.size5,
.katex .fontsize-ensurer.reset-size4.size5 {
  font-size: 1.125em;
}
.katex .sizing.reset-size4.size6,
.katex .fontsize-ensurer.reset-size4.size6 {
  font-size: 1.25em;
}
.katex .sizing.reset-size4.size7,
.katex .fontsize-ensurer.reset-size4.size7 {
  font-size: 1.5em;
}
.katex .sizing.reset-size4.size8,
.katex .fontsize-ensurer.reset-size4.size8 {
  font-size: 1.8em;
}
.katex .sizing.reset-size4.size9,
.katex .fontsize-ensurer.reset-size4.size9 {
  font-size: 2.16em;
}
.katex .sizing.reset-size4.size10,
.katex .fontsize-ensurer.reset-size4.size10 {
  font-size: 2.5925em;
}
.katex .sizing.reset-size4.size11,
.katex .fontsize-ensurer.reset-size4.size11 {
  font-size: 3.11em;
}
.katex .sizing.reset-size5.size1,
.katex .fontsize-ensurer.reset-size5.size1 {
  font-size: 0.55555556em;
}
.katex .sizing.reset-size5.size2,
.katex .fontsize-ensurer.reset-size5.size2 {
  font-size: 0.66666667em;
}
.katex .sizing.reset-size5.size3,
.katex .fontsize-ensurer.reset-size5.size3 {
  font-size: 0.77777778em;
}
.katex .sizing.reset-size5.size4,
.katex .fontsize-ensurer.reset-size5.size4 {
  font-size: 0.88888889em;
}
.katex .sizing.reset-size5.size5,
.katex .fontsize-ensurer.reset-size5.size5 {
  font-size: 1em;
}
.katex .sizing.reset-size5.size6,
.katex .fontsize-ensurer.reset-size5.size6 {
  font-size: 1.11111111em;
}
.katex .sizing.reset-size5.size7,
.katex .fontsize-ensurer.reset-size5.size7 {
  font-size: 1.33333333em;
}
.katex .sizing.reset-size5.size8,
.katex .fontsize-ensurer.reset-size5.size8 {
  font-size: 1.6em;
}
.katex .sizing.reset-size5.size9,
.katex .fontsize-ensurer.reset-size5.size9 {
  font-size: 1.92em;
}
.katex .sizing.reset-size5.size10,
.katex .fontsize-ensurer.reset-size5.size10 {
  font-size: 2.30444444em;
}
.katex .sizing.reset-size5.size11,
.katex .fontsize-ensurer.reset-size5.size11 {
  font-size: 2.76444444em;
}
.katex .sizing.reset-size6.size1,
.katex .fontsize-ensurer.reset-size6.size1 {
  font-size: 0.5em;
}
.katex .sizing.reset-size6.size2,
.katex .fontsize-ensurer.reset-size6.size2 {
  font-size: 0.6em;
}
.katex .sizing.reset-size6.size3,
.katex .fontsize-ensurer.reset-size6.size3 {
  font-size: 0.7em;
}
.katex .sizing.reset-size6.size4,
.katex .fontsize-ensurer.reset-size6.size4 {
  font-size: 0.8em;
}
.katex .sizing.reset-size6.size5,
.katex .fontsize-ensurer.reset-size6.size5 {
  font-size: 0.9em;
}
.katex .sizing.reset-size6.size6,
.katex .fontsize-ensurer.reset-size6.size6 {
  font-size: 1em;
}
.katex .sizing.reset-size6.size7,
.katex .fontsize-ensurer.reset-size6.size7 {
  font-size: 1.2em;
}
.katex .sizing.reset-size6.size8,
.katex .fontsize-ensurer.reset-size6.size8 {
  font-size: 1.44em;
}
.katex .sizing.reset-size6.size9,
.katex .fontsize-ensurer.reset-size6.size9 {
  font-size: 1.728em;
}
.katex .sizing.reset-size6.size10,
.katex .fontsize-ensurer.reset-size6.size10 {
  font-size: 2.074em;
}
.katex .sizing.reset-size6.size11,
.katex .fontsize-ensurer.reset-size6.size11 {
  font-size: 2.488em;
}
.katex .sizing.reset-size7.size1,
.katex .fontsize-ensurer.reset-size7.size1 {
  font-size: 0.41666667em;
}
.katex .sizing.reset-size7.size2,
.katex .fontsize-ensurer.reset-size7.size2 {
  font-size: 0.5em;
}
.katex .sizing.reset-size7.size3,
.katex .fontsize-ensurer.reset-size7.size3 {
  font-size: 0.58333333em;
}
.katex .sizing.reset-size7.size4,
.katex .fontsize-ensurer.reset-size7.size4 {
  font-size: 0.66666667em;
}
.katex .sizing.reset-size7.size5,
.katex .fontsize-ensurer.reset-size7.size5 {
  font-size: 0.75em;
}
.katex .sizing.reset-size7.size6,
.katex .fontsize-ensurer.reset-size7.size6 {
  font-size: 0.83333333em;
}
.katex .sizing.reset-size7.size7,
.katex .fontsize-ensurer.reset-size7.size7 {
  font-size: 1em;
}
.katex .sizing.reset-size7.size8,
.katex .fontsize-ensurer.reset-size7.size8 {
  font-size: 1.2em;
}
.katex .sizing.reset-size7.size9,
.katex .fontsize-ensurer.reset-size7.size9 {
  font-size: 1.44em;
}
.katex .sizing.reset-size7.size10,
.katex .fontsize-ensurer.reset-size7.size10 {
  font-size: 1.72833333em;
}
.katex .sizing.reset-size7.size11,
.katex .fontsize-ensurer.reset-size7.size11 {
  font-size: 2.07333333em;
}
.katex .sizing.reset-size8.size1,
.katex .fontsize-ensurer.reset-size8.size1 {
  font-size: 0.34722222em;
}
.katex .sizing.reset-size8.size2,
.katex .fontsize-ensurer.reset-size8.size2 {
  font-size: 0.41666667em;
}
.katex .sizing.reset-size8.size3,
.katex .fontsize-ensurer.reset-size8.size3 {
  font-size: 0.48611111em;
}
.katex .sizing.reset-size8.size4,
.katex .fontsize-ensurer.reset-size8.size4 {
  font-size: 0.55555556em;
}
.katex .sizing.reset-size8.size5,
.katex .fontsize-ensurer.reset-size8.size5 {
  font-size: 0.625em;
}
.katex .sizing.reset-size8.size6,
.katex .fontsize-ensurer.reset-size8.size6 {
  font-size: 0.69444444em;
}
.katex .sizing.reset-size8.size7,
.katex .fontsize-ensurer.reset-size8.size7 {
  font-size: 0.83333333em;
}
.katex .sizing.reset-size8.size8,
.katex .fontsize-ensurer.reset-size8.size8 {
  font-size: 1em;
}
.katex .sizing.reset-size8.size9,
.katex .fontsize-ensurer.reset-size8.size9 {
  font-size: 1.2em;
}
.katex .sizing.reset-size8.size10,
.katex .fontsize-ensurer.reset-size8.size10 {
  font-size: 1.44027778em;
}
.katex .sizing.reset-size8.size11,
.katex .fontsize-ensurer.reset-size8.size11 {
  font-size: 1.72777778em;
}
.katex .sizing.reset-size9.size1,
.katex .fontsize-ensurer.reset-size9.size1 {
  font-size: 0.28935185em;
}
.katex .sizing.reset-size9.size2,
.katex .fontsize-ensurer.reset-size9.size2 {
  font-size: 0.34722222em;
}
.katex .sizing.reset-size9.size3,
.katex .fontsize-ensurer.reset-size9.size3 {
  font-size: 0.40509259em;
}
.katex .sizing.reset-size9.size4,
.katex .fontsize-ensurer.reset-size9.size4 {
  font-size: 0.46296296em;
}
.katex .sizing.reset-size9.size5,
.katex .fontsize-ensurer.reset-size9.size5 {
  font-size: 0.52083333em;
}
.katex .sizing.reset-size9.size6,
.katex .fontsize-ensurer.reset-size9.size6 {
  font-size: 0.5787037em;
}
.katex .sizing.reset-size9.size7,
.katex .fontsize-ensurer.reset-size9.size7 {
  font-size: 0.69444444em;
}
.katex .sizing.reset-size9.size8,
.katex .fontsize-ensurer.reset-size9.size8 {
  font-size: 0.83333333em;
}
.katex .sizing.reset-size9.size9,
.katex .fontsize-ensurer.reset-size9.size9 {
  font-size: 1em;
}
.katex .sizing.reset-size9.size10,
.katex .fontsize-ensurer.reset-size9.size10 {
  font-size: 1.20023148em;
}
.katex .sizing.reset-size9.size11,
.katex .fontsize-ensurer.reset-size9.size11 {
  font-size: 1.43981481em;
}
.katex .sizing.reset-size10.size1,
.katex .fontsize-ensurer.reset-size10.size1 {
  font-size: 0.24108004em;
}
.katex .sizing.reset-size10.size2,
.katex .fontsize-ensurer.reset-size10.size2 {
  font-size: 0.28929605em;
}
.katex .sizing.reset-size10.size3,
.katex .fontsize-ensurer.reset-size10.size3 {
  font-size: 0.33751205em;
}
.katex .sizing.reset-size10.size4,
.katex .fontsize-ensurer.reset-size10.size4 {
  font-size: 0.38572806em;
}
.katex .sizing.reset-size10.size5,
.katex .fontsize-ensurer.reset-size10.size5 {
  font-size: 0.43394407em;
}
.katex .sizing.reset-size10.size6,
.katex .fontsize-ensurer.reset-size10.size6 {
  font-size: 0.48216008em;
}
.katex .sizing.reset-size10.size7,
.katex .fontsize-ensurer.reset-size10.size7 {
  font-size: 0.57859209em;
}
.katex .sizing.reset-size10.size8,
.katex .fontsize-ensurer.reset-size10.size8 {
  font-size: 0.69431051em;
}
.katex .sizing.reset-size10.size9,
.katex .fontsize-ensurer.reset-size10.size9 {
  font-size: 0.83317261em;
}
.katex .sizing.reset-size10.size10,
.katex .fontsize-ensurer.reset-size10.size10 {
  font-size: 1em;
}
.katex .sizing.reset-size10.size11,
.katex .fontsize-ensurer.reset-size10.size11 {
  font-size: 1.19961427em;
}
.katex .sizing.reset-size11.size1,
.katex .fontsize-ensurer.reset-size11.size1 {
  font-size: 0.20096463em;
}
.katex .sizing.reset-size11.size2,
.katex .fontsize-ensurer.reset-size11.size2 {
  font-size: 0.24115756em;
}
.katex .sizing.reset-size11.size3,
.katex .fontsize-ensurer.reset-size11.size3 {
  font-size: 0.28135048em;
}
.katex .sizing.reset-size11.size4,
.katex .fontsize-ensurer.reset-size11.size4 {
  font-size: 0.32154341em;
}
.katex .sizing.reset-size11.size5,
.katex .fontsize-ensurer.reset-size11.size5 {
  font-size: 0.36173633em;
}
.katex .sizing.reset-size11.size6,
.katex .fontsize-ensurer.reset-size11.size6 {
  font-size: 0.40192926em;
}
.katex .sizing.reset-size11.size7,
.katex .fontsize-ensurer.reset-size11.size7 {
  font-size: 0.48231511em;
}
.katex .sizing.reset-size11.size8,
.katex .fontsize-ensurer.reset-size11.size8 {
  font-size: 0.57877814em;
}
.katex .sizing.reset-size11.size9,
.katex .fontsize-ensurer.reset-size11.size9 {
  font-size: 0.69453376em;
}
.katex .sizing.reset-size11.size10,
.katex .fontsize-ensurer.reset-size11.size10 {
  font-size: 0.83360129em;
}
.katex .sizing.reset-size11.size11,
.katex .fontsize-ensurer.reset-size11.size11 {
  font-size: 1em;
}
.katex .delimsizing.size1 {
  font-family: KaTeX_Size1;
}
.katex .delimsizing.size2 {
  font-family: KaTeX_Size2;
}
.katex .delimsizing.size3 {
  font-family: KaTeX_Size3;
}
.katex .delimsizing.size4 {
  font-family: KaTeX_Size4;
}
.katex .delimsizing.mult .delim-size1 > span {
  font-family: KaTeX_Size1;
}
.katex .delimsizing.mult .delim-size4 > span {
  font-family: KaTeX_Size4;
}
.katex .nulldelimiter {
  display: inline-block;
  width: 0.12em;
}
.katex .delimcenter {
  position: relative;
}
.katex .op-symbol {
  position: relative;
}
.katex .op-symbol.small-op {
  font-family: KaTeX_Size1;
}
.katex .op-symbol.large-op {
  font-family: KaTeX_Size2;
}
.katex .op-limits > .vlist-t {
  text-align: center;
}
.katex .accent > .vlist-t {
  text-align: center;
}
.katex .accent .accent-body {
  position: relative;
}
.katex .accent .accent-body:not(.accent-full) {
  width: 0;
}
.katex .overlay {
  display: block;
}
.katex .mtable .vertical-separator {
  display: inline-block;
  min-width: 1px;
}
.katex .mtable .arraycolsep {
  display: inline-block;
}
.katex .mtable .col-align-c > .vlist-t {
  text-align: center;
}
.katex .mtable .col-align-l > .vlist-t {
  text-align: left;
}
.katex .mtable .col-align-r > .vlist-t {
  text-align: right;
}
.katex .svg-align {
  text-align: left;
}
.katex svg {
  display: block;
  position: absolute;
  width: 100%;
  height: inherit;
  fill: currentColor;
  stroke: currentColor;
  fill-rule: nonzero;
  fill-opacity: 1;
  stroke-width: 1;
  stroke-linecap: butt;
  stroke-linejoin: miter;
  stroke-miterlimit: 4;
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  stroke-opacity: 1;
}
.katex svg path {
  stroke: none;
}
.katex img {
  border-style: none;
  min-width: 0;
  min-height: 0;
  max-width: none;
  max-height: none;
}
.katex .stretchy {
  width: 100%;
  display: block;
  position: relative;
  overflow: hidden;
}
.katex .stretchy::before,
.katex .stretchy::after {
  content: "";
}
.katex .hide-tail {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.katex .halfarrow-left {
  position: absolute;
  left: 0;
  width: 50.2%;
  overflow: hidden;
}
.katex .halfarrow-right {
  position: absolute;
  right: 0;
  width: 50.2%;
  overflow: hidden;
}
.katex .brace-left {
  position: absolute;
  left: 0;
  width: 25.1%;
  overflow: hidden;
}
.katex .brace-center {
  position: absolute;
  left: 25%;
  width: 50%;
  overflow: hidden;
}
.katex .brace-right {
  position: absolute;
  right: 0;
  width: 25.1%;
  overflow: hidden;
}
.katex .x-arrow-pad {
  padding: 0 0.5em;
}
.katex .cd-arrow-pad {
  padding: 0 0.55556em 0 0.27778em;
}
.katex .x-arrow,
.katex .mover,
.katex .munder {
  text-align: center;
}
.katex .boxpad {
  padding: 0 0.3em;
}
.katex .fbox,
.katex .fcolorbox {
  box-sizing: border-box;
  border: 0.04em solid;
}
.katex .cancel-pad {
  padding: 0 0.2em;
}
.katex .cancel-lap {
  margin-left: -0.2em;
  margin-right: -0.2em;
}
.katex .sout {
  border-bottom-style: solid;
  border-bottom-width: 0.08em;
}
.katex .angl {
  box-sizing: border-box;
  border-top: 0.049em solid;
  border-right: 0.049em solid;
  margin-right: 0.03889em;
}
.katex .anglpad {
  padding: 0 0.03889em;
}
.katex .eqn-num::before {
  counter-increment: katexEqnNo;
  content: "(" counter(katexEqnNo) ")";
}
.katex .mml-eqn-num::before {
  counter-increment: mmlEqnNo;
  content: "(" counter(mmlEqnNo) ")";
}
.katex .mtr-glue {
  width: 50%;
}
.katex .cd-vert-arrow {
  display: inline-block;
  position: relative;
}
.katex .cd-label-left {
  display: inline-block;
  position: absolute;
  right: calc(50% + 0.3em);
  text-align: left;
}
.katex .cd-label-right {
  display: inline-block;
  position: absolute;
  left: calc(50% + 0.3em);
  text-align: right;
}
.katex-display {
  display: block;
  margin: 1em 0;
  text-align: center;
}
.katex-display > .katex {
  display: block;
  text-align: center;
  white-space: nowrap;
}
.katex-display > .katex > .katex-html {
  display: block;
  position: relative;
}
.katex-display > .katex > .katex-html > .tag {
  position: absolute;
  right: 0;
}
.katex-display.leqno > .katex > .katex-html > .tag {
  left: 0;
  right: auto;
}
.katex-display.fleqn > .katex {
  text-align: left;
  padding-left: 2em;
}
body {
  counter-reset: katexEqnNo mmlEqnNo;
}


