/*
 *---------------------------
 * SITE VARIABLES
 *---------------------------
*/

/**
 *	Dark theme (defualt)
 */
body {
	--site-background: radial-gradient(white, black);
}

.site-header {
	--header-bottom: lightgrey;
	--header-shadow: 2px 2px 8px #333;
}

.site-header-top {
	--header-top: #333;
}

.theme-toggle svg,
.site-header__name {
	--site-name: white;
}

.content-header__text {
	--header-text: white;
}

.content-card {
	--card-shadow: 3px 3px 5px #333;
}

.contact-list__btn {
	--contact-color: white;
}

.footer {
	--footer-background: linear-gradient(to top, black, transparent);
}

.footer__link {
	--footer-link-color: lightgray;
}

.site-header__img {
	--header-img-shadow: 0 2px 5px black;
	--header-img: url('../images/ethan-profile-pic.png');
}

.sample,
.project-detail {
	--detail-background: ghostwhite;
}


/**
 * Light theme
 */
body[data-theme="light"] {
	--site-background: radial-gradient(white, ghostwhite);
}

body[data-theme="light"] .site-header {
	--header-bottom: lightgrey;
	--header-shadow: 2px 2px 8px #979696;
}

body[data-theme="light"] .site-header-top {
	--header-top: ghostwhite;
}

body[data-theme="light"] .site-header-top {
	--site-background: radial-gradient(darkgrey, white);
}

body[data-theme="light"] .theme-toggle svg,
body[data-theme="light"] .site-header__name {
	--site-name: black;
}

body[data-theme="light"] .content-header__text {
	--header-text: black;
}

body[data-theme="light"] .content-card {
	--card-shadow: 1px 1px 20px lightgray;
}

body[data-theme="light"] .contact-list__btn {
	--contact-color: black;
}

body[data-theme="light"] .footer {
	--footer-background: linear-gradient(to top, lightgray, transparent);
}

body[data-theme="light"] .footer__link {
	--footer-link-color: black;
}

body[data-theme="light"] .site-header__img {
	--header-img-shadow: 0 2px 5px #979696;
	--header-img: url('../images/ethan-profile-pic4.jpg');
}

body[data-theme="light"] .sample,
body[data-theme="light"] .project-detail {
	--detail-background: white;
}



/**
 * Lobster theme
 */
body[data-theme="poptart"] {
	--site-background: radial-gradient(white, #00008b);
}

body[data-theme="poptart"] .site-header {
	--header-bottom: lightgreen;
	--header-shadow: 2px 2px 8px #666666;
}

body[data-theme="poptart"] .site-header-top {
	--header-top: #4ec04e;
}

body[data-theme="poptart"] .site-header-top {
	--site-background: radial-gradient(darkgrey, white);
}

body[data-theme="poptart"] .theme-toggle svg,
body[data-theme="poptart"] .site-header__name {
	--site-name: black;
}

body[data-theme="poptart"] .content-header__text {
	--header-text: #efbbfc;
}

body[data-theme="poptart"] .content-card {
	--card-shadow: 1px 1px 20px lightgrey;
}

body[data-theme="poptart"] .contact-list__btn {
	--contact-color: #efbbfc;
}

body[data-theme="poptart"] .footer {
	--footer-background: linear-gradient(to top, lightgray, transparent);
}

body[data-theme="poptart"] .footer__link {
	--footer-link-color: black;
}

body[data-theme="poptart"] .site-header__img {
	--header-img-shadow: 0 2px 5px #979696;
	--header-img: url('../images/ethan-profile-pic3.jpg');
}

body[data-theme="poptart"] .sample,
body[data-theme="poptart"] .project-detail {
	--detail-background: white;
}





body {
	margin: 0;
	background: var(--site-background);
}

p {
	margin: 0;
}


/*
 *---------------------------
 * SITE HEADER
 *---------------------------
*/

.site-header {
  height: 75px;
  background-color: var(--header-bottom);
  position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	box-shadow: var(--header-shadow);
	min-width: 290px;
	transition: height 0.3s;
}

.site-header-top {
	height: 60px;
	background-color: var(--header-top);
	transition: height 0.3s;
}

.site-header__name {
	box-sizing: border-box;
	margin: 0 auto;
	text-align: center;
	padding: 20px 0 0 0;
	width: 50%;
	font-family: 'Ubuntu', sans-serif;
	font-weight: 300;
	color: var(--site-name);
	font-size: 20px;
	transition: all 0.3s;
	-webkit-box-reflect: below -10px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, transparent), to(rgba(250, 250, 250, 0.5)));
}

.site-header__img {
	width: 65px;
	border-radius: 50%;
	position: absolute;
  top: 4px;
  left: 5px;
  border: 1px solid white;
  content: var(--header-img);
  box-shadow: var(--header-img-shadow);
  transition: all 0.3s;
  z-index: 100;
}

.site-header__img.hover {
	animation-name: fadespin;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-timing-function: ease-in-out;
}

.site-header__img:hover {
	animation-name: spin;
	animation-fill-mode: forwards;
	animation-duration: .5s;
	animation-timing-function: ease-in-out;
}

.site-header .content-header__text {
	opacity: 0;
}

.theme-item {
	font-family: 'Ubuntu', sans-serif;
}

.theme-toggle {
	position: absolute;
	right: 10px;
	top: 15px;
	height: 30px;
	transition: top 0.3s, right 0.3s;
}

.theme-toggle:hover {
	transform: rotate(180deg);
	transition: transform 0.5s;
}

.theme-toggle svg {
	width: 30px;
	cursor: pointer;
	transition: fill 0.5s;
	fill: var(--site-name);
}

.theme-list {
	position: fixed;
	right: 30px;
	top: 30%;
	margin: 0;
	padding: 0;
	list-style: none;
	pointer-events: none;
}

.theme-list.visible {
	pointer-events: initial;
	z-index: 1;
}

.overlay {
	opacity: 0;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	content: '';
	pointer-events: none;
	background-color: gray;
	transition: opacity 0.1s;
	z-index: -1;
}

.overlay.fade {
	opacity: 0.9;
}

.theme-item {
	padding-bottom: 26px;
	font-size: 30px;
	color: white;
	text-align: right;
	cursor: pointer;
	transform: translateX(1000%);
	transition: transform 0.5s;
}

.theme-item.fly-in {
	transform: translateX(0%);
}

.theme-item.fly-in:hover {
	transform: translateX(-10%);
}

.theme-item[data-theme="dark"] {
	color: black;
	text-shadow: 0 0 5px black;
}

.theme-item[data-theme="light"] {
	color: white;
	text-shadow: 0 0 10px black;

}

.theme-item[data-theme="poptart"] {
	color: #4ec04e;
	text-shadow: 0 0 10px pink;
}



/*
 *---------------------------
 * /SITE HEADER
 *---------------------------
*/

/*
 *---------------------------
 * SITE CONTENT
 *---------------------------
*/
.site-content {
	margin-top: 100px;
	padding: 5px 5px;
	transform-style: preserve-3d;
	transform: perspective(1000px);
}

.content-header {
	background-color: transparent;
}

.content-header__text {
	margin-bottom: 20px;
	padding: 0 10px;
	font-size: 20px;
	color: var(--header-text);
	font-family: 'Ubuntu', sans-serif;
	text-align: center;
	font-style: italic;
	transition: color 0.3s;
}

/*
 *---------------------------
 * /SITE CONTENT
 *---------------------------
*/


/*
 *---------------------------
 * CONTENT CARDZ
 *---------------------------
*/

.content-card {
	width: 95%;
	padding: 10px;
	box-shadow: var(--card-shadow);
	margin: 0 auto 15px auto;
	display: table;
	font-family: 'Ubuntu', sans-serif;
	font-size: 14px;
	box-sizing: border-box;
	background-color: white;
	overflow: hidden;
}

.zoom {
	opacity: 0;
	transition: transform 0.5s, opacity 0.5s;
	animation: zoom 1s;
	animation-fill-mode: forwards;
}

#js,
#sass,
#salesforce,
#wordpress {
	padding: 0;
}

#js .skillset__header {
	background-color: rgba(230,230,10,1);
}

#sass .skillset__header {
	background-color: rgba(255,74,141,1);
	color: white;
}

#salesforce .skillset__header {
	background-color: rgba(0,192,255,1);
	color: white;
}

#wordpress .skillset__header {
	background-color: black;
	color: white;
}

/*
 *---------------------------
 * CONTACT
 *---------------------------
*/


.contact-list {
	list-style: none;
	padding: 0;
	width: 95%;
	margin: 0 auto;
}

.contact-list__btn:hover {
	color: lightgray;
}

.contact-list__btn {
	display: inline-block;
	float: left;
	padding: 10px;
	text-decoration: none;
	font-family: 'Ubuntu', sans-serif;
	font-size: 14px;
	color: var(--contact-color);
	transition: color 0.3s;
}

.contact-list__btn i {
	margin-right: 5px;
}
/*
#github .contact-list__btn { background-color: gray; }
#linkedin .contact-list__btn { background-color: #4875B4; }
#email .contact-list__btn { background-color: green; }*/

@keyframes spin {
	to {
		transform: rotate(1turn);
	}
}


@keyframes fadespin {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
		transform: rotate(1turn);
	}
}

/*
 *---------------------------
 * /CONTENT CARD
 *---------------------------
*/


/*
 * location Card
*/

.location-card {
	float: left;
}

.info--location {
	font-size: 14px;
}

.info--bio {
	margin-top: 10px;
}

.info-title {
	padding: 2px 5px;
	color: white;
	text-transform: uppercase;
	background: grey;
}

.info-content {
	color: grey;
	line-height: 24px;
	animation-name: rise;
	animation-duration: 1s;
}

.info-content a {
	color: black;
}

/*
 * skillset Card
*/

.skillset__card {
	clear: both;
}

.skillset__examples {
	float: left;
	margin: 0;
	padding: 10px 30px;
	list-style-type: circle;
	transform: translateY(25%);
	opacity: 0;
	animation-fill-mode: forwards;
	animation-name: rise;
	animation-duration: 0.5s;
	animation-delay: .5s;
}

.skillset__examples svg {
	width: 70px;
	float: left;
}

.skillset__header {
	border-bottom: 1px solid gray;
	transition: transform 0.3s;
}

.skillset__header svg {
	width: 30px;
	float: left;
}

.skillset__header-text {
	padding: 5px 0;
	font-size: 16px;
	text-align: center;
	font-style: italic;
	transition: transform 0.3s;
}

/*
 * Projects Slider
*/

.slider {
	margin: 0 auto;
	position: relative;
	animation-name: rise;
	animation-duration: 1s;
}

.slider-window {
	overflow: hidden;
}

.slider-list {
	list-style: none;
	margin: 0 auto;
	padding-left: 0;
}

.slider-item {
	width: 100%;
	margin: 0 auto;
}

.slider-left,
.slider-right {
	display: none;
}


/*
 * projects Card
*/

.project-detail {
	width: 100%;
	border: 1px solid lightgrey;
	float: left;
	padding: 10px;
	position: relative;
	box-sizing: border-box;
	margin-bottom: 15px;
	background-color: var(--detail-background);
}

.project-detail-title {
	text-align: center;
	font-size: 18px;
	color: black;
}

.project-detail-title:hover{
	color: rgb(80,80,170);
}

.project-detail-list {
	color: grey;
	padding: 20px;
}

.project-detail-list-item {
	margin-bottom: 10px;
}

.project-detail-img {
	width: 100%;
	border: 1px solid lightgrey;
	opacity: 1;
	transition: opacity 0.5s;
}

.project-detail-img.fade {
	opacity: 0;
}

.projects-card-title {
	margin-bottom: 15px;
}

.footer {
	padding: 80px 0;
	background: var(--footer-background);
}

.footer__links {
	display: column;
	margin: 0;
	padding: 0;
	text-align: center;
	list-style: none;
}

.footer__link {
	display: inline-block;
	float: none;
	color: var(--footer-link-color);
	font-size: 20px;
	font-family: sans-serif;
	text-decoration: none;
	transition: color 0.3s, transform 0.3s;
}

.footer__link:hover {
	color: white;
	transform: scale(1.1);
}

.footer__section {
	flex: 1;
	margin-bottom: 0;
	padding: 20px;
}


/*
 *---------------------------
 * / SAMPLES
 *---------------------------
*/

.sample {
	margin-bottom: 15px;
	padding: 30px;
	overflow: auto;
	background-color: var(--detail-background);
	border: 1px solid lightgrey;
}

.sample-title h2 {
	text-align: center;
}

.sample-left-col,
.sample-right-col {
	width: 100%;
	padding: 15px;
	margin: 0 auto;
	text-align: center;
	box-sizing: border-box;
}

/*
 * clock sample
 */

.analog-clock {
	width: 220px;
	height: 220px;
	margin: 0 auto 20px;
	border: 3px solid black;
	border-radius: 50%;
	transform: rotate(90deg);
	box-shadow: 2px 0px 10px gray;
	background: radial-gradient(white 20%, lightgray 50%, darkgray 70%);
}

.analog-clock-container {
	margin: 0 auto;
}

.analog-clock-container p {
	max-width: 600px;
	line-height: 1.5;
	text-align: center;
}

.analog-clock-hands {
	position: relative;
	margin: 10px 0 10px 10px;
	width: 200px;
	height: 200px;
	border-radius: 50%;
}

.analog-clock-hands:after {
	display: inline-block;
	content: "";
	width: 10px;
	height: 10px;
	position: absolute;
	left: 47%;
	top: 49%;
	z-index: 100;
	background-color: tomato;
	border-radius: 50%;
}


.analog-clock-arm {
	display: inline-block;
	position: absolute;
	top: 50%;
	width: 50%;
	height: 5px;
	transition: all 0.1s cubic-bezier(0.42, 0, 0, 2.48);
	/*transition-timing-function: cubic-bezier(0.42, 0, 0, 2.48);*/
	transform-origin: 100%;
}

.analog-clock-arm.seconds {
	background-color: tomato;
	z-index: 2;
}

.analog-clock-arm.minutes {
	background-color: #8f8f8f;
}

.analog-clock-arm.hours {
	background-color: black;
}

.analog-clock-arm.hours:after {
	display: block;
	content: '';
	background-color: gray;
	width: 20px;
}

/*
 * Share tools
 */

.share-tools {
	position: relative;
	display: inline-block;
	overflow: hidden;
}

.share-tools__btns-wrap {
	overflow: hidden;
	padding-right: 8px;
}

.share-tools__btns {
	width: 230px;
	opacity: 0;
	transform: translateX(-100%);
	transition: transform 1s;
	animation-name: collapse;
	animation-duration: 0.8s;
	animation-timing-function: cubic-bezier(0.39, 0.91, 0.42, 0.95)
	animation-fill-mode: forwards;
}

.share-tools__btn {
	display: inline-block;
	float: left;
	width: 20px;
	height: 20px;
	padding: 23px 20px 17px;
	border-radius: 50%;
	background-color: lightgray;
	border: 2px solid gray;
	color: black;
	text-align: center;
	cursor: pointer;
	margin-right: 3px;
}

.share-tools__btn#facebook {
	background-color: steelblue;
	border: 2px solid #315a7d;
}
.share-tools__btn#twitter {
	background-color: skyblue;
	border: 2px solid #6ca4c8;
}
.share-tools__btn#google {
	background-color: tomato;
	border: 2px solid #cc1f00;
}

.share-tools__trigger:hover {
	transform: rotate(1turn);
	transition: transform 0.5s;
}

.share-tools--active:hover { display: inline-block; }

.share-tools--active .share-tools__btns {
	padding-left: 29px;
	animation-name: expand;
	animation-duration: 0.5s;
	animation-timing-function: cubic-bezier(0, 0.81, 0.6, 1.17);
	animation-fill-mode: forwards;
}

.share-tools__btn i {
	transition: transform 0.3s;
	color: white;
}

.share-tools--active .share-tools__btn:not(.share-tools__trigger):hover i {
	transform: scale(1.2);
}

@keyframes expand {
  0% { opacity: 0; }
  90% { opacity: 1; }
  100% {
    -webkit-transform: translateX(-11%);/* Ch <36, Saf 5.1+, iOS < 9.2, An =<4.4.4 */
      -ms-transform: translateX(-11%);/* IE 9 */
          transform: translateX(-11%);/* IE 10, Fx 16+, Op 12.1+ */
    opacity: 1;
    z-index: 100;
	}
}

@keyframes collapse {
  0% {
    -webkit-transform: translateX(0);/* Ch <36, Saf 5.1+, iOS < 9.2, An =<4.4.4 */
      -ms-transform: translateX(0);/* IE 9 */
          transform: translateX(0);/* IE 10, Fx 16+, Op 12.1+ */
    opacity: 1;
  }
  30% { opacity: 0; }
}


/*
 * Hamburger Menu
 */

.hamburger {
	position: relative;
	height: 26px;
	width: 40px;
	padding-left: 5px;
	margin-bottom: 5px;
	cursor: pointer;
}

.hamburger__bar {
	position: absolute;
	display: block;
	width: 40px;
	height: 5px;
	margin: 0 auto;
	background-color: black;
	transition: color 0.3s;
}

.open .hamburger__bar {
	background-color: #f44242;
}

.hamburger #top {
	top: 0;
	animation: resetRight 0.5s;
	animation-fill-mode: forwards;
}

.hamburger #middle {
	top: 10px;
	opacity: 1;
	transition: opacity 0.7s;
}
.hamburger #bottom {
	top: 20px;
	animation: resetLeft 0.5s;
	animation-fill-mode: forwards;
}

.open #top {
	animation: leftX 0.5s;
	animation-fill-mode: forwards;
}

.open #middle {
	opacity: 0;
	transition: opacity 0.2s;
}
.open #bottom {
	animation: rightX 0.5s;
	animation-fill-mode: forwards;
}

.hamburger-menu__items {
	transition: all 2s;
	opacity: 0;
}

.open .hamburger-menu__items {
	opacity: 1;
}

.hamburger-menu.open {
	background-color: gray;
	display: inline-block;
	width: auto;
	transition: background-color 1s;
	box-shadow: 5px 5px 10px grey;
}

.hamburger-menu {
	padding: 20px 0 0;
	width: 40px;
}


/**
 * Hamburger Menu Items
 */

.hamburger-menu__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.hamburger-menu__item {
	padding: 10px 30px;
	cursor: pointer;
	color: white;
	font-family: sans-serif;
	font-size: 22px;
	transition: background-color 0.2s;
}

.hamburger-menu__item:hover {
	background-color: darkgray;
}

@keyframes leftX {
	100% {
		top: 5px;
		transform: rotate(-45deg);
	}
}

@keyframes rightX {
	100% {
		top: 5px;
		transform: rotate(45deg);
	}
}


@keyframes resetLeft {
	0% {
		top: 5px;
		transform: rotate(45deg);
	}
	100% {
		transform: rotate(0deg);
		top: 20px;
	}
}

@keyframes resetRight {
	0% {
		top: 5px;
		transform: rotate(-45deg);
	}
	100% {
		transform: rotate(0deg);
		top: 0;
	}
}


/*
 *---------------------------
 * /SAMPLES
 *---------------------------
*/


@media (min-width: 750px) {
	/*
 	 *---------------------------
 	 * SITE HEADER
 	 *---------------------------
	*/

	.site-header {
		height: 100px;
	}

	.site-header-top {
		height: 80px;
	}

	.site-header-bottom {
		padding: 5px;
		overflow: auto;
	}

	.site-header__name {
		padding: 25px 0 0 25px;
		text-align: left;
		display: inline-block;
		font-size: 32px;
	}

	.site-header__social-bar {
		margin: 0;
		float: right;
	}

	.site-header .site-header__img {
		top: 10px;
		left: 46%;
		width: 125px;
	}

	.site-header.minimize {
		height: 50px;
	}

	.site-header.minimize .site-header-top{
		height: 40px;
	}

	.site-header.minimize	.site-header__img {
		left: 150px;
		width: 40px;
		top: 5px;
	}

	.site-header.minimize .site-header__name {
		font-size: 20px;
		padding-top: 10px;
		transition: all 0.3s;
		-webkit-box-reflect: below -7px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(70%, transparent), to(rgba(250, 250, 250, 0.5)));
	}

	.site-header.minimize .theme-toggle {
		top: 5px;
		right: 20px;
	}
	
	.theme-toggle {
		top: 25px;
		right: 25px;
	}


	/*
 	 *---------------------------
 	 * /SITE HEADER
 	 *---------------------------
	*/

	/*
 	 *---------------------------
 	 * SITE FOOTER
 	 *---------------------------
	*/

	.footer {
		padding: 80px 0;
		background: var(--footer-background);
	}

	.footer__link {
		display: inline-block;
		float: none;
		color: var(--footer-link-color);
		font-size: 20px;
		font-family: sans-serif;
		text-decoration: none;
		transition: color 0.3s, transform 0.3s;
	}

	.footer__link:hover {
		color: white;
		transform: scale(1.2);
	}

	.footer__links {
		display: flex;
	}
	
	.footer__section {
		margin-bottom: 0;
		padding: 20px;
	}

	/*
	 *---------------------------
	 * SITE CONTENT
	 *---------------------------
	*/
	.site-content {
		max-width: 960px;
    	margin: 150px auto 0 auto;
    	padding: 5px 15px;
	}

	/*
	 *---------------------------
	 * /SITE CONTENT
	 *---------------------------
	*/

	/*
	 * location Card
	*/

	.location-card {
		max-width: 320px;
	}

	/*
	 * skillset Card
	*/

	.right-col-card {
		clear: none;
	}

	/*
	 * Project Cards
	*/
	.project-detail:nth-child(even) {
		margin-right: 2%;
	}

	/*
	 * Samples
	*/
	.analog-clock {
		margin: 0 30px 0 0;
		float: left;
  	-webkit-shape-outside:circle();
  	shape-outside:circle();
	}

	.analog-clock-container p {
		text-align: left;
	}


	.sample-left-col,
	.sample-right-col {
		width: 50%;
	}


	.sample-left-col {
		float: left;
	}

	.sample-right-col {
		float: right;
	}
}

@media (min-width: 960px) {

	.project-detail-list {
		min-height: 120px;
	}

	.content-card--left {
		width: 46.5%;
		margin: 0 1% 15px 2.5%;
		float: left;
	}

	.content-card--right {
		width: 46.5%;
		margin: 0 2.5% 15px 1%;
		float: left;
	}

	.slider {
		width: 800px;
	}

	.slider:before {
		background: linear-gradient(to right, white, transparent);
		left: 0;
	}

	.slider:after {
		background: linear-gradient(to right, transparent, white);
		right: 0;
	}

	.slider:before,
	.slider:after {
		content: '';
		position: absolute;
		width: 20px;
		top: 0;
		bottom: 0;
		z-index: 1;
	}


	.slider-left {
	  left: -30px;
	}

	.slider-right {
	  right: -30px;
	}

	.slider-left,
	.slider-right {
		display: inline-block;
	  position: absolute;
	  top: 45%;
	  font-size: 30px;
	  cursor: pointer;
	}

	.slider-list {
		white-space: nowrap;
		transition: transform .75s cubic-bezier(0.42, 0, 0.31, 0.99);
		transform: translateX(70px);
	}

	.slider-item {
		width: 60%;
		display: inline-block;
		margin-left: -4px;
		margin-right: 150px;
		white-space: normal;
	}

	.slider-item:nth-child(odd) .project-detail-img {
		transform: rotate(2deg);
	}

	.slider-item:nth-child(even) .project-detail-img {
		transform: rotate(-2deg);
	}

	.slider-item:first-child {
		margin-left: 0;
	}

	.project-detail-img {
		height: 320px;
		overflow: hidden;
		width: 130%;
		margin-left: -15%;
	}
}

@media (min-width: 1040px) {
	.site-header.minimize .content-header__text {
		opacity: 1;
		transition: opacity 1s, color 0.3s;
		position: absolute;
		top: 8px;
		right: 0;
		width: 70%;
    font-size: 20px;
    margin: 0px 15% 0 0;
    color:;
	}
}

@keyframes zoom {
	0% {
		opacity: 0;
		transform: perspective(10px) translateZ(-20px);
	}

	25% {
		opacity: 0;
	}

	100% {
		opacity: 1;
		transform: perspective(0) translateZ(0);
	}
}

@keyframes rise {
	from {
		transform: translateY(25%);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}





