:root {
  --identity-height: 40px;
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: PT Serif, Georgia, ui-serif, Cambria, "Times New Roman", Times, serif;

  --content-width: 650px;
  --sidebar-width: 200px;
  --gap: 60px;

  --text-color: #111827;
  --bg-color: #ffffff;
  --border-color: #e5e7eb;
  --link-color: #16a34a;
  --link-hover-color: #15803d;
  --footer-opacity: 0.5;

  --logo-light-display: block;
  --logo-dark-display: none;
}

/* GLOBAL */
html {
  overflow-y: scroll;
  background-color: var(--bg-color);
  color: var(--text-color);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
}

body {
  margin: 0;
  min-height: 100vh;
  background-color: var(--bg-color);
  color: var(--text-color);
  overflow-x: hidden;
}

/* LAYOUT */
.layout {
  display: flex;
  flex-direction: column;
  max-width: calc(var(--content-width) + var(--sidebar-width) + var(--gap));
  margin: 0 auto;
  margin-top: 8rem;
}

/* HEADER */
.header {
  display: flex;
  flex-direction: column;
}

.logo {
  margin-bottom: var(--identity-height);
}

.logo a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--text-color);
}

.logo-text {
  font-size: 18px;
  font-weight: 600;
}

/* MENU */
.menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu li {
  position: relative;
  padding-left: 14px;
  margin: 6px 0;
}

.menu li.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--link-color);
}

.menu a {
  text-decoration: none;
  color: var(--text-color);
  opacity: 0.75;
}

.menu li.active a {
  color: var(--link-color);
  font-weight: 600;
}

/* CONTENT */
.content {
  max-width: var(--content-width);
}

.title {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 16px;
}

.prose {
  font-family: var(--font-serif);
  font-size: 17px;
  line-height: 1.625;
}

/* FOOTER */
.footer {
  margin-top: 5rem;
  font-size: 12px;
  opacity: var(--footer-opacity);
}

/* DESKTOP */
@media (min-width: 900px) {
  .layout {
    flex-direction: row;
  }

  .header {
    width: var(--sidebar-width);
    padding-right: var(--gap);
    position: sticky;
    top: 2rem;
  }

  .content {
    width: var(--content-width);
  }
}
