:root {
  /* 🎨 Paleta de colores */
  --primary: #E95420;
  --secondary: #5E2750;
  --tertiary: #2C001E;
  --quaternary: #772953;
  --quinary: #77216F;
  --white: #FFFFFF;
  --white-50: rgba(255, 255, 255, 0.5);
  --gray: #AEA79F;
  --black: #000000;
  --background: #1b1b1b;

  /* 🔠 Tipografía (basado en rem para escalabilidad) */
  --font-xs: 0.75rem;
  /* 12px */
  --font-sm: 0.875rem;
  /* 14px */
  --font-md: 1rem;
  /* 16px (base) */
  --font-lg: 1.25rem;
  /* 20px */
  --font-xl: 1.5rem;
  /* 24px */
  --font-xxl: 2rem;
  /* 32px */
  --font-xxxl: 2.5rem;
  /* 32px */

  /* 🔣 Otros */
  --icon-size: 1.5em;
  --font-fixed: 16px;
  --padd-xs: 875rem;
  --padd: 1rem;
  --padd-sm: 1.5rem;
  --padd-xl: 2rem;
  --padd-xxl: 2.5rem;
  --border-radius: 20px;
  --border-radius-sm: 5px;
}

body,
html {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
  background-color: var(--background);
  overflow: hidden;
}

.flex {
  display: flex;
  justify-content: center;
  align-items: center;
}

.grid {
  display: grid;
  justify-content: center;
  align-items: center;
  justify-items: center;
}

a {
  text-decoration: none;
  color: var(--primary);
}

.img-fluid {
  width: 100%;
  height: auto;
  border: none;
  outline: none;
}

.section {
  width: 100%;
  height: auto;
  overflow: auto;
}

/******menu***/
.header {
  width: 100%;
  height: 54px;
  background-color: var(--black);
  padding: 10px 10px 0 10px;
  box-sizing: border-box;
  overflow: hidden;
}

.header nav.menu {
  width: 100%;
  height: 100%;
  margin: 0 auto;
  padding: 0 10px;
  justify-content: flex-start;
  box-sizing: border-box;
}

.header nav.menu ul.menu-Principal {
  width: auto;
  height: 100%;
  justify-content: flex-start;
  align-items: center;
  align-self: start;
  list-style: none;
  color: var(--white);
  padding: 0;
  margin: 0;
}

.header nav.menu ul li {
  width: auto;
  height: 100%;
  padding: 0 25px;
  border-right: solid 1px var(--background);
  border-radius: 10px;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  -ms-border-radius: 10px;
  -o-border-radius: 10px;
  cursor: pointer;
  grid-template: 100% / auto 1fr;
}

.header nav.menu ul li a {
  font-size: var(--font-sm);

}

.header nav.menu ul.menu-Principal li.selected {
  background-color: var(--background);
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/******menu fin***/

.I_AM {
  justify-content: center;
  align-items: center;
  width: 100%;
}

.I_AM>div {
  width: 50%;
  text-align: center;
  padding: var(--padd);
  box-sizing: border-box;
  height: 100%;
}

.I_AM>div.I_AM__text {
  padding: var(--padd);
  box-sizing: border-box;
  color: var(--primary);
  font-size: var(--font-xxl);
  font-weight: bold;
  position: relative;
}

.I_AM>div.I_AM__text::before {
  content: 'root@Antonio_Segura:~# ';
  position: absolute;
  left: 0;
  font-size: var(--font-xxxl);
  top: 50%;
  -webkit-transform: translate(20px, -50%);
  transform: translate(20px, -50%);
  -webkit-transform: translate(20px, -50%);
  -moz-transform: translate(20px, -50%);
  -ms-transform: translate(20px, -50%);
  -o-transform: translate(20px, -50%);
}

.I_AM>div.I_AM__text h1 {
  margin: 0;
  position: relative;
  top: calc(50% + 25px);
  left: 0;
  font-size: var(--font-xxxl);
  white-space: nowrap;
  overflow: hidden;
  border-right: 2px solid var(--primary);
  animation: typing 3s steps(20, end) 1 forwards, blink 1s step-start infinite;
  -webkit-animation: typing 3s steps(20, end) 1 forwards, blink 1s step-start infinite;
  width: 0;
  /* inicial */
}


.I_AM>div.I_AM__text h1::after {
  content: '|';
  position: absolute;
  animation: promot 1s steps(1) infinite;
  -webkit-animation: promot 1s steps(1) infinite;
  right: -14px;
  top: -3px;
}

/* clases consola */
.consola {
  width: 90%;
  height: 80vh;
  flex-direction: column;
  border: solid 1px var(--background);
  box-shadow: -3px 3px 12px 2px var(--black);
  background-color: var(--black);
  overflow: hidden;
}

.consola div.consola_title {
  width: 100%;
  height: 50px;
  color: var(--white);
  justify-content: start;
  align-items: center;
}

.consola div.consola_title div {
  width: auto;
  height: 50px;
  margin: 0 0 0 10px;
  padding: 0 15px;
  justify-content: center;
  align-items: center;
  font-size: var(--font-fixed);
  background-color: var(--tertiary);
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.consola div.consola_title div a {
  color: var(--white);
}

.consola div.consola_content {
  background-color: var(--tertiary);
  width: 100%;
  height: calc(100% - 50px);
  overflow: auto;
  padding: 8px;
  box-sizing: border-box;
  border: none;
  outline: none;
  resize: none;
  color: var(--white);
  font-family: monospace;
  flex-direction: column;
  white-space: pre-wrap;
  word-break: break-all;
  align-items: flex-start;
  justify-content: flex-start;
}


.consola div.consola_content * {
  color: var(--white);
  font-size: var(--font-fixed);
  font-family: monospace;
  margin: 0;
  padding: 0;
  text-align: justify;
}

.consola div.consola_content p.prompt {
  width: 100%;
  min-height: 60px;
}

/*** sobre mi ***/
.sobre_mi {
  width: 100%;
  height: calc(100vh - 50px);
}

.sobre_mi__img {
  width: 40%;
  height: calc(100vh - 50px);
  flex-direction: column;
  margin: auto var(--padd-xl);
  position: relative;
}

.sobre_mi__foto img {
  border-radius: var(--border-radius);
  box-shadow: -3px 3px 20px 2px var(--black);
}

.sobre_mi__foto {
  position: absolute;
  width: 100%;
  height: auto;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

.sobre_mi__foto:after {
  content: 'Desarrollador web full stack \A ingeniero en sistemas computacionales';
  white-space: pre-line;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--white-50);
  font-size: var(--font-xl);
  background-color: var(--secondary);
  text-align: center;
  width: 100%;
  height: 100%;
  border-radius: var(--border-radius);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: imageMuestra 1s ease-in-out;
  -webkit-animation: imageMuestra 1s ease-in-out;
}

.sobre_mi__info {
  width: 60%;
  height: calc(100vh - 50px);
}

/*** sobre mi fin***/

/***animaciones class***/
.fadeInUp {
  animation: fadeInUp .8s ease-in-out;
  -webkit-animation: fadeInUp .8s ease-in-out;
}

.fadeInUp-Menu {
  animation: fadeInUp-Menu .8s ease-in-out;
  -webkit-animation: fadeInUp-Menu .8s ease-in-out;
}

.fadeInDown {
  animation: fadeInDown .8s ease-in-out;
  -webkit-animation: fadeInDown .8s ease-in-out;
}

/***animaciones***/
@keyframes imageMuestra {
  from {
    opacity: .5;
    top: 25%;
    left: 50%;
  }

  to {
    opacity: 1;
    top: 50%;
  }

}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
    -webkit-transform: translateY(20px);
    -moz-transform: translateY(20px);
    -ms-transform: translateY(20px);
    -o-transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
  }
}

@keyframes fadeInUp-Menu {
  from {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
  }

  to {
    opacity: 0;
    transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    -o-transform: translateY(-20px);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    -moz-transform: translateY(-20px);
    -ms-transform: translateY(-20px);
    -o-transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
  }
}

@keyframes blink {

  0%,
  100% {
    border-color: transparent;
  }

  50% {
    border-color: var(--primary);
  }
}

@keyframes typing {
  from {
    width: 0;
  }

  to {
    width: 100%;
  }
}


@media (max-width: 1200px) {

  .I_AM>div.I_AM__text h1 {
    font-size: var(--font-xxl);
  }

  .I_AM>div.I_AM__text::before {
    font-size: var(--font-xxl);
  }


}

@media (max-width: 980px) {
  .I_AM {
    flex-direction: column;
  }

  .I_AM>div {
    width: 100%;
  }

  .I_AM>div.I_AM__text h1 {
    font-size: var(--font-lg);
  }

  .I_AM>div.I_AM__text::before {
    font-size: var(--font-lg);
  }

  .muestra_consola {
    min-height: 500px;
  }

  .I_AM__text {
    min-height: 250px;
  }

  .consola {
    width: 100%;
    height: 450px;
  }

  .header nav.menu ul.menu-Principal {
    flex-direction: column;
    height: 50px;
    position: relative;
  }

  .header nav.menu ul.menu-Principal::after {
    content: '+';
    background-color: var(--background);
    height: 40px;
    width: 40px;
    position: absolute;
    top: 0;
    right: -45px;
    border-radius: 50%;
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-xxl);
    text-align: center;
  }

  .header nav.menu ul li {
    grid-template-rows: 50px;
    min-width: 125px;
  }

  .header nav.menu ul.menu-Principal li.selected {
    position: absolute;
    top: 0;
  }

  ul.menu-flotante {
    position: absolute;
    z-index: 2;
    background-color: var(--black);
    padding: 0;
    margin: 20px 10px;
    list-style: none;
    top: 33px;
    left: 30%;
    border-radius: 10px;
    -webkit-border-radius: 10px;
    -moz-border-radius: 10px;
    -ms-border-radius: 10px;
    -o-border-radius: 10px;
  }

  ul.menu-flotante>li {
    color: var(--white);
    grid-template-rows: 50px;
    border-bottom: solid 1px var(--gray);
    border-radius: 0 !important;
    -webkit-border-radius: 0 !important;
    -moz-border-radius: 0 !important;
    -ms-border-radius: 0 !important;
    -o-border-radius: 0 !important;
  }

}