:root{
  --bg:#000;
  --ink:#cfcfcf;
  --muted:#888;
  --panel:#0c0c0c;
  --border1:#2b2b2b;
  --border2:#1a1a1a;
  --accent:#a10000;
  --link:#c33;
  --link-hover:#ff2a2a;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:'VT323',monospace;
  letter-spacing:.3px;
}

/* Fondo */
.wallpaper{
  position:fixed;inset:0;
  background:
    radial-gradient(transparent 60%,rgba(255,255,255,.03)),
    repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px);
  pointer-events:none;
}

/* Lienzo */
.canvas{
  width:1156px;
  margin:18px auto;
}

/* Panel */
.panel{
  background:var(--panel);
  border:1px solid var(--border1);
  box-shadow:inset 0 0 0 1px var(--border2);
  padding:10px;
  margin-bottom:18px;
}

.panel-title{
  background:#0f0f0f;
  border:1px solid var(--border1);
  box-shadow:inset 0 0 0 1px var(--border2);
  padding:4px 8px;
  color:#ddd;
  font-size:18px;
  text-transform:lowercase;
  margin-bottom:8px;
  letter-spacing:.5px;
}

.gothic{
  font-family:'UnifrakturCook',cursive;
  text-transform:none;
  font-size:26px;
  letter-spacing:1px;
}

/* Banner */
.banner img{
  width:100%;
  height:150px;
  object-fit:cover;
  display:block;
  border:1px solid var(--border1);
  box-shadow:inset 0 0 0 1px var(--border2);
}

/* 3 columnas */
.cols{
  display:grid;
  grid-template-columns:300px 1fr 280px;
  gap:18px;
}
.col{min-height:100px}

/* Navegación */
.nav ul{list-style:none}
.nav li{margin:8px 0}
.nav a{
  color:var(--link);
  text-decoration:none;
  padding:3px 4px;
  display:block;
  border-left:3px solid transparent;
}
.nav a:hover{
  color:var(--link-hover);
  border-left-color:var(--accent);
  background:#0f0f0f;
}
.nav a.active{
  border-left-color:var(--accent);
  background:#111;
  color:var(--link-hover);
}

/* Retrato ajustado exacto sin scroll */
.portrait-box{
  width:100%;
  height:150px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.portrait{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border:1px solid var(--border1);
  box-shadow:inset 0 0 0 1px var(--border2);
}

/* Panel central de contenido */
#content-panel{display:flex;flex-direction:column;}
.content-body{
  border:1px dashed var(--border1);
  background:#0e0e0e;
  padding:12px;
  line-height:1.5;
  font-size:18px;
  height:100%;
  overflow:auto;
}

/* Efecto de aparición suave al cambiar sección */
.fade-in{animation:fade .35s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* Footer */
.footer{text-align:center;color:var(--muted);font-size:16px}

/* ===== Alturas EXACTAS ===== */
.h150{height:150px;overflow:auto;}
.h409{height:409px;overflow:auto;}
.h235{height:235px;overflow:auto;}
.h653{height:653px;overflow:auto;}

/* Scrollbar gótica (WebKit) */
.h409::-webkit-scrollbar,.h235::-webkit-scrollbar,.h653::-webkit-scrollbar,.content-body::-webkit-scrollbar{width:10px;}
.h409::-webkit-scrollbar-thumb,.h235::-webkit-scrollbar-thumb,.h653::-webkit-scrollbar-thumb,.content-body::-webkit-scrollbar-thumb{background:#5a0000;border:1px solid #260000;}
.h409::-webkit-scrollbar-track,.h235::-webkit-scrollbar-track,.h653::-webkit-scrollbar-track,.content-body::-webkit-scrollbar-track{background:#0a0a0a;}

/* Anti-VisBug */
.banner, .panel { transform:none !important; }
.banner img { width:100% !important; height:150px !important; object-fit:cover; }

/* Responsive */
@media (max-width:1200px){
  .canvas{width:95vw;}
  .cols{grid-template-columns:1fr;}
  .h150,.h409,.h235,.h653{height:auto;max-height:70vh;}
}
@media (max-width:800px){
  body{font-size:18px;}
  .panel{padding:14px;}
  .nav a{font-size:20px;}
}
