/* ===== RESET ===== */
html, body {
  margin: 0;
  padding: 0;
}

/* ===== FONDO ===== */
body {
  font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif, serif;
  color: #e0e0e0;

  background:
    linear-gradient(rgba(0,0,0,0.85), rgba(0,0,0,0.95)),
    url("../img/fondo1.jpg");

  background-size: cover;
  background-attachment: fixed;
}

/* ===== HEADER ===== */
header {
  background: rgba(163, 163, 40, 0.85);
  padding: 15px;
  position: sticky;
  top: 0;
  z-index: 100;
}

nav {
  text-align: center;
}

nav a {
  margin: 0 20px;
  text-decoration: none;
  color: #111;
  font-weight: bold;
}

/* ===== CONTENIDO ===== */
.contenido {
  max-width: 1400px;
  margin: 40px auto;
  padding: 30px;
  background: rgba(0,0,0,0.6);
  border-radius: 12px;
}

/* ===== LAYOUT ===== */
.layout {
  display: flex;
}

/* ===== SIDEBAR ===== */
.sidebar {
  width: 240px;
}

.modo {
  display: flex;
  align-items: center;
  margin: 20px 0;
  cursor: pointer;
  transition: 0.3s;
}

.modo:hover {
  transform: translateX(5px);
}

.iconoModo {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  margin-right: 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid;
  font-size: 20px;
}

/* ===== COLORES ===== */
.c1 { border-color:#00eaff; color:#00eaff; }
.c2 { border-color:#4aa3ff; color:#4aa3ff; }
.c3 { border-color:#b46cff; color:#b46cff; }
.c4 { border-color:#ff8c00; color:#ff8c00; }
.c5 { border-color:#aaff00; color:#aaff00; }

/* ===== GRAFICO ===== */
.grafico {
  flex: 1;
  position: relative;
  height: 650px;
}

/* ===== EJES ===== */
.ejes::before {
  content: "";
  position: absolute;
  left: 60px;
  bottom: 60px;
  width: calc(100% - 120px);
  height: 1px;
  background: rgba(255,255,255,0.2);
}

.ejes::after {
  content: "";
  position: absolute;
  left: 60px;
  bottom: 60px;
  width: 1px;
  height: calc(100% - 120px);
  background: rgba(255,255,255,0.2);
}

.ejeY {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: rotate(-90deg);
  font-size: 12px;
  opacity: 0.6;
}

.ejeX {
  position: absolute;
  bottom: 20px;
  left: 45%;
  font-size: 12px;
  opacity: 0.6;
}

/* ===== SVG LINEAS ===== */
svg {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* ===== NODOS ===== */
.nodo {
  position: absolute;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid;
  transition: 0.4s;
  z-index: 2;
}

/* ===== IMAGENES (MEJORADAS) ===== */
.img-artista {
  width: 100%;
  max-width: 1090px;   /* mismo ancho para todas */
  height: 790px;      /* misma altura */
  object-fit: cover;  /* recorta sin deformar */
  display: block;
}
.nodo img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  filter: grayscale(30%) contrast(110%);
  transition: 0.4s;
}

.nodo:hover img {
  filter: grayscale(0%) contrast(120%);
}

/* IDENTIDAD VISUAL POR ARTISTA */
.escher img {
  filter: sepia(30%) contrast(110%);
}

.hemmer img {
  filter: hue-rotate(260deg);
}

.biopus img {
  filter: saturate(140%);
}

/* HOVER NODO */
.nodo:hover {
  transform: scale(1.2);
  box-shadow: 0 0 30px currentColor;
}

/* ===== POSICIONES ===== */
.escher {
  left: 20%;
  top: 60%;
}

.hemmer {
  left: 50%;
  top: 40%;
}

.biopus {
  left: 80%;
  top: 20%;
}

/* ===== INFO NODO ===== */
.infoNodo {
  position: absolute;
  bottom: -70px;
  width: 160px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  font-size: 12px;
  opacity: 0.8;
}

/* ===== TOP UI ===== */
.topUI {
  position: absolute;
  top: 20px;
  left: 40px;
  z-index: 3;
}

.tituloGrafico {
  font-size: 22px;
  font-weight: bold;
}

.subtitulo {
  font-size: 14px;
  opacity: 0.7;
}

/* ===== ICONOS ===== */
.iconos {
  position: absolute;
  bottom: 0;
  width: 100%;
  display: flex;
  justify-content: space-around;
  padding-bottom: 20px;
  z-index: 3;
}

.iconoBloque {
  text-align: center;
  width: 200px;
}

/* ===== ATMOSFERA ===== */
.grafico::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle, transparent 60%, rgba(0,0,0,0.8));
  pointer-events: none;
}

/* ===== MODO CARTOGRAFIA (SIN SCROLL) ===== */
body.cartografia {
  overflow: hidden;
  height: 100vh;
}

body.cartografia .contenido {
  margin: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
}

body.cartografia .layout {
  flex: 1;
  height: 100%;
}

body.cartografia .grafico {
  height: 100%;
}

/* OPCIONAL: scroll solo en sidebar */
body.cartografia .sidebar {
  overflow-y: auto;
  height: 100%;
}
