
/* layout */

html {
	height:100%; /* android chrome bugfix */
}

body {
	font-family: 'Raleway', sans-serif; font-weight:200; line-height: 1.5em; 
	margin:0; padding:0;
	color:rgba(0,0,0,0.8);
	background: rgb(62,110,134);
}

#app {
	margin:0; padding:0;
}

.container {
	position:relative;
	margin:20px auto;
	padding:0 .5em;
}

#background {
    position: fixed;
    left: 0; width: 100%;
    bottom:0; height: 100vh;
    margin: 0; padding: 0;
    /*background: rgb(62,110,134) url(../imgs/clouds.jpg) no-repeat fixed;*/
    background: rgb(62,110,134) url(https://firebasestorage.googleapis.com/v0/b/portfolio-f9db1.appspot.com/o/site%2Fclouds.jpg?alt=media&token=b6b6fb9a-d18e-4eff-92d0-4a0fdfc9fc1b) no-repeat fixed;
    background-size: cover;
    z-index: -1;
}

.photo #background {
	background:#000;
}



/* typography */
h1, h2, h3, h4 {
	line-height: 1em; 
	margin-top:2em;
}
b.emphasized {font-family: 'Lobster Two', 'Raleway', sans-serif; font-weight:400; font-size: 1.5em; }
blockquote {
	font-size: 1.25em;
    font-family: "Lobster Two";
    color: white;
    padding: 1em .5em;
    margin: 1em 20px;
    border: 1px solid white;
    border-width: 1px 0;
    max-width: 460px;
    font-weight: 500;
}
hr {
    margin: 2em 40px;
    border: 0;
    border-top: 1px solid rgba(255,255,255,0.5);
}

/* lists */
ul {padding:0 1.25em 0 1.5em; }
li {
	list-style: circle; line-height:1.125em; margin-bottom:.375em; 
	padding:.125em 1em .125em 0;
}

ul.highlight {padding:0 1.25em 0 0; }
ul.highlight li:nth-child(odd) {
    background: rgba(0,0,0,0.2);
}
.highlight li {
	list-style: inside circle;
	padding:.125em 1em;
}


/* buttons */
button {outline:0; border:0; box-shadow:1px 1px 2px rgba(0,0,0,0.24); padding:.25em .5em; white-space: nowrap; }

/* links */
p a, li a {color: #fff; text-decoration: none; border-bottom: 2px solid #f0f; }
p a:hover, li a:hover {color:white; background:#f0f; }


/* images & embeds */
img, iframe {max-width:100%; background: rgba(255,0,255,0.2); }
.thumbnails {
	display: flex; flex-wrap: wrap; 
	justify-content: space-around;
	background: rgba(0,0,0,0.3);
	padding: 20px 0;
}
.thumbnails img {display: block; 
	/*margin:0 10px 10px; max-width:calc(50% - 20px); */
}

.embed-container { 
	position: relative; 
	padding-bottom: 56.25%; 
	height: 0; 
	overflow: hidden; 
	max-width: 100%; 
	margin-top:2em;
	margin-bottom:2em;
} 

.embed-container iframe,
.embed-container object,
.embed-container embed { 
	position: absolute; 
	top: 0; left: 0; 
	width: 100%; height: 100%;
}


/* slideshow */

.slideshow {
	position: relative;
	text-align: right;
	margin: 1em 0 2em;
}
.slideshow:hover {
	cursor: pointer;
}

.slideshow .slide {
	display: none;
}

.slideshow .slide:nth-child(1) {
	display: block; 
}

.slideshow .caption {
	padding: .25em .5em;
	margin: 0 5px;
	opacity: .95;
	max-width: initial;
	width: auto;
	display: inline-block;
	background: white;
	color: black;
	color: white;
    background: rgba(0,0,0,0.2);
    border: 1px solid white;
}

.slideshow .next { 
	position: absolute;
	right:0; top:1.25em;
	font-size:2em;
    padding: .125em .5em;
    margin: 0;
    color: white;
    opacity: .8;
    display: inline-block;
    background: rgba(255,0,255,0.3);
    border: 1px solid white;
    border-width: 1px 0 1px 1px;
}


/* forms */
label {color:rgba(0,0,0,0.67); font-weight: 100; vertical-align: -2px; margin-left:.2em; }
label, input[type='radio'] {cursor:pointer; }

/* icons */
[class^="icon-"], [class*=" icon-"] { vertical-align: -3px; }

/* utility */
.alignright {float:right; margin:0 0 20px 20px; }
.hidden { display: none !important; }
.mobileOnly {display: none; }
.notice {background: rgba(255,255,255,0.75); color:black; padding:.5em 1em; }


/* nav */
.back-button {
    display: inline-block;
    position: absolute;
    right: 20px;
    top: -3em;
    width: 150px;
	font-size:1.25em;
	padding:.5em 0;
    border: 1px solid white;
    text-decoration: none;
    text-align: center;
    color: white;
    background: rgba(0,0,0,0.2);
}
.back-button i {float: left; margin: 1px 0 0 6px; }
.back-button:hover, a.back-button:active {background: rgba(255,0,255,0.2); }

/* loading */

.loading {
	text-align:center;
	margin:2em auto;
}

.loading img {
	background:none;
}

/* portfolio */

#portfolio-container {
	transition:opacity 1s;
	opacity: 1;
	z-index:1;
	min-height:calc(100vh - 11em);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}

/* vue transitions */

.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

#site-header.fade-leave-active {
  transition: opacity .5s 2s;
}


/* site header */

.page #site-header {
	max-width:800px;
	margin-left:10px;
	margin-right:10px;
}

.portfolio #site-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin-bottom:0;
}

.portfolio #site-header div {
	margin: 0; /* same as .card */
	width:300px; 
}

#site-name h1 {
	color: rgba(255,255,255,0.85);
    border: 4px solid rgba(255,255,255,.75);
    border-width: 0 0 4px;
    margin-top:0;
}

#site-name h1 span {
	display: none;
}

#site-name h1.fade-leave-active {
	transition: opacity .5s 3s;
}


/* filter options */


#filter {
	order: 1; /* flex sort on mobile */
}

#filter-toggle-button {
	width:300px;
	font-size:1.25em;
	padding:.5em;
	border:1px solid white;
	background: rgba(0,0,0,0.1);
	color:white;
}

#filter-toggle-button i {
	float:right;
	margin:2px 4px 0 0;
}

#filter-toggle-button:hover {
	background:rgba(255,0,255,0.2);
}

ul#filter-options { 
  /*display: none;*/
	border: 1px solid white;
	padding: .5em 0;
	margin: -1px 0 0 0;
	background: rgba(0,0,0,0.1);
}

ul#filter-options:hover { 
	background: rgba(0,0,0,0.2)
}

#filter-options li {
  list-style: none;
	text-indent: 0;
	padding: 0;
}

#filter-options li a {
	display: block;
	font-size: 1.25em;
	padding: .5em;
	text-decoration: none;
	border:0;
	color:white;
}
#filter-options li a:hover {
	background: rgba(255,0,255,0.2);
}


/* portfolio card */

.card {
	position: relative;
	height: 300px;
	width: 300px;
	box-shadow: 2px 2px 2px rgba(0,0,0,0.24);
	margin: 0 0 20px 0;
	padding: 0;
	border-radius: 2px;
	overflow:hidden;
	/*! transition:left .25s, height .25s, padding .25s, margin .25s; */
	/* @todo optimize swipe with class and transform. */
	display: flex;
	align-items: center; /* align content vertical */
	box-sizing: border-box; /* prevent border & padding from adding to element width */
	text-align: center;
	background:rgba(255,0,255,0.2) url() 0px 0px no-repeat;
	background-size: cover;
	color: white;
	text-decoration: none;
	outline: 0;
}

.card.draft { 
	opacity: 0.25; 
	display: none !important; 
	/* @todo */ 
}

.card h2 {
	margin: 0 10px;
	font-size:2em;
	line-height: 1em;
	text-align: center;
	font-weight: 100;
	display: block; width: 100%; /* what the fudge? @todo */
}

.card-photo h2,
.card-project h2 {
	display: none;
}

.card .hint { /* hint */
	display: block;
	position: absolute;
	bottom:calc(50% - 1em);
	right:0;
	padding:.25em 1em;
	font-size:1rem;
	background: rgba(255,0,255,.8);
	transition:opacity .2s;
	opacity: 0;
}

.card:hover .hint { /* hint */
	transition:opacity, .2s .6s;
	opacity: 1;
}

#cardTemplate {
	display: none;
}

/* card photo */

.card-photo {
	background-size: cover;
	filter: grayscale(1);
}
.card-photo:hover {
	filter: grayscale(0);
}


/* card text */

.card-post {
  background:black;
}
.card-post h2 {
	font-size: 1.5em;
	font-family: monospace;
}
.card-post:hover {
	background:white;
}
.card-post:hover h2 {
	color:black;
}

/* card info */

.card-info {
	background:none;
	border:2px solid #fff;
	color: white;
}
.card-info:hover {
	background: rgba(255,0,255,0.2)
}

/* card project */

.card-project {
  background-color:rgba(255,0,255,0.33);
}
.card-project:hover {
	border: 2px solid white;
	border-radius: 50%;
	transition: border-radius, .2s .2s;
}


/* card filters */

.card { display: none; }
.all .card { display: inherit; }
.info .card-info { display: inherit; }
.projects .card-project { display: inherit; }
.photos .card-photo { display: inherit; }
.posts .card-post { display: inherit; }



/* articles */


article {
	position: relative;
    margin: 80px 0 20px;
	max-width:800px;
	min-height:calc(100vh - 13em);
    background: rgba(0,0,0,0.5);
    color: white;
    border: 1px solid rgba(255,255,255,0.0);
}

article header {
    margin: 2em 0 3em;
}

article header h1 {
    margin-top:1em;
    margin-bottom: 0;
    border-bottom: 1px solid rgba(255,255,255,0.3);
    font-size: 1.75em;
    padding-bottom: .5em;
}
.subhead {
	margin-top: 1em;
	font-weight: 900;
    line-height: 1.25em;
    color: white;
}

#page-content {
	padding-bottom: 2em;
}
.photo #page-content {
	padding-bottom: 0;
}

article .thumbnails {
	/*margin:0 -10px;*/
}

article p,
article h1,
article h2,
article h3,
article ul,
hr {
	max-width: 500px;
	margin-right:20px;
	margin-left:20px;
}




/* photo */

#photo-image {
	border: 1px solid #888;
    box-sizing: border-box;
    max-height: 80vh;
}

#photo-caption {
	font-size:1.25em;
}

#photo-metadata {
	font-family: monospace;
	font-weight: 100;
	margin-top: -1em;
	color: #aaa;
}

.photo article { border: none; }
.photo article header { margin:10px 0; }

.photo .back-button {
	border-color:#888;
}


/* site footer */

footer {
	display:block;
	border-top:1px dashed #fff; 
	border-bottom:1px solid #000; /* bugfix @todo */ 
	color: #fff; 
	background: rgba(0,0,0,0.3); 
}

.loading footer { /* @todo */
	position: fixed;
	bottom: 0;
	left: 0; right: 0;
}


.license {font-size:.875em; margin:1em 10px 1.33em; }

footer p a {color: inherit; text-decoration: underline; border: 0; }
footer p a:hover {text-decoration: none; }


.photo footer {
	border-color:#666; 
	color: #aaa; 
	background: none; 
}

.photo footer .license {
  margin-top: 1.375em;
	margin-left:10px;
}




/* wide screens */

@media screen and (min-width: 600px) {	
	blockquote {
		margin: 1em 40px;
	}
	.back-button {
		position: absolute; left:0; right: auto;
		width: 300px; 
	}
	article {
		margin: 80px 10px 40px;
	    border: 1px solid rgba(255,255,255,0.5);
	}
	article header {
		margin:3em 0;
	}
	article header h1 {
		font-size:2em;
		padding-bottom: 0;
	}
	#page-content {
		margin:10px 0 0;
	}
	article p,
	article h1,
	article h2,
	article h3,
	article ul,
	hr {
		max-width: 500px;
		margin-right:40px;
		margin-left:40px;
	}
	.page #site-header {
		margin-right: auto;
		margin-left: auto;
	}
	.photo #site-header {
		margin-right: 20px;
		margin-left: 20px;
		max-width:1200px;
		padding:0;
	}
	.photo article {
		margin: 80px 20px 40px;
		max-width:1200px;
		padding:0;
	}
	.photo article header { 
		margin:10px 0 10px -40px; 
	}
	.photo footer .license {
		margin-left:20px;
		margin-right:20px;
	}
	.slideshow:hover .next { 
		background:rgba(255,0,255,0.8);
	}
	.card,
	.portfolio #site-header div {
		margin-right: 20px;
	}
}



/* 2-col portfolio */
@media screen and (min-width: 656px) {	
	#site-name h1 {
		margin: 0 0 -5px; /* oye. prevent vertical shift when hidden */
		width:300px;
	}
	#filter {
		order: 1; /* flex sort  */
	}
	footer p, .license { 
		margin-left: 40px; 
		margin-right: 40px; 
	}
	.mobileOnly {
		display: none;
	}
}

/* max width article */
@media screen and (min-width: 820px) { 
	article {
		margin: 80px auto 40px;
	}
}


/* 3-col portfolio */
@media screen and (min-width: 976px) { 
  .container {
		max-width: 960px;
	}	
	#site-name {
		flex-grow:2;
	}
	#site-name h1 {
		width: auto;
	}
	#site-name h1 span {
		display: inline-block; 
		font-size:.75em; 
	}
}




