/* ============================================================
  Helpers
============================================================ */
/* Visibly hidden */
.hidden {
  border: 0;
  padding: 0;
  clip: rect(0 0 0 0);
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
}

/* Centered container with max-width of 800px */
.container {
  margin: 0 auto;
  padding: 1em 5%;
  max-width: 50em; /* 800px */
  }
  .container::before,
  .container::after {
    content: " ";
    display: table;
  }
  .container::after {
    clear: both;
  }
@media screen and (min-width: 30em) {
  .container {
    padding: 1em 2.5%;
  }
}

/* Bullet-less list */
.no-bullets li {
  list-style: none;
  margin-left: 0;
}


/* ============================================================
  Highlight/Marks
============================================================ */
.highlight {
  background-color: #eee;
}
.mark {
  background-color: #fff9d9;
}


/* ============================================================
  Text
============================================================ */
.headline {
  color: #333;
  font-weight: 700;
  font-size: 2.5em; /* 40px */
  line-height: 1; /* 40px */
  margin: 0.4em 0 0; /* 16px 0 0 */
}
@media screen and (min-width: 30em) {
  .headline {
    font-size: 4em; /* 64px */
    margin: 0.25em 0 0; /* 16px 0 0 */
  }
}
.lede {
  color: #666;
  font-weight: 300;
  font-size: 1.25em; /* 20px */
  line-height: 1.2; /* 24px */
  margin: 0.6667em 0 1em; /* 16px 0 24px */
}
.caption {
  color: #888;
  font-size: 0.75em; /* 12px */
  line-height: 1.25; /* 16px */
  margin: 0.6667em 0; /* 8px 0 */
}


/* ============================================================
  Image
============================================================ */
.circular {
  border-radius: 100%;
}
.framed {
  box-shadow: 0 2px 2px #e9e9e9;
  border: 1px solid #ccc;
  padding: 0.25em;
  display:inline-block;
  }
  .framed.circular img {
    border-radius: 100%;
  }


/* ============================================================
  Layout
============================================================ */
/* Pull left */
.pull-left {
  float: left;
}
img.pull-left {
  margin: 0 1em 0.5em 0; /* 0 16px 8px 0 */
}

/* Pull right */
.pull-right {
  float: right;
}
img.pull-right {
  margin: 0 0 0.5em 1em; /* 0 0 8px 16px */
}

/* Grid */
.grid {
  margin: 0 -1.5em;
  overflow: hidden;
}
.grid-unit {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0 1.5em;
  width: 100%;
  display: block;
  float: left;
}

/* Module */
[class*="module"] {
  border: 0;
  padding: 2%;
  display: block;
  }
  [class*="module"]:before,
  [class*="module"]:after {
    content: " ";
    display: table;
  }
  [class*="module"]:after {
    clear: both;
  }
[class*="module"] > *:last-child {
  margin-bottom: 0;
}
[class*="module"] .h {
  color: inherit;
  font-weight: 700;
  font-size: 1.25em; /* 20px */
  line-height: 1.2; /* 24px */
  /*margin-top: 0;*/
}

/* Module > Notification */
[class$="notice"] {
  background-color: #fff9d9;
  border-left: 0.25em solid #ed8; /* 4px */
  border-radius: 0 0.25em 0.25em 0; /* 0 4px 4px 0 */
}
.success-notice {
  background-color: #f0f6e9;
  border-left-color: #b3d98c;
}
.failure-notice {
  background-color: #fcecec;
  border-left-color: #dd6969;
}

/* Module > Details */
.details details {
  margin-left: 1.5em;
}
.details summary {
  color: #25d;
  font-weight: 700;
  display: inline;
  }
  .details summary:hover {
    color: #52d;
  }
  .details summary:active {
    color: #d25;
  }
  .details summary::-webkit-details-marker {
    margin-left: -1em;
  }


/* ============================================================
  Link
============================================================ */
/* External */
a[rel="external"] {
  background: url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCw0IEw4LDQgTDYsNiBMMiw2IEwyLDE0IEwxMCwxNCBMMTAsMTAuNSBMMTIsOC41IEwxMiwxNiBMMCwxNiBaIE0wLDQiIGZpbGw9InJnYmEoMCwwLDAsMC4zMykiPjwvcGF0aD48cGF0aCBkPSJNNiwwIEwxNiwwIEwxNiwxMCBMMTQsMTAgTDE0LDMuNSBMNy41LDEwIEw2LDguNSBMMTIuNSwyIEw2LDIgWiBNNiwwIiBmaWxsPSJyZ2JhKDAsMCwwLDAuMzMpIj48L3BhdGg+PC9zdmc+) no-repeat right 40%;
  background-size: 12px;
  padding-right: 1em;
}

/* Tag */
a[rel="tag"] {
  font-size: 0.75em; /* 12px */
  line-height: 1.3334; /* 16px */
  text-transform: lowercase;
  border: 0;
}


/* ============================================================
  Tooltip
============================================================ */
.tip {
  position: relative;
  }
  .tip:hover:after {
    content: attr(data-tip);
    color: #fff;
    font-size: 0.75em; /* 12px */
    line-height: 1.3334em; /* 16px */
    text-align: left;
    background-color: #666;
    border-radius: 0.3334em; /* 4px */
    padding: 0.6667em; /* 8px */
    width: 16.5em; /* 200px */
    opacity: 0.9;
    display: block;
    position: absolute;
    left: 0;
    bottom: 2em; /* 24px */
    z-index: 98;
  }
  .tip:hover:before {
    content: "";
    border: solid;
    border-color: #666 transparent;
    border-width: 0.5em 0.5em 0 0.5em; /* 6px 6px 0 6px */
    opacity: 0.9;
    display: block;
    left: 1em; /* 12px */
    bottom: 1em; /* 12px */
    position: absolute;
    z-index: 99;
  }


/* ============================================================
  List
============================================================ */
/* Articles */
.articles {
  overflow: hidden;
  }
  .articles a {
    display: block;
  }
  .articles a:hover {
    background-color: rgba(85,34,221,0.05);
  }
  .articles a:active {
    background-color: rgba(221,34,85,0.05);
  }
.articles li {
  list-style: none;
  margin-left: 0;
  }
.articles .h {
  margin-top: 0;
}
.articles p {
  color: #444;
}
.articles .caption {
  color: #888;
  margin-top: 0.6667em; /* 8px */
}
.articles article img {
  margin-bottom: 0;
  width: 25%;
}

/* Code block */
.code {
  font-family:'DejaVu Sans Mono',Inconsolata,Consolas,'Lucida Console',monospace;
  font-size: 0.75em; /* 12px */
  line-height: 1.6667; /* 20px */
}
ol.code {
  color: #888;
  margin: 1.3334em 0 1.3334em 3em; /* 16px 0 16px 36px */
  line-height: 2; /* 24px */
}
ol.code li {
  list-style: decimal-leading-zero;
  background: #f6f6f6;
  margin: 0 0 -1px 0;
  border-top: 1px solid #fff;
  padding: 0 0.5em; /* 0 8px */
  }
  ol.code li.tab1 { padding-left: 4ex; }
  ol.code li.tab2 { padding-left: 8ex; }
  ol.code li.tab3 { padding-left: 12ex; }
  ol.code li.tab4 { padding-left: 16ex; }
  ol.code li.tab5 { padding-left: 20ex; }

/* Metadata */
dl.metadata {
  font-size: 0.75em;
  line-height: 1.3334;
  overflow: hidden;
}
dl.metadata dt {
  font-weight: 400;
  padding-top: 0.5em;
}
dl.metadata dd {
  color: #888;
  margin-left: 0;
  border-bottom: 1px solid #e9e9e9;
  padding-bottom: 0.5em;
}
@media screen and (min-width: 40em) {
  dl.metadata dt {
    padding: 0.5em 0;
    width: 25%;
    float: left;
    clear: left;
    display: block;
  }
  dl.metadata dd {
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box;
    margin-left: -25%;
    padding: 0.5em 0 0.5em 25%;
    width: 75%;
    float: right;
  }
}

/* Progress indicator */
.progress li {
  list-style: none;
  line-height: 2; /* 32px */
  background-color: #f6f6f6;
  margin: 0 1.25em 0.5em 0; /* 0 20px 8px 0 */
  padding: 0.25em 0.25em 0.25em 0.5em; /* 4px 4px 4px 8px */
  position: relative;
  display: inline-block;
  }
  .progress li:before {
    content: "";
    font-size: 1em; /* 16px */
    font-weight: 700;
    border: solid;
    border-color: #f6f6f6 transparent;
    border-width: 1.25em 0 1.25em 1.25em; /* 20px 0 20px 20px */
    display: block;
    position: absolute;
    top: 0;
    left: -1.25em; /* -20px */
  }
  .progress li:first-child {
    padding-left: 0.75em;
  }
  .progress li:first-child:before {
    display: none;
  }
  .progress li:after {
    content: "";
    font-size: 1em; /* 16px */
    border: solid;
    border-color: transparent #f6f6f6;
    border-width: 1.25em 0 1.25em 1.25em; /* 20px 0 20px 20px */
    display: block;
    position: absolute;
    right: -1.25em; /* -20px */
    top: 0;
  }
.progress li.completed {
  background-color: #e9e9e9;
  }
  .progress li.completed:hover {
    background-color: #e9e9e9;
  }
  .progress li.completed:before {
    border-color: #e9e9e9 transparent;
  }
  .progress li.completed:hover:before {
    border-color: #e9e9e9 transparent;
  }
  .progress li.completed:after {
    border-color: transparent #e9e9e9;
  }
  .progress li.completed:hover:after {
    border-color: transparent #e9e9e9;
  }
.progress li.is-active {
  color: #fff;
  font-weight: 700;
  background-color: #25d;
  }
  .progress li.is-active:before {
    border-color: #25d transparent;
  }
  .progress li.is-active:after {
    border-color: transparent #25d;
  }
.progress li a {
  border: 0;
  display: block;
}

/* Stats */
.stats {
  overflow: hidden;
}
.stats li {
  list-style: none;
  margin: 0 0.75em 0 0; /* 0 12px 0 0 */
  padding: 0 0.75em 0 0; /* 0 12px 0 0 */
  border-right: 1px solid #e9e9e9;
  float: left;
  }
  ul.stats li:last-child {
    margin: 0;
    padding: 0;
    border: none;
  }
.stats a {
  font-weight: 700;
  font-size: 1.125em; /* 18px */
  line-height: 1.3334; /* 24px */
  border: 0 none;
  display: block;
  float: left;
}
.stats span {
  font-weight: 400;
  font-size: 0.6667em; /* 12px */
  line-height: 1.3334; /* 16px */
  display: block;
}

/* Tag cloud */
.tags li {
  list-style: none;
  margin: 0 0.3334em 0 0;
  display: inline;
  white-space: nowrap;
}
.tags [data-rank="6"] { font-size: 1.2500em; line-height: 1.0000; } /* 20px/20px */
.tags [data-rank="5"] { font-size: 1.1250em; line-height: 1.1111; } /* 18px/20px */
.tags [data-rank="4"] { font-size: 1.0000em; line-height: 1.2500; } /* 16px/20px */
.tags [data-rank="3"] { font-size: 0.8750em; line-height: 1.4286; } /* 14px/20px */
.tags [data-rank="2"] { font-size: 0.7500em; line-height: 1.6667; } /* 12px/20px */
.tags [data-rank="1"] { font-size: 0.6875em; line-height: 1.8181; } /* 11px/20px */


/* ============================================================
  Navigation
============================================================ */
[class$="nav"] li {
  margin: 0;
  display: inline;
}
[class$="nav"] a {
  border: 0;
  border-right: 1px solid #e9e9e9;
  padding: 0.5em 0.75em; /* 8px 12px */
  display: inline-block;
}
[class$="nav"] li:last-child a {
  border-right: 0;
  }
  [class$="nav"] li a:hover {
    background-color: #f6f6f6;
  }
  [class$="nav"] li a.is-active {
    color: #444;
    font-weight: 700;
  }

/* Vertical */
.vertical-nav li {
  margin: 0;
  display: block;
}
.vertical-nav a {
  border-right: 0;
  border-bottom: 1px solid #e9e9e9;
  display: block;
  }
  .vertical-nav a.is-active {
    background-color: #e9e9e9;
    position: relative;
  }
  .vertical-nav a.is-active:after {
    content: "";
    font-size: 1em; /* 16px */
    border: solid;
    border-color: transparent #e9e9e9;
    border-width: 1.25em 0 1.25em 1.25em; /* 16px 0 16px 16px */
    display: block;
    position:absolute;
    right: -1.25em; /* -16px */
    top: 0;
  }

/* Tabbed */
.tabbed-nav {
  border-top: 0;
  border-bottom: 1px solid #e9e9e9;
  padding: 0;
  margin-left: 1em;
}
.tabbed-nav a.is-active {
  background-color: #fff;
  margin-bottom: -1px;
  border: 1px solid #e9e9e9;
  border-bottom-color: #fff;
  border-radius: 0.25em 0.25em 0 0; /* 4px 4px 0 0 */
}

/* Pagination */
.page-nav a {
  padding: 0.5em 1em; /* 8px 16px */
  }
  .page-nav a.is-active {
    background-color: #e9e9e9;
  }
  .page-nav a[rel="prev"],
  .page-nav a[rel="next"] {
    border: 0;
    }
    .page-nav a[rel="prev"]:hover,
    .page-nav a[rel="next"]:hover {
      background-color: transparent;
    }

/* Breadcrumb */
.breadcrumb-nav {
  color: #ccc;
  font-size: 0.75em; /* 12px */
  line-height: 1.3334; /* 16px */
  margin-top: 0;
  border: 0 none;
}
.breadcrumb-nav a,
.breadcrumb-nav strong {
  padding: 0 0.5em; /* 8px */
  border: 0;
}
.breadcrumb-nav a:first-child {
  padding-left: 0;
}
