/* =====================================================================
   CUBALIBRE51 — hoja de estilos común a todas las páginas
   (las fuentes Orbitron + Rajdhani se cargan con <link> en cada página)
   ===================================================================== */
:root { --red:#ff2d4b; --blue:#2f7bff; --cyan:#7fd4ff; --bg:#05060f; --panel:rgba(14,18,40,.72); --line:rgba(127,212,255,.22); --ink:#e9efff; --muted:#9aa6c8; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Rajdhani", system-ui, sans-serif; font-size:17px; color:var(--ink); background:var(--bg);
  background-image: linear-gradient(rgba(47,123,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(47,123,255,.07) 1px, transparent 1px),
    radial-gradient(ellipse at 15% 0%, rgba(47,123,255,.25), transparent 55%), radial-gradient(ellipse at 90% 10%, rgba(255,45,75,.18), transparent 50%);
  background-size: 40px 40px, 40px 40px, 100% 100%, 100% 100%; background-attachment: fixed; }
a { color:inherit; text-decoration:none; }
.bar { text-align:center; font-family:"Orbitron", sans-serif; font-size:11px; letter-spacing:.3em; text-transform:uppercase; padding:8px 12px; color:#fff;
  background:linear-gradient(90deg, var(--red), #7a1d5c 40%, #1f2f8a 60%, var(--blue)); }
header { position:sticky; top:0; z-index:5; background:rgba(5,6,15,.82); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
header::after { content:""; display:block; height:2px; background:linear-gradient(90deg, transparent, var(--red), #fff, var(--blue), transparent); box-shadow:0 0 12px var(--blue); }
.top { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 20px 4px; }
.logo { font-family:"Orbitron", sans-serif; font-weight:800; letter-spacing:.25em; font-size:20px; text-shadow:0 0 10px var(--blue), 0 0 22px rgba(47,123,255,.6); }
.logo img { margin-right:6px; filter:drop-shadow(0 0 8px rgba(47,123,255,.7)); vertical-align:middle; }
.logo .stars { color:var(--red); font-size:13px; letter-spacing:.3em; text-shadow:0 0 10px var(--red); }
nav { max-width:1100px; margin:0 auto; display:flex; gap:6px; padding:6px 16px 12px; overflow:auto; }
nav a { font-family:"Orbitron", sans-serif; font-size:11px; letter-spacing:.18em; text-transform:uppercase; padding:8px 12px; border:1px solid transparent; border-radius:3px; white-space:nowrap; color:var(--muted); transition:.2s; }
nav a:hover { color:#fff; border-color:var(--cyan); box-shadow:0 0 12px rgba(127,212,255,.45), inset 0 0 10px rgba(127,212,255,.15); }
.hero { position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero .stripes { position:absolute; inset:0; opacity:.55;
  background: repeating-linear-gradient(180deg, rgba(255,45,75,.0) 0 26px, rgba(255,45,75,.55) 26px 28px, rgba(255,45,75,0) 28px 52px, rgba(255,255,255,.35) 52px 53px);
  mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%, #000 100%); }
.hero .field { position:absolute; left:0; top:0; width:min(48%,540px); height:100%;
  background: radial-gradient(circle, #fff 1.4px, transparent 2px) 0 0/34px 24px, radial-gradient(circle, rgba(127,212,255,.9) 1.4px, transparent 2px) 17px 12px/34px 24px,
    linear-gradient(135deg, rgba(47,123,255,.35), rgba(5,6,15,0) 80%);
  mask-image: linear-gradient(90deg, #000 40%, transparent); -webkit-mask-image: linear-gradient(90deg, #000 40%, transparent); animation: twinkle 4s ease-in-out infinite alternate; }
@keyframes twinkle { from { opacity:.65; } to { opacity:1; } }
.hero .scan { position:absolute; left:0; right:0; height:120px; background:linear-gradient(180deg, transparent, rgba(127,212,255,.12), transparent); animation: scan 6s linear infinite; }
@keyframes scan { from { top:-120px; } to { top:100%; } }
.hero-inner { position:relative; max-width:1100px; margin:0 auto; padding:80px 20px 88px; }
.hero-card { background:var(--panel); border:1px solid var(--line); padding:30px 32px; max-width:580px; backdrop-filter:blur(6px);
  clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 22px 100%, 0 calc(100% - 22px)); box-shadow: inset 0 0 30px rgba(47,123,255,.15); position:relative; }
.hero-card::before { content:"// EE.UU. 2026"; display:block; font-family:"Orbitron", sans-serif; font-size:11px; letter-spacing:.3em; color:var(--cyan); margin-bottom:12px; }
h1 { font-family:"Orbitron", sans-serif; font-size:36px; line-height:1.15; margin:0 0 14px; font-weight:800;
  background:linear-gradient(90deg, #fff 0%, #ffd0d6 35%, var(--red) 55%, var(--blue) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p { margin:0; font-size:18px; line-height:1.5; color:var(--muted); }
main { max-width:1100px; margin:0 auto; padding:24px 20px 72px; }
section { scroll-margin-top:110px; margin-top:44px; }
h2 { font-family:"Orbitron", sans-serif; font-size:18px; letter-spacing:.2em; text-transform:uppercase; margin:0 0 18px; display:flex; align-items:center; gap:12px; color:#fff; }
h2::before { content:"★"; color:var(--red); text-shadow:0 0 10px var(--red); }
h2::after { content:""; flex:1; height:1px; background:linear-gradient(90deg, var(--red), rgba(255,255,255,.5), var(--blue), transparent); box-shadow:0 0 8px var(--blue); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:.25s; position:relative; }
.card::before { content:""; position:absolute; left:0; top:0; right:0; height:2px; background:var(--red); box-shadow:0 0 12px var(--red); }
.card:nth-child(even)::before { background:var(--blue); box-shadow:0 0 12px var(--blue); }
.card:hover { transform:translateY(-4px); border-color:var(--cyan); box-shadow:0 0 22px rgba(127,212,255,.25); }
.card .ph { min-height:130px; background: linear-gradient(135deg, rgba(47,123,255,.18), rgba(255,45,75,.12)), repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 2px, transparent 2px 4px); }
.card strong { display:block; font-family:"Orbitron", sans-serif; font-size:13px; letter-spacing:.12em; padding:14px 14px 0; color:#fff; }
.card span { color:var(--muted); font-size:15px; padding:4px 14px 16px; }
.split { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.block { background:var(--panel); border:1px solid var(--line); padding:24px; min-height:150px; border-left:3px solid var(--red); box-shadow: inset 0 0 24px rgba(255,45,75,.08);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%); }
.block:nth-child(even) { border-left-color:var(--blue); box-shadow: inset 0 0 24px rgba(47,123,255,.12); }
.block h3 { margin:0 0 8px; font-family:"Orbitron", sans-serif; font-size:14px; letter-spacing:.15em; text-transform:uppercase; }
.block p { margin:0; line-height:1.45; color:var(--muted); }
footer { border-top:1px solid var(--line); padding:26px 20px 40px; font-family:"Orbitron", sans-serif; font-size:12px; letter-spacing:.2em; color:var(--muted); }
footer .inner { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }
footer .stars { color:var(--red); text-shadow:0 0 8px var(--red); letter-spacing:.4em; }
footer .copy { max-width:1100px; margin:22px auto 0; padding-top:16px; border-top:1px solid var(--line); text-align:center; font-family:"Rajdhani", system-ui, sans-serif; font-size:13px; letter-spacing:.06em; line-height:1.5; color:var(--muted); opacity:.8; }
@media (max-width:600px) { h1 { font-size:27px; } .hero-inner { padding:56px 16px 60px; } .hero-card { padding:22px; } }
.bar { background:linear-gradient(90deg, #002a8f, var(--red) 30%, #fff 50%, var(--red) 70%, var(--blue)); color:#05060f; font-weight:800; text-shadow:none; }
.cuba { position:absolute; right:0; top:0; height:100%; width:min(46%,520px); opacity:.55;
  background: repeating-linear-gradient(180deg, rgba(0,42,143,.85) 0 20%, rgba(255,255,255,.08) 20% 40%);
  mask-image: linear-gradient(270deg, #000 30%, transparent); -webkit-mask-image: linear-gradient(270deg, #000 30%, transparent); }
.cuba::before { content:""; position:absolute; right:0; top:0; height:100%; width:62%; background:rgba(255,45,75,.75); clip-path: polygon(100% 0, 0 50%, 100% 100%); filter: drop-shadow(0 0 18px var(--red)); }
.star51 { position:absolute; right:clamp(30px,10%,140px); top:50%; transform:translateY(-50%); font-size:clamp(90px,14vw,170px); line-height:1; color:#fff;
  text-shadow:0 0 20px #fff, 0 0 45px var(--cyan), 0 0 80px var(--blue); animation: pulse 2.6s ease-in-out infinite; }
.star51 span { position:absolute; left:50%; top:54%; transform:translate(-50%,-50%); font-family:"Orbitron",sans-serif; font-size:clamp(18px,2.6vw,30px); font-weight:800; color:#05060f; text-shadow:none; }
@keyframes pulse { 0%,100% { transform:translateY(-50%) scale(1); } 50% { transform:translateY(-50%) scale(1.08); } }
.hero-card::before { content:none; }
.tag { display:inline-block; margin-top:16px; font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.25em; padding:8px 12px; border:1px solid var(--cyan); color:#fff; box-shadow:0 0 12px rgba(127,212,255,.4); }
@media (max-width:700px) { .star51 { opacity:.35; } }
.marquee { overflow:hidden; position:relative; mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.track { display:flex; gap:18px; width:max-content; animation: slide 40s linear infinite; }
.marquee:hover .track { animation-play-state:paused; }
@keyframes slide { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.vcard { width:320px; flex:none; background:var(--panel); border:1px solid var(--line); border-radius:4px; overflow:hidden; position:relative; }
.vcard::before { content:""; position:absolute; left:0; right:0; top:0; height:2px; background:var(--red); box-shadow:0 0 12px var(--red); z-index:1; }
.vcard:nth-child(even)::before { background:var(--blue); box-shadow:0 0 12px var(--blue); }
.vcard .frame { aspect-ratio:16/9; background:linear-gradient(135deg, rgba(47,123,255,.2), rgba(255,45,75,.15)); display:flex; align-items:center; justify-content:center; font-size:40px; color:#fff; text-shadow:0 0 14px var(--cyan); }
.vcard iframe, .vcard video { width:100%; aspect-ratio:16/9; border:0; display:block; background:#000; }
.vcard strong { display:block; font-family:"Orbitron",sans-serif; font-size:13px; letter-spacing:.12em; padding:12px 14px 14px; color:#fff; }
.slides { position:relative; min-height:250px; }
.slide { position:absolute; inset:0; opacity:0; transform:translateY(12px); transition:opacity .8s, transform .8s; pointer-events:none; }
.slide.on { opacity:1; transform:none; pointer-events:auto; }
.slide .kicker { font-family:"Orbitron",sans-serif; font-size:12px; letter-spacing:.3em; color:var(--cyan); margin-bottom:12px; }
.slide h1 { font-size:46px; }
.slide a.btn { display:inline-block; margin-top:18px; font-family:"Orbitron",sans-serif; font-size:12px; letter-spacing:.2em; padding:10px 16px; border:1px solid var(--red); color:#fff; box-shadow:0 0 14px rgba(255,45,75,.45); }
.slide a.btn:hover { background:var(--red); }
.dots { display:flex; gap:8px; margin-top:16px; }
.dots button { width:28px; height:4px; border:0; background:rgba(255,255,255,.25); cursor:pointer; padding:0; }
.dots button.on { background:var(--red); box-shadow:0 0 10px var(--red); }
.hero-card::before { content:none; }
.hero-card { max-width:620px; }
@media (max-width:600px) { .slide h1 { font-size:32px; } .slides { min-height:280px; } }
/* ===== Fondos fotográficos del slider (uno por diapositiva, con fundido) ===== */
.hero-bg { position:absolute; inset:0; overflow:hidden; background:var(--bg); }
.hero-bg .bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transform:scale(1.08);
  transition:opacity 1.2s ease, transform 7s ease-out; filter:saturate(.85) contrast(1.05); }
.hero-bg .bg.on { opacity:1; transform:scale(1); }
.hero-bg .bg-anexion { background-image:url(../img/hero-anexion.jpg); background-position:center 40%; }
.hero-bg .bg-presos { background-image:url(../img/hero-presos.jpg); background-position:center 30%; }
.hero-bg .bg-videos { background-image:url(../img/hero-videos.jpg); background-position:center 55%; }
.hero-bg::after { content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(90deg, rgba(5,6,15,.88) 0%, rgba(5,6,15,.6) 36%, rgba(5,6,15,.22) 68%, rgba(5,6,15,.38) 100%),
    linear-gradient(180deg, rgba(5,6,15,.45) 0%, transparent 25%, transparent 70%, rgba(5,6,15,.92) 100%),
    linear-gradient(135deg, rgba(47,123,255,.2), rgba(255,45,75,.12)); }
.hero .stripes { opacity:.32; }
.hero .cuba { opacity:.42; }
@media (max-width:760px) { .hero-bg::after { background: linear-gradient(180deg, rgba(5,6,15,.35) 0%, rgba(5,6,15,.5) 55%, rgba(5,6,15,.92) 100%), linear-gradient(135deg, rgba(47,123,255,.2), rgba(255,45,75,.12)); }
  .hero-card { background:rgba(10,13,32,.62); } }
@media (prefers-reduced-motion:reduce) { .hero-bg .bg { transition:opacity .6s; transform:none; } }

/* ===== Expedientes (Presos Políticos) ===== */
.nota { margin:-6px 0 18px; font-size:15px; color:var(--muted); }
.nota b { color:var(--cyan); font-weight:600; }
.dossiers { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:22px; }
.dossier { position:relative; background:linear-gradient(180deg, rgba(20,24,46,.92), rgba(10,12,28,.92)); border:1px solid var(--line); border-top:3px solid var(--red);
  padding:16px 16px 20px; overflow:hidden; transition:.25s; box-shadow: inset 0 0 26px rgba(47,123,255,.08); }
.dossier:nth-child(even) { border-top-color:var(--blue); }
.dossier:hover { border-color:var(--cyan); box-shadow:0 0 22px rgba(127,212,255,.22); transform:translateY(-3px); }
.exp-head { display:flex; justify-content:space-between; align-items:center; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.25em; color:var(--muted);
  border-bottom:1px dashed rgba(127,212,255,.3); padding-bottom:10px; margin-bottom:14px; }
.exp-n { color:#fff; font-size:12px; letter-spacing:.15em; padding:3px 8px; border:1px solid var(--cyan); box-shadow:0 0 10px rgba(127,212,255,.3); }
.dossier .foto { position:relative; aspect-ratio:4/5; max-height:260px; width:100%; overflow:hidden; filter:grayscale(1);
  background: repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 2px, transparent 2px 4px), linear-gradient(180deg, #2a2d36, #15171d);
  border:1px solid rgba(255,255,255,.12); }
/* silueta genérica (no es una persona real) */
.dossier .foto::before { content:""; position:absolute; left:50%; top:22%; width:30%; aspect-ratio:1; transform:translateX(-50%); border-radius:50%; background:#5b5f6b; }
.dossier .foto::after { content:""; position:absolute; left:50%; bottom:0; width:66%; height:38%; transform:translateX(-50%); border-radius:50% 50% 0 0 / 70% 70% 0 0; background:#5b5f6b; }
.dossier .foto img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; }
.dossier .foto .pend { position:absolute; left:8px; top:8px; z-index:2; font-family:"Orbitron",sans-serif; font-size:9px; letter-spacing:.25em; color:#cfd3dc; background:rgba(0,0,0,.55); padding:4px 6px; }
.dossier dl { margin:14px 0 0; display:grid; grid-template-columns:auto 1fr; gap:8px 10px; align-items:baseline; }
.dossier dt { font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.2em; color:var(--cyan); }
.dossier dd { margin:0; font-family:"Courier New", ui-monospace, monospace; font-size:15px; color:#fff; border-bottom:1px dotted rgba(255,255,255,.25); padding-bottom:3px; }
.sello { position:absolute; right:12px; bottom:102px; z-index:3; transform:rotate(-14deg); font-family:"Orbitron",sans-serif; font-weight:800; font-size:15px; letter-spacing:.14em;
  color:var(--red); border:3px double var(--red); padding:6px 10px; border-radius:4px; text-align:center; line-height:1.1; opacity:.88; pointer-events:none;
  text-shadow:0 0 8px rgba(255,45,75,.7); box-shadow:0 0 14px rgba(255,45,75,.45), inset 0 0 10px rgba(255,45,75,.3); background:rgba(5,6,15,.35); }

/* ===== Menú móvil (hamburguesa) ===== */
.menu-btn { display:none; width:44px; height:40px; padding:0; background:transparent; border:1px solid var(--cyan); border-radius:3px; cursor:pointer; position:relative;
  box-shadow:0 0 12px rgba(127,212,255,.4), inset 0 0 10px rgba(127,212,255,.15); }
.menu-btn span { position:absolute; left:10px; right:10px; height:2px; background:#fff; box-shadow:0 0 6px var(--cyan), 0 0 12px var(--blue); transition:.25s; }
.menu-btn span:nth-child(1) { top:12px; } .menu-btn span:nth-child(2) { top:19px; background:var(--red); box-shadow:0 0 8px var(--red); } .menu-btn span:nth-child(3) { top:26px; }
header.open .menu-btn span:nth-child(1) { top:19px; transform:rotate(45deg); }
header.open .menu-btn span:nth-child(2) { opacity:0; }
header.open .menu-btn span:nth-child(3) { top:19px; transform:rotate(-45deg); }
@media (max-width:759.98px) {
  .top { padding:10px 16px; }
  .logo { font-size:14px; letter-spacing:.14em; white-space:nowrap; display:flex; align-items:center; gap:4px; }
  .logo img { width:34px; height:auto; }
  .logo .stars { font-size:10px; letter-spacing:.2em; }
  .menu-btn { display:block; flex:none; }
  nav { position:absolute; left:0; right:0; top:100%; flex-direction:column; gap:2px; padding:10px 16px 16px; max-width:none;
    background:rgba(5,6,15,.96); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); box-shadow:0 18px 30px rgba(0,0,0,.6), 0 2px 0 rgba(47,123,255,.4);
    opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity .22s, transform .22s, visibility 0s .22s; }
  header.open nav { opacity:1; visibility:visible; transform:none; transition:opacity .22s, transform .22s; }
  nav a { font-size:13px; padding:14px 12px; border:1px solid transparent; border-left:2px solid var(--red); color:#fff; }
  nav a:nth-child(even) { border-left-color:var(--blue); }
}
.credits { flex-basis:100%; font-family:"Rajdhani",sans-serif; font-size:12px; letter-spacing:.05em; color:rgba(154,166,200,.7); }
.credits a { text-decoration:underline; text-underline-offset:2px; }
.credits a:hover { color:var(--cyan); }
.star3d { position:absolute; right:clamp(20px,9%,130px); top:50%; width:clamp(130px,16vw,200px); aspect-ratio:1; transform:translateY(-50%); perspective:900px; z-index:1; }
.star3d .spin { position:absolute; inset:0; transform-style:preserve-3d; animation: sway3d 6s ease-in-out infinite; }
.star3d .ly { position:absolute; inset:0; clip-path: polygon(50% 0%, 61.8% 35.1%, 98.1% 35.1%, 68.8% 56.7%, 79.4% 91%, 50% 70%, 20.6% 91%, 31.2% 56.7%, 1.9% 35.1%, 38.2% 35.1%);
  background:linear-gradient(135deg, #9fb8e8, #4a5f9a); }
.star3d .face { background:radial-gradient(circle at 35% 30%, #ffffff, #dfe9ff 55%, #a9c3ff); display:flex; align-items:center; justify-content:center; }
.star3d .face span { font-family:"Orbitron",sans-serif; font-weight:800; font-size:clamp(22px,2.8vw,34px); color:#05060f; margin-top:7%; line-height:1; }
.star3d .glow { position:absolute; inset:-25%; border-radius:50%; background:radial-gradient(circle, rgba(127,212,255,.45), rgba(47,123,255,.15) 45%, transparent 70%); animation: glowp 3s ease-in-out infinite; }
@keyframes sway3d { 0%,100% { transform:translateY(0) rotateY(-28deg) rotateX(10deg) rotateZ(-3deg); } 50% { transform:translateY(-10px) rotateY(28deg) rotateX(4deg) rotateZ(3deg); } }
@keyframes glowp { 0%,100% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .star3d .spin { animation-duration:14s; } }
@media (max-width:700px) { .star3d { opacity:.4; } }
.vcard.tt { width:270px; }
.vcard.tt iframe { aspect-ratio:9/16; min-height:560px; }
.track { align-items:flex-start; }

/* ===================================================================
   SITIO MULTIPÁGINA
   =================================================================== */

/* ----- Navegación: página actual ----- */
nav a.on { color:#fff; border-color:var(--red); box-shadow:0 0 12px rgba(255,45,75,.45), inset 0 0 10px rgba(255,45,75,.18); }
@media (max-width:759.98px) {
  nav a.on { border-color:rgba(255,45,75,.6); border-left:2px solid var(--red); background:rgba(255,45,75,.12); }
}

/* ----- Botón "Ver todo" (portada) ----- */
.ver-todo { display:flex; justify-content:flex-end; margin-top:18px; }
.btn-ver { display:inline-flex; align-items:center; gap:10px; font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.22em; text-transform:uppercase; padding:10px 16px;
  border:1px solid var(--cyan); color:#fff; box-shadow:0 0 12px rgba(127,212,255,.35), inset 0 0 10px rgba(127,212,255,.12); transition:.2s; }
.btn-ver::after { content:"→"; color:var(--red); text-shadow:0 0 8px var(--red); transition:transform .2s; }
.btn-ver:hover { background:rgba(127,212,255,.12); box-shadow:0 0 18px rgba(127,212,255,.6), inset 0 0 12px rgba(127,212,255,.2); }
.btn-ver:hover::after { transform:translateX(4px); }

/* ----- Cabecera de sección (banner de cada página) ----- */
.phero .hero-inner { padding:64px 20px 70px; }
.phero .hero-card { max-width:720px; width:fit-content; min-width:min(100%,420px); padding-right:44px; }
.phero .kicker { font-family:"Orbitron",sans-serif; font-size:12px; letter-spacing:.3em; color:var(--cyan); margin-bottom:12px; }
.phero .kicker a:hover { color:#fff; }
.phero h1 { font-size:46px; letter-spacing:.04em; text-transform:uppercase; }
.phero-mark { position:absolute; right:clamp(16px,6%,90px); top:50%; transform:translateY(-50%); z-index:1; pointer-events:none;
  font-family:"Orbitron",sans-serif; font-weight:800; font-size:clamp(80px,11vw,150px); line-height:1; color:transparent;
  -webkit-text-stroke:2px rgba(127,212,255,.75); text-shadow:0 0 30px rgba(47,123,255,.55); opacity:.8; }
.phero-mark small { display:block; font-size:.16em; letter-spacing:.5em; text-align:right; -webkit-text-stroke:0; color:var(--red); text-shadow:0 0 10px var(--red); margin-top:6px; }
/* banners sin foto: degradados y franjas */
.hero-bg .bg-represores { background:
  radial-gradient(ellipse at 78% 50%, rgba(255,45,75,.45), transparent 55%),
  repeating-linear-gradient(-45deg, rgba(255,45,75,.22) 0 14px, transparent 14px 40px),
  repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 2px, transparent 2px 5px),
  linear-gradient(120deg, #0a0c1e 0%, #2a0a1c 55%, #4a0d22 100%); }
.hero-bg .bg-canciones { background:
  radial-gradient(ellipse at 80% 60%, rgba(47,123,255,.5), transparent 55%),
  linear-gradient(0deg, rgba(5,6,15,1) 0%, transparent 70%) ,
  repeating-linear-gradient(90deg, rgba(127,212,255,.28) 0 6px, transparent 6px 18px),
  linear-gradient(120deg, #070a1e 0%, #0c1a4a 55%, #1a2f8a 100%); }
.hero-bg .bg-canciones::after { content:""; position:absolute; inset:0;
  background: repeating-linear-gradient(180deg, rgba(255,45,75,.0) 0 30px, rgba(255,45,75,.4) 30px 32px, transparent 32px 60px, rgba(255,255,255,.18) 60px 61px);
  mask-image:linear-gradient(90deg, transparent 30%, #000 80%); -webkit-mask-image:linear-gradient(90deg, transparent 30%, #000 80%); }
.intro { font-size:19px; line-height:1.5; color:var(--ink); max-width:760px; margin:8px 0 6px; padding-left:14px; border-left:2px solid var(--red); }
.intro-wrap { margin-top:10px; }
@media (max-width:760px) {
  .phero-mark { opacity:.22; }
}
@media (max-width:600px) {
  .phero-mark { display:none; }
  .phero .hero-card { min-width:0; width:auto; padding-right:22px; }
  .phero .hero-inner { padding:44px 16px 48px; }
  .phero h1 { font-size:30px; }
  .phero .kicker { font-size:10px; letter-spacing:.22em; }
  .intro { font-size:17px; }
}

/* ----- Anexión: tarjetas de artículo ----- */
.art-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr)); gap:22px; }
.art .ph { position:relative; min-height:150px; }
.art .ph .num { position:absolute; left:14px; bottom:10px; font-family:"Orbitron",sans-serif; font-weight:800; font-size:34px; color:transparent; -webkit-text-stroke:1px rgba(127,212,255,.7); padding:0; }
.art .ph .pend { position:absolute; right:10px; top:12px; font-family:"Orbitron",sans-serif; font-size:9px; letter-spacing:.25em; color:#cfd3dc; background:rgba(0,0,0,.55); padding:4px 6px; }
.art time { display:block; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.22em; color:var(--cyan); padding:14px 14px 0; }
.art strong { padding-top:6px; }
.art p { margin:6px 0 0; padding:0 14px; color:var(--muted); font-size:15px; line-height:1.45; flex:1; }
.art .prox { display:block; margin:14px; padding:6px 10px; align-self:flex-start; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.22em; color:var(--muted); border:1px dashed rgba(127,212,255,.35); }

/* ----- Videos: cuadrícula ----- */
.vgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:20px; }
.vgrid .vcard { width:auto; transition:.25s; }
.vgrid .vcard:hover { transform:translateY(-4px); border-color:var(--cyan); box-shadow:0 0 22px rgba(127,212,255,.25); }
.vgrid .frame { position:relative; }
.vgrid .frame .play { width:66px; height:66px; border-radius:50%; border:2px solid var(--cyan); display:flex; align-items:center; justify-content:center; padding-left:5px; font-size:26px;
  box-shadow:0 0 18px rgba(127,212,255,.5), inset 0 0 14px rgba(127,212,255,.25); background:rgba(5,6,15,.35); }
.vgrid .frame .pend { position:absolute; left:10px; top:10px; font-family:"Orbitron",sans-serif; font-size:9px; letter-spacing:.25em; color:#cfd3dc; background:rgba(0,0,0,.55); padding:4px 6px; text-shadow:none; }
.vgrid .frame .dur { position:absolute; right:10px; bottom:10px; font-family:"Courier New",monospace; font-size:13px; color:#fff; background:rgba(0,0,0,.6); padding:2px 6px; text-shadow:none; }
.vgrid .vcard strong { padding-bottom:4px; }
.vgrid .vcard .meta { display:block; padding:0 14px 14px; color:var(--muted); font-size:15px; }

/* ----- Represores: perfiles + cronología ----- */
.perfil { border-top-color:var(--blue); }
.perfil:nth-child(even) { border-top-color:var(--red); }
.perfil .foto { aspect-ratio:1; max-height:220px; }
.perfil .sello { bottom:150px; font-size:13px; }
.bloque + .bloque { margin-top:54px; }
.timeline { list-style:none; margin:0; padding:0 0 0 28px; position:relative; }
.timeline::before { content:""; position:absolute; left:8px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg, var(--red), #fff 50%, var(--blue)); box-shadow:0 0 10px var(--blue); }
.timeline li { position:relative; margin:0 0 20px; background:var(--panel); border:1px solid var(--line); padding:16px 18px 18px; border-left:3px solid var(--red); }
.timeline li:nth-child(even) { border-left-color:var(--blue); }
.timeline li::before { content:""; position:absolute; left:-28px; top:20px; width:12px; height:12px; border-radius:50%; background:var(--bg); border:2px solid var(--red); box-shadow:0 0 10px var(--red); }
.timeline li:nth-child(even)::before { border-color:var(--blue); box-shadow:0 0 10px var(--blue); }
.timeline .when { font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.22em; color:var(--cyan); }
.timeline h3 { margin:6px 0 6px; font-family:"Orbitron",sans-serif; font-size:14px; letter-spacing:.14em; text-transform:uppercase; color:#fff; }
.timeline p { margin:0 0 10px; color:var(--muted); line-height:1.45; }
.timeline dl { margin:0; display:grid; grid-template-columns:auto 1fr; gap:6px 10px; }
.timeline dt { font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.2em; color:var(--cyan); }
.timeline dd { margin:0; font-family:"Courier New",monospace; font-size:14px; color:#fff; }

/* ----- Canciones ----- */
.temas { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:22px; }
.tema { background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--red); padding:20px 20px 22px; box-shadow: inset 0 0 24px rgba(255,45,75,.08);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), calc(100% - 18px) 100%, 0 100%); display:flex; flex-direction:column; gap:12px; }
.tema:nth-child(even) { border-left-color:var(--blue); box-shadow: inset 0 0 24px rgba(47,123,255,.12); }
.tema-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.tema h3 { margin:0; font-family:"Orbitron",sans-serif; font-size:16px; letter-spacing:.15em; text-transform:uppercase; color:#fff; }
.tema .n { font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.2em; color:var(--cyan); }
.tema .autor { margin:0; color:var(--muted); font-size:15px; }
.letra { margin:0; min-height:150px; padding:14px 16px; font-family:"Rajdhani",sans-serif; font-size:16px; line-height:1.55; white-space:pre-line; color:var(--muted);
  background:rgba(5,6,15,.45); border:1px dashed rgba(127,212,255,.3); }
.letra .lbl { display:block; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.25em; color:var(--cyan); margin-bottom:6px; }
.audio-ph { display:flex; align-items:center; gap:12px; padding:10px 12px; background:rgba(5,6,15,.6); border:1px solid var(--line); border-radius:30px; }
.audio-ph .pbtn { flex:none; width:34px; height:34px; border-radius:50%; border:1px solid var(--red); display:flex; align-items:center; justify-content:center; padding-left:3px; font-size:13px; color:#fff; box-shadow:0 0 10px rgba(255,45,75,.45); opacity:.7; }
.audio-ph .barra { flex:1; height:4px; border-radius:2px; background:rgba(255,255,255,.15); position:relative; overflow:hidden; }
.audio-ph .barra::before { content:""; position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--red); }
.audio-ph .t { font-family:"Courier New",monospace; font-size:13px; color:var(--muted); }
.audio-ph .pend { font-family:"Orbitron",sans-serif; font-size:9px; letter-spacing:.2em; color:var(--muted); white-space:nowrap; }
.tema audio { width:100%; }
@media (max-width:420px) { .audio-ph .pend { display:none; } }

/* ----- Barra superior en móvil: que quepa en una línea ----- */
@media (max-width:480px) { .bar { font-size:10px; letter-spacing:.12em; padding:8px 6px; } }

.tema audio.player { width:100%; margin-top:14px; height:42px; border-radius:6px; filter: drop-shadow(0 0 8px rgba(47,123,255,.45)); color-scheme:dark; }
.block audio.player { width:100%; margin-top:14px; height:42px; border-radius:6px; filter: drop-shadow(0 0 8px rgba(47,123,255,.45)); color-scheme:dark; }
.letra-full { max-height:360px; overflow-y:auto; line-height:1.55; }
.letra-full b { color:#fff; font-weight:600; }
.letra-full .sec { display:inline-block; margin-top:6px; font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.15em; color:var(--cyan); }

/* ----- Tarjetas con video propio (portada + Videos): portada + icono de play ----- */
.vcard.has-video { cursor:pointer; }
.vcard.has-video .frame { position:relative; overflow:hidden; background:#000; font-size:26px; }
.vcard.has-video .frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 30%; transition:transform .4s ease, filter .3s; filter:saturate(1.05); }
.vcard.has-video .frame::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(5,6,15,.05) 40%, rgba(5,6,15,.55) 100%), linear-gradient(135deg, rgba(47,123,255,.18), rgba(255,45,75,.12)); }
.vcard.has-video .frame .play { position:relative; z-index:1; width:66px; height:66px; border-radius:50%; border:2px solid var(--cyan); display:flex; align-items:center; justify-content:center;
  padding-left:5px; font-size:26px; color:#fff; text-shadow:0 0 14px var(--cyan); background:rgba(5,6,15,.45); backdrop-filter:blur(2px);
  box-shadow:0 0 18px rgba(127,212,255,.6), inset 0 0 14px rgba(127,212,255,.3); transition:.25s; }
.vcard.has-video .frame .dur { z-index:1; }
.vcard.has-video:hover .frame img, .vcard.has-video:focus-visible .frame img { transform:scale(1.05); }
.vcard.has-video:hover .frame .play, .vcard.has-video:focus-visible .frame .play { border-color:#fff; background:rgba(255,45,75,.55); box-shadow:0 0 24px rgba(255,45,75,.8), 0 0 40px rgba(47,123,255,.5); transform:scale(1.08); }
.vcard.has-video:focus-visible { outline:2px solid var(--cyan); outline-offset:2px; }

/* ----- Visor de video (ventana emergente) ----- */
.vmodal { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px;
  background:rgba(3,4,10,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); opacity:0; visibility:hidden; transition:opacity .25s, visibility 0s .25s; }
.vmodal.open { opacity:1; visibility:visible; transition:opacity .25s; }
.vmodal video { display:block; height:min(calc(100vh - 88px), calc((100vw - 32px) * 16 / 9)); height:min(calc(100dvh - 88px), calc((100vw - 32px) * 16 / 9));
  width:auto; aspect-ratio:9/16; max-width:calc(100vw - 32px); background:#000; object-fit:contain; border:1px solid var(--line); border-radius:6px;
  box-shadow:0 0 0 1px rgba(127,212,255,.25), 0 0 30px rgba(47,123,255,.45), 0 0 60px rgba(255,45,75,.25); }
.vmodal-close { position:fixed; top:14px; right:14px; z-index:1; width:46px; height:46px; border-radius:50%; cursor:pointer; padding:0;
  font-family:"Orbitron",sans-serif; font-size:20px; line-height:1; color:#fff; background:rgba(5,6,15,.7); border:2px solid var(--red);
  box-shadow:0 0 14px rgba(255,45,75,.6), inset 0 0 10px rgba(255,45,75,.25); transition:.2s; }
.vmodal-close:hover, .vmodal-close:focus-visible { background:var(--red); box-shadow:0 0 22px rgba(255,45,75,.9); outline:none; }
@media (max-width:600px) { .vmodal { padding:12px; } .vmodal video { height:min(calc(100dvh - 80px), calc((100vw - 24px) * 16 / 9)); } .vmodal-close { top:10px; right:10px; } }
.vmodal-play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; width:88px; height:88px; border-radius:50%; border:2px solid var(--cyan); background:rgba(5,6,15,.6); color:#fff; font-size:34px; line-height:1; padding-left:6px; cursor:pointer; display:none; align-items:center; justify-content:center; box-shadow:0 0 24px rgba(47,123,255,.7), 0 0 40px rgba(255,45,75,.4); }
.vmodal.paused .vmodal-play { display:flex; }
.vmodal-play:hover { background:var(--red); }

/* ===== Artículos: tarjeta con foto y página de artículo ===== */
.card .ph img { display:block; width:100%; height:130px; object-fit:cover; object-position:center 30%; filter:grayscale(1) contrast(1.05); transition:transform .4s ease; }
.art .ph { overflow:hidden; }
.art .ph img { height:170px; }
.art .ph img + .num { z-index:1; text-shadow:0 0 10px rgba(0,0,0,.8); }
.card:hover .ph img { transform:scale(1.04); }
.art .por { display:block; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--cyan); padding:14px 14px 0; }
.art-link strong { line-height:1.45; }
.art .leer { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin:14px; padding:8px 12px; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:#fff; border:1px solid var(--cyan); box-shadow:0 0 12px rgba(127,212,255,.35), inset 0 0 8px rgba(127,212,255,.15); transition:.2s; }
.art .leer::after { content:"→"; color:var(--red); text-shadow:0 0 8px var(--red); transition:transform .2s; }
.art-link:hover .leer, .art-link:focus-visible .leer { background:rgba(127,212,255,.12); box-shadow:0 0 18px rgba(127,212,255,.6); }
.art-link:hover .leer::after { transform:translateX(4px); }
.art-link:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }

.art-hero .hero-card { max-width:820px; }
.art-hero h1 { font-size:34px; line-height:1.2; letter-spacing:.02em; text-transform:none; }
.articulo-wrap { max-width:760px; margin:0 auto; }
.volver { display:inline-flex; align-items:center; gap:8px; margin:18px 0 22px; padding:9px 14px; font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); border:1px solid var(--line); border-radius:3px; transition:.2s; }
.volver:hover, .volver:focus-visible { color:#fff; border-color:var(--cyan); box-shadow:0 0 14px rgba(127,212,255,.45); }
.articulo + .volver { margin-top:30px; }
.art-foto { margin:0 0 22px; border:1px solid var(--cyan); border-radius:4px; overflow:hidden; box-shadow:0 0 18px rgba(127,212,255,.45), 0 0 44px rgba(47,123,255,.22); }
.art-foto img { display:block; width:100%; height:auto; }
.art-autor { margin:0 0 18px; font-family:"Orbitron",sans-serif; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan); padding-left:12px; border-left:2px solid var(--red); }
.art-intro p { margin:0 0 16px; font-size:19px; line-height:1.7; color:var(--ink); }
.art-intro { margin-bottom:30px; }
.reflexiones { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.reflexiones li { display:grid; grid-template-columns:62px 1fr; gap:14px; align-items:start; padding:16px 18px; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--red); border-radius:4px; }
.reflexiones li:nth-child(even) { border-left-color:var(--blue); }
.rnum { font-family:"Orbitron",sans-serif; font-weight:800; font-size:30px; line-height:1; padding-top:2px; color:var(--cyan); text-shadow:0 0 12px rgba(127,212,255,.6); }
.reflexiones li:nth-child(even) .rnum { color:var(--red); text-shadow:0 0 12px rgba(255,45,75,.6); }
.rtxt p { margin:0; font-size:18px; line-height:1.6; color:var(--ink); }
.rtxt p + p { margin-top:6px; }
.rtxt p:first-child { color:#fff; font-weight:600; }
.art-fuente { margin:28px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.art-fuente a { color:var(--cyan); border-bottom:1px solid rgba(127,212,255,.4); }
.art-fuente a:hover { color:#fff; border-bottom-color:#fff; }
@media (max-width:600px) {
  .art-hero h1 { font-size:23px; }
  .art-intro p { font-size:17px; }
  .reflexiones li { grid-template-columns:40px 1fr; gap:10px; padding:14px 14px 14px 12px; }
  .rnum { font-size:22px; }
  .rtxt p { font-size:17px; }
}

/* ===== Portada: bloque de Canciones en 2x2 (1 columna en móvil) ===== */
.split-temas { grid-template-columns:repeat(2,minmax(0,1fr)); }
.split-temas .block { display:flex; flex-direction:column; }
.split-temas .block p { flex:1; }
@media (max-width:640px) { .split-temas { grid-template-columns:1fr; } }

/* ===== Anexión: sección Anexionistas (reutiliza la ficha .dossier, sin sello) ===== */
.anx-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:900px) { .anx-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .anx-grid { grid-template-columns:1fr; } }
a.dossier { display:flex; }
.dossier.anx { display:flex; flex-direction:column; }
.anx .anx-perfil { margin:12px 0 0; flex:1; font-size:15px; line-height:1.5; color:var(--muted); }
.anx .prox, .anx .leer { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:14px; padding:7px 11px; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.22em; text-transform:uppercase; }
.anx .prox { color:var(--muted); border:1px dashed rgba(127,212,255,.35); }
.anx .leer { color:#fff; border:1px solid var(--cyan); box-shadow:0 0 12px rgba(127,212,255,.35), inset 0 0 8px rgba(127,212,255,.15); transition:.2s; }
.anx .leer::after { content:"→"; color:var(--red); text-shadow:0 0 8px var(--red); transition:transform .2s; }
a.anx:hover .leer, a.anx:focus-visible .leer { background:rgba(127,212,255,.12); box-shadow:0 0 18px rgba(127,212,255,.6); }
a.anx:hover .leer::after { transform:translateX(4px); }
a.anx:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }

/* ===== Presos Políticos: ficha con foto y enlace a su página ===== */
a.dossier.preso-link { display:flex; flex-direction:column; color:inherit; text-decoration:none; }
a.preso-link:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.foto-wrap { position:relative; }
.dossier .foto-wrap .sello { right:-4px; bottom:-2px; }
.dossier .foto img { object-position:center 22%; }
.dossier .foto:has(img)::before, .dossier .foto:has(img)::after { display:none; }
.preso-link .leer { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:16px; padding:7px 11px; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:#fff; border:1px solid var(--cyan); box-shadow:0 0 12px rgba(127,212,255,.35), inset 0 0 8px rgba(127,212,255,.15); transition:.2s; }
.preso-link .leer::after { content:"→"; color:var(--red); text-shadow:0 0 8px var(--red); transition:transform .2s; }
a.preso-link:hover .leer, a.preso-link:focus-visible .leer { background:rgba(127,212,255,.12); box-shadow:0 0 18px rgba(127,212,255,.6); }
a.preso-link:hover .leer::after { transform:translateX(4px); }
/* página de un preso */
.preso-top { display:grid; grid-template-columns:300px 1fr; gap:26px; align-items:start; margin-bottom:28px; }
.preso-top .art-foto { position:relative; margin:0; overflow:visible; }
.preso-top .art-foto img { border-radius:4px; }
.preso-top .art-foto figcaption { position:absolute; left:0; right:0; top:calc(100% + 8px); font-size:13px; color:var(--muted); line-height:1.4; }
.preso-top .art-foto figcaption a { color:var(--cyan); border-bottom:1px solid rgba(127,212,255,.35); }
.preso-datos { margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 14px; align-items:baseline; padding:18px; background:var(--panel); border:1px solid var(--line); border-top:3px solid var(--red); border-radius:4px; }
.preso-datos dt { font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.2em; color:var(--cyan); }
.preso-datos dd { margin:0; font-family:"Courier New", ui-monospace, monospace; font-size:16px; color:#fff; border-bottom:1px dotted rgba(255,255,255,.25); padding-bottom:3px; }
.preso-texto { margin-top:52px; }
.preso-texto p { margin:0 0 16px; font-size:19px; line-height:1.7; color:var(--ink); }
.preso-texto ul { margin:0 0 18px; padding:0; list-style:none; display:grid; gap:10px; }
.preso-texto li { position:relative; padding:12px 16px 12px 40px; font-size:18px; line-height:1.6; color:var(--ink); background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--red); border-radius:4px; }
.preso-texto li:nth-child(even) { border-left-color:var(--blue); }
.preso-texto li::before { content:"★"; position:absolute; left:14px; top:12px; color:var(--cyan); text-shadow:0 0 8px rgba(127,212,255,.6); }
.fuentes { margin:28px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); }
.fuentes h2 { margin:0 0 10px; font-size:13px; letter-spacing:.22em; }
.fuentes ul { margin:0; padding-left:18px; display:grid; gap:6px; }
.fuentes a { color:var(--cyan); border-bottom:1px solid rgba(127,212,255,.4); }
.fuentes a:hover { color:#fff; border-bottom-color:#fff; }
@media (max-width:700px) {
  .preso-top { grid-template-columns:1fr; }
  .preso-top .art-foto { max-width:340px; width:100%; margin:0 auto; }
  .preso-top .art-foto figcaption { position:static; margin:0; padding:7px 10px; }
  .preso-texto { margin-top:8px; }
  .preso-texto p { font-size:17px; }
  .preso-texto li { font-size:16px; }
}

/* ===== Portada: carrusel de banners (una diapositiva visible a la vez) ===== */
.hero-home .hero-inner { max-width:1180px; padding:56px 24px 34px; }
.hero-home .slides { position:relative; display:grid; min-height:0; }
.hero-home .slide { position:relative; inset:auto; grid-area:1/1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:40px; min-height:340px;
  opacity:0; visibility:hidden; transform:none; pointer-events:none;
  transition:opacity .35s ease, visibility 0s linear .35s; }
.hero-home .slide.on { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .45s ease .4s, visibility 0s linear .4s; }
/* texto: sale rápido, entra escalonado cuando el anterior ya se ha ido (nunca se superponen) */
.hero-home .slide-txt > * { opacity:0; transform:translateY(14px); transition:opacity .3s ease, transform .3s ease; }
.hero-home .slide.on .slide-txt > * { opacity:1; transform:none; transition:opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
.hero-home .slide.on .slide-txt > :nth-child(1) { transition-delay:.42s; }
.hero-home .slide.on .slide-txt > :nth-child(2) { transition-delay:.5s; }
.hero-home .slide.on .slide-txt > :nth-child(3) { transition-delay:.6s; }
.hero-home .slide.on .slide-txt > :nth-child(4) { transition-delay:.7s; }
.hero-home .slide-txt { position:relative; padding:6px 0 6px 26px; border-left:3px solid var(--red); }
.hero-home .slide-txt::before { content:""; position:absolute; left:-3px; top:0; width:3px; height:38%; background:var(--blue); box-shadow:0 0 12px var(--blue); }
.hero-home .kicker { display:inline-block; font-family:"Orbitron",sans-serif; font-size:12px; letter-spacing:.32em; color:var(--cyan); margin-bottom:14px; text-shadow:0 0 10px rgba(127,212,255,.5); }
.hero-home .slide h1 { font-size:clamp(40px,5.2vw,64px); line-height:1.04; letter-spacing:.03em; margin:0 0 16px; text-shadow:none; filter:drop-shadow(0 4px 18px rgba(0,0,0,.55)); }
.hero-home .slide p { margin:0; max-width:470px; font-size:20px; line-height:1.5; color:#dfe5f3; text-shadow:0 2px 12px rgba(0,0,0,.8); }
.hero-home .slide a.btn { display:inline-flex; align-items:center; gap:10px; margin-top:26px; padding:13px 20px; font-size:12px; letter-spacing:.22em; color:#fff;
  background:linear-gradient(90deg, rgba(255,45,75,.92), rgba(200,25,60,.92)); border:1px solid #ff6f86; border-radius:3px; box-shadow:0 0 22px rgba(255,45,75,.5); transition:background .2s, box-shadow .2s; }
.hero-home .slide a.btn::after { content:"→"; transition:transform .2s; }
.hero-home .slide a.btn:hover, .hero-home .slide a.btn:focus-visible { background:var(--red); box-shadow:0 0 30px rgba(255,45,75,.85); outline:none; }
.hero-home .slide a.btn:hover::after { transform:translateX(4px); }
/* lado visual */
.hero-home .slide-vis { position:relative; height:320px; opacity:0; transform:translateX(26px) scale(.97); transition:opacity .3s ease, transform .3s ease; }
.hero-home .slide.on .slide-vis { opacity:1; transform:none; transition:opacity .7s ease .45s, transform .9s cubic-bezier(.2,.7,.2,1) .45s; }
.vframe { position:absolute; right:30px; top:50%; width:min(100%,430px); margin:0; transform:translateY(-50%) rotate(-2deg); border:1px solid var(--cyan); border-radius:4px; overflow:hidden;
  box-shadow:0 0 0 6px rgba(5,6,15,.55), 0 0 26px rgba(127,212,255,.45), 0 24px 50px rgba(0,0,0,.6); }
.vframe img { display:block; width:100%; height:auto; filter:contrast(1.05); }
.vframe figcaption { position:absolute; left:12px; top:12px; font-family:"Orbitron",sans-serif; font-size:10px; letter-spacing:.25em; color:#fff; background:rgba(5,6,15,.72); border:1px solid var(--cyan); padding:5px 8px; }
.vstar { position:absolute; right:0; bottom:6px; width:96px; aspect-ratio:1; z-index:2; display:flex; align-items:center; justify-content:center;
  clip-path:polygon(50% 0%, 61.8% 35.1%, 98.1% 35.1%, 68.8% 56.7%, 79.4% 91%, 50% 70%, 20.6% 91%, 31.2% 56.7%, 1.9% 35.1%, 38.2% 35.1%); background:radial-gradient(circle at 35% 30%, #fff, #dfe9ff 55%, #a9c3ff); filter:drop-shadow(0 0 14px rgba(127,212,255,.8)); }
.vstar span { font-family:"Orbitron",sans-serif; font-weight:800; font-size:22px; color:#05060f; margin-top:10%; }
.vficha { position:absolute; right:70px; top:50%; width:220px; transform:translateY(-50%) rotate(2deg); padding:12px; background:linear-gradient(180deg, rgba(20,24,46,.96), rgba(10,12,28,.96));
  border:1px solid var(--line); border-top:3px solid var(--red); box-shadow:0 0 24px rgba(127,212,255,.25), 0 24px 50px rgba(0,0,0,.6); }
.vficha.back { opacity:.55; }
.vficha.b1 { transform:translateY(-50%) translate(-70px,8px) rotate(-6deg); border-top-color:var(--blue); }
.vficha.b2 { transform:translateY(-50%) translate(-130px,18px) rotate(-11deg); }
.vficha.back .vf-ph { margin-top:0; }
.vf-head { display:flex; justify-content:space-between; align-items:center; font-family:"Orbitron",sans-serif; font-size:9px; letter-spacing:.22em; color:var(--muted); padding-bottom:8px; margin-bottom:10px; border-bottom:1px dashed rgba(127,212,255,.3); }
.vf-head b { color:#fff; font-size:10px; padding:2px 6px; border:1px solid var(--cyan); font-weight:600; }
.vf-ph { position:relative; aspect-ratio:4/5; overflow:hidden; filter:grayscale(1); border:1px solid rgba(255,255,255,.12);
  background:radial-gradient(circle at 50% 36%, #5b5f6b 0 15%, transparent 15.5%), radial-gradient(ellipse 34% 26% at 50% 100%, #5b5f6b 0 98%, transparent 100%), linear-gradient(180deg, #2a2d36, #15171d); }
.vf-ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 22%; }
.vf-name { margin-top:10px; font-family:"Courier New",ui-monospace,monospace; font-size:14px; color:#fff; border-bottom:1px dotted rgba(255,255,255,.3); padding-bottom:3px; }
.vficha .sello { right:6px; bottom:44px; font-size:13px; }
.vficha.rep { border-top-color:var(--red); box-shadow:0 0 26px rgba(255,45,75,.35), 0 24px 50px rgba(0,0,0,.6); }
.vtarget { position:absolute; right:118px; top:50%; width:150px; aspect-ratio:1; transform:translate(10px,-78%); border:2px solid rgba(255,45,75,.85); border-radius:50%; box-shadow:0 0 18px rgba(255,45,75,.6);
  background:linear-gradient(var(--red),var(--red)) center/2px 100% no-repeat, linear-gradient(var(--red),var(--red)) center/100% 2px no-repeat; opacity:.75; animation:vtarget 3s ease-in-out infinite; }
@keyframes vtarget { 50% { transform:translate(-6px,-74%) scale(1.05); } }
.vphone { position:absolute; top:50%; width:150px; aspect-ratio:9/16; border-radius:14px; overflow:hidden; border:2px solid rgba(255,255,255,.18); box-shadow:0 0 22px rgba(47,123,255,.35), 0 24px 50px rgba(0,0,0,.6); background:#000; }
.vphone img { width:100%; height:100%; object-fit:cover; display:block; }
.vphone.p1 { right:250px; transform:translateY(-50%) rotate(-9deg) scale(.86); opacity:.85; }
.vphone.p3 { right:30px; transform:translateY(-50%) rotate(9deg) scale(.86); opacity:.85; }
.vphone.p2 { right:135px; z-index:2; transform:translateY(-50%); border-color:var(--cyan); box-shadow:0 0 26px rgba(127,212,255,.55), 0 24px 50px rgba(0,0,0,.7); }
.vplay { position:absolute; left:50%; top:50%; width:54px; height:54px; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; padding-left:4px; border-radius:50%;
  border:2px solid var(--cyan); background:rgba(5,6,15,.55); color:#fff; font-size:20px; box-shadow:0 0 18px rgba(127,212,255,.7); }
.vlist { position:absolute; right:30px; top:50%; width:min(100%,380px); transform:translateY(-50%); padding:18px 20px; background:rgba(10,13,32,.82); border:1px solid var(--line); border-top:3px solid var(--blue);
  box-shadow:0 0 26px rgba(47,123,255,.35), 0 24px 50px rgba(0,0,0,.6); backdrop-filter:blur(4px); }
.vl-head { display:flex; justify-content:space-between; align-items:center; font-family:"Orbitron",sans-serif; font-size:11px; letter-spacing:.3em; color:var(--cyan); padding-bottom:12px; border-bottom:1px dashed rgba(127,212,255,.3); }
.vlist ol { list-style:none; margin:6px 0 0; padding:0; counter-reset:t; }
.vlist li { counter-increment:t; display:flex; gap:14px; align-items:center; padding:11px 2px; font-size:17px; color:#fff; border-bottom:1px solid rgba(255,255,255,.07); }
.vlist li:last-child { border-bottom:0; }
.vlist li::before { content:counter(t, decimal-leading-zero); font-family:"Orbitron",sans-serif; font-size:12px; color:var(--red); text-shadow:0 0 8px rgba(255,45,75,.6); }
.eq { display:inline-flex; align-items:flex-end; gap:3px; height:16px; }
.eq i { width:3px; height:100%; background:var(--red); box-shadow:0 0 6px var(--red); animation:eq 1s ease-in-out infinite; transform-origin:bottom; }
.eq i:nth-child(2) { animation-delay:-.3s; background:#fff; } .eq i:nth-child(3) { animation-delay:-.6s; background:var(--blue); } .eq i:nth-child(4) { animation-delay:-.15s; } .eq i:nth-child(5) { animation-delay:-.45s; background:#fff; }
@keyframes eq { 0%,100% { transform:scaleY(.3); } 50% { transform:scaleY(1); } }
/* fondos: foto relevante + degradado oscuro para que el texto se lea */
.hero-home .hero-bg .bg-videos { background-image:url(../videos/video-4.jpg); background-position:center 35%; filter:blur(6px) saturate(.9) brightness(.85); }
.hero-home .hero-bg .bg-presos { background-image:url(../img/hero-presos.jpg); }
.hero-home .hero-bg::after { background:
  linear-gradient(90deg, rgba(5,6,15,.94) 0%, rgba(5,6,15,.78) 38%, rgba(5,6,15,.45) 70%, rgba(5,6,15,.55) 100%),
  linear-gradient(180deg, rgba(5,6,15,.35) 0%, transparent 30%, transparent 72%, rgba(5,6,15,.95) 100%),
  linear-gradient(135deg, rgba(47,123,255,.16), rgba(255,45,75,.1)); }
.hero-home .stripes { opacity:.16; }
/* controles: flechas + puntos con barra de progreso (el avance automático lo marca la barra) */
.hero-ctrl { position:relative; z-index:3; display:flex; align-items:center; gap:14px; margin-top:22px; }
.hero-home .dots { margin:0; gap:8px; }
.hero-home .dots button { position:relative; width:42px; height:22px; background:none; overflow:visible; }
.hero-home .dots button::before { content:""; position:absolute; left:0; right:0; top:9px; height:4px; background:rgba(255,255,255,.22); border-radius:2px; transition:background .2s; }
.hero-home .dots button:hover::before { background:rgba(255,255,255,.45); }
.hero-home .dots button.on { background:none; box-shadow:none; }
.hero-home .dots button i { position:absolute; left:0; top:9px; height:4px; width:0; border-radius:2px; background:var(--red); box-shadow:0 0 10px var(--red); }
.hero-home .dots button.on i { animation:dotfill 6s linear forwards; }
.hero-home.paused .dots button.on i { animation-play-state:paused; }
@keyframes dotfill { from { width:0; } to { width:100%; } }
.hero-home .dots button:focus-visible, .hnav:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.hnav { width:36px; height:36px; padding:0 0 3px; border-radius:50%; border:1px solid var(--line); background:rgba(5,6,15,.5); color:#fff; font-size:22px; line-height:1; cursor:pointer; transition:.2s; }
.hnav:hover { border-color:var(--cyan); box-shadow:0 0 14px rgba(127,212,255,.5); }
@media (max-width:900px) {
  .hero-home .slide { grid-template-columns:minmax(0,1fr) 300px; gap:20px; }
  .vphone { width:120px; } .vphone.p1 { right:170px; } .vphone.p2 { right:90px; } .vphone.p3 { right:10px; }
  .vficha { right:20px; width:190px; } .vframe { right:0; } .vlist { right:0; } .vtarget { right:60px; }
}
@media (max-width:700px) {
  .hero-home .hero-inner { padding:40px 18px 26px; }
  .hero-home .slide { grid-template-columns:1fr; min-height:330px; align-items:end; }
  .hero-home .slide-vis { display:none; }
  .hero-home .slide-txt { padding-left:18px; }
  .hero-home .slide h1 { font-size:clamp(30px,9vw,40px); }
  .hero-home .slide p { font-size:17px; }
  .hero-home .slide a.btn { margin-top:20px; }
  /* en móvil la foto relevante va de fondo */
  .hero-home .hero-bg .bg-anexion { background-image:url(../img/articulo-1.jpg); background-position:center; }
  .hero-home .hero-bg .bg-presos { background-image:url(../img/presos/felix-navarro.jpg); background-position:center 20%; filter:grayscale(1) contrast(1.05); }
  .hero-home .hero-bg .bg-videos { filter:saturate(.9) brightness(.9); background-position:center 30%; }
  .hero-home .hero-bg::after { background: linear-gradient(180deg, rgba(5,6,15,.25) 0%, rgba(5,6,15,.55) 40%, rgba(5,6,15,.93) 78%, rgba(5,6,15,.98) 100%), linear-gradient(135deg, rgba(47,123,255,.16), rgba(255,45,75,.1)); }
}
@media (prefers-reduced-motion:reduce) {
  .hero-home .slide-txt > *, .hero-home .slide-vis { transform:none !important; }
  .vtarget, .eq i { animation:none; }
}
.hero-home .field { animation:none; opacity:.28; }
.hero-home .dots button { transition:width .3s ease; }
.hero-home .dots button.on { width:66px; }
.hero-home .dots button.on::before { background:rgba(255,255,255,.55); }
.vficha.back { opacity:.8; }
/* represores: marco de "identificación" (esquinas + línea de escaneo) en lugar de mira */
.vtarget { right:96px; width:150px; aspect-ratio:1; border:0; border-radius:0; box-shadow:none; opacity:.95; transform:translate(0,-86%); animation:none;
  background:
    linear-gradient(var(--red),var(--red)) left top/26px 3px no-repeat, linear-gradient(var(--red),var(--red)) left top/3px 26px no-repeat,
    linear-gradient(var(--red),var(--red)) right top/26px 3px no-repeat, linear-gradient(var(--red),var(--red)) right top/3px 26px no-repeat,
    linear-gradient(var(--red),var(--red)) left bottom/26px 3px no-repeat, linear-gradient(var(--red),var(--red)) left bottom/3px 26px no-repeat,
    linear-gradient(var(--red),var(--red)) right bottom/26px 3px no-repeat, linear-gradient(var(--red),var(--red)) right bottom/3px 26px no-repeat;
  filter:drop-shadow(0 0 6px rgba(255,45,75,.8)); }
.vtarget::after { content:""; position:absolute; left:6px; right:6px; top:10%; height:2px; background:rgba(127,212,255,.9); box-shadow:0 0 10px var(--cyan); animation:vscan 2.4s ease-in-out infinite alternate; }
@keyframes vscan { to { top:88%; } }
@media (max-width:900px) { .vtarget { right:40px; } }
@media (prefers-reduced-motion:reduce) { .vtarget::after { animation:none; } }
