/*
Author: Stephanie Sun
Author URI: https://www.stephsun.com/
Description: Personal website theme.
Version: 2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/
@import url(https://fonts.googleapis.com/css?family=Raleway:300,400,700);

body, html {
	margin:0;
	padding: 0;
}
body {
  font-size: 1em;  
  font-family: Raleway, HelveticaNeue-Light, "Helvetica Neue", Helvetica, sans-serif;
	text-align:center;
	font-weight: 300;
}
div { margin-bottom: 1em; }
body.page-template-page-cv div, body.page-template-front-page div { margin-bottom: 0px; }

.clearfix:before,
.clearfix:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}
.clearfix:after {
    clear: both;
}

/* Slow Animations */
a:hover, a:hover img, #logo, input, button, textarea { transition-property: opacity background color; transition-duration: 0.20s; transition-timing-function: ease-out; -webkit-transition-property: opacity background color; -webkit-transition-duration: 0.20s; -webkit-transition-timing-function: ease-out; -moz-transition-property: opacity background color; -moz-transition-duration: 0.20s; -moz-transition-timing-function: ease-out; -o-transition-property: opacity background color; -o-transition-duration: 0.20s; -o-transition-timing-function: ease-out; }
hr { transition: transform 750ms linear; }

h1, h2 {
	font-size: 32px;
	font-weight: normal;
}
.logo-wrap, .wrapper, #wrapper {
	width: 100%; 
	margin: 0 auto;
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	position: relative;
}
.wrapper {
	max-width: 900px;
	padding: 0px 100px;
}
.logo-wrap {
  padding: 0px;
  max-width: 540px;
}
.large-logo-header {
  border-bottom: 1px solid #ffc800;
  margin-bottom: 0px;
}
#wrapper {
	padding: 1em 0px;
  border-bottom: 1px solid #ffc800; 
}
.box, li, #bio h2 {
	width: 100%;
	margin-top: 10px;
}
li {
	padding: 0.2em 0;
	color:black;
}
ul {
	margin:0;
	padding:0;
	width:100%;
	list-style-type:none;
}
figure {
    display: block;
    margin: 0px 0px 1em 0px;
    position: relative;
    width: 100%;
    overflow: hidden;
}

a, a:visited { text-decoration: none; color: inherit; }
a, .here { border-bottom: 1px #222 solid; }
a:hover, a:active { border-color: #ffc800; color: #ffc800; }


#logo {
	border:none;
	background:url('../images/logo-wordmark.svg') no-repeat 0 0;
	font-size:0;
	text-indent:-5000px;
	overflow:hidden;
	display:block;
	width:100%;
	height:0;
	padding-bottom:8.989%;
	background-size: 100% auto;
}

a:hover > img {
  opacity: 0.75;
} 

a #logo:hover { 
  opacity: 0.05;
}

.container,
.flex-container{
  position: relative;
}

.flex-container{
  display: flex;
  flex-direction: row;
  max-width: 1300px;
  margin: 0 auto;
}

.links-container {
  font-family: HelveticaNeue, "Helvetica Neue", Helvetica, sans-serif;
  font-size: 20px;
  line-height: 1.2;
  padding: 54px 0 66px;
  border-top: 1px solid #ffc800;
  border-bottom: 1px solid #ffc800;
  background-color: #ffe999;
  font-weight: 400;
}

.justify-left {
  text-align: left;
}

.justify-right {
  text-align: right;
}

.one_two, .two_five, .three_five {
    position: relative;
    float: left;
}
.col-2 {
  display: flex;
  position: relative;
  flex-direction: column;
}
.col-2,
.one_two { width: 50%; }
.two_five { width: 40%; }
.three_five { width: 60%; }

.responsive-wrap { text-align: center; }
.responsive-wrap img { max-width: 100%; height: auto; }

footer { margin: 3em auto 3.5em auto; }
ul#footer-links li {
  display: inline-block;
  width: 120px;
  padding: 0.25em;
}
ul#footer-links li a {
  text-transform: lowercase;
}

/** Home **/
body.page-template-front-page #wrapper { border-bottom: 0px; }
body.page-template-front-page figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  padding: 6px;
  background: rgba(50, 50, 50, 0.5);
  text-align: right;
  font-size: 11px;
  color: #fff;
}
#bio :not(h2) {
	font-size: 20px;
	line-height: 150%;
	font-family: HelveticaNeue, "Helvetica Neue", Helvetica, sans-serif;
	font-weight: 400; 
	text-align: left;
}
#profile-pic {
  background: no-repeat left bottom url('../images/profile-bcn.jpg'); 
  background-size: cover;
  margin: 0;
  width: 100%; 
  height: 100%;
}
#emo-landscape {
  background: no-repeat center url('../images/profile-ph.jpg'); 
  background-size: cover;
  margin: 0;
  width: 100%; 
  height: 0;
  padding-bottom: 56.2%;
}
.about-me { border-right: 1px solid #ffc800;  }
.home-panel {
  padding-bottom: 2em; 
  padding-top: 1em; 
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}
.home-link {
    text-transform: uppercase;
    font-weight: 700;
}

/** Knitting Patterns **/
body.single-pattern .wrapper, body.post-type-archive-pattern .wrapper { padding-bottom: 2em; }
article#pattern p { line-height: 1.5; }
article#pattern p, article#pattern ul, article#pattern li {
  text-align: left;
  font-family: HelveticaNeue, "Helvetica Neue", Helvetica, sans-serif; 
  font-weight: 400; 
}
article#pattern h3, article#pattern h4, article#pattern h6 {
  text-transform: uppercase;
}
article#pattern h5 {
  text-transform: capitalize;
}
article#pattern h3, article#pattern h4, article#pattern h5, article#pattern h6 {
  font-size: 1em;
  width: 100%; 
  text-align: left;
  margin: 0;
}
article#pattern h3 {
  font-weight: 600;
}
article#pattern h4, article#pattern h5, article#pattern h6 {
  font-weight: 300;
}
article#pattern h6 {
  font-size: 0.9em;
}
article#pattern img {
  max-width: 100%;
}
article#pattern .pattern-detail-imgs img {
  max-width: 30%;
}
.aligncenter {
  display: block;
  margin: 1em auto;
  float: none;
}
article#pattern ul { clear: both; padding: 0em 0em 0em 1em; margin: 0.5em 0em 1em 1em; width: auto; }
a.ravelry-btn {
  border: none;
}
a:hover.ravelry-btn > img {
  opacity: 0.75;
}
.key-phrase {
  text-transform: uppercase;
  font-family: Raleway, HelveticaNeue-Light, "Helvetica Neue", Helvetica, sans-serif !important;
}
.gallery-item {
  width: 49%;
  margin: 0 0.5% 1em 0.5%;
  float: left;
  text-align: center;
}
.gallery-item:nth-child(2n-1) {
  clear:both;
}
.knit-logo-wrap { clear: both; }
article#pattern p.copyright {
  text-align: right;
  font-style: italic;
}

/** CV **/
body.page-template-page-cv, body.single-pattern { line-height: 1.25em; }
body.page-template-page-cv .wrapper {
  border-left: 1px solid #ffc800;
  border-right: 1px solid #ffc800;
  padding-top: 1em;
}
body.page-template-page-cv .wrapper article > div {
  display: block;
  margin-bottom: 0.5em;
}
body.page-template-page-cv .wrapper article > div > ul > li > div {
  display: flex;
  flex-direction: row;
  width: 100%;
}
body.page-template-page-cv #wrapper {
  padding-bottom: 0px;
}
body.page-template-page-cv h2, body.single-pattern h2, body.post-type-archive-pattern h2 { line-height: normal; }
body.page-template-page-cv h2 {
  margin-bottom: 4px;
}
body.page-template-page-cv p.email {
  text-align: center;
  margin-top: 4px;
}
h3 {
  text-align: left;
  font-weight: 300;
  text-transform: uppercase;
  margin-bottom: 0px;
}
h4 {
  width: 60%;
  text-align: left;
  margin: 0.5em 0;
}
h4:nth-child(2) {
  width: 40%;
  text-align: right;
}

article > div > ul > li { margin: 0; padding-bottom: 1em; }
article > div > ul > li > ul, article > div > ul > li > ul > li > ul { text-align: left; clear: both; padding: 0em 0em 0em 1em; margin: 0.5em 0em 0.5em 1em; width: auto; }
article > div > ul > li > ul > p { margin: 0px; }
body.page-template-page-cv li, article#pattern li { height: auto; }
article > div > ul > li > ul > li, article > div > ul > li > ul > li > ul > li, article#pattern li { font-weight: 400; list-style: square; margin: 0px 0px 0.5em 0px; padding: 0px; line-height: 1.5em; }
article > div > ul > li > ul > li { font-family: HelveticaNeue, "Helvetica Neue", Helvetica, sans-serif; font-weight: 400; }

article#pattern ol li { list-style: decimal }
article#pattern ol.ab li { list-style: upper-alpha }

ul#skills {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 8px 0 40px;
}
ul#skills li { 
  display: flex;
  flex-direction: column;
  font-weight: 700;
  width: 33.3%;
  margin: 0;
  padding: 0;
}

/* Full-Width Header */
div#full-width header { 
    width: 100%; 
    background: #fff; 
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding: 6px 1%;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 999;
    border-bottom: 1px solid #eee;
}
div#full-width header h1 { width: 360px; max-width: 100%; float: left; margin: 0; }
nav.page-links { width: 30%; float: right; text-align: right; }
nav.page-links span { display: inline-block; margin: 6px; }

/* Portfolio Page */
section.portfolio-wrap, section.portfolio-top { 
    position: relative;
    margin-top: 45px;
}
section.portfolio-top {
    height: auto;
    overflow: hidden;
    background: linear-gradient(#ffc800, #ffe999);
}
div.portfolio-details {
    position: relative;
    z-index: 9;
    padding: 25px;
    width: 400px;
    max-width: 100%;
    height: auto;
    float: right;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    margin-bottom: 0;
}
figure.portfolio-banner {
    position: absolute;
    top: 0px;
    left: 0px;
    margin: 0;
    width: 100%;
    height: 0px;
    padding-bottom: 43.75%;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: center 0px;
}
figure.portfolio-banner.repeat {
    background-size: auto 100%;
    background-position: center top;
}

ul.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  justify-content: center;
}
.tag {
  padding: 6px;
  border: 1px solid #fff;
  width: auto;
  margin: 0;
}

div.the-content {
    position: relative;
    width: 100%;
    background: #fff; 
    margin-bottom: 0px;
    padding: 1em 2em;
}
div.the-content .two_five, div.the-content .three_five, div.the-content .one_two {
    padding: 1em;
}
div.the-content, div.the-content .two_five, div.the-content .three_five, div.the-content .one_two {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}
div.the-content h3 {
    font-weight: 700;
}
div.the-content p, div.the-content blockquote {
    text-align: left;
}
div.the-content p, div.the-content li {
    font-family: HelveticaNeue, Helvetica, sans-serif;
    font-weight: 400;
    line-height: 1.55em;
}
div.the-content blockquote {
    margin: 0px auto 1em auto;
    padding: 1em;
    line-height: 1.55em;
    background: #f3f3ff;
    text-align: right;
}
div.the-content blockquote p {
    font-family: Raleway, HelveticaNeue-Light, "Helvetica Neue", Helvetica, sans-serif;
    color: #000;
    font-size: 1.1em;
    font-weight: 400;
    display: block;
    text-align: left;
    margin: 0;
}
div.the-content figcaption {
    font-style: italic;
    font-size: 13px;
}
div.the-content img {
    margin: 0 auto 1em auto;
    max-width: 100%;
    height: auto;
    box-shadow: 1px 1px 10px #ccc;
    -moz-box-shadow: 1px 1px 10px #ccc;
    -webkit-box-shadow: 1px 1px 10px #ccc;
}
div.the-content ul {
    display: grid;
    /* Default to 1 column for mobile (1 by x) */
    grid-template-columns: repeat(2, 1fr); 
    gap: 10px; /* Adjust the spacing between cells as needed */
    margin-bottom: 2em;
}
div.the-content li {
    font-weight: 700;
    border: 1px dotted #aaa;
    padding: 1em 1px;
    border-radius: 6px;
    margin: 0
}
.inset-image {
    background: #f8f8f8; padding: 2em; text-align: center; 
}
.inset-image img {
    box-shadow: none !important;
    -moz-box-shadow: none !important;
    -webkit-box-shadow: none !important;
}
.engage-box {
    position: relative;
    background: #efefef;
    padding: 1em;
    margin: 0;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
}
a.see-next, div.the-content a.see-next { 
    font-family: Raleway, HelveticaNeue-Light, "Helvetica Neue", Helvetica, sans-serif;
    font-weight: 400;
    font-size: 0.9em;
    border: 1px solid #ccc; background: #fff; padding: 1em; display: block; width: 330px; max-width: 100%; margin: 0 auto; 
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    text-align: center;
}
a:hover.see-next, div.the-content a:hover.see-next { background: #fff7ab; }
div.marquee a.see-next {
  font-size: 1em;
}

/* S Accents */
.semi-circle, hr {
  display: block;
  height: 25px;
  width: 48px;
  padding: 0px;
}
.semi-circle {
  position: absolute;
  margin-left: -24px;
  top: -13px;
  left: 50%;
  background: transparent;
}
hr {
  border: none;
  margin: 1.15em auto;
  position: relative;
}
hr::after,
  .semi-circle::after {
  display: block;
  width: 24px;
  height: 12px;
  content: "";
  position: absolute;
}
hr::after {
  background: #000;
}
.semi-circle::after {
  background: #ffc800;
}
hr::after, .semi-circle::after {
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  top: 6px;
  left: 12px;
} 

/* Portfolio Index */
.portfolio-tile-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 98%;
  margin: 1%;
  position: relative;
  justify-content: space-around;
}
a.portfolio-tile { 
  display: flex;
  flex-direction: column;
  position: relative;
  width: 48%;
  max-width: 480px;
  padding: 300px 1em 1em 1em;
  box-sizing: border-box;
  text-align: left;
  font-size: 1.25em;
  margin-bottom: 1em;
  overflow: visible;
  border: none;
}
a.portfolio-tile img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: auto;
  padding: 1em;
  box-sizing: border-box;
  animation: fade_in 0.5s linear 2s forwards; 
  opacity: 0;
}
a:hover.portfolio-tile {
  background: #ffdb57;
}
a:hover.portfolio-tile img {
  filter: grayscale(90%) opacity(50%);
}
a.portfolio-tile h3 { 
  font-weight: 700;
}
.portfolio-tile-border-top,
.portfolio-tile-border-right,
.portfolio-tile-border-left,
.portfolio-tile-border-bottom {
  width: 0;
  height: 0;
  display: block;
  position: absolute;
  background-color: #000;
}
a:hover.portfolio-tile span {
  background-color: #ffc800;
}
.portfolio-tile-border-top,
.portfolio-tile-border-bottom {
  height: 1px;
}
.portfolio-tile-border-top {
  top: 0;
  left: 0;
  animation: border_horizontal 0.5s linear forwards; 
}
.portfolio-tile-border-bottom {
  bottom: 0;
  right: 0;
  animation: border_horizontal 0.5s linear 1s forwards; 
}
.portfolio-tile-border-right,
.portfolio-tile-border-left {
  width: 1px;
}
.portfolio-tile-border-right {
  top: 0;
  right: 0;
  animation: border_vertical 0.5s linear 0.5s forwards; 
}
.portfolio-tile-border-left {
  bottom: 0;
  left: 0;
  animation: border_vertical 0.5s linear 1.5s forwards; 
}
@keyframes border_horizontal {
  from { width: 0; }
  to { width: 100%; }
}
@keyframes border_vertical {
  from { height: 0; }
  to { height: 100%; }
}
@keyframes fade_in {
  from { opacity: 0; }
  to { opacity: 1; }
}

  .underline {
    position: relative;
    display: block;
    height: 0.5em;
    width: 0px;
    background: #ffc800;
    margin: -1em auto 0.5em auto;
    border-radius: 0.25em;
    -moz-border-radius: 0.25em;
    -webkit-border-radius: 0.25em;
  }

html { text-size-adjust: none; }

@media only screen and (max-width: 1180px) {
  div.the-content ul {
    grid-template-columns: repeat(1, 1fr);
  }
}

@media only screen and (max-width: 1000px) {
  div.the-content ul {
    grid-template-columns: repeat(2, 1fr);
  }
  a.portfolio-tile { 
    padding-top: 30%;
  }
  .flex-container { flex-direction: column; }
  .col-2, .one_two { width: 100%; }
  .col-2 { flex-direction: row; justify-content: center; }
  .about-me { border-right: 0; margin-right: 0; }
  #profile-pic { width: 400px; height: 532px; margin-bottom: 1em; }
  body.page-template-page-cv .wrapper { border-left: 0px; border-right: 0px; }
}

@media only screen and (max-width: 900px) {
  #wrapper, .wrapper { width: 100%; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; }
  .wrapper { padding: 0em 1.5em; }
}

@media only screen and (max-width: 640px) {
  .two_five, .three_five { width: 100%; }
  a.portfolio-tile { 
    padding-top: 300px;
    width: 100%;
  }
}

@media only screen and (max-width: 615px) {
  div.the-content ul {
    grid-template-columns: repeat(1, 1fr);
  }
}

@media only screen and (max-width: 600px) {
  body.page-template-page-cv .wrapper article > div > ul > li > div {
    flex-direction: column;
    margin-bottom: 1em;
  }
  h4, h4:nth-child(2) {
    flex-direction: row;
    width: 100%;
    text-align: left;
    margin: 0;
  }
	h4:nth-child(2) { font-weight: 400; }
	ul#skills li { width: 50%; }
  div.portfolio-details {
    width: 100%;
  }
}

@media only screen and (max-width: 588px) {
  .logo-wrap { padding: 0em 1.5em; }
}

@media only screen and (max-width: 515px) {
    div#full-width header h1 { float: none; margin: 0 auto; }
    .responsive-header { margin-top: 2em; }
    nav.page-links { float: none; width: 100%; text-align: center; }
    section.portfolio-top { margin-top: 75px; }
}

@media only screen and (max-width: 480px) {
  a.portfolio-tile { 
    padding-top: 62.5%;
  }
  .two_five, .three_five { width: 100%; }
  .flex-container, .col-2 { display: block; }
  #bio { margin-bottom: 1em; }
  #profile-pic { width: 100%; height: 0; padding-bottom: 100%; margin-bottom: 0; }
}

@media only print {
  .screen-only, .semi-circle { display: none; }
	body { background: none; font-size: 10pt; }
  #logo { 
      text-transform: uppercase;
      background: none;
      font-size:20pt;
      font-weight:700;
      line-height:1em;
      height: auto;
      text-indent:0px;
      width: 100%; 
      padding: 0; 
      margin: 0 auto; 
  }
  h1 { margin: 0; }
  h2 { font-size: 11pt; margin: 0; }
  .wrapper, #wrapper { width: 7in; max-width: 7in; padding: 0; margin: 0 auto; }
  body.page-template-page-cv .wrapper, 
    #wrapper, .large-logo-header { border: 0px; }
  article > div > ul > li > ul, 
  article > div > ul > li > ul > li > ul,
  article > div > ul > li > ul > li, 
  article > div > ul > li > ul > li > ul > li { padding-bottom: 0in; margin-bottom: 0in; }
  article > div > ul > li > ul > li.padded { margin-bottom: 0.075in; }
  article > div > ul > li > ul > li, 
  article > div > ul > li > ul > li > ul > li { line-height: 1.25em }
  div { margin: 0; }
  footer { display: none; }
}
