/*USED*/

/* latin */
@font-face {
  font-family: 'Sohne';
  font-weight: 500;
  font-style: normal;
  src: url('/font/sohne-500-normal-1.woff') format('woff');
  unicode-range: U+0-7F,U+A0,U+200A,U+2014,U+2018,U+2019,U+201C,U+201D,U+2022,U+2026;
}

/* latin */
@font-face {
  font-family: 'Sohne';
  font-weight: 700;
  font-style: normal;
  src: url('/font/sohne-700-normal-1.woff') format('woff');
  unicode-range: U+0-7F,U+A0,U+200A,U+2014,U+2018,U+2019,U+201C,U+201D,U+2022,U+2026;
}

/* latin */
@font-face {
  font-family: 'Sohne';
  font-weight: 400;
  font-style: normal;
  src: url('/font/sohne-400-normal-1.woff') format('woff');
  unicode-range: U+0-7F,U+A0,U+200A,U+2014,U+2018,U+2019,U+201C,U+201D,U+2022,U+2026;
}

/* latin */
@font-face {
  font-family: 'Charter';
  font-weight: 400;
  font-style: normal;
  src: url('/font/charter-400-normal-1.woff') format('woff');
  unicode-range: U+0-7F,U+A0,U+200A,U+2014,U+2018,U+2019,U+201C,U+201D,U+2022,U+2026;
}

/* latin */
@font-face {
  font-family: 'Charter';
  font-weight: 700;
  font-style: normal;
  src: url('/font/charter-700-normal-1.woff') format('woff');
  unicode-range: U+0-7F,U+A0,U+200A,U+2014,U+2018,U+2019,U+201C,U+201D,U+2022,U+2026;
}

/* rest */
@font-face {
  font-family: 'Charter';
  font-weight: 400;
  font-style: normal;
  src: url('/font/charter-400-normal-2.woff') format('woff');
  unicode-range: U+80-9F,U+A1-2009,U+200B-2013,U+2015-2017,U+201A-201B,U+201E-2021,U+2023-2025,U+2027-10FFFF;
}






/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}
body {
	margin: 0;
	background-color: #f7f3f2;
}
main {
	display: block;
}
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}
a {
	background-color: transparent;
}
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	-webkit-text-decoration: underline dotted;
	text-decoration: underline dotted;
}
b,
strong {
	font-weight: bolder;
}
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}
small {
	font-size: 80%;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
img {
	border-style: none;
}
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}
button,
input {
	overflow: visible;
}
button,
select {
	text-transform: none;
}
button,
[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 {
	border-style: none;
	padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}
fieldset {
	padding: 0.35em 0.75em 0.625em;
}
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}
progress {
	vertical-align: baseline;
}
textarea {
	overflow: auto;
}
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}
details {
	display: block;
}
summary {
	display: list-item;
}
template {
	display: none;
}
[hidden] {
	display: none;
}
:root {
	--border-color: rgb(216, 216, 216);
	--dark-border-color: rgb(179, 179, 179);
}
::-moz-selection {
	background: #e9deff;
}
::selection {
	background: #e9deff;
}
.badge {
	padding: 2px 6px;
	background-color: #ddd;
	border-radius: 3px;
	box-sizing: border-box;
	font: bold 12px "Helvetica Neue";
	text-transform: uppercase;
}
.badged-header > .badge {
	float: left;
	margin-top: 26px;
	margin-left: 10px;
}
@media (max-width: 600px) {
	.badged-header > .badge {
		margin-top: 21px;
	}
}
.blue {
	background-color: #0079f3;
	color: white;
}
.red {
	background-color: #ff3939;
	color: white;
}
.archive-badge {
	margin-left: 5px;
}
html {
	background-color: #f7f3f2;
	font-size: 18px;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
#header-container {
	border-top: 10px solid #3B09FF;
	background-color: #f7f3f2;
}
#body-container {
	width: 100%;
	height: 100%;
}
.content {
	max-width: 600px;
	margin: auto;
	padding: 0px 20px;
}
.content::after {
	clear: both;
	content: "";
	display: block;
}
.background-content {
	width: 100%;
	margin-bottom: 50px;
}
#main-header {
	padding: 20px 0px;
}
#main-header a {
	color: #aaa;
	font-size: 14px;
	-webkit-transition: color 0.25s;
	transition: color 0.25s;
}
#main-title {
	margin: 0px;
	font-weight: normal;
}
#main-title a {
	display: inline-block;
	float: left;
	line-height: 25px;
	padding-top: 1px;
	box-sizing: border-box;
}
@media (max-width: 600px) {
	#main-title {
		margin-bottom: 10px;
	}
	#main-title a {
		display: block !important;
		text-align: left;
		float: none !important;
	}
}
#main-navigation ul {
	padding: 0px;
	float: right;
}
#main-navigation ul li {
	margin-right: 18px;
	margin-bottom: 0px;
	display: inline-block;
}
#main-navigation ul li:last-child {
	margin-right: 0px;
}
@media (max-width: 600px) {
	#main-navigation ul {
		text-align: left;
		float: none;
	}
}
#site-links {
	margin: 0px;
	line-height: 25px;
}
.katex-display {
	margin: 20px 0px !important;
}
hr {
	display: block;
	height: 1px;
	border: 0;
	border-top: 2px dotted var(--border-color);
	margin: 2.3em 0;
	padding: 0;
}
article {
	margin-bottom: 70px;
}
article .tags {
	margin-top: 5px;
	padding: 0;
}
article .tags li {
	list-style: inline;
	display: inline-block;
	margin-right: 10px;
}
article img {
	display: block;
	margin: auto;
	max-width: 100%;
	border: 1px solid #dddddd;
	border-radius: 5px;
}
article:last-child {
	margin-bottom: 0px;
}
.article-title {
	margin: 0;
}
.article-header {
	margin-bottom: 17px;
}
.metadata {
	width: 100%;
	display: block;
	margin-top: 15px;
	margin-bottom: 25px;
	text-align: left;
}
.year,
.month {
	margin-left: 0px;
	padding: 0px;
	list-style: none;
}
.year {
	margin-top: 0;
}
.year li {
	margin-bottom: 40px;
}
.year-header {
	margin-top: 0;
	margin-bottom: 20px;
	padding-bottom: 7px;
	border-bottom: 0.5px solid var(--border-color);
	font-size: 22px;
}
.month-header {
	font-size: 22px;
	color: #3B09FF;
}
.month {
	margin-bottom: 25px;
}
.month li {
	margin-bottom: 10px;
}
.month li a {
	text-decoration: none;
	color: black;
	border-bottom: 1px solid #3B09FF;
}
.month li a:hover {
	color: #3B09FF;
	text-decoration: none;
	background-color: #e9deff;
	border-color: #e9deff;
}
.month h3 {
	margin-bottom: 7px;
	margin-top: 0;
}
#projects {
	margin-top: 0;
	list-style: none;
	padding: 0;
}
.project {
	border-bottom: 1px solid #eee;
	padding: 30px 0 34px 0;
}
@media (max-width: 600px) {
	.project {
		text-align: center;
	}
}
.project .blue-button {
	margin-right: 15px;
}
.project .blue-button:last-child {
	margin-right: 0;
}
.project:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}
.project:first-child {
	padding-top: 0;
}
.project h2 {
	margin-top: 0;
	line-height: 26px;
	font-weight: 400;
}
.project p {
	margin-bottom: 20px;
}
.blue-button {
	display: inline-block;
	padding: 7px 0 6px 0;
	border-radius: 5px;
	color: #ffffff;
	font-size: 15px;
	font-weight: 600;
	line-height: 20px;
	text-align: center;
	text-shadow: 0 -1px 1px #103ca3;
	width: 105px;
	background-image: -webkit-gradient(linear, left top, left bottom, from(#84cbff), color-stop(44%, #3699f2), to(#0573ea));
	background-image: linear-gradient(-180deg, #84cbff 0%, #3699f2 44%, #0573ea 100%);
	border: 1px solid #0055c7;
	box-shadow: 0px 1px 2px 0px #78a9e8, inset 0px 1px 1px 0px #a8d8ff;
}
.blue-button:hover {
	color: #ffffff;
	border: 1px solid #0055c7;
}
.buttons {
	padding: 0px;
	list-style: none;
}
.buttons li {
	display: inline-block;
	margin-right: 10px;
}
@media (max-width: 600px) {
	.buttons {
		margin-left: 10px;
		text-align: center;
	}
}
footer {
	margin-top: 45px;
	margin-bottom: 47px;
}
footer a {
	margin: 0px 3px;
}
.footnotes {
	border-top: 1px solid var(--border-color);
}
.footnotes a {
	border: none;
}
.footnotes li {
	font-size: 16px;
	line-height: 24px;
	margin-bottom: 15px;
}
.footnotes li:last-child {
	margin-bottom: 0px;
}
.gist-meta a {
	border-bottom: none;
}
body {
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
}
p {
	margin-top: 0px;
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.55em;
	margin-bottom: 30px;
}
li {
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 20px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.55em;
	margin-bottom: 10px;
}
@media (max-width: 600px) {
	p,
	li {
		font-size: 17px;
		line-height: 1.5em;
	}
}
code {
	font-family: "Source Code Pro", monospace, sans-serif;
}
#main-header li {
	font-weight: 600;
}
#site-links li {
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	text-color: #e81f36;
	line-height: 25px;
}
#introduction {
	border-top: 2px dotted var(--border-color);
	padding-top: 30px;
	margin-top: 60px;
	border-bottom: 2px dotted var(--border-color);
	margin-bottom: 60px;
}
#introduction p {
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 500;
	font-size: 22px;
	text-align: center;
}
#introduction p a {
	text-decoration: none;
	color: black;
	border-bottom: 1px solid #3B09FF;
}
#introduction p a:hover {
	color: #3B09FF;
	text-decoration: none;
	background-color: #e9deff;
	border-color: #e9deff;
}
#archive-link {
	border-top: 1px solid #eee;
	padding-top: 60px;
	margin: auto;
	margin-top: 50px;
	display: block;
	text-align: center;
}
#archive-link a {
	display: inline-block;
	margin: auto;
	font-size: 22px;
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
}
article {
	color: #222;
}

article h1
 {
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 600;
}

article h2,
article h3,
article h4,
article h5,
article h6 {
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 500;
}
article h1 code,
article h2 code,
article h3 code,
article h4 code,
article h5 code,
article h6 code {
	padding: 0;
	font-size: 28px;
	font-weight: 600;
	border: 0;
}
@media (max-width: 600px) {
	article h2,
	article h3,
	article h4,
	article h5,
	article h6 {
		font-size: 20px;
		margin-top: 35px;
		line-height: 26px;
	}
	article h1 {
		font-size: 20px;
		margin-top: 35px;
		line-height: 38px;
	}
	#introduction {
		border-top: 1px solid #eee;
		padding-top: 5px;
		margin-top: 60px;
		border-bottom: 1px solid #eee;
		margin-bottom: 5px;
	}
	#introduction p {
		font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
		font-weight: 500;
		font-size: 19px;
		text-align: center;
	}
}
article a {
	-webkit-transition: color 0.15s;
	transition: color 0.15s;
}
article a:hover {
	color: black;
}
article .article-title {
	display: block;
	margin-top: 80px;
	margin-bottom: 5px;
	font-weight: 600;
	font-size: 32px;
	text-align: left;
}
@media (max-width: 600px) {
	article .article-title {
		font-size: 25px;
		display: block;
		margin-top: 30px;
		margin-bottom: -10px;
		font-weight: 600;
		text-align: left;
		line-height: 32px;
	}
}
article .article-title a {
	color: #222;
	border-bottom: none;
	line-height: 1.2em;
	-webkit-transition: color 0.3s;
	transition: color 0.3s;
}
article .article-title a:hover {
	border-bottom: 0;
	color: #3B09FF;
}
article .tag a {
	padding: 3px 5px 1px 5px;
	color: #b8bdc0;
	border-radius: 4px;
	font-family: Helvetica, "Helvetica Neue", 'Sohne', Arial, sans-serif;
	font-size: 14px;
	font-weight: 600;
	border: 1px solid var(--border-color);
	-webkit-transition: color 0.3s;
	transition: color 0.3s;
}
article .tag a:hover {
	border: 1px solid var(--dark-border-color);
	color: #3B09FF;
}
article .link {
	color: black;
}
@media (max-width: 600px) {
	article .link {
		padding-bottom: 5px;
	}
}
article .permalink {
	margin-top: 19px;
	border-bottom: none;
	font-size: 20px;
}
article .permalink:hover {
	border-bottom: none;
}
@media (max-width: 600px) {
	article {
		font-size: 16px;
		line-height: 28px;
	}
}
h1#category-title {
	margin-bottom: 45px;
	color: #3B09FF;
	font-size: 30px;
}
.metadata {
	color: #9ca0a2;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
}
.metadata a {
	color: #9ca0a2;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	text-decoration: none;
	border-bottom: 1px solid #f7f3f2;
}
.metadata a:hover {
	color: #3B09FF;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	text-decoration: none;
	border-bottom: 0px solid #f7f3f2;
}
@media (max-width: 600px) {
	.metadata {
		font-size: 14px;
		margin-bottom: 0px;
	}
}
footer p,
footer a {
	color: #9ca0a2;
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-size: 17px;
	line-height: 28px;
}
@media (max-width: 600px) {
	footer p,
	footer a {
		font-size: 15px;
	}
}
.blue-button {
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
}
#main-title {
	font-weight: 600;
	font-family: 'Charter', Helvetica, "Helvetica Neue", Arial, sans-serif;
}
h1 {
	margin: 50px 0px 10px 0px;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 400;
	line-height: 41px;
	margin-top: 0px;
	font-size: 32px;

}
h2 {
	font-size: 26px;
	margin: 40px 0px 14px 0px;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 400;
	line-height: 36px;
}
h3 {
	font-size: 20px;
	margin: 50px 0px 12px 0px;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 400;
	line-height: 31px;
}
h4 {
	font-size: 18px;
	margin: 50px 0px 10px 0px;
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 400;
	line-height: 27px;
}
p {
	margin-top: 0px;
}
p a {
	text-decoration: none;
	color: #3B09FF;
	border-bottom: 1px solid #3B09FF;
}
p a:hover {
	color: #3B09FF;
	text-decoration: none;
	background-color: #e9deff;
	border-color: #e9deff;
}
li a {
	text-decoration: none;
	color: #3B09FF;
	border-bottom: 1px solid #3B09FF;
}
li a:hover {
	color: #3B09FF;
	text-decoration: none;
	background-color: #e9deff;
	border-color: #e9deff;
}
a {
	text-decoration: none;
	color: black;
	border-bottom: 1px solid #3B09FF;
}
a:hover {
	border-bottom: 2px solid #3B09FF;
}
blockquote {
	margin: 30px 0px;
	padding: 0px 25px;
	border-left: 2px solid #3B09FF;
	color: #000;
}
blockquote a {
	color: #3B09FF;
}
#main-header a {
	font-family: 'Sohne', Helvetica, "Helvetica Neue", Arial, sans-serif;
	font-weight: 500;
	border-bottom: none;
	font-size: 17px;
	color: black;
}
#main-header a:hover {
	color: #3B09FF;
}
#main-header .active {
	color: #3B09FF;
}
footer a {
	-webkit-transition: color 0.15s ease-out;
	transition: color 0.15s ease-out;
}
footer a:hover {
	color: #222;
}
.katex .accent .accent-body.accent-vec > span {
	left: 0em !important;
}
pre:not(.line-pre) {
	font-size: 14px;
	line-height: 20px;
	word-wrap: normal;
}
@media (max-width: 600px) {
	pre:not(.line-pre) {
		padding: 2px 6px;
	}
}
code {
	box-sizing: border-box;
	border-radius: 4px;
	background-color: #fafafa;
	border-radius: 4px;
	padding: 2px 6px;
	font-size: 16px;
	line-height: 20px;
}
@media (max-width: 600px) {
	code {
		padding: 0 4px;
	}
}
pre code {
	display: block;
	padding: 5px 7px;
	margin: 0px;
	border: none;
	word-wrap: normal;
	white-space: pre;
	overflow: auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.highlight {
	border-radius: 4px;
}
.chroma {
	background-color: #fafafa;
	border-radius: 4px;
	border: 1px solid #eee;
}
.chroma .err {
	color: #aa0000;
	background-color: #ffaaaa;
}
.chroma .lntd {
	vertical-align: top;
	padding: 0;
	margin: 0;
	border: 0;
}
.chroma .lntable {
	border-spacing: 0;
	padding: 0;
	margin: 0;
	border: 0;
	width: 100%;
	overflow: auto;
	display: block;
}
.chroma .hl {
	background-color: #f5f5f5;
	display: block;
	width: 100%;
}
.chroma .lnt {
	margin-right: 0.4em;
	padding: 0 0.4em 0 0.4em;
	display: block;
}
.chroma .ln {
	margin-right: 0.4em;
	padding: 0 0.4em 0 0.4em;
}
.chroma .k {
	color: #006699;
	font-weight: bold;
}
.chroma .kc {
	color: #006699;
	font-weight: bold;
}
.chroma .kd {
	color: #006699;
	font-weight: bold;
}
.chroma .kn {
	color: #006699;
	font-weight: bold;
}
.chroma .kp {
	color: #006699;
}
.chroma .kr {
	color: #006699;
	font-weight: bold;
}
.chroma .kt {
	color: #007788;
	font-weight: bold;
}
.chroma .na {
	color: #330099;
}
.chroma .nb {
	color: #336666;
}
.chroma .nc {
	color: #00aa88;
}
.chroma .no {
	color: #336600;
}
.chroma .nd {
	color: #9999ff;
}
.chroma .ni {
	color: #999999;
	font-weight: bold;
}
.chroma .ne {
	color: #cc0000;
	font-weight: bold;
}
.chroma .nf {
	color: #cc00ff;
}
.chroma .nl {
	color: #9999ff;
}
.chroma .nn {
	color: #00ccff;
	font-weight: bold;
}
.chroma .nt {
	color: #330099;
	font-weight: bold;
}
.chroma .nv {
	color: #003333;
}
.chroma .s {
	color: #cc3300;
}
.chroma .sa {
	color: #cc3300;
}
.chroma .sb {
	color: #cc3300;
}
.chroma .sc {
	color: #cc3300;
}
.chroma .dl {
	color: #cc3300;
}
.chroma .sd {
	color: #cc3300;
	font-style: italic;
}
.chroma .s2 {
	color: #cc3300;
}
.chroma .se {
	color: #cc3300;
	font-weight: bold;
}
.chroma .sh {
	color: #cc3300;
}
.chroma .si {
	color: #aa0000;
}
.chroma .sx {
	color: #cc3300;
}
.chroma .sr {
	color: #33aaaa;
}
.chroma .s1 {
	color: #cc3300;
}
.chroma .ss {
	color: #ffcc33;
}
.chroma .m {
	color: #ff6600;
}
.chroma .mb {
	color: #ff6600;
}
.chroma .mf {
	color: #ff6600;
}
.chroma .mh {
	color: #ff6600;
}
.chroma .mi {
	color: #ff6600;
}
.chroma .il {
	color: #ff6600;
}
.chroma .mo {
	color: #ff6600;
}
.chroma .o {
	color: #555555;
}
.chroma .ow {
	color: #000000;
	font-weight: bold;
}
.chroma .c {
	color: #0099ff;
	font-style: italic;
}
.chroma .ch {
	color: #0099ff;
	font-style: italic;
}
.chroma .cm {
	color: #0099ff;
	font-style: italic;
}
.chroma .c1 {
	color: #0099ff;
	font-style: italic;
}
.chroma .cs {
	color: #0099ff;
	font-weight: bold;
	font-style: italic;
}
.chroma .cp {
	color: #009999;
}
.chroma .cpf {
	color: #009999;
}
.chroma .gd {
	background-color: #ffcccc;
}
.chroma .ge {
	font-style: italic;
}
.chroma .gr {
	color: #ff0000;
}
.chroma .gh {
	color: #003300;
	font-weight: bold;
}
.chroma .gi {
	background-color: #ccffcc;
}
.chroma .go {
	color: #aaaaaa;
}
.chroma .gp {
	color: #000099;
	font-weight: bold;
}
.chroma .gs {
	font-weight: bold;
}
.chroma .gu {
	color: #003300;
	font-weight: bold;
}
.chroma .gt {
	color: #99cc66;
}
.chroma .w {
	color: #bbbbbb;
}