* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --blue-50: #EDF7FD;
  --blue-300: #A7DAF5;
  --blue-400: #5AB9EA;
  --blue-500: #1D9DDD;
  --blue-600: #003459;
  --blue-700: #071926;
}

html {
  /* cada 1rem será considerado 10px */
  font-size: 62.5%;
  scroll-behavior: smooth;
}

h1 {
  font-size: 3.6rem;
}

h2 {
  font-size: 2.4rem;
}

p {
  font-size: 1.8rem;
}

:target {
  scroll-margin-top: 7.0rem;
}

body {
  width: 100%;
  height: 100%;

  background-color: var(--blue-700);
  font-family: 'Open Sans', sans-serif;
  font-size: 1.8rem;
  color: var(--blue-50);
}

.preloader {
  position: fixed;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(0deg, rgba(7, 25, 38, 0.8), rgba(7, 25, 38, 0.8)), url('images/bg_home.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  z-index: 999;
}

.pre_anime {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #edf7fd0c;
  backdrop-filter:blur(3px);
  width: 100%;
  height: 100%;
}

.logo_pre {
  animation: animePreloader 1.8s ease-in-out infinite;
}

@keyframes animePreloader {
  0% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
      transform: scale(0.98);
      filter:blur(2px);
  }

  100% {
      opacity: 1;
      transform: scale(1);
  }
}

header {
  width: 100%;
  height: 7.0rem;
  margin: 0 auto;
  
  position: fixed;
  z-index: 100;

  animation: translateDown 1.5s ease-in-out;
}

@keyframes translateDown {
  0% {
    opacity: 0;
    transform: translateY(-50px);
  }

  100% {
      opacity: 1;
      transform: translateY(0px);
  }
}

.navbarAnime {
  background-color: #071926da;
  box-shadow: 3px 3px 10px #07192675;
  transition: 1s;
  backdrop-filter:blur(5px);
}

nav {
  display: flex;
  width: 100%;
  max-width: 1240px;
  height: 7.0rem;
  margin: 0 auto;
  padding: 0 1.6rem;

  justify-content: space-between;
  align-items: center;
}

.icons_nav {
  display: flex;
  width: 10.6rem;
  justify-content: space-between;
}

.social-svg {
  width: 3rem;
  height: 3rem;
}

.social-svg react, path {
  transition: 0.3s;
}

.social-svg:hover rect {
  fill: var(--blue-50);
}

.social-svg:hover path {
  fill: var(--blue-700);
}

.menu {
  display: flex;
  width: 100%;
  max-width: 44.7rem;
  justify-content: space-between;
  list-style:none;
}

.menu a {
  font-weight: 700;
  color: var(--blue-50);
  text-decoration: none;
  transition: 0.5s;
}

.menu a:hover {
  color: var(--blue-300);
  text-decoration: none;
}

#home {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100vh;
  background: linear-gradient(0deg, rgba(7, 25, 38, 0.8), rgba(7, 25, 38, 0.8)), url('images/bg_home.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  
}

.logo_home {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1240px;
  height: calc(100% - 50px);
  margin: 0 auto;

  align-items: center;
  justify-content: center;
}

.logo_home h2 {
  font-weight: 700;
  margin-top: 0.8rem;
}

.left_long  {
  animation: translateHomeLeft 1.5s ease-in-out;
}

.right_long  {
  animation: translateHomeRight 1.5s ease-in-out;
}

@keyframes translateHomeLeft {
  0% {
    opacity: 0;
    transform:  translate3d(-100px, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0px, 0px, 0px);
  }
}

@keyframes translateHomeRight {
  0% {
    opacity: 0;
    transform:  translate3d(100px, 0, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0px, 0px, 0px);
  }
}

.arow-down {
  margin-bottom: 50px;
  animation: translateUp 0.8s ease-in-out infinite alternate;
}

@keyframes translateUp {
  0% {
      transform: translateY(0px);
  }

  100% {
    transform: translateY(-15px);
  }
}

#about {
  width: 100%;
  height: 100vh;
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  background-color: var(--blue-50);
  color: var(--blue-700);
  
}

.bg_blue {
  width: 16%;
  height: 100%;
  right: 0%;
  position: absolute;
  background-image: url('images/bg_about.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

.bg_about {
  width: 350px;
  height: 350px;
  right: 10%;
  position: absolute;
  background-image: url('images/img_about.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  animation: translateUp 1.2s ease-in-out infinite alternate;
}


#react_logo {
  position: absolute;
  top: 1%;
  left: 28%;
}

#css_logo {
  position: absolute;
  bottom: 6%;
  right: 10%;
}

#html_logo {
  position: absolute;
  bottom: 20%;
  left: 2%;  
}

.anime_img_about {
  animation: translateUp 0.8s ease-in-out infinite alternate;
}

.container {
  display: flex;
  width: 100%;
  max-width: 1240px;
  height: 48.4rem;
  justify-content: space-between;
  align-items: center;
}

.about-me {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 750px;
  height: 100%;
  text-align: justify;
  padding: 1.6rem;
  z-index: 10;
}

.about-me h1 {
  font-weight: 700;
  color: var(--blue-600);
}

.about-me h2 {
  font-weight: 700;
  margin: 3.2rem 0 0.8rem;
}

.about-me p {
  font-weight: 400;
  font-size: 2.4rem;
}

#portfolio {
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: var(--blue-50);
  color: var(--blue-700);
  background: linear-gradient(0deg, rgba(7, 25, 38, 0.5), rgba(7, 25, 38, 0.5)), url('images/bg_portfolio.jpg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
}

#portfolio h1 {
  font-weight: 700;
  color: var(--blue-50);
  margin: 8.0rem auto 3.2rem;
}

.container_portfolio {
  display: grid;
  width: 100%;
  height: 100%;
  max-width: 1240px;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
  justify-items: center;
  align-content: center;
  margin-bottom: 4.8rem;
  padding: 1.6rem;
}

.portfolio_list {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 36.0rem;
  min-height: 32.0rem;
  padding: 0.8rem;
  background-color: var(--blue-50);
  border-radius: 0.4rem;
}


.portfolio_list h2 {
  font-weight: 700;
  color: var(--blue-600);
  margin: 0.4rem 0;	
}

.title {
  display: flex;
  align-items: center;
}

.title img {
  width: 15px;
  height: 15px;
  margin-left: 0.8rem;
}

.title a:hover {
  transform: scale(1.2);
}

.link_disabled {
  cursor: not-allowed;
}

.divider {
  width: 70%;
  color: #ccc;
  margin-bottom: 0.8rem;
  display: flex;
  align-items: center;
}

.divider::before {
  content: '';
  flex: 1;
  height: 1px;
  margin-right: 16px;
  background: #ccc;
    
}
  
.divider::after {
  content: '';
  flex: 1;
  height: 1px;
  margin-left: 16px;
  background: #ccc;
       
  }

.portfolio_list p {
  width: 90%;
  text-align: center;
  padding-bottom: 1.6rem;
}

.bg_portfolio {
  border-radius: 0.4rem;
  transition: 0.3s ease-in-out;
}

.bg_portfolio:hover {
  cursor: pointer;
  transform: scale(1.15);
  border: 1px solid var(--blue-50);
}

.bg_portfolio {
  width: 100%;
  height: 20.0rem;
  border-top: 0.4rem;
  overflow: hidden;
}

.bg_portfolio img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.portfolio0 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_event_plataform.jpg") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio1 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_comunidev.jpg") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio2 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_team_draw.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio3 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_marvelapi.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio4 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_worldtrip.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio5 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_spacetraveling.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio6 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_githubprofiles.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio7 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_todo.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio8 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_gitkut.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}

.portfolio9 {
  width: 100%;
  height: 100%;
  background: url("images/projeto_netflix.JPG") center;
  background-size: cover;
  border-radius: 0.4rem;
}


footer {
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  background-color: var(--blue-700);
  color: var(--blue-50);
  position: relative;
}

.contact-container {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1240px;
  height: 100%;
  justify-content: center;
  align-items: center;
}

.contact-txt {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.contact-txt h1 {
  font-weight: 700;
}

#form-contact {
  width: 100%;
  max-width: 620px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 16px;
}

#form-contact div {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 0.4rem;
}

#form-contact input {
  width: 100%;
  border-radius: 0.8rem;
  padding: 0.8rem;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.8rem;
  border: 2px solid var(--blue-500);
  background: #092131;
  color: var(--blue-50);
}

#form-contact textarea {
  width: 100%;
  resize: none;
  border-radius: 0.8rem;
  padding: 0.8rem;
  border: none;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.8rem;
  border: 2px solid var(--blue-500);
  background: #092131;
  color: var(--blue-50);
}

#form-contact textarea::placeholder, input::placeholder {
  color: #edf7fd75;
}

#form-contact textarea:focus, input:focus, button:focus {
  outline: 2px solid var(--blue-300);
}

#form-contact button:hover {
  filter:brightness(1.1);
}


input:-webkit-autofill,
textarea:-webkit-autofill {
    -webkit-text-fill-color: var(--blue-50);
    -webkit-box-shadow: 0 0 0px 1000px #092131 inset;
}

#form-contact button {
  background: var(--blue-400);
  width: 100%;
  border-radius: 0.8rem;
  padding: 0.8rem;
  border: none;
  font-family: 'Open Sans', sans-serif;
  font-size: 1.8rem;
  cursor: pointer;
  font-weight: 700;
  transition: 0.3s ease;
}

.contact-links {
  display: flex;
  margin-top: 3.2rem;
  width: 60%;
  justify-content: space-evenly;
  align-items: center;
}

.email a, .phone a {
  display: flex;
  color: var(--blue-500);
  text-decoration: none;
  align-items: center;
  transition: 0.3s ease;
}

.email a:hover, .phone a:hover {
  font-weight: 600;
  transform: scale(1.1);
}

.email img, .phone img {
  width: 50px;
  height: 50px;
}

.icons_contact {
  display: none;
}

.copy {
  width: 100%;
  position: absolute;
  bottom: 0;
  margin-bottom: 0;
  color: var(--blue-300);
  font-size: 1.4rem;
}

.copy hr {
  border: 0;
	border-top: 1px solid #00345960;
}

.copy p {
  text-align: center;
  padding: 2.4rem 0;
}


/* Anime */

[data-anime], [data-anime-relative] {
  opacity: 0;
  transition: 0.5s ease-in-out;
}


[data-anime="left"], [data-anime-relative="left"] {
  transform:  translate3d(-50px, 0, 0);
}

[data-anime="right"], [data-anime-relative="right"] {
  transform:  translate3d(50px, 0, 0);
}

[data-anime="left-long"], [data-anime-relative="left-long"] {
  transform:  translate3d(-100px, 0, 0);
}

[data-anime="right-long"], [data-anime-relative="right-long"] {
  transform:  translate3d(100px, 0, 0);
}

[data-anime="bottom"], [data-anime-relative="bottom"] {
  transform:  translate3d(0, 50px, 0);
}

[data-anime].animate, [data-anime-relative].animate {
  opacity: 1;
  transform: translate3d(0px, 0px, 0px);
}


@media(max-width: 1200px) {

  .bg_about {
    width: 250px;
    height: 250px;
  }
  
  #react_logo,
  #css_logo,
  #html_logo {
    width: 50px;
  }
 
  .about-me {
    width: 100%;
    max-width: 650px;
    padding: 3.2rem;
  }

  .container_portfolio {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
    padding: 3.2rem;
  }

  .portfolio_list {
    width: 100%;
    max-width: 32.0rem;
  }
}

@media(max-width: 992px) {
  #about {
    background-position: 135%;
  }

  .bg_about {
    width: 250px;
    height: 250px;
    top: 5%;
    right: 2%;
  }
  
  #react_logo,
  #css_logo,
  #html_logo {
    width: 50px;
  }
 
  .about-me {
    width: 100%;
    max-width: 650px;
    padding: 3.2rem;
  }

  .container_portfolio {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
    padding: 3.2rem;
  }

  .portfolio_list {
    width: 100%;
    max-width: 32.0rem;
  }
}

@media(max-width: 840px) {
  #about {
    background-position: 230%;
  }

  .container_portfolio {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 768px) {
  .bg_about {
    top: 3%;
    right: 1%;
  }

  .contact-links {
    width: 80%;
  }
}

@media(max-width: 610px) {
  body {
    font-size: 1.4rem;
  }

  h1 {
    font-size: 2.4rem;
  }

  h2 {
    font-size: 1.8rem;
  }

  p {
    font-size: 1.4rem;
  }

  .preloader {
    width: 100vw;
    height: 100vh;
  }
  .logo_pre {
    width: 90%;
  }

  .logo_pre svg {
    width: 100%;
  }

  .preloader {
    background-position: 20%;
  }
  

  nav {
    display: flex;
    width: 100%;
    max-width: 1240px;
    height: 7.0rem;
    margin: 0 auto;
    padding: 0 1.6rem;
  
    justify-content: center;
    align-items: center;
  }

  .icons_nav {
    display: none;
  }

  .menu {
    justify-content: space-between;
  }

  #home {
    background-position: 20%;
  }

  .logo_home {
    width: 90%;
  }

  .logo_home img {
    width: 100%;
    height: 100%;
    max-width: 548px;
    max-height: 53px;
  }
  
  .about-me h2 {
    font-weight: 700;
    margin: 3.2rem 0 0.8rem;
  }
  
  .about-me p {
    font-weight: 400;
    font-size: 1.8rem;
    text-align: left;
  }

  .bg_about {
    width: 200px;
    height: 200px;
  }

  .bg_blue {
    height: 18%;
    width: 100%;
    top: 0%;
  }

  #portfolio h1 {
    margin: 4.8rem auto 0;
  }

  .portfolio_list h2 {
    font-weight: 700;
    font-size: 2.4rem;
  }

  .container_portfolio {
    grid-template-columns: repeat(1, 1fr);
  }

  .contact-container {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 3.2rem;
    height: 100%;
  }

  .contact-txt {
    width: 100%;
    display: block;
    margin-bottom: 3.2rem;
  }

  .contact-links {
    display: flex;
    flex-direction: column;
    margin-top: 3.2rem;
    width: 100%;
    justify-content: center;
    align-items: flex-start;
  }

  .icons_contact {
    display: flex;
    width: 11.6rem;
    justify-content: space-around;
    align-items: center;
    margin-top: .8rem;
  }

  .copy {
    position: relative;
  }

  .copy p {
    text-align: center;
    padding: 1.6rem 0.8rem;
  }
  
}