@charset "utf-8";

/* <!-- */


/*
 * main styles
 */
body {
	margin: 0;
	padding: 0;
	border: 0;
	width: 100%;
	background: #444;
	min-width: 600px;
	font-size: 100%;
	word-wrap: break-word;
	font-family: "Bitstream Vera Sans", Verdana, sans-serif;
}

a {
	color: #e59250;
	text-decoration: underline;
}

	a code {
		color: #e59250;
	}

	a:hover {
		color: #efba7f;
	}

	a:hover code {
		color: #efba7f;
	}

.clear {
	clear: both;
}

.center {
	text-align: center;
}

code {
	color: #777;
}

kbd {
	padding: .1em .6em;
	border: 1px solid #ccc;
	font-size: 11px;
	font-family: monospace;
	background-color: #f7f7f7;
	color: #333;
	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px #fff inset;
	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px #fff inset;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px #fff inset;
	border-radius: 3px;
	display: inline-block;
	margin: 0 .1em;
	text-shadow: 0 1px 0 #fff;
	line-height: 1.4;
	white-space: nowrap;
	vertical-align: text-top;
}

h1, h2, h3 {
	margin:.8em 0 .2em 0;
	padding:0;
}

p {
	margin:.4em 0 .8em 0;
	padding:0;
}

img {
	margin:10px 0 5px;
}

.book-container {
  --rotate: -30deg;
  --rotateHover: -20deg;
  --perspective: 600px;
  --transitionDuration: 1s;
  --radius: 2px;
  --thickness: 15px;
  --bgColor: #000000;
  --width: 200px;
}

.book-container {
  display: flex;
  justify-content: center;
  padding: 20px 30px;
}

.book-container:hover {
  --rotate: var(--rotateHover);
}

.book {
  margin-left: calc(-15px - var(--thickness));
  background: var(--bgColor);
  transform: perspective(var(--perspective)) rotateY(var(--rotate));
  transition: transform ease var(--transitionDuration);
  position: relative;
}

.book img {
  margin: 0;
  width: var(--width);
  height: auto;
  border-radius: var(--radius);
}

.book:before,
.book:after {
  position: absolute;
  top: calc(1.5% + var(--thickness) / 7.5);
  height: calc(97.5% - var(--thickness) / 2.5);
  content: ' ';
  z-index: -1;
}

.book:before {
  width: 100%;
  top: calc(2% + var(--thickness) / 7.5);
  height: calc(97.5% - var(--thickness) / 1.75);
  left: calc(var(--thickness) + 2px);
  background-color: var(--bgColor);
  box-shadow: 5px 5px 20px #333;
  border-radius: var(--radius);
}

.book:after {
  width: var(--thickness);
  left: 100%;
  background-color: #efefef;
  box-shadow: inset 0px 0px 5px #aaa;
  transform: perspective(100px) rotateY(20deg);
}


/* 
 * header
 */
#bar {
	text-align: center;
	width: 100%;
	background-color: #fff;
}

	#top {
		background: #444;
		margin: 0;
		padding: 0;
		min-height: 7px;
	}

		#top p {
			padding: 0;
			margin: 0;
		}

	#logo {
		background: url('../img/logo-bar-orange.png?cache=20181020') repeat-x;
	}

		#logo h1 {
			padding: 0;
			margin: 0;
		}

		#logo a {
			display: block;
			width: 320px;
			background: url('../img/logo-orange.png?cache=20181020') center 1px no-repeat;
			height: 32px;
			padding: 0;
			margin: 0 auto;
			color: #f6f6f6;
			font-family: "Droid Serif", Georgia, serif;
			text-align: center;
			text-decoration: none;
			font-size: 20px;
			font-weight: bold;
			text-shadow: 0 1px #121212;
			line-height: 28px;
		}


/*
 * holy grail (http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm)
 */

/* 'widths' sub menu */
#layoutdims {
	clear:both;
	background:#eee;
	border-top:4px solid #000;
	margin:0;
	padding:6px 15px !important;
	text-align:right;
}


/* column container */
.colmask {
	position:relative;		/* This fixes the IE7 overflow hidden bug and stops the layout jumping out of place */
	clear:both;
	float:left;
	width:100%;				/* width of whole page */
	overflow:hidden;		/* This chops off any overhanging divs */

	background-color: #fff;
}


/* 3 column settings */
.holygrail {
	background:#fff;    	/* Right column background colour */

	padding-bottom: 20px;
}

.holygrail .colmid {
	float:left;
	width:200%;
	margin-left:-230px; 	/* Width of right column */
	position:relative;
	right:100%;
	background:#fff;    	/* Centre column background colour */
}

.holygrail .colleft {
	float:left;
	width:100%;
	margin-left:-50%;
	position:relative;
	left:420px;         	/* Left column width + right column width */
	background:#fff;    	/* Left column background colour */
}

.holygrail .col1wrap {
	float:left;
	width:50%;
	position:relative;
	right:190px;        	/* Width of left column */
	padding-bottom:1em; 	/* Centre column bottom padding. Leave it out if it's zero */
}

.holygrail .col1 {
	margin:0 245px 0 220px; /* Centre column side padding:
							Left padding = left column width + centre column left padding width
							Right padding = right column width + centre column right padding width */
	position:relative;
	left:200%;
	overflow:hidden;
	line-height: 25px;
	font-size: 16px;
}

.holygrail .col2 {
	float:left;
	float:right;			/* This overrides the float:left above */
	width:160px;        	/* Width of left column content (left column width minus left and right padding) */
	position:relative;
	right:15px;         	/* Width of the left-had side padding on the left column */
	text-align: right;
	margin-top: 24px;
}

.holygrail .col3 {
	float:left;
	float:right;			/* This overrides the float:left above */
	width:200px;        	/* Width of right column content (right column width minus left and right padding) */
	margin-right:45px;  	/* Width of right column right-hand padding + left column left and right padding */
	position:relative;
	left:50%;
	margin-top: 24px;
	font-size: 15px;
}


/*
 * main content
 */
.holygrail .col1 h1 {
	margin: 20px 0 12px 0;
	padding: 0;
	font-size: 30px;
	font-family: 'Amaranth', sans-serif;
	color: #e18040;
}

	.holygrail .col1 h1 code {
		color: #e18040;
	}

.holygrail .col1 h2 {
	margin: 40px 0 0px 0;
	padding: 0;
	font-size: 25px;
	font-weight: bold;
	font-family: 'Amaranth', sans-serif;
	color: #e18040;
}

	.holygrail .col1 h2 code {
		color: #e18040;
	}

.holygrail .col1 h3 {
	margin: 40px 0 0px 0;
	padding: 0;
	font-size: 19px;
	font-weight: bold;
	font-family: 'Amaranth', sans-serif;
	color: #444;
}

	.holygrail .col1 h3 code {
		color: #e18040;
	}

.holygrail .col1 h4 {
	margin: 20px 0 12px 0;
	padding: 0;
	font-size: 16px;
	font-family: Georgia, serif;
	text-decoration: underline;
	font-weight: normal;
}

.holygrail .col1 p {
	margin: 15px 0;
}

.holygrail .col1 p img,
.holygrail .col1 span img,
.holygrail .col1 figure img {
	border: 1px solid #444;
}

.holygrail .col1 .f-left {
	float: left;
	margin: 10px 10px 10px 0;
}

.holygrail .col1 .f-right {
	float: right;
	margin: 10px 0 10px 10px;
}

.holygrail .col1 span.column {
	width: 150px;
	height: 210px;
	text-align: center;
	float: left;
	margin: 10px;
	line-height: 1.3em;
}

.holygrail .col1 blockquote {
	margin-left: 20px;
	border-left: 3px solid #444;
	padding-left: 20px;
}

.holygrail .col1 .blog-image {
	text-align: center;
}

.holygrail .col1 figure {
	text-align: center;
}
	
	.holygrail .col1 figure.right {
		float: right;
		clear: right;
	}

.holygrail .col1 figure figcaption {
	font-size: 80%;
	clear: both;
}

.holygrail .col1 figure figcaption {
    padding-left: 4px;
}

.holygrail .col1 .blog-highlight {
	color: #0066CC !important;
}

.holygrail .col1 .blog-highlight code {
	color: #0066CC !important;
}

.holygrail .col1 .blog-list li {
	margin-bottom: 0.7em;
}


/* shared sidebar styles */
.holygrail .col3 ul,
.holygrail .col2 ul {
	margin: 0;
	padding: 0;
}

.holygrail .col2 li,
.holygrail .col3 li {
	list-style-type: none;
	margin: 5px 0 5px 0;
	padding: 2px 0 2px 8px;
	border-left: 3px solid #444;
}

.holygrail .col2 .links li,
.holygrail .col3 .links li {
	/* remove what we just added above since this style is on the links to get a hover */
	border-left: 0;
	margin: 0;
}

.holygrail .col2 a,
.holygrail .col3 a {
	color: #444;
	text-decoration: none;
	display: block;
}

.holygrail .col2 li.current a,
.holygrail .col3 li.current a {
	border-color: #e59250;
	color: #e59250;
}

.holygrail .col2 li.current a:hover,
.holygrail .col3 li.current a:hover {
	border-color: #efba7f;
	color: #efba7f;
}

.holygrail .col2 a:hover,
.holygrail .col3 a:hover {
	border-color: #efba7f;
	color: #efba7f;
}

.holygrail .col2 h2,
.holygrail .col3 h2 {
	font-size: 17px;
	color: #444;
	margin: 40px 0 10px 0;
	padding: 0;
	font-family: 'Amaranth', sans-serif;
}

	/*  iPhone X */
	.holygrail .col3 h2,
	.holygrail .col3 li {
		padding-right: constant(safe-area-inset-right);
	}


/* left sidebar custom styles */
.holygrail .col2 a {
	border-right: 3px solid #444;
	padding-right: 8px;
}

.holygrail .col2 img.portrait {
	width: 100px;
	margin: 40px 0 0 0;
}


/* right sidebar custom styles */
.holygrail .col3 .time {
	font-size: 10px;
	color: #999;
}

.holygrail .col3 h2 a {
	color: #444;
	text-decoration: none;
}

.holygrail .col3 h2 a:hover {
	color: #e59250;
	text-decoration: underline;
}

.holygrail .col3 a {
	color: #e59250;
	word-wrap: break-word;
	display: inline !important;
}

.holygrail .col3 a:hover {
	text-decoration: underline;
}


/*
 * footer
 */
#footer {
	clear:both;
	float:left;
	width:100%;

	margin-top: 0px;
	background: #444 url('../img/footer-bar-orange.png?cache=20181020') repeat-x;
	font-size: 10px;
	text-align: center;
	color: #ddd;
	padding-top: 7px;
	line-height: 20px;
}

	#footer p {
		margin: 0;
		padding: 0;
	}

	#footer a {
		text-decoration: none;
		color: #efba7f;
	}

	#footer a:hover {
		text-decoration: underline;
	}


/* books */

#book-list {
	list-style-type: none;
	margin: 0;
	padding: 0;
}

#book-list li {
	margin-bottom: 24px;
}

#book-list li p {
	padding-left: 5.76em;
	margin: 0;
}

span.book-rating {
	color: #444;
	margin-right: 0.4em;
}




/*
 * mobile
 */ 
@media (max-width: 520px) {
	/*
	 * revert all the trickery from the holy grail since we're simply going to stack
	 */
	body {
		min-width: 0;
	}

	.colmask {
		position: static;
		clear: both;
		float: none;
		overflow: hidden;
	}

	.holygrail .colmid {
		float: none;
		width: 100%;
		margin-left: 0;
		position: static;
		right: 0;
	}

	.holygrail .colleft {
		float: none;
		width: 100%;
		margin-left: 0;
		position: relative;
		left: 0;
	}

	.holygrail .col1wrap {
		float: none;
		width: 100%;
		position: static;
		right: 0;
		padding-bottom: 0;
	}

	.holygrail .col1 {
		margin: 0 0;
		position: static;
		left: 0;
		overflow: hidden;
		padding: 10px;
	}

	.holygrail .col2 {
		float: none;
		width: 100%;
		position: static;
		right: 0;
	}

	.holygrail .col3 {
		float: none;
		width: 100%;
		margin-right: 0;
		position: static;
		left: 0;
	}


	/*
	 * apply mobile styles
	 */
	.holygrail .col1 {
		padding: 10px 10px 0 10px;
	}

		/* increase headings to match the bigger font size */
		.holygrail .col1 h1 {
			font-size: 24px;
		}

		.holygrail .col1 h2 {
			font-size: 20px;
		}

		.holygrail .col1 h3 {
			font-size: 18px;
		}

		.holygrail .col1 h4 {
			font-size: 16px;
		}


		/* center project thumbnails */
		.holygrail .col1 span.column {
			margin-left: auto;
			margin-right: auto;
		}

		/* ensure no image is wider than the viewport */
		.holygrail .col1 img {
			max-width: 100%;
		}

		.holygrail .col1 figure {
			max-width: 100%;
			margin: 30px 0 30px 0;
		}

		.holygrail .col1 figure.right {
			float: none;
			clear: both;
		}

		/* revert to the font size syntaxhighlighter expects so that line numbers will line up */
		.syntaxhighlighter .code .line {
			height: 17px !important;
		}

	.holygrail .col2 {
		text-align: left;
		padding: 10px 10px 20px 10px;
		margin-top: 0;
	}

		.holygrail .col2 h2 {
			margin-top: 15px;
		}

		.holygrail .col2 a {
			border-right: 0;
			padding-right: 0;

			border-left: 3px solid #444;
			padding-left: 8px;
		}

		.holygrail .col2 li {
			padding-left: 0;
		}

		.holygrail .col2 img.portrait {
			display: none;
		}

	.holygrail .col3 {
		padding: 10px;
		width:95%;
		margin-top: 0;
	}

		.holygrail .col3 h2 {
			margin-top: 15px;
		}

	#footer {
		margin-top: 0px;
		font-size: 12px;
	}

	#book-list li p {
		padding-left: 0;
		margin: 0;
	}
}


/* --> */