:root {
  --color-dark: #303030;
  --color-grey: #686868;
  --color-light-grey: #e5e5e5;
  --color-light: #fbfbfb;
  --font-serif: 'Arvo';
  --font-monospace: '"Source Code Pro"';
  --font-size: 1rem;
  --font-size-large: 1.125rem;
  --margin: 0 0 1rem;
  --breakpoint-sm: 800px; }

*,
*::before,
*::after {
  box-sizing: border-box; }

html {
  background-color: var(--color-light);
  color: var(--color-dark);
  font-family: var(--font-serif), serif;
  font-size: --font-size; }
  @media screen and (min-width: var(--breakpoint-sm)) {
    html {
      font-size: var(--font-size) -large; } }

body {
  line-height: 1.6; }

html,
body {
  margin: 0; }

h1,
p,
figure,
pre,
blockquote {
  margin: var(--margin); }

hr {
  display: block;
  width: 100%;
  height: 0;
  margin: 2rem 0;
  border: 0;
  border-top: 1px solid var(--color-grey); }

figure .representation {
  display: block;
  margin: 0 0 .5rem; }

figcaption {
  padding: 0 .5rem .5rem;
  font-size: .8125rem;
  text-align: right; }
  figcaption .original::before {
    content: ' ';
    display: block; }

img {
  max-width: 100%; }

blockquote {
  padding: 1rem;
  border-left: 5px solid var(--color-light-grey);
  color: var(--color-grey);
  font-style: italic; }
  blockquote p {
    margin: 0; }
  blockquote cite {
    display: block;
    margin: 1rem 0 0;
    font-size: .875rem;
    text-align: right; }

a {
  border-bottom: 1px solid currentColor;
  color: currentColor;
  text-decoration: none; }
  a:hover {
    border-bottom-color: currentColor;
    color: var(--color-grey); }

ol,
ul {
  margin: 0 0 1rem 1.25rem;
  padding: 0;
  list-style-position: outside; }
  ol ol,
  ol ul,
  ul ol,
  ul ul {
    margin-bottom: 0; }

li {
  margin: 0; }
  li:not(last-of-type) {
    margin-bottom: .4rem; }

abbr {
  border-bottom: 1px dashed currentColor;
  text-decoration: none;
  cursor: help; }

kbd,
code,
pre {
  font-family: var(--font-monospace), monospace; }

pre {
  max-width: 100%; }

kbd,
code {
  margin: 0;
  padding: .125rem .25rem 0;
  background-color: var(--color-light-grey); }

article,
section {
  display: block;
  margin-bottom: 1rem; }

h1 {
  font-size: 1.875rem; }

h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 .5rem; }

h2 {
  font-size: 2rem; }

h3 {
  font-size: 1.75rem; }

h4 {
  font-size: 1.5rem; }

h5 {
  font-size: 1.25rem; }

h6 {
  font-size: 1rem; }

.container {
  width: 100%;
  max-width: 38rem;
  margin: 0 auto;
  padding: .5rem; }
  @media screen and (min-width: var(--breakpoint-sm)) {
    .container {
      padding: 1rem 0; } }

.site-header,
.site-nav {
  margin-bottom: 2rem; }
  .site-header h1,
  .site-nav h1 {
    margin-bottom: .5rem; }

.site-nav a::before {
  content: '\2190';
  margin-right: .25rem; }

.site-footer {
  margin: 3rem 0 0;
  font-size: .8125rem; }
  .site-footer [itemprop="sameAs"] + [itemprop="sameAs"] {
    margin-left: .4rem; }
  @media screen and (min-width: var(--breakpoint-sm)) {
    .site-footer {
      margin-bottom: .5rem; } }

.posts ol {
  margin-left: 0;
  list-style: none; }
.posts li {
  margin-bottom: .5rem; }
  @media screen and (min-width: var(--breakpoint-sm)) {
    .posts li {
      display: flex;
      flex-direction: row; } }
.posts time {
  display: block; }
  @media screen and (min-width: var(--breakpoint-sm)) {
    .posts time {
      flex: 0 0 5rem; } }
  .posts time + a {
    margin-left: 1rem; }
    @media screen and (min-width: var(--breakpoint-sm)) {
      .posts time + a {
        margin-left: 2rem; } }

.post .post-header {
  margin-bottom: 3rem; }
.post .post-date {
  display: block;
  margin: var(--margin);
  text-align: right; }

.hljs {
  font-size: .875rem; }
