@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");
@import url(solarized-light.css);
body { font-family: "IBM Plex Sans"; overflow-x: hidden; margin-left: 30vw; margin-right: 30vw; min-width: 40vw; max-width: 40vw; width: 40vw; }

@media only screen and (max-width: 1200px) { body { margin-left: 20vw; margin-right: 20vw; min-width: 60vw; max-width: 60vw; width: 60vw; } }

@media only screen and (max-width: 768px) { body { margin: 16px; min-width: unset; max-width: unset; width: auto; } .katex-display { overflow-x: auto; overflow-y: hidden; } }

figure { margin: 0; padding: .5em; margin-left: 1em; margin-right: 1em; }

hr:not(.light) { color: black; background: black; border: 0; height: 2px; }

.post hr { color: black; background: black; border-style: inset; border-width: 1px; height: initial; }

a { text-decoration: none; font-weight: 600; }

p a[href^="https://"]:after, p a[href^="http://"]:after { content: ""; display: inline-block; width: 12px; height: 12px; background-size: contain; background-image: url("/external_link.png"); }

section p { text-align: justify; }

:visited { color: #6c71c4; }

:link { color: #268bd2; }

.post-preview :visited { color: unset; }

.post-preview :link { color: unset; }

.highlight { white-space: pre-wrap; padding: 4px; }

h1 { font-family: "IBM Plex Mono"; }

footer { color: #073642; line-height: 2em; }

footer .light { color: #586e75; }

footer .contact a { font-family: "IBM Plex Sans"; letter-spacing: -.8px; }

footer .contact a:hover { color: #073642; }

footer .contact .methods { display: inline-flex; line-height: 1.5em; position: relative; flex-direction: column; }

footer .contact .methods * { text-align: left; }

footer .badge { font-family: "IBM Plex Mono"; position: absolute; display: inline; font-size: small; user-select: none; line-height: 1em; border-radius: 99px; border-bottom-left-radius: 0; border-top-left-radius: 0; padding: 2px; font-weight: 800; padding-left: 3px; padding-right: 6px; margin-left: 24px; transform: translateY(33%); left: 100%; color: #eee8d5; }

footer .badge.xmpp { background: #2aa198; }

footer .badge.xmpp::before { content: ""; position: absolute; left: -8px; top: 0; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-right: 8px solid #2aa198; }

footer .badge.matrix { background: #859900; }

footer .badge.matrix::before { content: ""; position: absolute; left: -8px; top: 0; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-right: 8px solid #859900; }

footer .badge.email { background: #cb4b16; }

footer .badge.email::before { content: ""; position: absolute; left: -8px; top: 0; width: 0; height: 0; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-right: 8px solid #cb4b16; }

@media only screen and (max-width: 768px) { footer .badge { display: none; } footer .contact, footer .contact .methods > div { text-align: right; } }

@media only screen and (min-width: 1200px) { .left, .right { position: absolute; display: block; margin-top: 0; margin-bottom: 0; max-width: 25vw; } .right { transform: translateX(calc(100% + 16px)); right: 0; } .right:before { text-align: left; } .left { transform: translateX(calc(-100% - 16px)); left: 0; } .left:before { text-align: right; } }

@media only screen and (max-width: 1200px) { .left, .right { display: block; margin-top: 1em; margin-bottom: 1em; } }

#toc { letter-spacing: -.8px; user-select: none; padding-bottom: 16px; list-style: lower-roman; display: inline-block; margin: 0; margin-block-start: 0; margin-block-end: 0; border: 1px #2aa198 solid; counter-reset: toplevel; }

#toc:before { content: "Table of Contents"; display: block; margin-bottom: 16px; margin-left: -32px; margin-right: 8px; line-height: 2em; color: #2aa198; border-bottom: 2px #2aa198 dashed; }

#toc > * { margin-left: 16px; margin-right: 16px; }

#toc > li > ul { list-style: decimal; }

#toc ::marker { font-family: "IBM Plex Mono"; color: black; }

#toc > li > a { color: #cb4b16; }

#toc > li > ul > li :link { color: #268bd2; }

#toc > li > ul > li :visited { color: #268bd2; }

@media only screen and (min-width: 1200px) { #toc { position: absolute; transform: translateX(calc(-100% - 16px)) translateY(64px); max-width: 25vw; } #toc:before { text-align: right; } }

@media only screen and (max-width: 1200px) { #toc { display: block; margin-top: 16px; margin-bottom: 16px; } }

.revisions { outline: #93a1a1 2px dashed; outline-offset: 4px; margin-top: 1em; margin-bottom: 1em; padding: 8px; color: #839496; }

.revisions *::selection { background: #93a1a1; }

.revisions::before { content: "Revision History"; display: block; line-height: 1em; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 2px #93a1a1 dashed; }

.revisions .commitdate { float: right; }

.revisions .commitish { font-family: "IBM Plex Mono"; background: #fdf6e3; font-weight: 600; }

.revisions .commitmesg { font-weight: 600; }

.revisions .commitbody { margin-left: 8px; }

.revisions .revision:not(:last-child) { margin-bottom: 8px; }

.revisions .revision:hover { background: #fdf6e3; }

.revisions .revision.updated { color: #dc322f; }

.revisions .revision.updated .commitbody:after { content: "(new)"; float: right; font-weight: 600; }

section p { position: relative; }

.footnote { display: inline-block; counter-increment: footnotes; }

.footnote > span:not(.body) { font-family: "IBM Plex Mono"; font-weight: 300; vertical-align: super; font-size: 0.7em; }

.footnote > span:not(.body):before { content: "[" counter(footnotes) "]"; }

.footnote .katex { line-height: 1em; }

.footnote:hover * { background: #eee8d5; }

.footnote > span.body { hyphens: auto; border: 2px #6c71c4 solid; padding: 8px; padding-top: 0; box-shadow: 7px 10px 13px 2px #0000002e; }

.footnote > span.body::selection, .footnote > span.body ::selection { background: #6c71c4; }

.footnote > span.body:before { display: block; line-height: 2em; font-family: "IBM Plex Mono"; font-weight: bold; border-bottom: 2px #6c71c4 dashed; margin-bottom: 8px; content: "[" counter(footnotes) "] Footnote"; color: #6c71c4; }

.footnote > span.body:after { position: absolute; top: calc(-1em - 8px); }

@media only screen and (min-width: 1200px) { .footnote > span.body { position: absolute; display: block; margin-top: 0; margin-bottom: 0; max-width: 25vw; } .footnote > span.body.right { transform: translateX(calc(100% + 16px)) rotate(1deg); right: 0; } .footnote > span.body.right:before { content: "[" counter(footnotes) "] Footnote"; } .footnote > span.body.right:before { text-align: left; } .footnote > span.body.right:after { content: "➜"; transform: rotate(180deg) rotate(-1deg); left: 0; } .footnote > span.body.left { transform: translateX(calc(-100% - 16px)) rotate(-0.6deg); left: 0; } .footnote > span.body.left:before { content: "Footnote [" counter(footnotes) "]"; } .footnote > span.body.left:before { text-align: right; } .footnote > span.body.left:after { transform: rotate(0.6deg); content: "➜"; right: 0; } }

@media only screen and (max-width: 1200px) { .footnote { display: contents; } .footnote > :first-child { counter-increment: footnotes; } .footnote > span.body { float: left; width: calc(100% - 16px); display: block; margin-top: 16px; margin-bottom: 16px; } }

body { counter-reset: katexEqnNo mmlEqnNo footnotes !important; }

.flex { display: flex; }

::selection { background: black; color: white; }

h1::selection { background: #cb4b16; }

h2::selection { background: #b58900; }

h3::selection { background: #d33682; }

h4::selection { background: #268bd2; }

h5::selection { background: #6c71c4; }

h6::selection { background: #859900; }

.katex-display ::selection { background: #6c71c4; }

.highlight ::selection { color: inherit; }

nav { outline: 2px black solid; text-align: center; display: flex; }

nav > * { flex-grow: 1; }

nav > :not(:last-child) { border-right: 2px black solid; }

nav a:hover { background: #fdf6e3; }

nav a, nav :link, nav :visited { background: white; color: black; }

nav a.current-page { background: black; color: white; border-right: none; }

.bordered-text, .post h1::after { color: #fff; text-shadow: 3px 3px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; }

h1 { font-family: "IBM Plex Mono"; }

h2 { font-family: "IBM Plex Mono"; }

h3 { font-family: "IBM Plex Mono"; }

h4 { font-family: "IBM Plex Mono"; }

h5 { font-family: "IBM Plex Mono"; }

h6 { font-family: "IBM Plex Mono"; }

.index { position: relative; }

.index h1 { font-size: 2em; }

.post-preview { border: 2px black solid; padding-left: 16px; padding-right: 16px; margin-bottom: 16px; }

.post-preview:hover { background: #fdf6e3; }

.post-preview p { font-weight: 400; }

.post-title-text { margin-block-start: 0em; margin-block-end: 0em; margin-inline-start: 0px; margin-inline-end: 0px; margin: 0; margin-bottom: 8px; margin-top: 16px; }

.post-date { color: #93a1a1; }

.post-date::selection { background: #93a1a1; }

.post-hash { align-self: end; flex-grow: 1; text-align: right; font-family: "IBM Plex Mono"; color: #93a1a1; }

.post-updated .post-title-text, .post-updated .post-hash { color: #dc322f; }

.post-updated .post-hash:before { content: "(new)"; }

@keyframes sine { from { transform: translateY(-7px); }
  to { transform: translateY(7px); } }

h1 > c { color: #2aa198; animation: sine 2s alternate infinite ease-in-out; white-space: pre; }

.post { counter-reset: h1; }

.post h1 { display: flex; counter-reset: h2; }

.post h1::after { flex-grow: 1; text-align: right; counter-increment: h1; content: "." counter(h1, lower-roman); }

.post h2 { display: flex; counter-reset: h3; }

.post h2::after { flex-grow: 1; text-align: right; counter-increment: h2; content: "." counter(h2, decimal); }

.post h3 { display: flex; counter-reset: h4; }

.post h3::after { flex-grow: 1; text-align: right; counter-increment: h3; content: "." counter(h3, lower-alpha); }

.post h1[id]::selection { background: #2aa198; }

.post h3::after { content: "." counter(h1, lower-roman) "." counter(h2) "." counter(h3); }

.post h2::after { content: "." counter(h1, lower-roman) "." counter(h2); }

.post h1[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h1[id]:not(:hover) a { visibility: hidden; }

.post h1[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h1[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h1[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

.post h2[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h2[id]:not(:hover) a { visibility: hidden; }

.post h2[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h2[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h2[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

.post h3[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h3[id]:not(:hover) a { visibility: hidden; }

.post h3[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h3[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h3[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

.post h4[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h4[id]:not(:hover) a { visibility: hidden; }

.post h4[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h4[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h4[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

.post h5[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h5[id]:not(:hover) a { visibility: hidden; }

.post h5[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h5[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h5[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

.post h6[id] a { margin-left: 16px; color: #2aa198; user-select: none; }

.post h6[id]:not(:hover) a { visibility: hidden; }

.post h6[id]:hover { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; }

.post h6[id]:target { background: #eee8d5; margin-left: -8px; padding-left: 8px; margin-right: -8px; padding-right: 8px; position: relative; }

.post h6[id]:target::before { position: absolute; transform: translateX(calc(-100% - 16px)); content: "➜"; color: #2aa198; }

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