.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; }

.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 {
    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.5em;
    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: "\ab";
    color: #bbb; }
  pre kbd var::after {
    content: "\bb";
    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 .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: "\ab\a0"; }
  nav.related-posts a[rel="next"]::after {
    content: "\a0\bb"; }

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; }
