/* STRUCTURE */

body {
  background-color: rgb(229, 230, 228);
  color: rgb(52, 55, 65);
  font-family: "Helvetica Neue", "Helvetica", "Liberation Sans", "FreeSans",
    sans-serif;
  margin: 0;
  padding: 0;
}

.contain {
  background-color: rgb(251, 251, 251);
  position: relative;
  min-height: 100vh;
}

.inner {
  padding: 36px 5% 64px 5%;
  margin: auto;
}

@media (min-width: 720px) {
  .inner {
    width: 80%;
  }
}

/* main content */
.main {
  margin: 0;
  padding: 16px 0;
}
.main.blog {
  padding: 16px 0 0 0;
}

.footer {
  background-color: rgb(229, 230, 228);
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* TEXT */

p {
  line-height: 1.618;
}

.gray {
  color: rgb(121, 125, 130);
}
.black {
  color: rgb(52, 55, 65);
}

h1,
h2,
h3,
h4 {
  font-weight: bold;
}
h1 {
  font-size: 2rem;
  margin: 1.5rem 0 0.5rem 0;
}
h2 {
  font-size: 1.5rem;
  margin: 1.5rem 0 0.5rem 0;
  color: rgb(121, 125, 130);
}
h3 {
  font-size: 1.25rem;
  margin: 1.25rem 0 0.5rem 0;
}
h4 {
  font-size: 1rem;
  margin: 1rem 0 0.5rem 0;
  color: rgb(121, 125, 130);
}

h1 + p,
h2 + p,
h3 + p,
h4 + p {
  margin-top: 0.5rem;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child {
  margin-top: 0;
}

blockquote {
  margin: 0 24px 1rem 24px;
}

/* text elements intended to flow with paragraphs (e.g. <ul>) */
.flow {
  line-height: 1.618;
}

/* links */
a {
  color: rgb(255, 103, 32);
  text-decoration: none;
  transition: all 0.1s ease-in-out;
}
a:active {
  color: rgb(255, 127, 64);
}
a:hover,
a:active {
  background-color: rgba(229, 230, 228, 0.5);
}

/* navigation bars */
div.nav.header {
  margin-bottom: 60px;
}
div.nav.blog {
  margin: 0 0 0 -8px;
  padding-bottom: 16px;
  min-height: 32px;
}
ul.nav {
  list-style-type: none;
  margin: 0;
  padding: 0;
}
li.nav {
  float: left;
  margin: 0;
  padding: 0;
}
a.nav {
  display: block;
  margin: 0;
  padding: 8px;
  font-weight: bolder;
  color: rgb(255, 127, 64);
}
a.nav:hover {
  color: rgb(255, 103, 32);
  background-color: rgb(229, 230, 228);
}
a.nav:active {
  color: rgb(255, 127, 64);
  background-color: rgb(229, 230, 228);
}
a.nav.home {
  padding-left: 0;
  color: rgb(121, 125, 130);
  background-color: rgb(251, 251, 251);
}

@media (max-width: 480px) {
  .header {
    font-size: small;
  }
  .landing > .header {
    font-size: initial;
  }
  .header > ul > li:first-of-type {
    float: none;
  }
  li.item.begin {
    margin-left: -8px;
  }
  .landing > .header > ul > li.item {
    float: none;
    margin-left: -8px;
  }
}

/* post headings and descriptions */
.post h2 a:link,
.post h2 a:visited {
  color: rgb(121, 125, 130);
}
.post h2 a:hover {
  color: rgb(255, 127, 64);
  background-color: rgb(251, 251, 251);
}
.post h2 a:active {
  color: rgb(255, 103, 32);
  background-color: rgb(251, 251, 251);
}
.archived {
  background-color: rgb(121, 125, 130);
  color: rgb(251, 251, 251);
  padding: 0 4px;
  border-radius: 4px;
}

/* lists, etc. */
ul,
ol {
  margin: 0.5em 0 0.5em 0;
}
li {
  padding-bottom: 0.5em;
}
li:last-of-type {
  padding-bottom: 0;
}

/* testimonials */
.testimonial {
  margin-bottom: 2rem;
}
.testimonial .author {
  font-weight: bold;
}
.testimonial .author span {
  font-weight: initial;
}
.testimonial .quote {
  font-style: italic;
}

/* footnotes */
div.footnotes {
  padding-top: 1.5rem;
}
.footnotes ol,
.footnotes p {
  margin: 1rem 0 1rem 0;
}
.footnotes li {
  line-height: 1.25;
  margin: 0;
  padding: 0;
}
.footnotes li > p {
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0.5em;
}

/* footer content */
.footer img {
  opacity: 0.45;
}
.footer a:hover,
.footer a:active {
  background-color: initial;
}

/* OTHER */

img {
  border: 0;
}

.about-pic {
  display: flex;
  align-items: center;
  margin: 1rem 0;
}
.about-pic img {
  width: 96px;
  height: 96px;
  flex-shrink: 0;
}
.about-pic p {
  margin-left: 1rem;
}

/* figures */
.fig {
  text-align: center;
}
.fig img {
  /* defaults for images */
  margin: 1rem 0;
  width: 100%;
}
.fig p:first-child {
  margin: 1rem 0 0 0;
}
.fig p:last-child {
  margin: 0 0 1rem 0;
}
.fig a:hover,
.fig a:active {
  background-color: initial;
}

/* tables */
table {
  margin: 8px 0 8px 0;
  border-collapse: collapse;
}
table.box {
  border: 1px solid rgb(121, 125, 130);
  margin-bottom: 2rem;
}
td,
th {
  padding: 0.75rem;
  vertical-align: top;
}
th {
  font-weight: bold;
  color: rgb(121, 125, 130);
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid rgb(121, 125, 130);
}
th.rh {
  /* row headers */
  text-align: right;
  border-bottom: none;
  border-right: 1px solid rgb(121, 125, 130);
}
