/* based on https://github.com/daveliepmann/tufte-css */

@import url(https://fonts.googleapis.com/css?family=Lora);

* { box-sizing: border-box; }

html { font-size: 13px; }

body { width: 87.5%;
       margin-left: auto;
       margin-right: auto;
       padding-left: 12.5%;
       font-family: Lora, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
       background-color: #fffff8;
       color: #111;
       max-width: 1400px;
       counter-reset: sidenote-counter; }

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

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

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

p.subtitle { font-style: italic;
             margin-top: 1rem;
             margin-bottom: 1rem;
             font-size: 1.8rem;
             display: block;
             line-height: 1; }

table { width: 98%;
        max-width: 50rem;
        text-align: right;
        font-size: 1.2rem;
        line-height: 1.4;
        margin: 1.4rem 1%;
        border-collapse: separate;
        border-spacing: 0 5px;
        -webkit-font-feature-settings: 'tnum'; /* This is technically redundant */
        -moz-font-feature-settings: 'tnum';
        -ms-font-feature-settings: 'tnum'; }

thead th { border-bottom: 1px solid #AAAAAA;
           font-weight: 400;
           border-collapse: separate;
           border-spacing: 5px 5px; }

td.text { text-align: left; }

span.table-label { padding-top: 8px; } /* to maintain height relative to table header row */

table.booktabs { width: auto;
                 margin: 0 auto;
                 border-spacing: 0px;
                 border-top: 2px solid #333333;
                 border-bottom: 2px solid #333333; }

.booktabs th { border-bottom: 1px solid #333333;
               padding: 0.65ex 0.5em 0.4ex 0.5em;
               font-weight: normal;
               text-align: center; }

.booktabs th.cmid { border-bottom: 1px solid #666666; }

.booktabs th.nocmid { border-bottom: none; }

.booktabs tbody tr:first-child td { padding-top: 0.65ex; } /* add space between thead row and tbody */ 

.booktabs td { padding-left: 0.5em;
               padding-right: 0.5em;
               text-align: left; }

.booktabs caption { font-size: 90%;
                    text-align: left;
                    width: auto;
                    margin-left: auto;
                    margin-right: auto;
                    margin-top: 1ex;
                    caption-side: top; }

.booktabs tbody tr td.l { text-align: left !important; }
.booktabs tbody tr td.c { text-align: center !important; }
.booktabs tbody tr td.r { text-align: right !important; }

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

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

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

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

ul li { line-height: 2; }

blockquote p { font-size: 1.1rem;
               width: 75%;
               max-width: 40rem; }

blockquote footer { width: 75%;
                    max-width: 40rem;
                    text-align: right; }

ul { width: 45vw;
     max-width: 40rem;
     margin: 0;
     padding: 0 0 0 1.5em;
     list-style-type: disc; }

li { padding: 0.5rem 0; }

figure { max-width: 75%;
         max-width: 40rem;
         -webkit-margin-start: 0;
         -webkit-margin-end: 0;
         margin-bottom: 3em; }

figcaption { float: right;
             clear: right;
             margin-right: -48%;
             margin-top: 0;
             margin-bottom: 0;
             font-size: 1.0rem;
             line-height: 1.6;
             vertical-align: baseline;
             position: relative; }

figure.fullwidth figcaption { margin-right: 24%; }

a { color: #111;
    text-decoration: none;
    border-bottom: 1px solid #777;
    padding-bottom: 1px; }

img { max-width: 100%; }

.sidenote, .marginnote { float: right;
                         clear: right;
                         margin-right: -60%;
                         width: 75%;
                         max-width: 40rem;
                         margin-top: 0;
                         margin-bottom: 0;
                         font-size: 1.0rem;
                         line-height: 1.6;
                         vertical-align: baseline;
                         position: relative; }

.table-caption { float:right;
                 clear:right;
                 margin-right: -60%;
                 width: 75%;
                 max-width: 40rem;
                 margin-top: 0;
                 margin-bottom: 0;
                 font-size: 1.0rem;
                 line-height: 1.6; }

.sidenote-number { counter-increment: sidenote-counter; }

.sidenote-number:after, .sidenote:before { content: counter(sidenote-counter) " ";
                                           position: relative;
                                           vertical-align: baseline;
                                           color: #f00000; }

.sidenote-number:after { content: counter(sidenote-counter); 
                         font-size: 0.9rem;
                         top: -0.5rem;
                         left: 0.1rem; }

.sidenote:before { content: counter(sidenote-counter) ". ";
                   position: absolute;
                   /* 100% refers to the computed width of the number, so this transform
                    * shifts the number just outside the left edge of the sidenote box,
                    * with a buffer of 0.25rem, no matter how many digits the number has. */
                   -webkit-transform: translateX(-100%) translateX(-0.25rem);
                   -ms-transform: translateX(-100%) translateX(-0.25rem);
                   transform: translateX(-100%) translateX(-0.25rem); }

h1, h2, h3, h4, p, footer, div.table-wrapper, .footdef { width: 75%; max-width: 40rem; }

.comments { display: none;
            font-size: .8rem; }
.comment p { font-size: .8rem; }
#postamble { width: 75%;
             max-width: 40rem;
             border-top: 1pt solid #333333;
             margin: 8rem 0 1rem 0;
             padding: .8rem .4em; }

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

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

code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; }
h1 .code, h2 .code, h3 .code { font-size: 0.80em; }

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

pre { width: 75%;
      max-width: 40rem;
      padding-left: 2.5%;
      overflow-x: auto; }

.fullwidth { max-width: 90%; }

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: 40rem) { label.margin-toggle:not(.sidenote-number) { display: inline; }
                            .sidenote, .marginnote { display: none; }
                            .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; }
                            pre { width: 90%; 
                                  padding: 0; }
                            .table-caption { display: block;
                                             float: right;
                                             clear: both;
                                             width: 98%;
                                             margin-top: 1rem;
                                             margin-bottom: 0.5rem;
                                             margin-left: 1%;
                                             margin-right: 1%;
                                             vertical-align: baseline;
                                             position: relative; }
                            table, table.booktabs { width: 85%; }
                            img { width: 100%; } }

img.top-right, img.right { float: right;
                           padding: 0 0 1rem 1rem; }

.toc ul.org-ul { padding: 0; width: 75%; list-style-type: none; }
.toc ul.org-ul li { white-space: nowrap;
	            overflow: hidden;
                    text-overflow: ellipsis;}

.src .org-keyword, .src .org-clojure-keyword, .src .org-builtin { font-weight: bold; }
.src .org-string { font-style: italic; }
.src .org-comment, .src .org-comment-delimiter { color: #888; }

#postamble { font-size: 1rem; }
#postamble .timestamp { float: right; }

#footnotes { font-size: .9rem; margin-top: 8rem; line-height: 2rem; }
#footnotes .footdef { position: relative; margin-bottom: 1em; }
#footnotes .footdef sup { position: absolute; top: 0; left: 0; font-size: .8rem; }
#footnotes .footdef .footpara { margin-left: 1.5em; min-height: 1em; width: }
a.footref, a.footnum { border-bottom: none; text-decoration: none; }


@media screen and (max-width: 40rem) { body { padding-left: 0; }
                                       h1.title { margin-top: 7vw; }
                                       h1, h2, h3, h4, p, footer, #postamble, .footdef { width: 100%; }
                                       pre { width: 100%; }
                                       ul { width: 100%; }
                                       .toc ul.org-ul { width: 100%; }
                                       figure { max-width: 100%; }
                                       figcaption, figure.fullwidth figcaption { margin-right: 0%; }
                                       blockquote p, blockquote footer { width: 100%; }}
