body {
  font-size: 1rem;
  margin: 0;
  font-family: sans-serif;
  color: #312f2f;
}

#pageDiv {
  background-color: #FAF0E6;
  box-shadow: inset 0 0 15px rgba(146, 110, 63, 0.618);
  height: 100vh;
  width: 100vw;
}

#firstDiv {
  height: 100%;
  width: 100%;

  background-color: #FAF0E6;
  display: flex;
}

#leftDiv {
  width: 60%;
  margin-left: 4lh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  background-color: #FAF0E6;
}

#upLeftDiv {
  background-image: url("./images/desk_final.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-color: white;
  background-position: center;
  grid-column: 1/2;
  grid-row: 1/2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  transition: box-shadow 0.5s;
  overflow-y: auto;
}

#upLeftDiv:hover {
  transition-duration: 0.5s;
  transition-property: box-shadow;
  box-shadow: inset 0px 0px 15px 15px rgba(231, 208, 179, 0.618);
}

#pictureDiv {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 140px;
  width: 100%;
  background: rgba(146, 110, 63, 0.08);
  border-radius: 10px;
  margin-bottom: 1rem;
}

#pictureDiv img {
  height: 100px;
  width: 100px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid rgba(146, 110, 63, 0.4);
}

#contactInfoDiv {
  width: 100%;
}

#contactInfoDiv h2 {
  margin: 0 0 0.75rem 0;
  color: #3b2a14;
  font-size: 1.3rem;
  border-bottom: 2px solid rgba(146, 110, 63, 0.35);
  padding-bottom: 0.4rem;
}

#contactInfoDiv p {
  margin: 0.35rem 0;
  font-size: 0.95rem;
  color: #4a4040;
}

#upRightDiv {
  background-image: url("./images/trabajo.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-color: white;
  grid-column: 2/3;
  grid-row: 1/2;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: box-shadow 0.5s;
  overflow-y: auto;

  #titleUpRightDiv {
    position: relative;
    left: -25%;
  }

  h2 {

    padding: 0.3lh;
    border-radius: 14px;
    border: 3px solid black;
    background: rgb(255, 221, 166);
  }

  li {
    margin: 5% 0 0 0%;
  }
}

#upRightDiv:hover {
  transition-duration: 0.5s;
  transition-property: box-shadow;
  box-shadow: inset 0px 0px 15px 15px rgba(231, 208, 179, 0.618);
}

#lowerDiv {
  background-image: url("./images/sobre-mi.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-color: white;
  grid-column: 1/3;
  grid-row: 2/3;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.5s;
  overflow-y: auto;

  #lowerDivTitle {
    width: fit-content;
    position: relative;
    left: 48.5%;
    top: 30%;

    h2 {
      padding: 0.3lh;
      border-radius: 14px;
      border: 3px solid black;
      background: rgb(255, 221, 166);
    }
  }
}

#lowerDiv:hover {
  transition-duration: 0.5s;
  transition-property: box-shadow;
  box-shadow: inset 0px 0px 15px 15px rgba(231, 208, 179, 0.618);
}

#rightDiv {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: white;
  width: 40%;
  justify-content: space-between;
  transition: box-shadow 0.5s;
  background-color: #FAF0E6;
}

#studiesDiv {
  background-image: url("./images/library.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  width: 90%;
  height: 45%;
  align-items: center;

  h2 {
    padding: 0.3lh;
    border-radius: 14px;
    border: 3px solid black;
    background: rgb(255, 221, 166);
  }
}

#studiesDiv:hover {
  transition-duration: 0.5s;
  transition-property: box-shadow;
  box-shadow: inset 0px 0px 15px 15px rgba(231, 208, 179, 0.618);
}

#projectsDiv {
  background-image: url("./images/projects.webp");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  height: 45%;
  width: 90%;
  display: flex;
  justify-content: center;
  align-items: center;
}

#projectsDiv h2 {
  font-family: 'Blackboard', sans-serif;
  font-size: 4em;
  position: relative;
  top: -18%;
  left: 1.5%;
}

#projectsDiv:hover {
  transition-duration: 0.5s;
  transition-property: box-shadow;
  box-shadow: inset 0px 0px 15px 15px rgba(231, 208, 179, 0.618);
}

#studiesDiv {
  display: flex;
  flex-direction: column;
  overflow-y: auto;

  li {
    margin: 5% 0 0 0%;
  }
}

hr {
  width: 90%;
  margin: 0;
  border-color: rgba(146, 110, 63, 0.618);
}

h3 {
  margin: 0;
}

#modalOverlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  backdrop-filter: blur(2px);
}

#modalContent {
  background-color: #FAF0E6;
  border-radius: 16px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), inset 0 0 20px rgba(146, 110, 63, 0.12);
  border: 2px solid rgba(146, 110, 63, 0.35);
  width: min(680px, 90vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

#modalBody {
  padding: 2rem 2.5rem;
  overflow-y: auto;
  flex: 1;
  scrollbar-width: thin;
  scrollbar-color: rgba(146, 110, 63, 0.4) transparent;
}

/* ── Estilos genéricos del contenido modal ── */
#modalBody h2 {
  margin: 0 0 1rem 0;
  color: #3b2a14;
  font-size: 1.25rem;
}

#modalBody h3 {
  margin: 0 0 0.25rem 0;
  color: #5a3e1b;
  font-size: 0.95rem;
}

#modalBody h3 span {
  font-weight: normal;
  color: #7a5c38;
}

#modalBody p {
  margin: 0 0 1rem 0;
  line-height: 1.65;
  color: #4a4040;
  font-size: 0.92rem;
}

#modalBody ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

#modalBody li {
  margin-bottom: 1.1rem;
  padding-left: 0.9rem;
  border-left: 3px solid rgba(146, 110, 63, 0.45);
}

#modalBody li>span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.88rem;
  color: #4a4040;
  line-height: 1.6;
}

#modalBody a {
  color: #8b5e2a;
  text-decoration: none;
  font-weight: 500;
}

#modalBody a:hover {
  text-decoration: underline;
}

.listDiv {
  width: 100%;
}


.wireTwistCover {
  position: relative;


  z-index: 2;
  transform-origin: left;
  transition: transform 4s ease;
}

.wireTwistCover img {
  scale: 1.3;
  position: absolute;
  left: -3vw;
  height: 100vh;
}


.wireTwist {
  position: relative;

  img {
    scale: 1.3;
    position: absolute;
    left: -3vw;
    height: 100vh;
  }
}


/* perspectiva para efecto 3D */
.book {
  position: relative;
  width: 100vw;
  height: 100vh;
  perspective: 2000px;
  overflow: hidden;
}

/* portada */
.cover {
  position: absolute;
  width: 100%;
  height: 100%;
  background: #222;
  color: white;
  background: url("images/portada.webp");
  background-repeat: no-repeat;
  background-size: cover;

  display: flex;
  justify-content: center;
  align-items: center;

  transform-origin: left;
  transition: transform 4s ease;

  z-index: 2;
}

/* página interior */
.page {
  position: absolute;
  width: 100%;
  height: 100%;
  background: white;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  padding: 40px;
  box-sizing: border-box;
}

/* estado abierto */
.book.open .cover {
  transform: rotateY(-160deg);
}

/* estado abierto */
.book.open .wireTwistCover {
  transform: rotateY(-160deg);
}

/* Div flotante Work in Progress */
.work-in-progress {
  position: absolute;
  /* o fixed si quieres que quede al hacer scroll */
  top: 20px;
  /* distancia desde arriba */
  right: 20px;
  /* distancia desde la derecha */

  background: #ff6b6b;
  /* color llamativo */
  color: white;
  padding: 10px 15px;
  border-radius: 5px;
  font-weight: bold;
  font-family: sans-serif;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
  z-index: 9999;
  /* que quede encima de todo */

  animation: pulse 1.5s infinite alternate;
  /* opcional, para llamar la atención */
}

/* Animación simple de pulso */
@keyframes pulse {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.05);
  }
}