@charset "UTF-8";
.c-aa0d91 {
  color: #aa0d91;
}

.c-5c2699 {
  color: #5c2699;
}

.c-007400 {
  color: #007400;
}

.c-0e0eff {
  color: #0e0eff;
}

.c-c41a16 {
  color: #c41a16;
}

.c-2e0d6e {
  color: #2e0d6e;
}

.c-1c00cf {
  color: #1c00cf;
}

.c-26474b {
  color: #26474b;
}

.c-3f6e74 {
  color: #3f6e74;
}

.c-023d10 {
  color: #023d10;
}

.c-643820 {
  color: #643820;
}

main {
  display: block;
}

* {
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
}

html, body {
  height: 100%;
}

body {
  font-family: "Source Sans Pro", sans-serif;
  color: #111;
  text-rendering: optimizeLegibility;
  -webkit-font-variant-ligatures: common-ligatures;
  font-variant-ligatures: common-ligatures;
}

abbr {
  cursor: help;
  text-decoration: none;
}

.flex-column {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  height: 100%;
  max-width: 750px;
  margin: 0 auto;
  padding: 0 1.5em;
}
@media (max-width: 600px) {
  .flex-column {
    padding: 0 1em;
  }
}

.noshrink {
  -webkit-flex-shrink: 0;
  -moz-flex-shrink: 0;
  -ms-flex-shrink: 0;
  flex-shrink: 0;
}

.grow {
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-grow: 1;
  flex-grow: 1;
}

body.index #site-header {
  font-size: 1.5em;
}
@media (max-width: 600px) {
  body.index #site-header {
    font-size: 1.2em;
  }
}
@media (max-width: 350px) {
  body.index #site-header {
    font-size: 1em;
  }
}
body.index main {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  -ms-align-items: center;
  align-items: center;
  height: 90%;
  text-align: center;
  margin: 0 auto;
  padding: 0;
  width: 100%;
}
body.index #profiles {
  margin-top: 0.3em;
}
body.index #profiles li {
  height: 1em;
  width: 1em;
}

#site-header {
  text-align: center;
  margin: 0 auto;
  padding: 0.5em 0em;
}
@media (max-width: 600px) {
  #site-header {
    font-size: 0.8em;
  }
}
#site-header h1 {
  font-kerning: none;
  white-space: nowrap;
  font-weight: 400;
  font-size: 1.5em;
  position: relative;
  display: inline-block;
}
#site-header h1 .letter {
  -webkit-tap-highlight-color: transparent;
}
#site-header h1 .letter.dropped {
  color: transparent;
}
#site-header a {
  text-decoration: none;
  color: inherit;
}
#site-header h1 + * {
  position: relative;
  z-index: 2;
}
#site-header .fade {
  -webkit-user-select: none;
  user-select: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 31px;
  margin: -31px;
  border: 1px;
  border-image: radial-gradient(rgba(255, 255, 255, 0), white 60%) 49% 49%/31px stretch;
  z-index: 0;
  pointer-events: none;
}
#site-header #header-effect {
  -webkit-user-select: none;
  user-select: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2;
}
#site-header canvas {
  image-rendering: -webkit-optimize-contrast;
  image-rendering: -moz-crisp-edges;
  image-rendering: pixelated;
  -ms-interpolation-mode: nearest-neighbor;
}

#profiles {
  list-style: none;
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: 0.2em;
}
#profiles li {
  display: inline-block;
  position: relative;
  height: 1.2em;
  min-width: 1.2em;
  margin: 0em 0.4em;
  background-color: white;
  box-shadow: white 0px 0px 0.5em 0.5em;
  border-radius: 50%;
}
#profiles li:hover a {
  padding: 0.5em;
  margin: -0.5em;
}
#profiles li:not(:hover) path {
  fill: #ddd;
}
#profiles a, #profiles svg {
  position: absolute;
  color: transparent;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#profiles svg path {
  transition: fill 0.2s;
}

main {
  position: relative;
  margin-top: 2em;
}

.main-header {
  margin-bottom: 2em;
}

article {
  position: relative;
}
article header a, article header a:hover, article header a:visited {
  text-decoration: none;
  color: inherit;
}
article h1 {
  font-weight: 700;
  font-size: 2.5em;
  line-height: 1em;
  letter-spacing: -0.02em;
}
@media (max-width: 600px) {
  article h1 {
    font-size: 2em;
  }
}
article .subhead {
  margin: 0;
  font: 200 italic 1.2em "Source Sans Pro", sans-serif;
  text-align: left;
}
article .post-meta {
  font-weight: 300;
  font-size: 0.9em;
  margin: 0em 0em;
  color: #999;
}

h2 {
  margin: 1.5em 0 0.5em;
  font: 400 1.75em "Source Serif Pro", serif;
}

h3 {
  margin: 1em 0 0.5em;
  font: 700 1.3em "Source Sans Pro", serif;
}

p {
  text-align: justify;
  margin: 1.2em 0;
  line-height: 1.4;
}
@media (max-width: 350px) {
  p {
    text-align: left;
  }
}
aside p:first-child {
  margin-top: 0;
}
p:last-child {
  margin-bottom: 0;
}

h2 + p, h3 + p {
  margin-top: -0.3em;
}

pre, code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

code, kbd, samp {
  font-family: Consolas, "Source Code Pro", Menlo, Monaco, monospace;
}

a {
  /* thanks wikipedia */
  color: #0645ad;
  text-decoration: none;
}
a:visited {
  color: #002070;
}
a:hover {
  text-decoration: underline;
}

p code, li code, aside code, h1 code, h2 code, h3 code {
  font-size: 0.9em;
  white-space: nowrap;
  border-radius: 2px;
  background-color: #f8f8f8;
  padding: 0.1em 0.2em 0.05em;
  margin: -0.1em 0em;
}

code.breakable {
  white-space: normal !important;
}

h1 > code {
  padding: 0.1em 0.1em 0em;
  margin: -0.1em -0.1em 0em;
}

var {
  font-style: normal;
}

pre kbd var {
  font-style: italic;
  color: #666;
}
pre kbd var::before {
  content: "«";
  color: #bbb;
}
pre kbd var::after {
  content: "»";
  color: #bbb;
}

strong {
  font-weight: 700;
}

pre {
  font-size: 0.8em;
  border-radius: 3px;
  background-color: #f8f8f8;
  padding: 0.4em 0.6em;
  margin: 0em -0.2em;
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 600px) {
  pre {
    padding-top: 1em;
    padding-bottom: 1em;
  }
}

pre a.select {
  -webkit-appearance: none;
  -moz-appearance: none;
  background: none;
  border: none;
  text-transform: uppercase;
  float: right;
  cursor: pointer;
  background-color: #f8f8f8;
  font: 400 0.8em "Source Code Pro", monospace;
}

.MathJax_Preview {
  color: #888;
  text-align: center;
  margin: 1em 0;
}

.MathJax_Display {
  box-sizing: border-box;
  padding: 0.5em 0em !important;
  margin: 0em !important;
  -webkit-overflow-scrolling: touch;
  overflow-x: auto;
  overflow-y: hidden;
}
.MathJax_Display span {
  -webkit-tap-highlight-color: transparent;
}

body.page .main-header h1 {
  letter-spacing: -0.02em;
  font: 400 2.5em "Source Serif Pro", serif;
}
@media (max-width: 600px) {
  body.page .main-header h1 {
    font-size: 2em;
  }
}

body.archive ol {
  list-style: none;
}
body.archive li {
  margin: 2em 0;
}
body.archive article {
  font-size: 0.7em;
}
body.archive article a {
  color: inherit;
  text-decoration: none;
}
body.archive article h1 {
  font-weight: 400;
}
body.archive article h1.external::after {
  content: "↗︎";
  font-weight: bold;
  font-size: 0.5em;
  position: relative;
  bottom: 8px;
  left: 4px;
}
body.archive article .subhead {
  font-size: 1.3em;
}
body.archive article .post-meta {
  font-size: 1.2em;
}

.end-mark {
  text-align: center;
  margin: 3em 0 1em;
}
.end-mark svg {
  width: 2em;
  height: 2em;
}

footer#main-footer {
  margin: 2em 0 0em;
  padding-bottom: 2em;
}
footer#main-footer .copyright {
  text-align: center;
  margin-top: 0.5em;
  padding-top: 1em;
  font-size: 0.7em;
  color: #ccc;
}
footer#main-footer a, footer#main-footer a:visited {
  color: inherit;
}

nav {
  color: #889;
}
nav a, nav a:visited {
  color: inherit;
}

nav.related-posts {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  -ms-flex-pack: space-between;
  justify-content: space-between;
  padding: 0.5em 0 0.3em;
  border-bottom: 1px solid #f7f7f7;
  text-align: center;
  font-size: 0.8em;
}
nav.related-posts a {
  margin: 0em 0.8em;
}
nav.related-posts a:first-child {
  margin-left: 0;
}
nav.related-posts a:last-child {
  margin-right: 0;
}
nav.related-posts a[rel=previous]::before {
  content: "« ";
}
nav.related-posts a[rel=next]::after {
  content: " »";
}

body.index nav {
  font-size: 1em;
  margin: 3em 0 0;
  border: none;
}

aside {
  margin: 1em 0;
  color: #999;
}
aside p {
  line-height: 1.2;
}
aside a {
  color: #333;
}
aside a:visited {
  color: #555;
}
aside.meta {
  font-size: 0.8em;
  padding: 1em;
  border: 1px solid #eee;
  background-color: #fdfdfd;
}
aside.meta a {
  color: #444;
}
aside.meta a:visited {
  color: #777;
}
aside.note {
  font-size: 0.9em;
  color: #888;
  background-color: #fffff6;
  border: 1px solid #eee;
  padding: 1em;
}
aside.note .intro {
  color: #777;
  font-weight: bold;
}

.file-download {
  background-color: #fafafa;
  border: 1px solid #ddd;
  border-radius: 0.2em;
  padding: 1em;
  margin: 1.2em auto;
  display: table;
}
.file-download:hover {
  background-color: #f5f5f5;
  border-color: #ccc;
  text-decoration: none;
}
.file-download img, .file-download h1 {
  display: table-cell;
  vertical-align: middle;
}
.file-download img {
  padding-right: 0.5em;
}
.file-download h1 {
  font-size: 1em;
  font-weight: normal;
  letter-spacing: normal;
}

a.twitter {
  border-radius: 4px;
  padding: 1px 10px 1px 9px;
  display: inline-block;
  height: 28px;
}
a.twitter:hover {
  background-color: #0c7abf;
}
a.twitter.retweet {
  padding-left: 10px;
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3NSA3MiI+PHN0eWxlPnBhdGh7ZmlsbDojQUFCOEMyO306aG92ZXIgcGF0aHtmaWxsOiMxOUNGODY7fTwvc3R5bGU+PHBhdGggZD0iTTcwLjY3NiAzNi42NDRDNzAuMTY2IDM1LjYzNiA2OS4xMyAzNSA2OCAzNWgtN1YxOWMwLTIuMjEtMS43OS00LTQtNEgzNGMtMi4yMSAwLTQgMS43OS00IDRzMS43OSA0IDQgNGgxOGMuNTUyIDAgLjk5OC40NDYgMSAuOTk4VjM1aC03Yy0xLjEzIDAtMi4xNjUuNjM2LTIuNjc2IDEuNjQ0LS41MSAxLjAxLS40MTIgMi4yMi4yNTcgMy4xM2wxMSAxNUM1NS4xNDggNTUuNTQ1IDU2LjA0NiA1NiA1NyA1NnMxLjg1NS0uNDU1IDIuNDItMS4yMjZsMTEtMTVjLjY2OC0uOTEyLjc2Ny0yLjEyMi4yNTYtMy4xM3pNNDAgNDhIMjJjLS41NCAwLS45Ny0uNDI3LS45OTItLjk2TDIxIDM2aDdjMS4xMyAwIDIuMTY2LS42MzYgMi42NzctMS42NDQuNTEtMS4wMS40MTItMi4yMi0uMjU3LTMuMTNsLTExLTE1QzE4Ljg1NCAxNS40NTUgMTcuOTU2IDE1IDE3IDE1cy0xLjg1NC40NTUtMi40MiAxLjIyNmwtMTEgMTVjLS42NjcuOTEyLS43NjcgMi4xMjItLjI1NSAzLjEzQzMuODM1IDM1LjM2NSA0Ljg3IDM2IDYgMzZoN2wuMDEyIDE2LjAwM2MuMDAyIDIuMjA4IDEuNzkyIDMuOTk3IDQgMy45OTdoMjIuOTljMi4yMDggMCA0LTEuNzkgNC00cy0xLjc5Mi00LTQtNHoiLz48L3N2Zz4=);
}

aside.share {
  position: absolute;
  left: 100%;
  margin: 0 30px;
}

figure.fullwidth svg, figure.fullwidth img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}
@media (min-width: 600px) {
  figure.right {
    float: right;
    margin-left: 1.5em;
  }
  figure.right + p {
    text-align: left;
  }
}
@media (max-width: 600px) {
  figure.right svg {
    max-width: 100%;
    display: block;
    margin: 0 auto;
  }
}

li {
  margin-left: 2em;
}

q::before, q::after {
  content: "";
}

.footnotes {
  color: #999;
  font-size: 0.8em;
}
.footnotes a {
  color: #333;
}
.footnotes a:visited {
  color: #555;
}

hr.footnotesep {
  margin: 3em 0 1em;
  width: 3em;
  border: none;
  height: 1px;
  background-color: #ddd;
}

[id^="fnref:"].ref-highlight,
[id^="fn:"].ref-highlight [href^="#fnref:"] {
  background: yellow;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

#disqus_thread {
  margin: 0 0 2em;
}

footer.share {
  margin: 2em 0 2em;
  padding: 0;
}
footer.share .retweet-link {
  margin-right: 1em;
  font-size: 13px;
  line-height: 20px;
  color: #AAB8C2;
  font-family: "Helvetica Neue", Arial, sans-serif;
  text-decoration: none;
}
footer.share .retweet-link:hover {
  color: #19CF86;
}
footer.share .retweet-link path {
  fill: #AAB8C2;
}
footer.share .retweet-link:hover path {
  fill: #19CF86;
}

.twitter-follow-button, .retweet-link svg {
  vertical-align: bottom;
}

svg.playground-plot {
  -webkit-tap-highlight-color: transparent;
  font-size: 9pt;
}
svg.playground-plot .axis line, svg.playground-plot .axis path {
  fill: none;
  stroke: black;
  shape-rendering: crispEdges;
}
svg.playground-plot .axis text {
  fill: black;
}
svg.playground-plot line, svg.playground-plot path {
  vector-effect: non-scaling-stroke;
}
svg.playground-plot .error-bar {
  shape-rendering: crispEdges;
  stroke: #ccc;
}
svg.playground-plot .point {
  fill: #57a9f5;
}
svg.playground-plot .point.closest {
  fill: #fe8132;
}
svg.playground-plot line.closest {
  shape-rendering: crispEdges;
  stroke: #ccc;
}
svg.playground-plot .label {
  text-anchor: middle;
}

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