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

:root {
  /* Layout Variables */
  --content-max-width: 1000px;
  --content-padding: 30px;
  --content-padding-mobile: 15px;
  
  /* Color Variables */
  --body-color: hsl(0, 5%, 10%);
  --body-bg-color: hsl(210, 20%, 98%);
  --link-visited: hsl(0, 100%, 33%);
  --link-focus-outline: hsl(244, 100%, 65%);
  --pre-bg-color: hsl(210, 28%, 93%);
  --kbd-bg-color: hsl(210, 5%, 100%);
  --kbd-border-color: hsl(210, 5%, 70%);
  --table-border-color: black;
  --border-width-thin: 1.36px;
  --border-width-thick: 2.27px;
  --sidenote-target-border-color: hsl(55, 55%, 70%);
  --footnotes-border-color: hsl(0, 0%, 39%);
  --text-indent-size: 1.463rem;
}

.latex-dark {
  --body-color: hsl(0, 0%, 86%);
  --body-bg-color: hsl(0, 0%, 16%);
  --link-visited: hsl(196 80% 77%);
  --link-focus-outline: hsl(215, 63%, 73%);
  --pre-bg-color: hsl(0, 1%, 25%);
  --kbd-bg-color: hsl(0, 0%, 16%);
  --kbd-border-color: hsl(210, 5%, 70%);
  --table-border-color: white;
  --sidenote-target-border-color: hsl(0, 0%, 59%);
  --footnotes-border-color: hsl(0, 0%, 59%);
  --proof-symbol-filter: invert(80%);
}

@media (prefers-color-scheme: dark) {
  .latex-dark-auto {
    --body-color: hsl(0, 0%, 86%);
    --body-bg-color: hsl(0, 0%, 16%);
    --link-visited: hsl(196 80% 77%);
    --link-focus-outline: hsl(215, 63%, 73%);
    --pre-bg-color: hsl(0, 1%, 25%);
    --kbd-bg-color: hsl(0, 0%, 16%);
    --kbd-border-color: hsl(210, 5%, 70%);
    --table-border-color: white;
    --sidenote-target-border-color: hsl(0, 0%, 59%);
    --footnotes-border-color: hsl(0, 0%, 59%);
    --proof-symbol-filter: invert(80%);
  }
}

/**
 * Reset
 */
body, h1, h2, h3, h4, h5, h6,
p, blockquote, pre, hr,
dl, dd, ol, ul, figure {
  margin: 0;
  padding: 0;
}

html {
  font-size: 1rem;
  height: 100%;
}

@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}

body {
  font-family: Georgia, Cambria, 'Times New Roman', Times, serif;
  line-height: 1.6; 
  
  /* jekyll centering */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  
  color: var(--body-color);
  background-color: var(--body-bg-color);
  
  /* background-image: 
    radial-gradient(circle at 20% 80%, rgba(255, 0, 0, 0.3) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(0, 255, 0, 0.3) 0%, transparent 50%),
    radial-gradient(circle at 40% 40%, rgba(0, 0, 255, 0.3) 0%, transparent 50%); */

  text-rendering: optimizeLegibility;
  hyphens: auto;
  -webkit-hyphens: auto;
  -moz-hyphens: auto;
  
  /* font */
  -webkit-text-size-adjust: 100%;
  -webkit-font-feature-settings: "kern" 1;
  -moz-font-feature-settings: "kern" 1;
  -o-font-feature-settings: "kern" 1;
  font-feature-settings: "kern" 1;
  font-kerning: normal;
  
  overflow-x: hidden;
  counter-reset: theorem definition sidenote-counter;


}

body.libertinus {
  font-family: Georgia, Cambria, 'Times New Roman', Times, serif;
}

.text-justify {
  text-align: justify;
}

.wrapper {
  background-color: var(--body-bg-color);
  /* box-shadow: 0 0 20px rgba(0,0,0,0.05); */
  max-width: calc(var(--content-max-width) - (var(--content-padding) * 2));
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--content-padding);
  padding-left: var(--content-padding);
}

@media screen and (max-width: 1000px) {
  .wrapper {
    max-width: calc(var(--content-max-width) - var(--content-padding));
    padding-right: var(--content-padding-mobile);
    padding-left: var(--content-padding-mobile);
  }
}

@media screen and (max-width: 1000px) {
  .footer-col-1,
  .footer-col-2 {
    width: -webkit-calc(50% - (30px / 2));
    width: calc(50% - 30px / 2);
  }
  
  .footer-col-3 {
    width: -webkit-calc(100% - (30px / 2));
    width: calc(100% - 30px / 2);
  }
}

h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
ul, ol, dl, figure,
.highlight {
  /* margin-bottom: 15px; */
  padding-bottom: 15px;
}

p {
  /* margin-top: 1rem; */
  padding-top: 1rem;
}

.indent-pars p {
  text-indent: var(--text-indent-size);
}

.indent-pars p.no-indent,
p.no-indent {
  text-indent: 0;
}

.indent-pars ol p,
.indent-pars ul p {
  text-indent: 0;
}

.indent-pars h2 + p,
.indent-pars h3 + p,
.indent-pars h4 + p {
  text-indent: 0;
}

/**
 * main element
 */
main {
  display: block;
}

/**
 * Images
 */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

textarea {
  width: 100%;
}

article > * + * {
  margin-top: 1em;
}

/**
 * Figures
 */
figure > img {
  display: block;
}

figcaption {
  font-size: 14px;
}

/**
 * Lists
 */
ul, ol {
  margin-left: 30px;
}

li > ul,
li > ol {
  margin-bottom: 0;
}

/**
 * Links
 */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

a,
a:visited {
  color: var(--link-visited);
}

a:focus {
  outline-offset: 2px;
  outline: 2px solid var(--link-focus-outline);
}

a:hover {
  color: #111;
  text-decoration: underline;
}

.social-media-list a:hover {
  text-decoration: none;
}

.social-media-list a:hover .username {
  text-decoration: underline;
}

.button-link, .button-link:visited {
  color: var(--body-color);
}

/**
 * Blockquotes
 */
blockquote {
  color: #828282;
  border-left: 4px solid #e8e8e8;
  padding-left: 15px;
  font-size: 18px;
  letter-spacing: -1px;
  font-style: italic;
}

blockquote > :last-child {
  margin-bottom: 0;
}

/**
 * Code formatting
 */
code,
pre,
kbd {
  font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
  font-size: 85%;
  hyphens: none;
}

pre {
  padding: 1rem 1.4rem;
  max-width: 100%;
  overflow: auto;
  border-radius: 4px;
  background: var(--pre-bg-color);
}

pre code {
  font-size: 95%;
  position: relative;
}

kbd {
  background: var(--kbd-bg-color);
  border: 1px solid var(--kbd-border-color);
  border-radius: 2px;
  padding: 2px 4px;
  font-size: 75%;
}

/**
 * Clearfix
 */
.footer-col-wrapper:after, .wrapper:after {
  content: "";
  display: table;
  clear: both;
}

/**
 * Icons
 */
.svg-icon {
  width: 16px;
  height: 16px;
  display: inline-block;
  fill: #828282;
  padding-right: 5px;
  vertical-align: text-top;
}

.social-media-list li + li {
  padding-top: 5px;
}

table:not(.borders-custom) {
  border-collapse: collapse;
  border-spacing: 0;
  width: auto;
  max-width: 100%;
  border-top: var(--border-width-thick) solid var(--table-border-color);
  border-bottom: var(--border-width-thick) solid var(--table-border-color);
  overflow-x: auto;
  counter-increment: caption;
}

table:not(.borders-custom) tr > th[scope='col'] {
  border-bottom: var(--border-width-thin) solid var(--table-border-color);
}

table:not(.borders-custom) tr > th[scope='row'] {
  border-right: var(--border-width-thin) solid var(--table-border-color);
}

table:not(.borders-custom) > tbody > tr:first-child > td,
table:not(.borders-custom) > tbody > tr:first-child > th {
  border-top: var(--border-width-thin) solid var(--table-border-color);
}

table:not(.borders-custom) > tbody > tr:last-child > td,
table:not(.borders-custom) > tbody > tr:last-child > th {
  border-bottom: var(--border-width-thin) solid var(--table-border-color);
}

th, td {
  text-align: left;
  padding: 0.5rem;
  line-height: 1.1;
}

caption {
  text-align: left;
  font-size: 0.923em;
  padding: 0 0.25em 0.25em;
  width: 100%;
  margin-left: 0;
}

caption::before {
  content: 'Table ' counter(caption) '. ';
  font-weight: bold;
}

.scroll-wrapper {
  overflow-x: auto;
}

.scroll-wrapper > table td {
  white-space: nowrap;
}

.theorem {
  counter-increment: theorem;
  display: block;
  margin: 12px 0;
  font-style: italic;
}

.theorem::before {
  content: 'Theorem ' counter(theorem) '. ';
  font-weight: bold;
  font-style: normal;
}

.lemma {
  counter-increment: theorem;
  display: block;
  margin: 12px 0;
  font-style: italic;
}

.lemma::before {
  content: 'Lemma ' counter(theorem) '. ';
  font-weight: bold;
  font-style: normal;
}

.proof {
  display: block;
  margin: 12px 0;
  font-style: normal;
  position: relative;
}

.proof::before {
  content: 'Proof. ' attr(title);
  font-style: italic;
}

.proof::after {
  content: '◾️';
  filter: var(--proof-symbol-filter);
  position: absolute;
  right: -12px;
  bottom: -2px;
}

.definition {
  counter-increment: definition;
  display: block;
  margin: 12px 0;
  font-style: normal;
}

.definition::before {
  content: 'Definition ' counter(definition) '. ';
  font-weight: bold;
  font-style: normal;
}

.author {
  margin: 0.85rem 0;
  font-variant-caps: small-caps;
  text-align: center;
}


h1 {
  font-size: 2.5rem;
  line-height: 3.25rem;
  margin-bottom: 1.625rem;
}

h2 {
  font-size: 1.7rem;
  line-height: 2rem;
  margin-top: 3rem;
}

h3 {
  font-size: 1.4rem;
  margin-top: 2.5rem;
}

h4 {
  font-size: 1.2rem;
  margin-top: 2rem;
}

h5 {
  font-size: 1rem;
  margin-top: 1.8rem;
}

h6 {
  font-size: 1rem;
  font-style: italic;
  font-weight: normal;
  margin-top: 2.5rem;
}

h3, h4, h5, h6 {
  line-height: 1.625rem;
}

h1 + h2 {
  margin-top: 1.625rem;
}

h2 + h3,
h3 + h4,
h4 + h5 {
  margin-top: 0.8rem;
}

h5 + h6 {
  margin-top: -0.8rem;
}

h2, h3, h4, h5, h6 {
  margin-bottom: 0.8rem;
}


h1:first-child {
  text-align: center;
}

/**
 * JEKYLL
 */
.site-header {
  /* border-bottom: 1px solid #e8e8e8; */
  min-height: 55.95px;
  position: relative;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

.site-header > .wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 55.95px;
}

.site-title {
  font-size: 26px;
  font-weight: 300;
  line-height: 54px;
  letter-spacing: -1px;
  margin-bottom: 0;
}

.site-title, .site-title:visited {
  color: #424242;
}

.site-nav {
  line-height: 54px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}

.site-nav .nav-trigger {
  display: none;
}

.site-nav .menu-icon {
  display: none;
}

.site-nav .page-link {
  color: #111;
  line-height: 1.5;
}

/* desktop spacing */
@media screen and (min-width: 601px) {
  .site-nav .page-link:not(:last-child) {
    margin-right: 40px;
  }
}

/* fallback for all screen sizes */
.site-nav .page-link:not(:last-child) {
  margin-right: 40px;
}

@media screen and (max-width: 600px) {
  .site-nav {
    position: absolute;
    top: 9px;
    right: 15px;
    background-color: #fdfdfd;
    border: 1px solid #e8e8e8;
    border-radius: 5px;
    text-align: right;
  }
  
  .site-nav label[for=nav-trigger] {
    display: block;
    float: right;
    width: 36px;
    height: 36px;
    z-index: 2;
    cursor: pointer;
  }
  
  .site-nav .menu-icon {
    display: block;
    float: right;
    width: 36px;
    height: 26px;
    line-height: 0;
    padding-top: 10px;
    text-align: center;
  }
  
  .site-nav .menu-icon > svg {
    fill: #424242;
  }
  
  .site-nav input ~ .trigger {
    clear: both;
    display: none;
  }
  
  .site-nav input:checked ~ .trigger {
    display: block;
    padding-bottom: 5px;
  }
  
  .site-nav .page-link {
    display: block;
    margin-left: 20px;
    padding: 5px 10px;
  }
  

  .site-nav .page-link:not(:last-child) {
    margin-right: 0; 
    margin-bottom: 10px;
  }
}

/**
 * Site footer
 */
.site-footer {
  border-top: 1px solid #e8e8e8;
  padding: 30px 0;
}


/* .site-footer .wrapper {
  
} */

.footer-heading {
  font-size: 18px;
  margin-bottom: 15px;
}

.contact-list,
.social-media-list {
  list-style: none;
  margin-left: 0;
}

.footer-col-wrapper {
  font-size: 15px;
  color: #828282;
  margin-left: -15px;
}

.footer-col {
  float: left;
  margin-bottom: 15px;
  padding-left: 15px;
}

.footer-col-1 {
  width: -webkit-calc(35% - (30px / 2));
  width: calc(35% - 30px / 2);
}

.footer-col-2 {
  width: -webkit-calc(20% - (30px / 2));
  width: calc(20% - 30px / 2);
}

.footer-col-3 {
  width: -webkit-calc(45% - (30px / 2));
  width: calc(45% - 30px / 2);
}

@media screen and (max-width: 800px) {
  .footer-col-1,
  .footer-col-2 {
    width: -webkit-calc(50% - (30px / 2));
    width: calc(50% - 30px / 2);
  }
  
  .footer-col-3 {
    width: -webkit-calc(100% - (30px / 2));
    width: calc(100% - 30px / 2);
  }
}

@media screen and (max-width: 600px) {
  .footer-col {
    float: none;
    width: -webkit-calc(100% - (30px / 2));
    width: calc(100% - 30px / 2);
  }
}

/**
 * Page content
 */
.page-content {
  padding: 0px 0;
  margin-top: 0;
  flex: 1;
}

.page-heading {
  font-size: 32px;
}

.post-list-heading {
  font-size: 28px;
}

.post-list {
  margin-left: 0;
  list-style: none;
}

.post-list > li {
  margin-bottom: 30px;
}

.post-meta {
  font-size: 14px;
  color: #828282;
}

.post-link {
  display: block;
  font-size: 24px;
}

/**
 * Posts
 */
.post-header {
  margin-bottom: 30px;
}

.post-title {
  margin-top: 2.5rem;
  font-size: 42px;
  letter-spacing: -1px;
  line-height: 1;
}

@media screen and (max-width: 800px) {
  .post-title {
    font-size: 36px;
  }
}

.post-content {
  margin-bottom: 30px;
}

.post-content h2 {
  font-size: 32px;
}

@media screen and (max-width: 800px) {
  .post-content h2 {
    font-size: 28px;
  }
}

.post-content h3 {
  font-size: 26px;
}

@media screen and (max-width: 800px) {
  .post-content h3 {
    font-size: 22px;
  }
}

.post-content h4 {
  font-size: 20px;
}

@media screen and (max-width: 800px) {
  .post-content h4 {
    font-size: 18px;
  }
}

/**
 * Syntax highlighting
 */
.highlight {
  background: #fff;
}

.highlighter-rouge .highlight {
  background: #eef;
}

.highlight .c { color: #998; font-style: italic; }
.highlight .err { color: #a61717; background-color: #e3d2d2; }
.highlight .k { font-weight: bold; }
.highlight .o { font-weight: bold; }
.highlight .cm { color: #998; font-style: italic; }
.highlight .cp { color: #999; font-weight: bold; }
.highlight .c1 { color: #998; font-style: italic; }
.highlight .cs { color: #999; font-weight: bold; font-style: italic; }
.highlight .gd { color: #000; background-color: #fdd; }
.highlight .gd .x { color: #000; background-color: #faa; }
.highlight .ge { font-style: italic; }
.highlight .gr { color: #a00; }
.highlight .gh { color: #999; }
.highlight .gi { color: #000; background-color: #dfd; }
.highlight .gi .x { color: #000; background-color: #afa; }
.highlight .go { color: #888; }
.highlight .gp { color: #555; }
.highlight .gs { font-weight: bold; }
.highlight .gu { color: #aaa; }
.highlight .gt { color: #a00; }
.highlight .kc { font-weight: bold; }
.highlight .kd { font-weight: bold; }
.highlight .kp { font-weight: bold; }
.highlight .kr { font-weight: bold; }
.highlight .kt { color: #458; font-weight: bold; }
.highlight .m { color: #099; }
.highlight .s { color: #d14; }
.highlight .na { color: #008080; }
.highlight .nb { color: #0086B3; }
.highlight .nc { color: #458; font-weight: bold; }
.highlight .no { color: #008080; }
.highlight .ni { color: #800080; }
.highlight .ne { color: #900; font-weight: bold; }
.highlight .nf { color: #900; font-weight: bold; }
.highlight .nn { color: #555; }
.highlight .nt { color: #000080; }
.highlight .nv { color: #008080; }
.highlight .ow { font-weight: bold; }
.highlight .w { color: #bbb; }
.highlight .mf { color: #099; }
.highlight .mh { color: #099; }
.highlight .mi { color: #099; }
.highlight .mo { color: #099; }
.highlight .sb { color: #d14; }
.highlight .sc { color: #d14; }
.highlight .sd { color: #d14; }
.highlight .s2 { color: #d14; }
.highlight .se { color: #d14; }
.highlight .sh { color: #d14; }
.highlight .si { color: #d14; }
.highlight .sx { color: #d14; }
.highlight .sr { color: #009926; }
.highlight .s1 { color: #d14; }
.highlight .ss { color: #990073; }
.highlight .bp { color: #999; }
.highlight .vc { color: #008080; }
.highlight .vg { color: #008080; }
.highlight .vi { color: #008080; }
.highlight .il { color: #099; }

.paper-texture {
  background-color: white;
  background-image: 
      radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.1) 0%, transparent 50%),
      radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
      radial-gradient(circle at 40% 40%, rgba(120, 119, 198, 0.05) 0%, transparent 50%);
}