html {
  font-size: 14pt; }

body {
  color: #222;
  padding: 0;
  margin: 0;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  font-family: -apple-system, BlinkMacSystemFont, "avenir next", avenir, helvetica, "helvetica neue", ubuntu, roboto, noto, "segoe ui", arial, sans-serif; }

body.base {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  justify-content: flex-start; }

ol, ul {
  padding-inline-start: 24px; }

h1, h2, h3, h4, h5 {
  font-size: unset;
  text-decoration: unset; }

img {
  max-width: 100%;
  max-height: 100%; }

.homepage-menu .title {
  font-weight: bold;
  width: 100%;
  text-align: center; }

.homepage-menu ul {
  width: 100%; }

.homepage-menu li {
  display: inline-block;
  margin-right: 10px; }

.homepage-menu a {
  text-decoration: none;
  color: inherit; }

.post-list {
  display: block;
  padding-top: 20px; }
  .post-list .list-title {
    font-weight: normal;
    padding: 0;
    margin: 0; }
  .post-list .post-list-content {
    /* padding: 0px 10px; */ }
  .post-list .photo-grid {
    margin-top: 0px;
    display: flex;
    justify-content: left;
    flex-wrap: wrap; }
  .post-list .photo-preview {
    padding: 0;
    margin: 10px;
    flex-grow: 1;
    flex-basis: 200px; }

.post-list-content {
  padding: 0;
  margin: 0;
  list-style-type: none; }

.post-summary {
  margin: 4px 0px; }
  .post-summary p {
    margin-top: 0;
    margin-bottom: 0;
    padding: unset; }
  .post-summary .post-title {
    display: inline-block;
    font-weight: bold;
    padding-right: 5px;
    color: inherit;
    text-decoration: none; }
  .post-summary a.post-title:hover {
    text-decoration: underline; }
  .post-summary .post-date {
    font-weight: normal;
    display: inline-block;
    color: grey; }
  .post-summary .read-more-link {
    font-weight: normal;
    padding-left: 10px;
    display: inline-block; }
  .post-summary .post-description {
    display: block; }
  .post-summary img {
    max-width: 100%;
    max-height: 300px; }

.project-summary {
  margin: 4px 0px;
  border-left: 1px solid transparent; }
  .project-summary .title {
    display: inline-block;
    font-weight: bold;
    padding-right: 5px;
    color: inherit;
    text-decoration: none; }
  .project-summary .title:hover {
    text-decoration: underline; }
  .project-summary .date {
    display: none;
    font-weight: normal;
    color: grey; }
  .project-summary .description {
    display: inline-block; }
  .project-summary img {
    max-width: 100%;
    max-height: 300px; }

.homepage-content {
  width: 75ch;
  text-align: left;
  /* Portrait */ }
  @media screen and (max-width: 768px) {
    .homepage-content {
      width: calc(100vw - 40px);
      margin: 0 20px;
      box-sizing: border-box; } }
.logo-section-left {
  fill: #333 !important; }

.logo-section-right {
  fill: #77d !important; }

.menu {
  height: 40px;
  line-height: 40px;
  margin: 0.5rem 0;
  color: #333;
  display: flex;
  flex-direction: row;
  padding: 0;
  padding-inline-start: 0; }
  .menu svg {
    max-height: 100%;
    max-width: 40px;
    margin-right: 20px;
    /* float: left; */
    flex-shrink: 0;
    margin-left: 0; }
  .menu a {
    text-decoration: none;
    font-size: 18px;
    color: inherit; }
  .menu .site-title {
    font-weight: bold; }
  .menu ul.menu-items {
    list-style-type: none;
    padding: 0;
    margin: 0 0 0 20px;
    width: unset;
    display: flex;
    column-gap: 14px; }
    @media screen and (max-width: 768px) {
      .menu ul.menu-items {
        display: none; } }
  .menu li {
    display: inline-block; }

.menu.homepage {
  display: flex;
  flex-direction: row;
  text-align: left;
  line-height: unset;
  margin: 0 10px;
  justify-content: space-between;
  height: unset; }
  .menu.homepage .left {
    display: flex; }
  .menu.homepage ul {
    display: flex;
    flex-direction: column;
    padding-inline-start: 0;
    margin: 0; }
  .menu.homepage .full-height {
    line-height: 40px; }
  .menu.homepage a.site-title {
    line-height: 40px; }

.top-menu {
  width: 100%;
  max-width: 75ch;
  margin: 0 auto; }
  .top-menu nav {
    width: calc(100% - 1.5rem);
    margin: 0.75rem; }
    @media screen and (max-width: 768px) {
      .top-menu nav {
        width: calc(100% - 2.5rem);
        margin: 0.75rem; } }
.article-content {
  width: 100%;
  max-width: 75ch;
  text-align: left;
  margin: 0 auto 20px auto;
  /* > p, > h1, > h2, > h3, > hrule, > ol, > ul, > time { */ }
  .article-content > * {
    margin-left: 0.75rem;
    margin-right: 0.75rem; }
  .article-content h1 {
    font-size: 1.5rem; }
  .article-content h2 {
    font-size: 1.2rem; }
  .article-content h3 {
    font-size: 1rem; }
  .article-content hr {
    border-style: solid; }
  .article-content figure {
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0; }
    .article-content figure figcaption p {
      margin-top: 0; }
    .article-content figure img {
      max-width: 100%;
      max-height: 50vh;
      margin: 0 auto;
      display: block; }
  .article-content pre {
    font-size: 0.75rem;
    background-color: lightgray;
    padding: 1em;
    overflow-x: auto;
    border: 1px solid black; }
  .article-content p code {
    background-color: pink;
    padding: 0 5px;
    font-size: 0.75rem;
    border: 1px solid red;
    vertical-align: baseline; }
  .article-content blockquote {
    border-left: 4px solid #222;
    padding: 0 10px;
    margin: 1em 0.75em; }

header.article-content h1.article-title {
  margin-bottom: 0; }

header.article-content p.article-timestamp {
  margin-top: 0; }

header.article-content img.featured-image {
  max-height: 40vh;
  margin: 0 auto;
  display: block; }

header.article-content nav {
  width: calc(100% - 1.5rem);
  margin: 0.75rem; }
  @media screen and (max-width: 768px) {
    header.article-content nav {
      width: calc(100% - 2.5rem);
      margin: 0.75rem; } }
ul.project-metadata {
  /* border: 4px solid #77d;
  background-color: #dedef7;
  padding: 10px; */
  /* border-left: 4px solid black;
  padding-left: 6px; */
  padding-left: 0;
  list-style-type: none; }
  ul.project-metadata h1, ul.project-metadata h2, ul.project-metadata h3, ul.project-metadata h4, ul.project-metadata h5, ul.project-metadata h6 {
    padding: 0;
    margin: 0;
    font-weight: normal; }
  ul.project-metadata > li {
    display: block;
    margin: 8px 0;
    /* line-height: 20px; */
    /* svg {
      max-height: 20px;
      max-width: 20px;
      padding-right: 8px;
      align-self: middle;
    } */ }
  ul.project-metadata .metadata-item {
    font-size: 0.75rem;
    margin: 0;
    display: inline-block; }
  ul.project-metadata .metadata-item.primary {
    padding: 4px 6px;
    background-color: #7678ed;
    color: white; }
  ul.project-metadata .metadata-item.secondary {
    padding: 4px 6px;
    background-color: #7678ed;
    color: white; }
  ul.project-metadata .metadata-item.subtle {
    background-color: #ddd;
    padding: 4px 6px; }

ul.inline {
  display: flex;
  gap: 8px;
  padding: 0; }
  ul.inline li {
    display: inline-block; }

.book-stars {
  margin-left: 0.5em;
  /* float: right;
  width: 5em; */ }

.book-stars-single {
  /* margin-left: 0.75em; */
  font-size: 1.3rem; }

.icon-star {
  background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSdubyc/PjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjYwIDI0NSc+PHBhdGggZD0nbTU2LDIzNyA3NC0yMjggNzQsMjI4TDEwLDk2aDI0MCcvPjwvc3ZnPg==");
  background-repeat: no-repeat;
  background-position: center bottom;
  display: inline-block;
  height: 1em;
  width: 1em; }

.photo-list ul {
  padding-inline-start: 0; }

.photo-list ul > li {
  list-style: none;
  /* picture {
      max-height: calc(100vh - 100px);
      max-width: calc(100vw - 100px);
    } */ }
  @media screen and (min-width: 768px) {
    .photo-list ul > li {
      width: 100%;
      height: 100vh; } }
  @media screen and (max-width: 768px) {
    .photo-list ul > li {
      width: 100%;
      height: 70vh; } }
  .photo-list ul > li img {
    display: flex;
    justify-content: center;
    margin: 50px auto;
    max-height: calc(100vh - 100px); }

.single-photo {
  display: flex;
  justify-content: center;
  margin: 60px 0; }
  .single-photo img {
    max-height: calc(100vh - 100px);
    max-width: 100vw; }

.photo-content {
  max-width: 75ch;
  margin: 0 auto; }
  .photo-content .caption {
    font-size: inherit; }

footer.site-footer {
  position: relative;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  display: flex;
  justify-content: center;
  margin: 40px 0 40px 0; }
  footer.site-footer a {
    display: block; }
    footer.site-footer a svg {
      max-height: 100%; }
      footer.site-footer a svg .logo-section-left, footer.site-footer a svg .logo-section-right {
        transition: transform 0.2s linear; }
    footer.site-footer a :hover .logo-section-left {
      transform: translate(-50px, 0); }
    footer.site-footer a :hover .logo-section-right {
      transform: translate(50px, 0); }

body.base > footer {
  margin-top: auto; }
