/* Global rules
---------------------------------------- */

/* Reset */
@import url('reset.css');

/* Fonts */
@import url('fonts.css');



/* Rules for all media types 
---------------------------------------- */

/* Common settings */
span {
	white-space: nowrap;
	}
abbr {
	border-bottom: dotted .05em;
	cursor: help;
	}
code {
	font-family: 'PT Mono', Consolas, monospace;
	-webkit-tab-size: 4;
	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;
	}
h1 code, h2 code, h3 code, h4 code {
	font: inherit;
	}
h1 abbr, h2 abbr, h3 abbr, h4 abbr {
	border-bottom: none;
	}
b, strong {
	font-weight: bold;
	}
em, i, mark, time {
	font-style: italic;
	}

/* General content styling */
.general {
	line-height: 1.75em;
	}
.general h1, .general h2, .general h3, .general h4 {
	margin: 1.5em 0 .8em;
	font-weight: bold;
	}
.general h1:first-child, .general h2:first-child, .general h3:first-child, .general h4:first-child {
	margin-top: 0;
	}
.general h1 {
	font-size: 2em;
	}
.general h2 {
	font-size: 1.75em;
	}
.general h3 {
	font-size: 1.5em;
	}
.general h4 {
	font-size: 1.25em;
	}
.general p {
	margin-bottom: 1em;
	}
.general ul, .general ol {
	margin-left: 1.5em;
	}
.general ul {
	list-style-type: disc;
	}
.general ol {
	list-style-type: decimal;
	}
.general ul li, .general ol li {
	margin-bottom: 1em;
	}
.general li > ul, .general li > ol {
	margin-top: 1em;
	}
.general pre {
	margin-bottom: 1em;
	padding: 1em 1em 1em 3em;
	border-radius: 1em;
	white-space: normal;
	counter-reset: code;
	}
.general pre code {
	position: relative;
	display: block;
	white-space: pre-wrap;
	}
.general pre code:before {
	position: absolute;
	margin-left: -2em;
	font-weight: normal;
	content: counter(code, decimal-leading-zero) ' ';
	counter-increment: code;
	}
.general pre code:after {
	content: '\000a';
	}
.general pre code:only-child {
	margin-left: -2em;
	}
.general pre code:only-child:before {
	content: '';
	}
.general table {
	margin-bottom: 1em;
	font-size: .8em;
	}
.general th {
	font-weight: bold;
	}
.general th, .general td {
	padding: .25em .5em;
	text-align: left;
	vertical-align: top;
	}
.general figure {
	margin-bottom: 1em;
	}

/* Content styling for special slide types */
.author-name {
	font-style: italic;
	}
.author-contacts li {
	display: inline;
	}
.author-contacts li:before {
	content: '| ';
	}
.author-contacts li:first-child:before {
	content: '';
	}



/* Rules for the 'screen' and 'projection' media types 
---------------------------------------- */

@media screen, projection {
	/* Common settings */
	html, body {
		width: 100%;
		height: 100%;
		overflow: hidden;
		}
	body {
		min-width: 960px;
		min-height: 500px;
		color: #000;
		background-color: #666;
		background-image: -moz-linear-gradient(#333, #999);
		background-image: -webkit-linear-gradient(#333, #999);
		background-image: -o-linear-gradient(#333, #999);
		background-image: linear-gradient(#333, #999);
		font-family: 'PT Sans', 'Trebuchet MS', Arial, Helvetica, sans-serif;
		font-size: 35px;
		}
	h1, h2, h3, h4 {
		font-family: 'PT Sans Narrow', 'Arial Narrow', 'Helvetica Narrow', sans-serif;
		}
	a, a:link, a:visited {
		color: #069;
		text-decoration: underline;
		}
	a:hover {
		text-decoration: none;
		}
	a:active {
		color: #f93;
		}

	/* The whole page */
	.wrapper {
		position: relative;
		top: 3%;
		width: 96%;
		height: 94%;
		min-height: 94%;
		max-height: 94%;
		overflow: hidden;
		margin: auto;
		border-radius: 1em;
		box-shadow: rgba(0, 0, 0, .5) 0 0 1em 1em;
		background: #fff;
		}

	/* Slide container */
	.slide {
		padding: 60px 10% 0;
		height: 9999px;
		}

	/* General content styling */
	.general code {
		padding: 0 .3em;
		background: #99e6ff;
		border-radius: .3em;
		}
	.general pre {
		border: solid 2px #ccc;
		background-image: -moz-linear-gradient(#fff 50%, #e6e6e6 100%);
		background-image: -webkit-linear-gradient(#fff 50%, #e6e6e6 100%);
		background-image: -o-linear-gradient(#fff 50%, #e6e6e6 100%);
		background-image: linear-gradient(#fff 50%, #e6e6e6 100%);
		}
	.general pre code {
		background: none;
		}
	.general pre code:before {
		color: #999;
		}
	.general pre code:nth-child(odd) {
		background: rgba(0, 0, 0, .1);
		}
	.general pre code:only-child {
		background: none;
		}
	.general table, .general th, .general td {
		border: solid 2px #ccc;
		}
	.general th {
		background: #e6e6e6;
		}
	.general video {
		border: solid 1px #000;
		}

	/* Content styling for special slide types */
	.intro, .thanks, .topic-intro {
		text-align: center;
		}
	.lecture-title, .thanks-title {
		margin-top: .5em;
		font-weight: bold;
		font-size: 3em;
		color: #f60;
		text-shadow: .01em .01em 0 #900;
		}
	.lecture-subtitle {
		margin-top: .5em;
		font-size: 2em;
		}
	.about-author {
		margin-top: 2em;
		line-height: 1.5em;
		}
	.topic-title {
		margin-top: 1.5em;
		font-weight: bold;
		font-size: 2.5em;
		}
	.bulky {
		font-size: .9em;
		}
	.extra-bulky {
		font-size: .8em;
		}
	.super-extra-bulky {
		font-size: .7em;
		}
	.picture {
		padding: 0;
		text-align: center;
		}

	/* Some special styles */
	.accent {
		color: #f30;
		}
	.context {
		color: #999;
		}
	.arrow {
		margin-top: -.5em;
		color: #096;
		font-size: 2em;
		line-height: 1em;
		text-align: center;
		}
	.arrow:before {
		content: '\25bc';
		}

	/* Slide number */
	#slide-number {
		position: fixed;
		top: 0;
		right: 0;
		padding: .5em 1em .5em 1.5em;
		border-radius: 0 0 0 1em;
		box-shadow: rgba(0, 0, 0, .2) 0 0 .2em .2em;
		color: #fff;
		background: #069;
		font-family: 'PT Sans Narrow', 'Arial Narrow', 'Helvetica Narrow', sans-serif;
		font-weight: bold;
		}
	}


/* Rules for the 'print' media type
---------------------------------------- */

@media print {
	/* Unprintable blocks */
	.thanks, .picture, .examples, #slide-number {
		display: none;
		}
	/* Common settings */
	body {
		color: #000;
		font-family: 'PT Serif', 'Times New Roman', Times, serif;
		font-size: 12pt;
		}
	h1, h2, h3, h4 {
		font-family: 'PT Sans Narrow', 'Arial Narrow', 'Helvetica Narrow', sans-serif;
		}
	a, a:link, a:visited {
		color: #000;
		text-decoration: underline;
		}
	img {
		width: auto;
		max-width: 100%;
		}

	/* Slide container */
	.slide {
		margin-bottom: 5em;
		padding-top: 1em;
		border-top: solid 1pt #000;
		}
	.slide:first-child {
		border-top: none;
		}

	/* General content styling */
	.general pre {
		border: solid 1pt #000;
		}
	.general pre code:only-child {
		margin-left: -2em;
		}
	.general table, .general th, .general td {
		border: solid 1pt #000;
		}
	.general video {
		border: solid 1pt #000;
		}

	/* Content styling for special slide types */
	.intro {
		line-height: 1.5em;
		}
	.lecture-title {
		font-weight: bold;
		font-size: 3em;
		}
	.lecture-subtitle {
		margin-top: .5em;
		font-size: 2em;
		}
	.about-author {
		margin-top: 2em;
		line-height: 1.5em;
		}
	.topic-title {
		font-weight: bold;
		font-size: 2.5em;
		}

	/* Some special styles */
	.accent {
		font-weight: bold;
		}
	.context {
		color: #999;
		}
	.arrow {
		margin-top: -.5em;
		font-size: 2em;
		line-height: 1em;
		text-align: center;
		}
	.arrow:before {
		content: '\25bc';
		}
	}


/* Media Queries
---------------------------------------- */

@media
	only screen
		and (max-height: 550px),
	only projection
		and (max-height: 550px) {
	body {
		font-size: 20px;
		}
	}
@media
	only screen
		and (min-height: 551px)
		and (max-height: 650px),
	only projection
		and (min-height: 551px)
		and (max-height: 650px) {
	body {
		font-size: 25px;
		}
	}
@media
	only screen
		and (min-height: 651px)
		and (max-height: 750px),
	only projection
		and (min-height: 651px)
		and (max-height: 750px) {
	body {
		font-size: 30px;
		}
	}
@media
	only screen
		and (min-height: 851px)
		and (max-height: 950px),
	only projection
		and (min-height: 851px)
		and (max-height: 950px) {
	body {
		font-size: 40px;
		}
	}
@media
	only screen
		and (min-height: 951px)
		and (max-height: 1050px),
	only projection
		and (min-height: 951px)
		and (max-height: 1050px) {
	body {
		font-size: 45px;
		}
	}
@media
	only screen
		and (min-height: 1051px),
	only projection
		and (min-height: 1051px) {
	body {
		font-size: 50px;
		}
	}
