body, h1, h2, h3, h4, p, blockquote, code, ul, ol, dl, dd, img {
	margin: 0;
}

body {
	/* background-image: url("grid.gif"); */
	padding: 40px 20px;
	line-height: 20px;
}

#content h1 {
	color: #000;
	font: normal 24px/40px 'Century Schoolbook', Georgia, serif;
	margin-bottom: 20px;
	padding: 0 0 5px 0;
	border-bottom: solid 5px #ddd;
	width: 560px;
}

#content h1.book {
	color: #777;
	font: normal 18px/20px 'Century Schoolbook', Georgia, serif;
	padding-bottom: 10px;
	width: 560px;
	border: none;
}

h2 {
	color: #05f;
	font: normal 18px/20px 'Century Schoolbook', Georgia, serif;
	padding: 10px 0 10px 0;
	width: 560px;
}

h3 {
	color: #05f;
	font: italic 16px/20px 'Century Schoolbook', Georgia, serif;
	padding: 0 0 0 20px;
	width: 560px;
}

h4 {
	color: #777;
	font: italic 15px/20px 'Century Schoolbook', Georgia, serif;
	padding: 0 0 0 20px;
	width: 560px;
}

p {
	margin-bottom: 20px;
	padding: 0;
}

p, li, dt, dd {
	color: #333;
	font: normal 15px/20px 'Century Schoolbook', Georgia, serif;
}

dd {
	margin: 0 0 20px 20px;
}

dt {
	font-weight: bold;
	margin-bottom: 20px;
}

li {
	/* lighten the bullets. this will also have the intended side-
	   effect of making it apparent when markdown fails to wrap a
	   list item's text in a <p>, which screws up the formatting. */
	color: #777;
}

ul, ol, dl {
	padding: 0 0 0 20px;
}

a {
	color: #05f;
	text-decoration: none;
}

img {
	padding: 0 0 16px 20px;
}

blockquote {
	width: 460px;
	background: #f4f4f4;
	margin: -10px 0 10px 40px;
	padding: 8px 20px 12px 20px;
}

blockquote p {
	font-style: italic;
	color: #777;
}

blockquote p {
	margin-bottom: 0;
}

blockquote p + p {
	margin-top: 20px;
}

/* make room for the sidebar */
#content > p {
	margin-left: 20px;
	width: 540px;
}

#content > ol,
#content > ul {
	margin-left: 20px;
	width: 520px;
}

#content > dl {
	width: 540px;
}

#content > pre {
	margin-left: 20px;
	width: 500px;
}

pre {
	color: #777;
	font: normal 12px/20px 'Bitstream Vera Sans Mono', Monaco, Consolas, monospace;
	background: #f4f4f4;
	margin: -10px 0 10px 0;
	padding: 8px 20px 12px 20px;
}

code {
	color: #777;
	font: normal 12px 'Bitstream Vera Sans Mono', Monaco, Consolas, monospace;
}

#content {
	margin-left: 240px;
	width: 800px;
}

/* sidebar */

.sidebar {
	float: right;
	clear: right;
}

.sidebar p {
	color: #777;
	font: italic 13px/20px 'Century Schoolbook', Georgia, serif;
	width: 200px;
}

.sidebar em {
	font-style: normal;
}

.sidebar code {
	font: normal 11px 'Bitstream Vera Sans Mono', Monaco, Consolas, monospace;
}

.sidebar img {
	padding: 0;
}

/* nav bar */
.nav {
	float: left;
	width: 180px;
	margin-top: 40px;
	padding: 20px 20px 20px 20px;
	background: #f8f8f8;
	position: fixed;
}

.nav h1 {
	font: normal 16px/20px 'Century Schoolbook', Georgia, serif;
	color: #777;
	margin-bottom: 20px;
	padding: 0px 0 15px 0;
	border-bottom: solid 5px #e2e2e2;
}

.nav li {
	color: #aaa;
	padding: 0;
	font: normal 13px/20px 'Century Schoolbook', Georgia, serif;
}

.nav a {
	color: #777;
}

.nav a:hover {
	color: #05f;
}

/* notes to myself */
p.note {
	display: none;
	/*
	color: #d00;
	font: normal 12px/20px 'Bitstream Vera Sans Mono', Monaco, Consolas, monospace;
	*/
}

/* ascii art diagrams */
pre.diagram {
	background: #efe;
	color: #080;
	font: normal 10px/10px 'Bitstream Vera Sans Mono', Monaco, Consolas, monospace;
}

/* pattern links */
a.pattern,
a.gof-pattern {
	border-bottom: solid 1px #acf;
}

a.pattern:after,
a.gof-pattern:after {
}

a.pattern:after {
	content: "\00A0\2192";
}

a.gof-pattern:after {
	content: "\00A0(GoF)";
}

/* feedback on content */
.feedback-btn {
	float: right;
	margin: -26px 240px 0 0;
	font: normal 11px Verdana, sans-serif;
}

.feedback-btn a {
	color: #d80;
	padding: 3px;
	text-decoration: underline;
}

.feedback-btn a:hover {
	background: #fec;
}

.feedback-box {
	margin: 0 0 20px 20px;
	padding: 5px;
	width: 530px;
	
	background: #fec;
}

.feedback-box p {
	font: normal 13px Verdana, sans-serif;
	color: #a60;
	padding-bottom: 5px;
}

/* feedback box */
.feedback {
	margin-right: 240px;
	background: #fec;
	padding: 19px 20px 1px 20px;
	margin-bottom: 20px;
}

.feedback p {
	color: #a60;
}

a.hide {
	float: right;
	font: normal 11px Verdana, sans-serif;
	color: #d80;
	padding: 3px;
	text-decoration: underline;
}

.feedback a {
	color: #630;
	text-decoration: underline;
}

/* footer */
p.footer {
	text-align: center;
	font-style: italic;
	margin: 20px 0 20px 0;
	padding: 15px 0 0 0;
	border-top: solid 5px #ddd;
	width: 560px;
}

/* thanks */
p.thanks {
	margin: 40px auto;
	padding: 20px;
	
	width: 400px;
	background: #cfc;
	color: #080;
}

/* outline */
.outline-note {
	margin-right: 240px;
	background: #fdf;
	padding: 19px 20px 1px 20px;
	margin-bottom: 20px;
}

.outline-note p,
.outline h2,
.outline h3,
.outline a,
a.outline {
	color: #a0a;
}

a.outline {
	font-style: italic;
}

a.outline:before {
	content: "("
}

a.outline:after {
	content: ")"
}
