* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
html {
    position: relative;
    min-height: 100%;
    font-size: 17px;
}
body {
    margin-bottom: 50px;
    font-family: 'Inter', 'Roboto', 'Open Sans', sans-serif;
    color: #180024;
    font-size: 1rem;
    line-height: 1.4;
}
.pure-g, 
.pure-g [class*="pure-u"] {
    font-family: inherit;
}
.pure-img-responsive {
    max-width: 100%;
    height: auto;
}

#layout {
    padding: 0;
}
.content {
    padding: 2em 1em 0;
    padding-top: 0;
}
.header {
    text-align: center;
    top: auto;
    margin: 3em auto;
    margin-top: 2em;
    padding-left: 1em;
    padding-right: 1em;
}
@media (min-width: 48em) {
    .content {
        padding: 2em 3em 0;
        margin-left: 25%;
    }

    .header {
        margin-top: 4rem;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .sidebar {
        position: fixed;
        top: 0;
        bottom: 0;
        overflow-y: auto;
    }
}

a {
    text-decoration: none;
    color: #2910d8;
}
a:hover,
a:focus {
    text-decoration: underline;
}

.link-heading > a {
    color: inherit;
}
.sidebar {
    background-color: #e4d9fe;
}
.sidebar .author-avatar {
    border-radius: 100%;
    width: 90px;
    height: 90px;
}
.brand-title {
    margin: 2px 0;
    text-transform: none;
}
.brand-tagline {
    margin-top: 0;
    margin-bottom: 8px;
    color: #010041;
    line-height: 1.35
}
.sidebar a {
    color: #010041;
}
.sidebar-menu {
    visibility: hidden;
    height: 0;
    opacity: 0;
    margin-top: -50px;
    transition: all 0.2s ease-in-out;
}
.sidebar-menu.open {
    visibility: visible;
    height: auto;
    opacity: 1;
    margin-top: 0px;
    transition: all 0.2s ease-in-out;
}
.sidebar-menu p {
    margin: 2px 0;
    font-weight: bold;
}

@media (min-width: 48em) {
    .sidebar .author-avatar {
        border-radius: 100%;
        width: 130px;
        height: 130px;
    }
    .brand-title {
        margin: 20px 0;
    }
    .brand-tagline {
        margin-top: initial;
        margin-bottom: 30px;
    }
}

.hamburger {
    padding: 15px 15px;
    display: inline-block;
    cursor: pointer;
    transition-property: opacity, -webkit-filter;
    transition-property: opacity, filter;
    transition-property: opacity, filter, -webkit-filter;
    transition-duration: 0.15s;
    transition-timing-function: linear;
    font: inherit;
    color: inherit;
    text-transform: none;
    background-color: transparent;
    border: 0;
    margin: 0;
    overflow: visible; 
    outline: none;
}
.hamburger:hover {
    opacity: 0.7; 
}
.hamburger-box {
    width: 40px;
    height: 24px;
    display: inline-block;
    position: relative; 
}
.hamburger-inner {
    display: block;
    top: 50%;
    margin-top: -2px; 
}
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 40px;
    height: 4px;
    background-color: #3a1078;
    border-radius: 4px;
    position: absolute;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    transition-duration: 0.15s;
    transition-timing-function: ease; }
  .hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block; }
  .hamburger-inner::before {
    top: -10px; }
  .hamburger-inner::after {
    bottom: -10px; 
}
.hamburger--squeeze .hamburger-inner {
  transition-duration: 0.1s;
  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
  .hamburger--squeeze .hamburger-inner::before {
    transition: top 0.1s 0.14s ease, opacity 0.1s ease; }
  .hamburger--squeeze .hamburger-inner::after {
    transition: bottom 0.1s 0.14s ease, -webkit-transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.14s ease, transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    transition: bottom 0.1s 0.14s ease, transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.1s cubic-bezier(0.55, 0.055, 0.675, 0.19); }

.hamburger--squeeze.is-active .hamburger-inner {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  transition-delay: 0.14s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
  .hamburger--squeeze.is-active .hamburger-inner::before {
    top: 0;
    opacity: 0;
    transition: top 0.1s ease, opacity 0.1s 0.14s ease; }
  .hamburger--squeeze.is-active .hamburger-inner::after {
    bottom: 0;
    -webkit-transform: rotate(-90deg);
            transform: rotate(-90deg);
    transition: bottom 0.1s ease, -webkit-transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease, transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1);
    transition: bottom 0.1s ease, transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.1s 0.14s cubic-bezier(0.215, 0.61, 0.355, 1); }


.post-description {
    line-height: 1.8;
}
.post-container {
    display: block;
    margin: auto;
    margin-top: 1rem;
    max-width: 800px;
}
@media(min-width: 1400px) {
    .post-container {
        margin-left: 4.5rem;
    }
}
.rounded-button {
    font-size: small;
    border: 1px solid #2910d8;
    border-radius: 15px;
    padding: 5px 10px;
}
.rounded-button:hover {
    text-decoration: none;
    background-color: #efefef;
}
span.rounded-button {
    color: #999;
}
span.rounded-button:hover {
    background-color: #fff;
}
.paginator {
    text-align: center;
    margin: 50px 0;
}
.post-header {
    margin-bottom: 1.25em;
    border-bottom: 1px solid #e8e8e8;
    padding-bottom: 1em;
}
.post-list .post-header {
    margin-bottom: 2em;
    border-bottom: none;
    padding-bottom: 0;
}
.post {
    padding-bottom: 2em;
}
.post-list .post {
    border-bottom: 1px solid #e8e8e8;
    padding-bottom: 1em;
    margin-bottom: 1em;
}
.post-title {
    font-size: 2.1em;
    margin-bottom: 15px;
    margin-top: 0px;
}
.post-title-archive {
    margin-top: 0;
    padding-bottom: 1em;
    border-bottom: 1px solid #e8e8e8;
}
.post-meta {
    font-size: small;
    line-height: 1.8;
    color: #7d7d7d;
    margin: 0;
}
span.tags {
    display: inline-block;
}
.tag {
    padding: 2px 5px;
    border-radius: 15px;
    color: #2910d8;
    border: 1px solid #2910d8;
    margin-right: 5px;
}
.tag:hover {
    text-decoration: none;
    background-color: #efefef;
}
p.tags a, 
p.categories a {
    display: inline-block;
    border: 1px solid #ccc;
    padding: 10px;
    margin-right: 20px;
    margin-bottom: 20px;
    border-radius: 28px;
    color: #999;
    transition: all 0.2s ease-in-out;
}
p.tags a:hover,
p.categories a:hover {
    text-decoration: none;
    color: #2910d8;
    border-color: #2910d8;
    background-color: #f6f6f6;
}
p.tags a span,
p.categories a span {
    color: #ffffff;
    background-color: #999;
    padding: 5px 10px;
    border-radius: 100%;
    margin-left: 15px;
    transition: all 0.2s ease-in-out;
}
p.tags a:hover span,
p.categories a:hover span {
    background-color: #2910d8;
}
p.categories a {
    border-radius: 4px;
}
p.categories a span {
    border-radius: 4px;
}
.comments {
    padding-top: 50px;
    padding-bottom: 100px;
}
.footer {
    text-align: center;
    color: #999;
    padding: 0 1em;
    background: #f6f6f6;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    font-size: small;
}
@media (min-width: 48em) {
    .footer {
        position: absolute;
        width: 75%;
        left: 25%;
    }
}
.footer a {
    color: #777;
    text-decoration: underline;
}
img {
    max-width: 100%;
}
.post-description img {
    margin-right: 10px;
    margin-top: 6px;
}
pre {
    margin: 2rem 0;
    background-color: #f6f6f6;
    color: #444;
    overflow: auto;
    padding: 15px;
    border-radius: 16px;
    font-size: .85rem;
    line-height: 1.46;
}
code {
    background-color: #f6f4f2;
    font-size: 90%;
    padding: 0px 3px;
}
a code {
    color: #2910d8;
}
code, kbd, pre, samp {
    font-family: 'IBM Plex Mono', monospace;
}
blockquote {
    background-color: #f8edff;
    border-left: 5px solid #a07abf;
    padding: 1px 15px;
    margin: 0;
}
blockquote em {
  font-size: small;
}
blockquote h1:first-child, 
blockquote h2:first-child, 
blockquote h3:first-child, 
blockquote h4:first-child, 
blockquote h5:first-child, 
blockquote h6:first-child {
    margin-top: 0;
}
h1 {
    font-size: 1.9em;
}
h2 {
    font-size: 1.7em;
}
h3 {
    font-size: 1.5em;
}
h4 {
    font-size: 1.2em;
}
h5 {
    font-size: 1.1em;
}
h6 {
    font-size: 1em;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: 500;
    margin-top: 40px;
    margin-bottom: 15px;
    padding: 10px 0;
    font-family: 'IBM Plex Sans', sans-serif;
    line-height: 1.4;
    color: #010041;
}
.headerlink {
    margin-left: 15px;
    color: #ddd;
}
h1:hover .headerlink, 
h2:hover .headerlink,
h3:hover .headerlink, 
h4:hover .headerlink,
h5:hover .headerlink,
h6:hover .headerlink {
    color: #2910d8;
}
:target {
    background: #fffdc7;
}
hr {
    border: none;
    border-top: 1px solid #ddd;
    margin-top: 30px;
    margin-bottom: 30px;
}
.pull-left {
    float: left;
}
.pull-right {
    float: right;
}
.text-right {
    text-align: right;
}
.muted {
    color: #777;
}

.group h1, 
.group h2, 
.group h3, 
.group h4 {
    margin-top: 0;
}
.group {
    margin-bottom: 20px;
}

.announcement {
    background-color: #e6fff9;
    border-radius: 8px;
    font-size: 0.9rem;
    color: #334641;
    margin-top: 1rem;
    margin-bottom: 1rem;
}
.announcement .title {
    font-weight: bold;
    display: block;
    padding: 8px 12px;
    border-radius: 8px 8px 0 0;
    background-color: #d6f6ee;
}
.announcement .body {
    padding: 12px;
    border-radius: 0 0 8px 8px;
}
.announcement a {
    color: #ac0041;
    text-decoration: underline;
}
.announcement a:not(.img-link):hover {
    background-color: #ffe0eb;
}
.announcement p:first-child {
    margin-top: 0;
}
.announcement p:last-child {
    margin-bottom: 0;
}
.announcement .img-link {
    display: block;
    text-align: center;
}
.announcement img {
    max-width: 75px;
    height: auto;
}
.announcement .body div.text {
    padding-left: 12px;
}

@media (max-width: 500px) {
    .announcement img {
        max-width: 55px;
    }
}

/* Hide disqus ads */
#disqus_thread :not(iframe[src^="https://disqus.com/embed/comments/"]) {
    display: none;
}

/*
 * Code highlighting 
 */

.hll {
    background-color: #f6ebe8;
    display: block;
    width: 100%;
}
.c {
color: #aaa;
font-style:italic;
}
.err {
border:1px solid #FF0000;
}
.k, .kn {
color: #8E63E4;
font-weight: bold;
}
.o {
color:#666666;
}
.cm {
color:#408090;
font-style:italic;
}
.cp {
color:#007020;
}
.c1 {
color:#969696;
}
.cs {
background-color:#FFF0F0;
color:#408090;
}
.gd {
color:#A00000;
}
.ge {
font-style:italic;
}
.gr {
color:#FF0000;
}
.gh {
color:#000080;
font-weight:bold;
}
.gi {
color:#00A000;
}
.go {
color:#303030;
}
.gp {
color:#C65D09;
font-weight:bold;
}
.gs {
font-weight:bold;
}
.gu {
color:#800080;
font-weight:bold;
}
.gt {
color:#0040D0;
}
.kc {
color:#007020;
font-weight:bold;
}
.kd {
color:#007020;
font-weight:bold;
}
.kp {
color:#007020;
}
.kr {
color:#007020;
font-weight:bold;
}
.kt {
color:#902000;
}
.m {
color:#208050;
}
.s {
color: #34a874;
}
.na {
color:#4070A0;
}
.nb {
color: #B15BE4;
}
.nc {
color: #d4287b;
}
.no {
color:#60ADD5;
}
.nd {
color:#bb7f24;
}
.ni {
color:#D55537;
font-weight:bold;
}
.ne {
color:#007020;
}
.nf {
color: #32a3d0;
}
.nl {
color:#002070;
font-weight:bold;
}
.nn {
color: #444444;
}
.nt {
color:#062873;
font-weight:bold;
}
.nv {
color:#BB60D5;
}
.ow {
color: #D49C60;
font-weight:bold;
}
.w {
color:#BBBBBB;
}
.mf {
color:#208050;
}
.mh {
color:#208050;
}
.mi {
color:#208050;
}
.mo {
color:#208050;
}
.sb {
color:#34a874;
}
.sc {
color:#34a874;
}
.sd {
color:#34a874;
}
.s2 {
color:#34a874;
}
.se {
color:#4070A0;
font-weight:bold;
}
.sh {
color:#4070A0;
}
.si {
color:#34A874;
}
.sx {
color:#C65D09;
}
.sr {
color:#235388;
}
.s1 {
color:#34a874;
}
.ss {
color:#517918;
}
.bp {
color: #000000;
}
.vc {
color:#BB60D5;
}
.vg {
color:#BB60D5;
}
.vi {
color:#BB60D5;
}
.il {
color:#208050;
}
