html,
body {
  /* Prevent scroll on narrow devices */
  overflow-x: hidden;
}
body {
  /* Required for Scrollspy */
  position: relative;
  /* Push below header bar */
  margin-top: 3.5rem;
}

svg {
  width: auto;
  height: 100%;
}

a {
  color: #1b5e20;
  transition: 0.1s ease-in-out;
}
a:focus, a:hover, a:active {
  color: #388e3c;
  cursor: pointer;
  text-decoration: none;
}

button:focus, .navbar-dark .navbar-toggler:focus {
  outline: none;
  border: thin solid rgba(248, 243, 240, 0.3);
}

.bg-dark {
  background-color: #3e2723 !important;
}

.bg-ribbed-light {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 3"><path opacity=".03" fill="#000" d="M0 0h1v1H0z"/><path opacity=".005" fill="#000" d="M0 1h1v2H0z"/></svg>');
  background-size: 1px 3px;
}
.bg-ribbed-dark {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1 3"><path opacity=".2" fill="#000" d="M0 0h1v1H0z"/><path opacity=".15" fill="#000" d="M0 1h1v2H0z"/></svg>');
  background-size: 1px 3px;
}


/*
 * Header
 */
.site-navbar {
  height: 3.5rem;
  font-family: 'Lato';
  font-weight: 400;
  font-size: 1.1em;
}

.navbar-brand {
  height: 2.2em;
  margin-right: 1em;
}

.navbar-dark path {
  fill: #fff;
}

.navbar-nav .nav-item {
  margin-left: 0.6em;
  margin-right: 0.6em;
  border-radius: 0.4em;
}
.navbar-nav .nav-item:hover,
.navbar-nav .nav-item:active,
.navbar-nav .nav-item.show {
  background-color: #4e342e;
}

.navbar-toggler {
  transition: all 0.1s ease-in-out;
}


/*
 * Layout; based on https://codepen.io/Sphinxxxx/pen/WjwbEO
 */
.main-row {
  height: calc(100vh - 3.5rem);
}

/*
 * Sidebar
 */

.sidebar {
  /* Scrollable contents if viewport is shorter than content */
  overflow-y: auto;
  overflow-x: hidden;
  left: 0;
  bottom: 0;
  z-index: 1000;
  padding: 0;
  background-color: #efebe9;
  border-right: 1px solid #efebe9;
}
.sidebar::-webkit-scrollbar {
  display: none;
}
@media screen and (max-width: 991px) {
  .sidebar {
    position: fixed;
    top: 3.5em;
    height: calc(100% - 3.5rem);
    left: -100%;
    transition: 0.25s left ease-in-out;
  }
  .sidebar.show {
    left: 0;
  }
}
@media (min-width: 992px) {
  .sidebar {
    flex: 0 0 auto;
  }
}

.contents {
  padding: 0.5em 0 0.5em 0.5em;
  font-family: 'Alegreya Sans';
  font-weight: 400;
  font-size: 1.2em;
  align-items: normal;
}

.contents .nav .nav {
  margin-left: 1em;
  font-size: 0.9em;
}

.contents .nav-link {
  padding: 0.2em 0.7em;
}

.contents .nav-link.active,
.contents .nav-link.active a:hover,
.contents .nav-link.active a:focus {
  font-weight: 800;
}


/*
 * Main content
 */

.main {
  max-width: 100%;
  padding: 1.3em;
}
@media (min-width: 992px) {
  .main {
    flex: 1 1 auto;
    overflow: auto;
    padding-right: 2em;
    padding-left: 2em;
  }
}

.title-logo {
  width: 30rem;
  margin: 3rem auto;
}
.title-logo path {
  fill: #2f2625;
}

.main p, .main li, .main td, .main th {
  font-family: Lato;
  font-weight: 300;
  font-size: 1.1em;
  line-height: 1.7;
}
.main blockquote {
  font-size: 1.1em;
}
.main li p, .main li li, .main li blockquote {
  font-size: 1em;
}
@media (min-width: 768px) {
  .main p, .main li, .main td, .main th, .main blockquote {
    font-size: 1.2em;
  }
}
.main td {
  vertical-align: top;
  padding: 0.3em 0;
}
.main strong, .main th {
  font-weight: 700;
}
.main a {
  border-bottom: 2px solid transparent;
  font-weight: 400;
}
.main a:focus, .main a:hover, .main a:active {
  border-bottom: 2px solid rgba(56, 142, 60, 0.2);
}
.main blockquote pre {
  background-color: #f8f3f0;
  color: #2f2625;
  border-radius: .3em;
  padding: 0.4em 0.6em;
}

p, blockquote, table, .code-example {
  margin-bottom: 1.1em;
}
.main li {
  margin-bottom: 0.6em;
}

code, td code {
  white-space: nowrap;
  padding: 2px 8px;
}
pre code {
  white-space: pre; /* We want newlines to be newlines in code blocks */
}

h2, h3, h4 {
  margin-top: 1.3em;
  margin-bottom: 0.6em;
  font-family: 'Alegreya Sans';
}
h2 {
  font-weight: 800;
}
h3, h4, h2 time {
  font-weight: 400;
}

@media (min-width: 1200px) {
  .main > header, .main section > h2, .main section > h3, .main section > h4, .main section > p, .main section > blockquote, .main section > ul, .main section > table {
    max-width: 80%;
  }
}

code, button {
  font-family: 'Roboto Mono';
  font-weight: 400;
}
code, a > code {
  background-color: #f8f3f0;
}
code {
  color: #2f2625;
}


/*
 * Chrome around code examples; see code.css for the styling of the code blocks themselves
 */

textarea {
  position: absolute;
  left: -99999px; /* Hide off canvas, while still remaining visible */
}

.code-example {
  background-color: #2f2625;
  padding: 1em;
  border-radius: 0.3em;
  margin-bottom: 1em;
}

.javascript-output-column {
  border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.btn-primary {
  background-color: #69f0ae;
  color: #0b140f;
  border-color: #53d88f;
  transition: 0.2s ease-in-out;
  min-width: 3.125rem;
}
.btn-primary:active, .btn-primary:focus, .btn-primary:hover, .btn-primary:active:hover, .btn-primary:active:focus {
  background-color: #61fea8;
  color: #060a08;
  border-color: #4de486;
  outline: 0;
}

.play-button {
  height: 1em;
  width: 1em;
}

.javascript-output-column .CodeMirror-cursor {
  /* https://github.com/codemirror/CodeMirror/issues/2568 */
  display: none;
}

/*
 * Try CoffeeScript
 */
.try-coffeescript {
  position: fixed;
  height: calc(100% - 3.5rem);
  top: 3.5rem;
  left: 0;
  right: 0;
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
  z-index: -1001;
  background-color: #2f2625;
}
.try-coffeescript.show {
  opacity: 1;
  z-index: 1001;
}

.try-coffeescript .CodeMirror {
  height: calc(100vh - 7rem);
  cursor: text;
}

.try-coffeescript .code-column {
  overflow: hidden;
  background-color: #2f2625;
  color: #2f2625;
}

@media screen and (max-width: 767px) {
  .try-coffeescript .code-column {
    height: calc(50vh - 0.5 * 3.5rem);
  }
}
@media screen and (min-width: 768px) {
  .try-coffeescript .code-column {
    padding-bottom: 100%;
    margin-bottom: -100%;
  }
}

.try-coffeescript button svg {
  height: 1em;
  transform: scale(1.3) translateY(0.1em);
  fill: #0b140f;
}

@media screen and (max-width: 767px) {
  .try-coffeescript .try-buttons {
    position: absolute;
    bottom: 1em;
    z-index: 1002;
  }
}
