body {
  -webkit-font-smoothings: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

code {
  padding: 2px 4px;
  font-size: 90%;
  background-color: #eeeeee;
  hyphens: none; /* reset changes from <p> */
  -webkit-hyphens: none;
  -ms-hyphens: none;
  word-wrap: break-word;
  /* border-radius: 4px; */
}

/* Reset these values when there's code inside a pre. Pre handles the styling then.*/
pre code {
  background-color: transparent;
  padding: 0;
}

pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  line-height: 1.4;
  word-wrap: break-word;
  border: 1px solid #ccc;
  box-shadow: 0 5px 5px -5px #777777;
  max-width: 100%;
  /* These two copied from chroma theme (syntax.css) */
  color: #4d4d4c;
  background-color: #ffffff;
}

pre,
code {
  font-family: monocode, monospace;
  -webkit-font-smoothings: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,h2,h3,h4,h5,h6 {
  font-family: 'Lora', serif;
}

h1#title {
  /*Some UA stylesheets put h1 to 1.5em when in an article, so we reset it back for our title here.*/
  font-size: 2em;
}

body {
  font-family: -apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;
}

.content-container {
  padding-left: 1em;
  padding-right: 1em;
}

.content-container-narrow-pad {
  padding: 0.5em;
}

.v-center {
  align-items: center;
}

.look-sheet-bkg {
  background-color: white;
}

@media(min-width: 720px) {
  /* Make everything 10% smaller! */
  html {
    font-size: 14.4px;
  }

  .content-container {
    /* ACHTUNG:
    Images are scaled in the fitfigure shortcode with an assumption that the
    page is 652px wide. If you change this value, remeasure and change the value
    there too. */
    width: 45rem;
    padding-left: 2em;
    padding-right: 2em;
    margin: 0 auto;
  }

  .content-container-narrow-pad {
    padding-left: 0.5em;
    padding-right: 0.5em;
    width: 45rem;
    margin: 0 auto;
  }

  .bottom-links {
    border: 1px solid #ccc;
    border-bottom: 0px;
  }

  .look-sheet {
    border: 1px solid #ccc;
    box-shadow: 0 5px 5px -5px #777777;
    margin-top: 1em;
    margin-bottom: 1em;
    min-height: 0px;
    background-color: white;
  }

  .look-sheet-bkg {
    background-color: #fffdf7;
  }
}

figure.smaller {
  max-width: 67%;
}

.look-sheet-border {
  border: 1px solid #ccc;
  box-shadow: 0 5px 5px -5px #777777;
  margin-top: 1em;
  margin-bottom: 1em;
  min-height: 0px;
}

.article-pad-v {
    padding-top: 1em;
    padding-bottom: 1em;
}

blockquote {
  border-left: #777 0.25em solid;
  padding: 0 1.25em;
  margin: 2em 0 2em 1em;
}

.nav-bkg {
  color: white;
  box-shadow: 0 5px 5px -5px #777777;
  background: #00223E;  /* fallback for old browsers */
  background: -webkit-linear-gradient(135deg, #00223E 80%, #FFA17F 80%);  /* Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(135deg, #00223E 80%, #FFA17F 80%); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.nav-bkg-50 {
  color: white;
  box-shadow: 0 5px 5px -5px #777777;
  background: #00223E;  /* fallback for old browsers */
  background: -webkit-linear-gradient(135deg, #00223E 50%, #FFA17F 50%);  /* Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(135deg, #00223E 50%, #FFA17F 50%); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.nav-bkg a {
  text-decoration: underline;
}

.pagewide-bar-padding {
  padding: 0.5em 1em;
}

nav a, nav a:hover, nav a:visited {
  color: white;
}

.post-date {
  color: #777;
}

.post-tags, .post-tags a, .post-tags a:hover, .post-tags a:visited {
  color: #777;
}

.margin-top-2em {
  margin-top: 2em;
}

.article-body h2,.article-body h3 {
  margin-top: 2em;
  margin-bottom: 0.5em;
}

kbd {
  background-color: #333;
  color: #fff;
  padding: 2px 4px;
  border-radius: 4px;
  font-size: 95%;
  white-space: nowrap;
}

figure {
  margin: 2em auto;
  display: table;
}

figure:not(.no-border) video, figure:not(.no-border) img, figure:not(.no-border) object, figure:not(.no-border).style-tables table {
  border: 1px solid #ccc;
  box-shadow: 0 5px 5px -5px #777777;
  max-width: 100%;
  background-color: white;
  max-height: 85vh;
}

hr {
  padding: 0;
  border: none;
  border-top: 1px solid #AAA;
  margin: 2.5em 3em;
}

body {
  background-color: #fffdf7;
}

figcaption {
  margin-top: 0.75em;
  font-style: italic;
  text-align: center;
  font-size: 0.75em;
  color: #5e5e5e;
}

/*
The figure is handling the margin here, its last child doesn't need to.
This is a side-effect of using display: table on figure. This is gross and
will have side-effects if you have multiple nested elements under the figcaption I think.
*/
figure figcaption :last-child {
  margin-bottom: 0;
}

.footnotes {
  margin-top: 4em;
  font-size: 85%;
}

.footnotes hr {
  margin-bottom: 1em;
}

.footnotes li {
  margin: 0 0 12px;
}

twitter-widget {
  /*
  Have to use important here because the twitter oembed puts the styles in the
  style attribute.
  */
  margin: 2em auto !important;
}

.list-unstyled {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}

.flex-row {
  display: flex;
  justify-content: space-between;
}

a.no-underline:hover {
  text-decoration: none;
}

a.no-underline:hover .re-underline {
  text-decoration: underline;
}

.list-of-titles .post-title {
  color: black;
  font-size: 1.5em;
}
.list-of-titles li a {
  text-decoration: none;
  display: block;
  padding: 1em;
  border-bottom: 1px solid #ccc;
  /* hacks so that the text doesn't move unintentionally */
  border-left: 1px solid transparent;
  border-right: 1px solid transparent;
}

.list-of-titles li a:hover {
  background-color: white;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  box-shadow: 0 5px 5px -5px #777777;
}

.list-of-titles li a:hover .post-title {
  text-decoration: underline;
}

.list-of-titles li:first-child a {
  border-top: 1px solid #ccc;
}

.list-of-titles .post-meta {
  font-size: 0.875em;
  color: #777;
}

ul.right-links {
  display: none;
  float: right;
}
ul.right-links li {
  display: inline-block;
  margin-right: 1em;
}

@media(min-width: 440px) {
  ul.right-links {
    display: block;
  }
}

.embed.rich, img {
  max-width: 100%;
}

p {
  hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
}

.look-sheet-bkg.draft, .list-of-titles li.draft a:hover {
  background: repeating-linear-gradient(     135deg,   white,   white 10px,   #ffd4a3 12px,   #ffd4a3 12px );
}

.list-of-titles li.draft {
  background: repeating-linear-gradient(     135deg,    #fffdf7,   #fffdf7 10px,   #ffd4a3 12px,   #ffd4a3 12px );
}

.post-meta.draft {
  font-weight: bold;
}

.text-1p5 {
  font-size: 1.5em;
}

.text-0p75 {
  font-size: 0.75em;
}

aside.article-aside {
  background-color: #fffdf7;
  padding: 0 1em;
  margin-top: 3em;
}

aside.article-aside > p:first-child {
  margin-top: 1rem;
}

aside.content-warning {
  font-style: italic;
  margin-bottom: 2rem;
  color: #777;
  border-top: solid 1px #777;
  border-bottom: solid 1px #777;
  padding-left: 1em;
  padding-right: 1em;
  padding-top: 0.25em;
  padding-bottom: 0.25em;
  display: inline-block;
}

aside.content-warning > p:last-child {
  margin-bottom: 0;
}

/*
TODO: understand CSS so I don't need to do this insane thing. The idea here is
that if an `aside` appears immediately after a heading, it should have close
spacing, but if it appears after other content it should have sufficient spacing
to make it look like a new section. I think we should theoretically be able to
do that with margins, but I don't understand how they work enough yet.
*/
h2+aside.article-aside, h3+aside.article-aside, h4+aside.article-aside, h5+aside.article-aside {
  margin-top: 0.5em;
}

/* If we've nested this inside something, we probably don't want to have the huge margin */
h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
  margin-top: 0.5em;
}

.expander {
  background-color: #fffdf7;
  padding: 0 1em;
  position: relative; /* anchor for the buttons */
}

.expander h2:first-child {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

.expander .button {
  display: inline-block;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color: transparent;
  line-height: 1.5;
  border-radius: .25rem;
  font-family: -apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica neue,helvetica,ubuntu,roboto,noto,segoe ui,arial,sans-serif;
  padding: .25rem .75rem;
  font-size: .875rem;

  color: white;
  box-shadow: 0 5px 5px -5px #777777;
  background: #00223E;  /* fallback for old browsers */
  background: -webkit-linear-gradient(135deg, #00223E 85%, #FFA17F 85%);  /* Chrome 10-25, Safari 5.1-6 */
  background: linear-gradient(135deg, #00223E 85%, #FFA17F 85%); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}

.expander .button {
  position: absolute;
  top: 0;
  right: 0;
  margin-right: 1em;
  margin-top: 1em;
}

.hidden {
  display: none;
}

.expander input.show:checked ~ .inner {
  display:block;
}

.expander input.hide:checked ~ .inner {
  display: none;
}

.expander input.show:checked ~ .button-show {
  display: none;
}

.expander input.hide:checked ~ .button-hide {
  display: none;
}

/*
This cursed incantation works around a display bug in Firefox, where writing
an emoji with default Emoji Presentation (e.g. 🐻) followed by a non-default
emoji character (e.g. ↩) results in the latter being rendered with emoji
presentation as well.

This is only a problem on the newer Goldmark renderer, which I'm not using yet.
*/
a.footnote-backref::before {
  content: ' ';
}


/* all this stuff is for header links */

.header-link {
  text-decoration: none;
  position: absolute;
  right: 0;
  top: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0) 0%, white 20%);
  color: grey;
  fill: grey;
}

aside .header-link {
  background: linear-gradient(90deg, rgba(0,0,0,0) 0%, #fffdf7 20%);
}

.header-link:hover {
  text-decoration: none;
}

/* Keep the selectors here in sync with site.js  */
h2, h3, h4 {
  position: relative;
}

h2:not(:hover) .header-link, h3:not(:hover) .header-link, h4:not(:hover) .header-link {
  display: none;
}

.header-link svg {
  height: 0.65em;
  margin-bottom: 0.225em;
  /* make these links easier to tap */
  margin-left: 0.6em;
  margin-right: 0.6em;
}

/* end header links */

/* this goes on the parent */
#content {
  position: relative;
}

.floating-footnotes {
  width: 25em;
  margin-top: 0;
  position: absolute;
  top: 0;
  /* The entire main article content, + the margins */
  left: calc(100% + 2em);
}

.floating-footnotes hr {
  display: none;
}

.floating-footnotes li[role=doc-endnote] p:last-child {
  margin-bottom: 0;
}

a.timestamp {
  border: solid 1px #007bff;
  background: rgb(0,123,255);
  background: linear-gradient(145deg, rgba(0,123,255,1) 60%, rgba(0,86,179,1) 100%);
  color: white;
  border-radius: 4px;
  padding: 2px;
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

figure audio {
  /*
  Ok, you can't use 100% for this -- both Chrome and Firefox do _weird things_ if you try that.
  So we hardcode a pixel value manually based on the page width.
  */
  width: 580px;
  max-width: 100%;
}

article table {
  margin: 2.5em auto;
}

article table td:not(:first-child), article table th:not(:first-child) {
  padding-left: 2em;
}

article table thead tr {
  border-bottom: 1px solid #00223E;
}

article table {
  border-bottom: 1px solid #00223E;
}

article table thead th {
  padding-bottom: 0.5em;
  font-family: 'Lora', serif;;
}

article table tbody tr:first-child td {
  padding-top: 0.75em;
}

article table tbody tr:last-child td {
  padding-bottom: 0.75em;
}

article table td, article table th {
  padding-left: 0.5em;
  padding-right: 0.5em;
  padding-top: 0.25em;
  padding-bottom: 0.25em;
  vertical-align: top;
}
