html, body {
  border: none;
  margin: 0;
  padding: 0;
  transition: all .3s ease;

  font-size: 1.05em;

  background: #D0E2EC;
  background-attachment: fixed;
  background-size: cover;
}

body {
  padding-top: 3em;
  overflow-y: scroll;
  overflow-x: hidden;
}

nav .icon {
  vertical-align: middle;
  display: inline-block;
  height: 2em;
}

nav img {
  height: 2em;
}



article {
  position: relative;
  width: calc(100% - 1.2em);
  max-width: 900px;
  margin: .6em auto;
  min-height: calc(100vh - 4.2em);
  padding: 10px 20px 20px;
  box-sizing: border-box;

  border-radius: 10px;
  box-shadow: .1em .1em .1em rgba(17, 17, 17, 0.2);
  background: #fff;

  transition: all .3s ease;
}

.loading::before,
.loading::after {
  content: '';
  position: absolute;
  z-index: 1;
  border-radius: inherit;
}

.loading::before {
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, .5);
}

.loading::after {
  width: 30px;
  height: 30px;
  left: 50%;
  top: 50%;
  border: 10px solid #0074d9;
  border-color: #0074d9 transparent #0074d9 transparent;
  border-radius: 50%;
  animation: spin 1s ease 0s infinite;
  transform: translate(-50%, -50%);
}

@keyframes spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

article h1,
article h2 {
  padding: 70px 0 0;
  margin: -70px 0 0;
  transition: all .3s ease;
}


@media all and (min-width: 900px) {

  article {
    margin: calc(20vh - 1.5em) auto;
    min-height: 60vh;
    padding: 50px;
  }

  aside + article {
    margin-top: .6em;
  }

  aside + article.loading {
    margin: .6em auto;
    min-height: calc(100vh - 4.2em);
  }
}




aside {
  position: fixed;
  height: calc(100vh - 3.6em);
  top: 3.6em;
  left: 0;
  border-radius: 0 10px 0 0;
  background: #fff;
  transition: all .3s ease;

  box-shadow: .1em .1em .1em rgba(17, 17, 17, 0.2);
  width: 0;
  padding: 0;
  overflow: hidden;
}

aside.loading {
  height: calc(100vh - 4.2em);
  bottom: .6em;
  border-radius: 0 10px 10px 0;
}

aside ul,
aside ol {
  max-height: 100%;
  padding: 10px;
  margin: 0;
  list-style: none;
  overflow-y: scroll;
}

aside .brand ~ ul,
aside .brand ~ ol {
  max-height: calc(100% - 60px);
}

aside li:last-child {
  margin-bottom: 20vh;
}

aside ul .pseudo.button,
aside ol .pseudo.button {
  width: 100%;
  text-align: left;
  color: #0074d9;
  margin: 0;
}


[data-headers] img {
  height: 2em;
  vertical-align: middle;
  margin-right: 5px
}

[data-headers] .brand,
[data-headers] .button.brand {
  width: 100%;
  text-align: left;
  padding: .3em;
  margin: 0 0 10px;
}

.pseudo.button.active {
  box-shadow: 0 0 0 2px #0074d9 inset;
}

.pseudo.button.active:hover {
  color: #fff;
  background: #0074d9;
}


@media all and (min-width: 900px) {
  aside {
    width: 250px;
    padding: 10px;
  }

  body.withaside {
    padding-left: 250px;
  }
}

@media all and (min-width: 1200px) {
  body.withaside {
    padding-left: 250px;
  }

  aside {
    left: calc(50% - 450px - 125px - .6em);
    z-index: 10;
  }

  aside {
    border-radius: 10px 10px 0 0;
  }

  aside.loading {
    border-radius: 10px;
  }
}


.tableofcontents {
  height: 0;
  overflow: hidden;
  padding: 0;
}

.tableofcontents ul {
  list-style: none;
  padding-left: 0px;
  margin: 30px 0;
}

.tableofcontents .button {
  width: 100%;
  text-align: left;
  color: #0074d9;
  margin: 0;
}

.col {
  -moz-column-count: 4;
  column-count: 4;
}


@media all and (min-width: 900px) {
  .tableofcontents {
    height: auto;
    overflow: visible;
  }
}








pre,
pre[class*="language-"] {
  margin-top: 0;
  padding: .5em .8em;
  font-size: 1.2em;
  line-height: 1.3;
}









nav.super .menu {
  display: none;
  padding: .6em;
}

nav.super .brand {
  padding: 0;
}

nav.super header {
  display: none;
  height: 3em;
  clear: both;
  z-index: 100;
  padding: 0 .6em;
  height: 3em;
  line-height: 3em;
  font-size: 1em;

  width: calc(100vw - 5em);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

nav.super .home {
  display: none;
}

nav.super .button.switch {
  display: none;
}

nav.super footer {
  float: right;
  position: relative;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  white-space: nowrap;
}

nav.super footer .flex {
  display: inline;
}

nav.super footer .button {
  width: auto;
  padding: .3em .9em;
}

nav.super footer .button i {
  margin-right: 10px;
}

@media all and (max-width: 900px) {
  .no-scroll {
    overflow-y: hidden;
  }

  nav.super header {
    display: inline-block;
  }

  nav.super .brand .text {
    display: none;
  }

  nav.super .home {
    display: inline-block;
  }

  nav.super .button.switch {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    margin: 0;
    height: 1.5em;
    width: 1.5em;
    line-height: 1.5em;
    border-radius: 0;
    font-size: 2em;
    padding: 0;
    color: #333;
    transform: none;
  }

  nav.super .menu > .content,
  nav.super footer {
    margin: 0;
  }

  nav.super .menu .button {
    display: block;
    text-align: left;
    border-radius: 0;
    margin: 0;
    padding: .9em;
  }

  nav .burger ~ .menu > * {
    display: flex;
    margin: 0 0 0 -0.6em;
  }

  nav.super ul {
    padding: 0;
    list-style: none;
  }

  nav.super li {
    margin: 0;
  }

  nav.super footer {
    z-index: 100;
    position: fixed;
    width: 100%;
    height: 0em;
    top: calc(100vh - 5em);
    display: block;
    float: none;
    transform: none;
    transition: all .3s ease;
  }

  nav.super :checked ~ * footer {
    height: 0em;
  }

  nav.super footer .flex {
    display: flex;
  }

  nav.super footer .button {
    width: 33.333%;
    height: 5em;
    border-radius: 0;
    margin: 0;
    line-height: 1;
    padding: 1em .3em;
    background: #0074d9;
    color: #fff;
  }

  nav.super footer .button span {
    font-size: 0.8em;
  }

  nav.super footer .button i,
  nav.super footer .button img {
    display: block;
    font-size: 2em;
    height: 1em;
    text-align: center;
    margin: 0 auto 10px;
  }


  nav.super .switch::before {
    content: '≡';
  }

  nav.super .show:checked ~ .switch::before {
    content: '×';
  }

  nav.super .menu,
  nav.super footer {
    left: 0;
    top: 100vh;
    opacity: 1;
    z-index: 1;
    transform: scaleY(1);
    pointer-events: all;
    z-index: 100;
  }



  nav.super .menu {
    background: #ddd;
    display: block;
    top: 3em;
    width: 100%;
    height: 0;
    padding: 0 .6em;
    min-height: 0;
    overflow: hidden;
    border: 0
    transition: all .6s ease;
  }

  nav.super .menu .button {
    background: #fff;
  }

  nav.super .show:checked ~ .menu {
    width: 100%;  /* overwriting picnic */
    height: calc(100vh - 8em);
    padding: .6em;
  }

  nav.super .show:checked ~ footer {
    top: calc(100vh - 5em);
  }
}
