html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}

html { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }

*, *:before, *:after { box-sizing: inherit; }

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; border: 0; padding: 0; white-space: nowrap; clip-path: inset(100%); clip: rect(0 0 0 0); overflow: hidden;}

/* Custom Properties */

:root {
  --ff-primary: 'Source Sans Pro', sans-serif;
  --ff-secondary: 'Source Code Pro', monospace;

  --fw-reg: 300;
  --fw-bold: 900;
  --clr-light: #fff;
  --clr-dark: #303030;
  --clr-accent: #16e0bd;

  --fs-h1: 3rem;
  --fs-h2: 2.23rem;
  --fs-h3: 1.8rem;
  --fs-body: 1.6rem;
}

@media (min-width: 800px) {
  :root {
    --fs-h1: 4.5rem;
    --fs-h2: 3.75rem;
    --fs-h3: 1.5rem;
    --fs-body: 1.125rem;
  }
}

/* General Styles */

html {
  scroll-behavior: smooth;
}

body {
  background: var(--clr-dark);
  color: var(--clr-light);
  margin: 0;
  font-family: var(--ff-primary);
  font-size: var(--fs-body);
  line-height: 1.6;
}

img {
  display: block;
  max-width: 100%;
}

section {
  padding: 5em 2em;
}

strong {
  font-weight: var(--fw-bold);
}

.wrapper {
  max-width: 1200px;
  width: 80%;
  margin: 0 auto;
}

/* Typography */

h1, 
h2,
h3 {
  line-height: 1;
  margin: 0;
}

h1 { 
  font-size: var(--fs-h1) 
}

h2 { 
  font-size: var(--fs-h2) 
}

h3 { 
  font-size: var(--fs-h3) 
}

.section-title {
  margin-bottom: .25em;
}

.section__title--intro {
  font-weight: var(--fw-reg);
}

.section__title--intro strong {
  display: block;
}

.section__subtitle--intro,
.about-me_subtitle {
  background: var(--clr-accent);
  font-family: var(--ff-secondary);
  margin-bottom: 1em;
}

.header-container {
  position: relative;
}

/* Nav */

.header-section {
  display: flex;
  justify-content: space-between;
  padding: 1em;
  background: var(--clr-light);
}

.header_logo {
  max-width: 100px;
  font-size: var(--fs-h3);
  color: var(--clr-accent);
}

.header_nav {
  position: fixed;
  background: var(--clr-dark);
  color: var(--clr-light);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;

  transform: translateX(100%);
  transition: transform 250ms cubic-bezier(.5, 0, .5, 1);
}

.header_nav-list {
  list-style: none;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 0;
}

.header_nav-item a {
  color: inherit;
  font-weight: var(--fw-bold);
  font-size: var(--fs-h3);
  text-decoration: none;
}

.header_nav-item a:hover,
.header_nav-item a:focus {
  color: var(--clr-accent);
}

.header_hamburger {
  display: block; 
  position: relative;
}

.header_hamburger,
.header_hamburger::before,
.header_hamburger::after {
  background: var(--clr-accent);
  width: 2em;
  height: 3px;
  border-radius: 1em;
  transition: transform 250ms ease-in-out;
}

.header_hamburger::before,
.header_hamburger::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
}

.header_hamburger::before {top: 6px;}
.header_hamburger::after { bottom: 6px; }

.nav-toggle {
  padding: .5em;
  background: transparent;
  border: 0;
  cursor: pointer;
  position: fixed;
  right: 1em;
  top: 1em;
  z-index: 1000;
}


.nav-open .header_nav {
  transform: translateX(0);
}

.nav-open .nav-toggle {
  position: fixed;
}

.nav-open .header_hamburger {
  transform: rotate(.625turn);
}

.nav-open .header_hamburger::before {
  transform: rotate(90deg) translateX(-6px);
}

.nav-open .header_hamburger::after {
  opacity: 0;
}

/* Introduction */

.intro {
  background-image: url(./assets/pexelsphoto205316.jpeg);
  background-size: cover;
  min-height: 93vh;
  background-position: center center;
  background-attachment: fixed;

}

.intro-content {
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform: translateX(-57%);
  text-align: center;

}

.intro-down-button,
.section_subtitle--intro {
  font-size: 1.4rem;
  color: var(--clr-accent);
}

.intro-down-button .fa-arrow-down:hover {
  opacity: .4;
}

.section__title--intro,
.section_subtitle--intro {
  color: var(--clr-dark);
  overflow: hidden;
  /* border-right: .15em solid var(--clr-accent); */
  margin: 0 auto;
  letter-spacing: .15em;
  white-space: nowrap;
  animation: 
  typing 3.5s steps(40, end),
  blink-caret .75s step-end infinite;
}

.section__title--intro {
  /* border-right: .15em solid var(--clr-accent); */
}

@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}

@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: var(--clr-accent) }
}

@media (max-width: 432px) {
  .intro-content {
    bottom: 52%;
  }  
}

/* about me */

.about-me-section {
  background: var(--clr-light);
  color: var(--clr-dark);
  display: flex;
  justify-content: center;
  min-height: 100vh;
}

.about-me_wrapper {
  max-width: 1200px;
  margin: 0 auto;
}

.about-me_img {
  box-shadow: var(--bs);
  border-radius: 5px;
}

.about-me_body {
  font-size: 1.6rem;
}

.about-me_body:first-of-type {
  margin-top: 0;
}

.about-me_links {
  display: flex;
  flex-direction: column;
}

.fa-file,
.fa-brands,
.fa-external-link-alt {
  color: var(--clr-accent);
}

.fa-file:hover,
.fa-brands:hover,
.fa-external-link-alt:hover {
  opacity: .4;
}

.about-me_blog p,
.about-me_resume p {
  margin: 0;
}

.about-me_resume {
  margin: 0;
  margin-right: 25px;
}

@media (min-width: 600px) {

  .about-me_wrapper {
    display: grid;
    grid-template-columns: 1fr 200px;
    grid-template-rows: 100px 70px auto 70px;
    grid-template-areas: 
      "title img"
      "subtitle img"
       "text links";
    grid-column-gap: 2em;
  }

  .about-me_title {
    grid-area: title;
  }

  .about-me_subtitle {
    grid-column: 1 / -1;
    grid-row: 2;
    position: relative;
    left: -1em;
    bottom: 2.5em;
    width: calc(100% + 2em);
    padding-left: 1em;
    padding-right: calc(200px + 4em);
  }
  
  .about-me_img {
    grid-area: img;
    position: relative;
    z-index: 2;
  }

  .about-me_links { 
    display: flex;
    font-size: 1.3rem;
  }

  .about-me_body > :first-child {
    margin-top: 0;
  }

}

@media (min-width: 600px) and (max-width: 880px) {
  .about-me_subtitle {
    padding-bottom: 5em;
    margin-bottom: 0.5em;
  }
  .about-me_links {
    margin-top: 20px;
  }
}

/* Skills */

.skills-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 25px;
  padding: 0;
  min-height: 100vh;
}

.skills-section_title {
  margin-top: 10px;
}

.skills-section_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  align-items: center;
  margin: 0;
  padding: 0;
  min-width: 90%;
}

.skils-section_item {
  font-size: var(--fs-h2);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 33%;
  margin: 0.5em 0;
}

.skills-text {
  font-size: var(--fs-h3);
  font-family: var(--ff-secondary);
}

.skills-text p {
  font-size: 1rem;
}

/* Project */

.projects-section {
  background: var(--clr-light);
  color: var(--clr-dark);
}

.projects-title {
  text-align: center;
  margin-bottom: 25px;
}

.project-details {
  display: flex;
  justify-content: space-evenly;
}

.project-text {
  display: flex;
  align-items: center;
}

.projects-section_wrapper {
  background: var(--clr-light);
  color: var(--clr-dark);
  border-radius: 5px;
  min-height: 600px;
  width: 50%;
  margin: 2em 4em;
}

.carousel {
  position: relative;
  min-height: 600px;
  background: var(--clr-light);
  border-radius: 5px;
}

.carousel-image {
  height: 600px;
  object-fit: cover;
}

.carousel_track-container {
  position: relative;
  overflow: hidden;
}

.carousel-track {
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 250ms ease-in;
}

.carousel_slide {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}



.carousel_button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  cursor: pointer;
}

.carousel-button--left {
  left: -40px;
}

.carousel-button--right {
  right: -40px;
}

.carousel-button-img {
  width: 20px;
}

.carousel_nav {
  background: var(--clr-dark);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 0;
}

.carousel_indicator {
  border: 0;
  border-radius: 50%;
  width: 10px;
  height: 10px;
  background: var(--clr-light);
  margin: 0px 10px;
}

.carousel_indicator.current-slide {
  background: var(--clr-accent);
}

.project-text {
  width: 50%;
  margin-left: 5%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: start;
}

.project-links {
  display: flex;
  justify-content: space-between;

}

.project-github {
  padding-right: 25px;
}

.is-hidden {
  display: none;
}


@media (max-width: 900px) {
  .carousel-button--left {
    left: -25px;
  }
  
  .carousel-button--right {
    right: -25px;
  }

  .project-details {
    display: flex;
    flex-direction: column;
  }

  .projects-section_wrapper {
    margin: 0 auto;
    width: 100%;
  }

  .project-text {
    width: 100%;
    padding: 25px;
  }
}

/* Footer */

.footer-section {
  background: var(--clr-dark);
  color: var(--clr-accent);
  text-align: center;
  padding: 1em 0;
  font-size: var(--fs-h3);
}

.footer-section a { 
  color: inherit;
  text-decoration: none;
}

.footer-text{
  font-weight: var(--fw-bold);
}

.footer-text:hover,
.footer_list-link:hover {
  opacity: .4;
  text-decoration: underline;
}

.footer_social-list {
  list-style: none;
  display: flex;
  justify-content: center;
  margin: 0;
  padding: 0;
}

.footer_list-item {
  margin: 0 1em;
}



