@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;600;700&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Ravi+Prakash&display=swap');
:root {
  --bg-black-900: #000000;
  --bg-black-800: #2b2c30;
  --bg-black-100: #dddddd;
  --bg-black-50: #eff0f4;
  --text-black-900: #000000;
  --text-black-700: #555555;
  --text-black-600: #666666;
  --text-black-300: #bbbbbb;
  --outer-shadow: 3px 3px 3px #d0d0d0, -3px -3px 3px #f8f8f8;
  --outer-shadow-0: 0 0 0 #d0d0d0, 0 0 0 #f8f8f8;
  --inner-shadow: inset 3px 3px 3px #d0d0d0, inset -3px -3px 3px #f8f8f8;
}

*:not(i) {
  font-family: "Roboto Mono", monospace;
  font-weight: 400;
}

:before,
:after {
  box-sizing: border-box;
}

a {
  text-decoration: none;
}

body {
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
  color: var(--text-black-300);
  background-color: #2b2c30;
  /* background-color: var(--bg-black-50); */
  /* background-color: var(--bg-black-800); */
}

#scroll-container {
  position: absolute;  
  overflow: hidden;
  width: 100%;
}

#viewport {
  overflow: hidden;
  position: fixed;
  height: 100%;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

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

.navbar-toggler{
  color: white;
  background-color: blue;
}

.effect-wrap .effect {
  position: absolute;
  z-index: -1;
}

.effect-halfcircle {
  height: 180px;
  width: 180px;
  border: 25px solid #ff4986;
  border-radius: 50%;
  left: 50%;
  top: -120px;
  animation: leftBounce 3s ease-in-out infinite;
}

.effect-triangle {
  border-top: 30px solid transparent;
  border-left: 30px solid #06d79c;
  left: 30%;
  top: 20%;
  animation: spin 15s linear infinite;
}

.effect-triangletwo {
  /* height: 180px; */
  /* width: 180px; */
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid red;
  /* border-right: 30px solid red; */
  left: 30%;
  top: 30%;
  animation: spin 15s linear infinite;
}

.effect-triangle:before {
  content: "";
  border-top: 30px solid transparent;
  border-left: 30px solid #06d79c;
  position: absolute;
  left: -30px;
  top: -25px;
  opacity: 0.5;
}

.effect-square {
  width: 30px;
  height: 30px;
  border: 4px solid #8a49ff;
  right: 10%;
  bottom: 10%;
  animation: spin 10s linear infinite;
}

.effect-points {
  left: 3%;
  bottom: 20%;
  width: 40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  animation: topBounce 3s ease-in-out infinite;
}

.effect-points div {
  width: 3px;
  height: 3px;
  background-color: #ff9c07;
  margin: 0 3px 8px;
}

/* Ajuste para efectos dentro del timeline */
.timeline-item .effect {
    position: absolute !important;
    top: 150px;
}

.timeline-item .effect-square {
    animation: spin 10s linear infinite;
}

.timeline-item .effect-triangle {
    animation: spin 15s linear infinite;
}
.effect-triangle-experience {
    border-top: 30px solid transparent;
    border-left: 30px solid #06d79c;
    /* Agrega estas líneas: */
    transform-origin: 10px 15px; /* Ajusta el punto de rotación */
    animation: spin 15s linear infinite;
}

/* Solo desktop */
@media (min-width: 768px) {
    .timeline-item.left .effect {
        right: -120px; /* Formas a la derecha de items izquierdos */
    }
    
    .timeline-item.right .effect {
        left: -120px; /* Formas a la izquierda de items derechos */
    }
}

/* Ocultar en mobile */
@media (max-width: 767px) {
    .timeline-item .effect {
        display: none;
    }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes topBounce {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(25px);
  }
}

@keyframes leftBounce {
  0%,
  100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(25px);
  }
}


img {
  vertical-align: middle;
  max-width: 100%;
}

.btn-menu{
  font-size: 2em;
  color: whitesmoke;
}

.container-fluid {
  max-width: 1140px;
  margin: auto;
}
/*
.row{
    display: flex;
    flex-wrap: wrap;
} 
*/

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

.align-items-center {
  align-items: center;
}

.outer-shadow {
  box-shadow: var(--outer-shadow);
}

.hover-in-shadow {
  position: relative;
  z-index: 1;
}

.hover-in-shadow:hover {
  box-shadow: var(--outer-shadow-0);
}

.btn-1 {
  padding: 10px 25px;
  font-size: 16px;
  font-weight: 500;
  color: violet;
  background-color: transparent;
  line-height: 1.5;
  cursor: pointer;
  border-radius: 30px;
  transition: all 0.3s ease;
  display: inline-block;
}

.btn-1::after {
  border: 30px;
}

.logo a {
  display: inline-block;
  text-align: center;
  line-height: 36px;
  height: 40px;
  width: 40px;
  font-size: 28px;
  color: white;
  text-decoration: none;

  font-weight: 600;
  text-transform: uppercase;
  font-family: 'Ravi Prakash', cursive;
}

.home-section {
  /* position: relative; */
}

.home-section .full-screen {
  padding: 50px 0;
  min-height: 100vh;
}

.home-section .home-text,
.home-section .home-img {
  padding: 0 15px;
}

.text-menu {
  text-transform: lowercase;
}

.home-section .home-text p {
  color: var(--text-black-300);
  font-size: 18px;
  text-transform: capitalize;
  margin: 0;
}

.home-section .home-text h2 {
  font-size: 55px;
  font-weight: 700;
  color: white;
  margin: 0;
}
.home-section .home-text h1 {
  font-size: 20px;
  font-weight: 500;
  color: var(--text-black-300);
  margin: 0;
  text-transform: capitalize;
}

.home-section .home-text .btn-1 {
  margin-top: 30px;
}

.home-section .home-img .img-box {
  /* background-color: red; */
  max-width: 350px;
  display: block;
  margin: auto;
  /* border-radius: 50%; */
}

.home-section .home-img .img-box img {
  width: 100%;
  /* border-radius: 50%; */
  border: 10px solid transparent;
}

.btn-control {
  z-index: 999999999;
}

.btn-control span {
  background-color: gray;
  border-radius: 5px;
}

.carousel-item img {
  border-radius: 5px;
}

.section-parallax {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}

.section-parallax * {
  position: relative;
  color: #fff;
  font-size: 12em;
}

.section-parallax img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* GSAP */
.contenedor{
  width: 100%;
  height: 600vh;
  overflow: hidden;
}

.contenedor__animacion{
  position: relative;
  height: 585vh;
  
  display: flex;
  align-items: center;
  justify-items: center;
  flex-direction: column;
}

.nave{
  position: absolute;
  top: 7.5%;
  width: 300px;
  height: 300px;
  left: 37.5%;
}

#effect-triangle-gsap{
  position: absolute;
  top: 12%;
  left: 0;
  opacity: 0;
  z-index: -1;
}

#effect-halfcircle-gsap-left{
  position: absolute;
  top: 7%;
  left: 0;
  opacity: 0;
  z-index: -1;
  animation: topBounce 3s ease-in-out infinite;
}

#effect-halfcircle-gsap-right{
  position: absolute;
  top: 7%;
  left: 100vw;
  opacity: 0;
  z-index: -1;
  animation: topBounce 3s ease-in-out infinite;
}

#effect-square-gsap{
  position: absolute;
  top: 6%;
  left: 105vw;
  opacity: 0;
  z-index: -1;
  animation: spin 2.5s linear infinite;
}

.work0, .welcome-section{
  position: absolute;
  opacity: 1;
  width: 100%;
  z-index: 1;
}

.work1, .introduction-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: 8.5%;
  /* z-index: 1; */
}

.work2, .hobbie-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: 8.5%;
  /* z-index: 1; */
}

.work3, .game-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: 8.5%;
  /* z-index: 1; */
}

.work4, .skills-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: 8.5%;
  /* z-index: 1; */
}

.work5, .goodbye-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: 8.5%;
  /* z-index: 1; */
}

.goodbye-section{
  position: absolute;
  opacity: 0;
  width: 80%;
  left: -50%;
  /* z-index: auto; */
}

.navbar-nav-custom{
  margin-top: 35%;
}

.nav-link-custom{
  color: rgba(255, 255, 255, 0.5) !important;
  font-size: 2em;
}

.active{
  color: white !important;
}


.offcanvas{
  background-color: rgba(0, 0, 0, 0.25);
}

.skills{
  position: absolute;
  max-width: 85px;
  width: 100%;
  opacity: 0;
}
.skill-angular{
  left: 0px;
  top: 0px;
}
.skill-js{
  left: 50%;
  top: 0px;
}
.skill-react{
  left: 0px;
  top: 0px;
}

.skill-ionic{
  left: 50%;
  top: 0px;
}

.skill-nodejs{
  top: 50%;
  left: 0px;
}
.skill-flutter{
  top: 100%;
  left: 0px;
}

.p-primary{
  color: #06d79c !important;
}

.h2-primary{
  color: #06d79c !important;
  font-size: 55px;
  font-weight: 700;
}