
#TOC ul,
#TOC li,
#TOC span,
#TOC a {
  margin: 0;
  padding: 0;
  position: relative;
}
#TOC {
  line-height: 1;
  border-radius: 5px 5px 0 0;
  background: #141414;
  background: linear-gradient(to bottom, #333333 0%, #141414 100%);
  border-bottom: 2px solid #0fa1e0;
  width: auto;
}
#TOC:after,
#TOC ul:after {
  content: '';
  display: block;
  clear: both;
}
#TOC a {
  background: #141414;
  background: linear-gradient(to bottom, #333333 0%, #141414 100%);
  color: #ffffff;
  display: block;
  padding: 19px 20px;
  text-decoration: none;
  text-shadow: none;
}
#TOC ul {
  list-style: none;
}
#TOC > ul > li {
  display: inline-block;
  float: left;
  margin: 0;
}
#TOC > ul > li > a {
  color: #ffffff;
}
#TOC > ul > li:hover:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: 50%;
  bottom: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 10px solid #0fa1e0;
  margin-left: -10px;
}
#TOC > ul > li:first-child > a {
  border-radius: 5px 0 0 0;
}
#TOC.align-right > ul > li:first-child > a,
#TOC.align-center > ul > li:first-child > a {
  border-radius: 0;
}
#TOC.align-right > ul > li:last-child > a {
  border-radius: 0 5px 0 0;
}
#TOC > ul > li.active > a,
#TOC > ul > li:hover > a {
  color: #ffffff;
  box-shadow: inset 0 0 3px #000000;
  background: #070707;
  background: linear-gradient(to bottom, #262626 0%, #070707 100%);
}
#TOC .has-sub {
  z-index: 1;
}
#TOC .has-sub:hover > ul {
  display: block;
}
#TOC .has-sub ul {
  display: none;
  position: absolute;
  width: 200px;
  top: 100%;
  left: 0;
}
#TOC .has-sub ul li a {
  background: #0fa1e0;
  border-bottom: 1px dotted #31b7f1;
  filter: none;
  display: block;
  line-height: 120%;
  padding: 10px;
  color: #ffffff;
}
#TOC .has-sub ul li:hover a {
  background: #0c7fb0;
}
#TOC ul ul li:hover > a {
  color: #ffffff;
}
#TOC .has-sub .has-sub:hover > ul {
  display: block;
}
#TOC .has-sub .has-sub ul {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
}
#TOC .has-sub .has-sub ul li a {
  background: #0c7fb0;
  border-bottom: 1px dotted #31b7f1;
}
#TOC .has-sub .has-sub ul li a:hover {
  background: #0a6d98;
}
#TOC ul ul li.last > a,
#TOC ul ul li:last-child > a,
#TOC ul ul ul li.last > a,
#TOC ul ul ul li:last-child > a,
#TOC .has-sub ul li:last-child > a,
#TOC .has-sub ul li.last > a {
  border-bottom: 0;
}
#TOC ul {
  font-size: 1.2rem;
}
 
body { width: 100;
       margin-left: auto;
       margin-right: auto;
       padding-left: 5%;
       color: #111;
       max-width: 1800px;
       counter-reset: sidenote-counter; }

h1.title { font-weight: 400;
     font-style: normal;
     margin-top: 4rem;
     margin-bottom: 1.5rem;
     font-size: 3.2rem;
     line-height: 1; }

h1 {
     font-weight: 400;
     margin-top: 2.1rem;
     margin-bottom: 0;
     font-size: 2.2rem;
     line-height: 1; }

h2 {
     font-weight: 400;
     font-size: 1.7rem;
     margin-top: 2rem;
     margin-bottom: 0;
     line-height: 1; }

h3.subtitle {
             font-weight: 400;
             margin-top: 1rem;
             margin-bottom: 1rem;
             font-size: 1.8rem;
             display: block;
             line-height: 1; }

h4.author, h4.date {
    font-size: 1.4rem;
    font-weight: 400;
    margin: 1rem auto;
    line-height: 1;
}

.danger { color: red; }

article { position: relative;
          padding: 5rem 0rem; }

section { padding-top: 1rem;
          padding-bottom: 1rem; }

p, ol, ul { font-size: 1.4rem; }

p { line-height: 2rem;
    margin-top: 1.4rem;
    margin-bottom: 1.4rem;
    padding-right: 0;
    vertical-align: baseline; }

blockquote { font-size: 1.4rem; }

blockquote p { width: 50%; }

blockquote footer { width: 50%;
                    font-size: 1.1rem;
                    text-align: right; }

ol, ul { width: 45%;
         -webkit-padding-start: 5%;
         -webkit-padding-end: 5%; }

li { padding: 0.5rem 0; }

table {
  border-top: 2px solid #111;
  border-bottom: 2px solid #111;
  font-size: 1.1rem;
}

th {
  border-bottom: 1px solid #111;
}

div.figure {
         padding: 0;
         border: 0;
         font-size: 100%;
         font: inherit;
         vertical-align: baseline;
         max-width: 55%;
         -webkit-margin-start: 0;
         -webkit-margin-end: 0;
         margin: 0 0 3em 0;
         }

/* Links: replicate underline that clears descenders */
a:link, a:visited { color: inherit; }

a:link { text-decoration: none;
         background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#333, #333);
         background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
         -webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         -moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
         background-repeat: no-repeat, no-repeat, repeat-x;
         text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8, -0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8, -0.15em 0 #fffff8;
         background-position: 0% 93%, 100% 93%, 0% 93%; }

@media screen and (-webkit-min-device-pixel-ratio: 0) { a:link { background-position-y: 87%, 87%, 87%; } }

a:link::selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
                    background: #b4d5fe; }

a:link::-moz-selection { text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe, -0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe, -0.15em 0 #b4d5fe;
                         background: #b4d5fe; }

/* Sidenotes, margin notes, figures, captions */
img {max-width: 100%;}

.marginnote img { display: block; }

.sidenote, .marginnote { float: right;
                         clear: right;
                         margin-right: -60%;
                         width: 50%;
                         margin-top: 0;
                         margin-bottom: 1rem;
                         font-size: 1.1rem;
                         line-height: 1.3;
                         vertical-align: baseline;
                         position: relative; }

.sidenote-number {
                                           position: relative;
                                           vertical-align: baseline; }

.sidenote-number { font-size: 1rem;
                         top: -0.5rem;
                         left: 0.1rem; }

p, footer, table, hr { width: 55%; }
hr { margin-left: 0; }
table table, li p, li pre { width: auto; }
li p, li pre {margin-top: auto; }

div.fullwidth, table.fullwidth { max-width: 90%; }

#TOC, h1.title { max-width: 90%; }
#TOC ol, #TOC ul { width: auto; }

div.fullwidth p.caption {
  margin-right: 0;
  max-width: 33%;
}

p.caption { text-align: left; }

@media screen and (max-width: 760px) { p, footer, ol, ul, table, hr { width: 90%; }
                                       pre { width: 87.5%; }
                                       ul { width: 85%; }
                                       figure { max-width: 90%; }
                                       div.fullwidth p.caption { max-width: none; }
                                       blockquote p, blockquote footer { width: 90%; }}

.sans { font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
        letter-spacing: .03em; }

code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
        font-size: 1.125rem;
        line-height: 1.6; }

pre code { font-size: 1rem; }

p code { white-space: inherit; }

h1 code, h2 code, h3 code { font-size: 0.80em; }

.marginnote code, .sidenote code { font-size: 1rem; }

pre { width: 52.5%;
           overflow-x: auto; }

.fullwidth { max-width: 90%;
             clear:both; }

span.newthought { font-variant: small-caps;
                  font-size: 1.2em; }

input.margin-toggle { display: none; }

label.sidenote-number { display: inline; }

label.margin-toggle:not(.sidenote-number) { display: none; }

@media (max-width: 760px) { label.margin-toggle:not(.sidenote-number) { display: inline; }
                            .sidenote, .marginnote { display: none; }
                            .shownote,
                            .margin-toggle:checked + .sidenote,
                            .margin-toggle:checked + .marginnote {
                                                                   display: block;
                                                                   float: left;
                                                                   left: 1rem;
                                                                   clear: both;
                                                                   width: 95%;
                                                                   margin: 1rem 2.5%;
                                                                   vertical-align: baseline;
                                                                   position: relative;
                                                                   }
                            label { cursor: pointer; }
                            div.figure { max-width: 90%; }
                            pre { width: 90%;
                                       padding: 0; }
                            }
