@font-face { font-family: ETBembo;
             src: url("ETBembo-RomanLF.ttf"); }
@font-face { font-family: ETBembo;
             src: url("ETBembo-DisplayItalic.ttf");
             font-weight: normal;
             font-style: italic; }

html { font-size: 15px; }

body { width: 87.5%;
       margin-left: auto;
       margin-right: auto;
       padding-left: 12.5%;
       font-family: ETBembo, 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%;
        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 { font-size: 1.4rem; }

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

blockquote p { font-size: 1.1rem;
               width: 50%; }

blockquote footer { width: 50%;
                    text-align: right; }

ul { list-style-type: none; }

li { padding: 0.5rem 0; }

figure { max-width: 55%;
         -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: 50%;
                         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: 50%;
                 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); }

p, footer, pre.code, div.table-wrapper { width: 55%; }

@media screen and (max-width: 760px) { p, footer, pre.code { width: 90%; }
                                       figure { max-width: 90%; }
                                       blockquote p, blockquote footer { width: 90%; }}

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

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

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

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

pre.code { padding: 0 0 0 2em;
           overflow-x: scroll; }

.fullwidth { max-width: 95%; }

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; }
                           .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.code { 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%; } }