/* ------------------------------------------------------------------------- */
/* Structure
/*
/* These styles define the overall page structure
/* ------------------------------------------------------------------------- */

/* cabin-regular - latin */
@font-face {
	font-family: 'Cabin';
	font-style: normal;
	font-weight: 400;
	src: local(''),
		url('/fonts/cabin-v17-latin-regular.woff2') format('woff2'),
		url('/fonts/cabin-v17-latin-regular.woff') format('woff');
}
/* cabin-500 - latin */
@font-face {
	font-family: 'Cabin';
	font-style: normal;
	font-weight: 500;
	src: local(''),
		url('/fonts/cabin-v17-latin-500.woff2') format('woff2'),
		url('/fonts/cabin-v17-latin-500.woff') format('woff');
}

.group:after {
	content: ".";
	font-size: 0;
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

html {
	background-color: #FFF;
	margin: 0;
	padding: 0;
}

body {
	margin: 0;
	padding: 0;
	font-family: "Helvetica", Arial, Verdana, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	color: #555;
}

section {
	width: 700px;
	margin: 0 auto 0 auto;
	padding: 0 20px 0;
	position: relative;
}

a {
	text-decoration: none;
	color: #297aa3;
	transition: color 0.4s;
}
	a:hover {
		color: #1791cf;
	}

a img {
	border: none;
}

th {
	text-align: left;
	vertical-align: top;
}
td {
	text-align: left;
	vertical-align: top;
}

header {
	padding-top: 50px;
	margin-bottom: 30px;
	position: relative;
}
	header div#profile {
		float: right;
		margin-left: 50px;
		margin-bottom: 50px;
		padding-right: 0;
		width: 216px;
		position: relative;
		z-index: +1;
	}

	header div#profile #links {
		padding: 10px 0 0;
		text-align: center;
	}

	header div#profile #links svg {
		width: 20px;
		height: 20px;
		fill: #555;
		opacity: 0.6;
		transition: opacity 0.5s;
	}

	header div#profile #links a:hover svg
	{
		opacity: 1.0;
	}

	header div#profile #links a {
		position: relative;
	}
	header div#profile #links a + a {
		margin-left: 14px;
	}
	header div#profile #links a:first-child {
		margin-left: 0;
		top: -15px;
	}
	header div#profile #links a:last-child {
		top: -15px;
	}

	header div#profile div#headshot {
		width: 200px;
		height: 200px;
		clip-path: circle(108px at center);
		text-align: center;
		padding: 8px;
	}
	header div#profile img {
		width: 200px;
		clip-path: circle(100px at center);
		display: block;
	}

	header a#name {
		border: none;
		font-family: Cabin;
		font-weight: 500;
		font-size: 3em;
		letter-spacing: 0.3px;
		margin-top: 20px;
	}

		header a:link,
		header a:visited {
			color: #555;
		}

#intro {
	font-size: 1.1em;
	color: #444;
}

.open_source a,
.products a {
	color: #298fa3;
	transition: color 0.4s;
}
	.open_source a:hover,
	.products a:hover {
		color: #17b0cf;
	}

#outro {
	margin-top: 30px;
}

main {
	position: relative;
	padding-top: 30px;
	padding-bottom: 50px;
	min-height: min(120px, calc(100vh - 171px));
}
main::after {
	background-image: url(/img/bg.svg);
	background-repeat: no-repeat;
	background-size: 2000px;
	background-position-x: center;
	background-position-y: 0;
	overflow: visible;
	width: 100%;
	content: "";
	display: block;
	position: absolute;
	top: -150px;
	bottom: 0;
	z-index: -1;
}
body#index main {
	padding-top: 50px;
	padding-bottom: 0;
	min-height: auto;
}
body#index main::after {
	top: -130px;
}


img {
	-ms-interpolation-mode: bicubic;
}

footer {
	margin-top: 30px;
	padding-top: 10px;
	padding-bottom: 10px;
	clear: both;
	font-size: 11px;
}

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

h1, h2, h3 {
	font-family: Cabin, Helvetica, Arial, sans-serif;
	color: #555;
	font-weight: 500;
	font-style: normal;
	line-height: 1.1;
}

h1 {
	font-size: 2.5em;
	margin-bottom: 0.3em;
	margin-top: 0;
}
	h1 em {
		font-style: normal;
		color: #777;
	}

h2 {
	font-size: 2.0em;
	margin: 1em 0 0.6em;
}
	h2 em {
		font-size: 0.8em;
	}
	h2 a {
		color: #555;
	}

h3 {
	font-size: 1.5em;
	margin: 0.6em 0 0.6em;
	color: #555;
	font-weight: 400;
}
	h3 a {
		color: #555;
	}

form {
	padding: 0px;
	margin: 0px;
}

fieldset {
	border: 1px solid #ccc;
	margin-bottom: 1em;
}

input {
	font-family: "Trebuchet MS", Arial, Verdana, sans-serif;
	font-size: 1.0em;
}

textarea {
	font-family: "Trebuchet MS", Arial, Verdana, sans-serif;
	font-size: 1.0em;
}

label {
	font-weight: bold;
	display: block;
}

pre {
	margin: 0 0 20px 0;
	background-color: #eeeeee;
	border: 1px solid #cccccc;
	padding: 3px 8px 3px 8px;
	overflow: auto;
}

article {
	margin-top: 30px;
}
article:first-child {
	margin-top: 0;
}

article > h2 {
	margin-top: 0;
	padding-top: 0;
}

div#nav {
	position: absolute;
	top: -40px;
}

div#nav svg {
	height: 12px;
	fill: #999;
	position: relative;
	bottom: -1px;
	margin: 0 2px;
}

div#rss {
	position: absolute;
	top: -40px;
	right: 20px;
}

div#rss svg {
	height: 12px;
	fill: #f80;
}

p.summary {
	font-style: italic;
	position: relative;
	color: #999;
	margin-bottom: 0;
}
h1 + p.summary {
	margin-bottom: 20px;
}
h2 + p.summary {
	top: -15px;
}
h3 + p.summary {
	top: -8px;
}
p.summary span.date
{
	display: inline-block;
	margin-right: 20px;
}

div.illustration {
	float: right;
}
div.illustration.tight {
	margin-left: 20px;
}
div.illustration img
{
	width: 280px;
	display: inline-block;
}
div.illustration.wide img
{
	width: 340px;
}

p.thanks {
	margin-top: 50px;
	font-style: italic;
	color: #999;
}

@media only screen and (max-width: 840px)
{
	section {
		width: auto;
	}

	header div#profile {
		margin-left: 30px;
		margin-bottom: 30px;
	}

	div.illustration {
		float: none;
		text-align: center;
	}
	div.illustration.tight {
		margin-left: 0;
	}
	div.illustration img {
		width: 300px;
	}
	div.illustration.wide img {
		width: 100%;
	}
}

@media only screen and (max-width: 500px)
{
	header div#profile {
		width: 140px;
		margin-left: 30px;
		margin-bottom: 15px;
		padding-top: 20px;
	}
	header div#profile div#headshot {
		width: 140px;
		height: 140px;
		clip-path: circle(70px at center);
		text-align: center;
		padding: 0;
	}
	header div#profile img {
		width: 140px;
	}
	header div#profile #links svg {
		width: 16px;
		height: 16px;
	}
	header a#name {
		font-size: 2.4em;
	}
}

@media only screen and (max-width: 400px)
{
	html {
		background-position-y: 150px;
	}
}
