/* Basic typography */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  line-height: 1.6;
  font-size: 17px;
  margin: 0;
  padding: 0;
}

/* === THEME COLORS === */

/* Default dark theme */
body.dark {
  background-color: #111;
  color: #eee;
}

body.dark a {
  color: #4ae;
}

body.dark blockquote {
  border-left: 0.5em solid #333;
}

body.dark h1, body.dark h2, body.dark h3 {
  border-bottom: 2px solid #333;
}

body.dark code {
  background-color: #333;
}

body.dark pre {
  background-color: #222;
}

body.dark pre code {
  background-color: transparent;
}

body.dark .wall {
  color: #999;
}

body.dark .floor {
  color: #999;
}

body.dark .staircase {
  color: #eee;
}

body.dark .adventurer {
  color: #eee;
}

body.dark .producer {
  color: #5b1;
}

body.dark .operator {
  color: #eb1;
}

body.dark .consumer {
  color: #e21;
}

/* Light theme overrides */
body.light {
  background-color: #eee;
  color: #111;
}

body.light a {
  color: #38e;
}

body.light blockquote {
  border-left: 0.5em solid #ccc;
}

body.light h1, body.light h2, body.light h3 {
  border-bottom: 2px solid #ccc;
}

body.light code {
  background-color: #ccc;
}

body.light pre {
  background-color: #ddd;
}

body.light pre code {
  background-color: transparent;
}

/* === HEADINGS === */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.25;
}

/* Heading sizes */
h1 { font-size: 2em; }
h2 { font-size: 1.5em; }
h3 { font-size: 1.25em; }

/* Padding for heading underline */
h1, h2, h3 {
  padding-bottom: 0.3em;
}

/* === LINKS === */
a {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* === PARAGRAPHS, BLOCKQUOTES, PRE === */
p, blockquote, pre {
  margin-top: 1em;
  margin-bottom: 1em;
}

/* Blockquote styling */
blockquote {
  padding-left: 1em;
  margin-left: 0;
  margin-right: 0;
}

/* === LISTS === */
ul, ol {
  padding-left: 2em;
}

/* === INLINE CODE === */
code {
  font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 15px;
  line-height: 1.5;
  padding: 0.2em 0.4em;
  border-radius: 4px;
}

/* === BLOCK CODE === */
pre {
  padding: 0.6em 1em;
  overflow-x: auto;
  border-radius: 4px;
}

/* Make block code display properly */
pre code {
  display: block;
  padding: 0;
  margin: 0;
  white-space: pre;
}

/* === CONTAINER === */
.container-lg {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-bottom: 4rem; /* extra space at bottom of page */
  box-sizing: border-box;
}
