/* Variables */
:root {
  --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif,
    "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console,
    monospace;
  --font-size: 1.15rem;
  --line-height: 1.5;

  --border-radius: 1rem;
  --border-radius-small: 0.5rem;

  --color-background: #f9f0eb;
  --color-background-alt: #f3dfd7;
  --color-background-code: #e6cbc1;
  --color-text: #322423;
  --color-text-bright: #241816;
  --color-text-strong: #100a09;
  --color-subtext: #7f5a55;
  --color-primary: #b8336a;
  --color-accent: #fc5f5f;
}

/* Dark theme – Deep Red variant */
.dark {
  color-scheme: dark;
  --color-background: #110000;
  --color-background-alt: #190101;
  --color-text: #f0d6c8;
  --color-text-bright: #fceee7;
  --color-text-strong: #ffffff;
  --color-subtext: #bb998a;
  --color-primary: #ff914d;
  --color-accent: #ffbe76;
}

/* Global styles */
* {
  margin: 0;
}

body {
  background-color: var(--color-background);
  color: var(--color-text);
  font: var(--font-size) / var(--line-height) var(--font-sans);
  margin: 0 auto;
}

@media screen and (max-width: 64rem) {
  body {
    font-size: 1.125rem;
  }
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-sans);
  color: var(--color-text-strong);
}

h1 {
  font-size: 2em;
  line-height: 1.25;
  margin-bottom: 2rem;
}

h2 {
  margin-top: 2rem;
  margin-bottom: 1.5rem;
}

p {
  margin-bottom: 1.5rem;
}

a {
  color: var(--color-primary);
}

strong {
  color: var(--color-text-strong);
}

ul,
ol {
  margin-bottom: 1.5rem;
  padding: 0 0 0 1.25rem;
}

li {
  margin-bottom: 0.5rem;
}

blockquote {
  margin: 1rem 0 2rem 1rem;
  padding: 0.6rem 1.5rem 0;
  border-inline-start: 0.35rem solid var(--color-primary);
  font-style: italic;
}

@media screen and (max-width: 64rem) {
  blockquote {
    margin-left: 0;
  }
}

pre {
  background-color: var(--color-background-code) !important;
  font-family: var(--font-mono);
  font-size: 1rem;
  overflow: auto;
  border-radius: var(--border-radius-small);
  padding: 1.6rem 1.8rem 1.8rem;
  margin-bottom: 3rem;
}

date,
svg {
  display: block;
}

.icon-inline {
  display: inline-block;
  vertical-align: middle;
  padding-right: 5px;
}

.icon-rss {
  padding-left: 5px;
}

figure {
  margin: 2rem auto 2rem;
  text-align: center;
}

figure img {
  max-width: 100%;
  height: auto;
  border-radius: var(--border-radius-small);
}

figcaption {
  color: var(--color-subtext);
  font-size: 1rem;
  font-style: italic;
  text-align: center;
  padding-top: 0.5rem;
}

header + figure {
  margin-top: 0;
}

/* Page layout */

.content {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  max-width: 72rem;
  padding: 3rem 0;
  margin: 0 auto 2rem;

  line-height: 1.6;
}

.content > * {
  grid-column: 3 / span 8;
}

.content > .full-width {
  grid-column: 2 / span 10;
}

.content-inner {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
}

.content-inner > * {
  grid-column: 2 / span 8;
}

.content-inner > .full-width {
  grid-column: 1/-1;
}

@media screen and (max-width: 64rem) {
  .content {
    padding-top: 1rem;
    padding-left: 5vw;
    padding-right: 5vw;
    margin-bottom: 0;
  }

  .content > * {
    grid-column: 2 / span 10;
  }

  .content > .full-width {
    grid-column: 1/-1;
  }

  .content-inner {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
}

@media screen and (max-width: 48rem) {
  .content > *,
  .content-inner > * {
    grid-column: 1/-1;
  }
}

/* Blog elements */

:not(pre) > code {
  font-family: var(--font-mono);
  font-size: 1rem;
  color: var(--color-accent);
  font-weight: bold;
  overflow-wrap: break-word;
}

/* Additional elements */

.card {
  margin-bottom: 3rem;
  padding: 1.25rem 0 2.75rem;
  position: relative;
}

.card-background {
  background-color: var(--color-background-alt);
  border-radius: var(--border-radius);
  position: absolute;
  width: calc(100% + 10vw);
  height: 100%;
  margin-left: -5vw;
  margin-right: -5vw;
  inset: 0;
}

.card-content {
  position: relative;
}

@media screen and (max-width: 48rem) {
  .card-background {
    border-radius: 0;
  }
}

.note {
  background-color: var(--color-background-alt);
  border-radius: var(--border-radius);
  font-size: 1rem;
  margin-top: 0.5rem;
  margin-bottom: 2rem;
  padding: 1.5rem 2rem 1.5rem;
}

.note-header {
  display: block;
  margin-bottom: 0.75rem;
}

/* Header and navigation */

.site-header {
  padding: 3rem 5vw;
}

.site-nav {
  max-width: 96rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}

.site-nav .logo {
  color: var(--color-accent);
  font-size: 1.5rem;
  font-weight: bold;
  padding-left: 0;
  text-decoration: none;
}

.menu {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu li {
  margin-bottom: 0;
}

.menu a {
  display: block;
  padding: 1rem;
  color: var(--color-text-bright);
}

.site-nav .menu-social a {
  padding: 1rem 0.75rem;
}

.site-nav .menu-social li:last-child a {
  padding-right: 0;
}

@media screen and (max-width: 64rem) {
  .site-nav .menu-social {
    display: none;
  }

  .site-nav .menu li:last-child a {
    padding-right: 0;
  }
}

@media screen and (max-width: 48rem) {
  .site-header {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .site-nav,
  .menu {
    flex-direction: column;
    align-items: flex-start;
  }

  .site-nav a {
    padding: 0.25rem 0.5rem;
    padding-left: 0;
  }
}

/* Home page */

.hero {
  max-width: 100%;
  display: flex;
  margin-bottom: 4rem;
}

.hero div:first-child {
  flex-basis: 65%;
  padding-right: 2.5rem;
}

.hero div:last-child {
  flex-basis: 35%;
}

.hero img {
  border-radius: 50%;
  width: 100%;
}

@media screen and (max-width: 64rem) {
  .hero {
    flex-direction: column-reverse;
  }

  .hero img {
    max-width: 250px;
  }
}

.home-posts {
  list-style: none;
  padding: 0;
}

.home-posts-item {
  margin-bottom: 1rem;
}

.home-posts-item a {
  font-weight: bold;
}

/* Footer */

.site-footer {
  max-width: 65rem;
  padding: 3rem;
  padding-top: 1rem;
  margin: 0 auto 2rem;
}

.site-footer p {
  color: var(--color-subtext);
  font-size: 1rem;
  text-align: center;
}

.site-footer .menu {
  justify-content: center;
  flex-direction: row;
}

.site-footer .menu a {
  padding: 0.5rem;
}

@media screen and (max-width: 64rem) {
  .site-footer {
    padding-left: 5vw;
    padding-right: 5vw;
  }

  .site-footer p {
    font-size: 0.75rem;
  }

  .site-footer .menu a svg {
    width: 20px;
    height: 20px;
  }
}

/* List pages */

.posts {
  margin-top: 1rem;
}

.post-preview {
  margin-bottom: 1rem;
}

.post-date {
  color: var(--color-subtext);
  display: block;
  font-size: 1rem;
  font-style: italic;
}

/* Single posts/pages */

.single-header {
  max-width: 100%;
  margin-bottom: 3rem;
}

.single-title {
  margin-bottom: 1rem;
}

.single-date {
  display: block;
  color: var(--color-subtext);
  font-style: italic;
}
