:root {
  --cardinal: #8C1515;
  --cardinal-dark: #6B1111;
  --sandstone: #D2C295;
  --fog: #F4F4F4;
  --stone: #544948;
  --white: #FFFFFF;
  --link: #006CB8;
  --due: #B1040E;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; }
body {
  font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #2E2D29;
  background: var(--fog);
  line-height: 1.6;
  max-width: 54rem;
  margin: 0 auto;
  padding: 2rem 2.5rem;
  background: var(--white);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
h1 {
  font-size: 1.8rem;
  color: var(--cardinal);
  margin: 0.5rem 0 1rem;
  border-bottom: 2px solid var(--sandstone);
  padding-bottom: 0.4rem;
}
h2 { font-size: 1.35rem; color: var(--cardinal-dark); margin: 1.5rem 0 0.6rem; }
h3 { font-size: 1.1rem; color: var(--stone); margin: 1.2rem 0 0.4rem; }
p, ul, ol, dl { margin-bottom: 0.8rem; }
ul, ol { padding-left: 1.5rem; }
li { margin-bottom: 0.3rem; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: underline; }
a.aos { color: var(--cardinal); }
a.aos:hover { color: var(--cardinal-dark); }
code { font-family: 'Source Code Pro', 'Menlo', 'Consolas', monospace; background: #f0ede8; padding: 0.15em 0.35em; border-radius: 3px; font-size: 0.9em; }
pre { background: #f0ede8; padding: 1em; border-radius: 4px; overflow-x: auto; margin-bottom: 1rem; border-left: 3px solid var(--sandstone); }
pre code { background: none; padding: 0; }
hr { border: none; border-top: 1px solid #ddd; margin: 1.5rem 0; }
table { width: 100%; border-collapse: collapse; margin-bottom: 1rem; }
th, td { padding: 0.5rem 0.75rem; border: 1px solid #ddd; text-align: left; }
th { background: var(--cardinal); color: var(--white); font-weight: 600; }
tbody tr:nth-child(even) { background: var(--fog); }
img { max-width: 100%; }
