
:root{
  --void:#08090D;
  --panel:#0F1117;
  --panel-2:#161923;
  --panel-3:#1D2130;
  --ink:#EDEEF2;
  --ink-dim:#9DA2BD;
  --volt:#FF2E9C;        /* GPU — magenta neón */
  --volt-dim:#421030;
  --pulse:#22D3FF;        /* CPU — cian eléctrico */
  --pulse-dim:#0C2E3D;
  --violet:#9D4EFF;
  --danger:#FF3B5C;
  --ok:#4CE0A0;
  --line:rgba(237,238,242,0.09);
  --line-strong:rgba(237,238,242,0.18);
  --radius:2px;
}
/* ---------- barra tipo patrocinador de estadio ---------- */
.sponsor-ticker{
  width:100%; overflow:hidden;
  background:repeating-linear-gradient(135deg, #17131F, #17131F 12px, #1D1826 12px, #1D1826 24px);
  padding:11px 0;
  border-bottom:3px solid var(--volt);
  box-shadow:0 4px 24px rgba(255,46,156,.25);
}
.sponsor-track{
  display:flex; width:max-content;
  animation:ticker-scroll 28s linear infinite;
}
.sponsor-track span{
  font-family:'Luckiest Guy', 'Exo 2', sans-serif; font-weight:400; text-transform:uppercase;
  letter-spacing:.03em; font-size:19px; color:#FFD23D;
  -webkit-text-stroke:1.5px #0A0710; text-stroke:1.5px #0A0710;
  text-shadow:3px 3px 0 #0A0710;
  white-space:nowrap; padding:0 32px; border-right:2px solid rgba(255,255,255,.15);
}
.sponsor-track span:nth-child(3n+1){ color:#FFD23D; }
.sponsor-track span:nth-child(3n+2){ color:#FF7A3D; }
.sponsor-track span:nth-child(3n){ color:#FFFDF7; }
@keyframes ticker-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .sponsor-track{ animation:none; }
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--void);
  color:var(--ink);
  font-family:'Space Grotesk', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
.mono{ font-family:'JetBrains Mono', monospace; }
h1, h2, .section-title, .modal-title, .top-picks-title, .kicker, .modal-kicker, .modal-section-h{
  font-family:'Exo 2', 'Space Grotesk', sans-serif;
  letter-spacing:normal;
}
body, p, .sub, .sub-promise, .model-lead, td, .compare-verdict, .game-bottleneck, .modal-value-line{
  line-height:1.6;
}

/* ---------- fondo: rejilla de circuito + viñeta de arranque ---------- */
.scope-bg{
  position:fixed; inset:0; z-index:-2;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, black 30%, transparent 85%);
          mask-image: radial-gradient(ellipse 90% 55% at 50% 0%, black 30%, transparent 85%);
}
.scope-bg::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(560px 460px at 10% 0%, rgba(255,46,156,0.24), transparent 65%),
    radial-gradient(560px 460px at 90% 5%, rgba(34,211,255,0.22), transparent 65%),
    radial-gradient(700px 500px at 50% -10%, rgba(157,78,255,0.14), transparent 70%);
  filter: blur(6px);
}
.light-strip{
  position:fixed; top:0; width:3px; height:46vh; z-index:-1;
  opacity:0.5; filter:blur(2px);
  background:linear-gradient(180deg, currentColor, transparent);
}
.light-strip.l1{ left:6%;  color:var(--volt); }
.light-strip.l2{ left:11%; color:var(--pulse); height:32vh; opacity:.35; }
.light-strip.l3{ right:8%; color:var(--pulse); }
.light-strip.l4{ right:14%; color:var(--volt); height:30vh; opacity:.35; }

.wrap{ max-width:1080px; margin:0 auto; padding:0 24px; position:relative; }

/* ---------- marco HUD: esquinas de retícula ---------- */
.hud-frame{ position:relative; }
.hud-frame::before, .hud-frame::after{
  content:""; position:absolute; width:18px; height:18px;
  border-color:var(--line-strong); pointer-events:none;
}
.hud-frame::before{ top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; }
.hud-frame::after{ bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; }
.hud-frame:hover::before, .hud-frame:hover::after{ border-color:var(--volt); }

header.hero{ padding:76px 0 40px; }
.kicker{
  color:var(--ink-dim);
  font-size:13px;
  letter-spacing:.14em;
  margin:0 0 18px;
  max-width:50ch;
  display:flex; align-items:center; gap:10px;
}
.kicker::before{ content:""; width:22px; height:1px; background:var(--volt); display:inline-block; }
h1{
  font-size:clamp(42px, 7vw, 70px);
  line-height:0.96;
  margin:0 0 20px;
  font-weight:700;
  letter-spacing:-0.01em;
}
h1 span{ color:transparent; -webkit-background-clip:text; background-clip:text;
  background-image:linear-gradient(100deg, var(--volt), var(--pulse)); }
.sub{
  color:var(--ink-dim);
  font-size:17px;
  max-width:56ch;
  line-height:1.55;
  margin:0 0 14px;
}
.sub-promise{
  color:var(--ink); font-size:16px; font-weight:500;
  max-width:56ch; line-height:1.5; margin:0 0 28px;
  padding-left:14px; border-left:2px solid var(--pulse);
}

.hero-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.hero-btn{
  font-family:'Exo 2', sans-serif; font-size:14px; font-weight:600; letter-spacing:.02em; cursor:pointer;
  padding:13px 22px 13px 18px; border:1px solid var(--line-strong);
  background:var(--panel); color:var(--ink);
  clip-path:polygon(0 0, 100% 0, 100% 70%, 92% 100%, 0 100%);
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.hero-btn:hover{ transform:translateY(-1px); border-color:var(--ink-dim); }
.hero-btn.gpu{ background:var(--volt-dim); color:var(--volt); border-color:rgba(255,46,156,.3); }
.hero-btn.gpu:hover{ box-shadow:0 0 0 1px rgba(255,46,156,.4), 0 8px 24px rgba(255,46,156,.18); }
.hero-btn.cpu{ background:var(--pulse-dim); color:var(--pulse); border-color:rgba(34,211,255,.3); }
.hero-btn.cpu:hover{ box-shadow:0 0 0 1px rgba(34,211,255,.4), 0 8px 24px rgba(34,211,255,.18); }

.featured-compare{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--panel); border:1px dashed var(--line-strong);
  padding:14px 18px; margin-bottom:28px; cursor:pointer; font-size:14px;
}
.featured-compare:hover{ border-color:var(--volt); }
.featured-compare-cta{ color:var(--volt); font-weight:600; white-space:nowrap; font-family:'Exo 2',sans-serif; }

/* ---------- comparador ---------- */
.compare{
  background:var(--panel);
  border:1px solid var(--line);
  padding:30px 28px;
  position:relative;
}
.compare-row{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  gap:20px;
  align-items:center;
  margin-bottom:26px;
}
.compare-vs{
  color:var(--void); font-size:13px; font-weight:700; letter-spacing:.04em;
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--volt), var(--pulse));
  font-family:'Exo 2', sans-serif;
}
select{
  width:100%;
  background:var(--panel-2);
  color:var(--ink);
  border:1px solid var(--line-strong);
  padding:12px 14px;
  font-family:inherit;
  font-size:15px;
}
select:focus{ outline:none; border-color:var(--pulse); }

.ai-window{
  position:fixed; bottom:20px; left:20px; z-index:250;
  width:320px; min-width:260px; min-height:220px; max-width:92vw;
  resize:both; overflow:auto;
  background:var(--panel); border-radius:16px;
  border:3px solid var(--volt);
  animation:ai-rgb-border 5s linear infinite;
  padding:0 0 20px; box-shadow:0 24px 60px rgba(0,0,0,0.5);
}
@keyframes ai-rgb-border{
  0%{ border-color:#FF2E9C; }
  16%{ border-color:#FF7A3D; }
  33%{ border-color:#FFD23D; }
  50%{ border-color:#4CE0A0; }
  66%{ border-color:#22D3FF; }
  83%{ border-color:#9D4EFF; }
  100%{ border-color:#FF2E9C; }
}
.ai-window.minimized{ display:none; }
.ai-window-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px 12px; border-bottom:1px solid var(--line); margin-bottom:16px;
  cursor:move; border-radius:13px 13px 0 0;
}
.ai-minimize{
  background:var(--panel-2); border:1px solid var(--line-strong); color:var(--ink-dim);
  width:28px; height:28px; border-radius:8px; cursor:pointer; font-size:14px; line-height:1;
}
.ai-minimize:hover{ color:var(--ink); border-color:var(--pulse); }
.ai-box-label{ font-family:'Exo 2', sans-serif; font-weight:700; font-size:15px; margin:0; }
.ai-form{ display:flex; gap:10px; flex-wrap:wrap; padding:0 20px; }
.ai-tab{
  display:none; position:fixed; right:16px; bottom:16px; z-index:250;
  width:76px; height:76px; border-radius:20px;
  background:var(--panel); border:3px solid var(--volt); cursor:pointer;
  padding:6px; box-shadow:0 8px 24px rgba(0,0,0,0.4);
  animation:ai-rgb-border 5s linear infinite;
}
.ai-tab.show{ display:block; }
.robot-svg{ width:100%; height:100%; overflow:visible; }
.robot-arm{ transform-origin:73px 30px; animation:robot-wave 1.2s ease-in-out infinite; }
@keyframes robot-wave{
  0%, 100%{ transform:rotate(0deg); }
  50%{ transform:rotate(-24deg); }
}

.ai-resize-handle{
  position:absolute; right:4px; bottom:4px; width:20px; height:20px;
  cursor:nwse-resize; color:var(--ink-dim); pointer-events:none;
}
.ai-input{
  flex:1; min-width:150px; background:var(--panel-2); color:var(--ink);
  border:1px solid var(--line-strong); border-radius:8px; padding:12px 14px; font-family:inherit; font-size:14px;
}
.ai-input:focus{ outline:none; border-color:var(--pulse); }
.ai-answer{ margin:14px 20px 0; font-size:14px; line-height:1.6; color:var(--ink); }
.ai-answer:empty{ display:none; }
.ai-answer a{ color:var(--volt); font-weight:600; }
@media (max-width:640px){
  .ai-window{ bottom:10px; left:10px; width:88vw; }
}

.autocomplete{ position:relative; width:100%; }
.ac-input{
  width:100%; background:var(--panel-2); color:var(--ink);
  border:1px solid var(--line-strong); padding:12px 14px;
  font-family:inherit; font-size:15px;
}
.ac-input:focus{ outline:none; border-color:var(--pulse); }
.ac-list{
  display:none; position:absolute; top:100%; left:0; right:0; z-index:50;
  max-height:260px; overflow-y:auto; margin-top:4px;
  background:var(--panel); border:1px solid var(--line-strong);
  box-shadow:0 12px 30px rgba(0,0,0,0.4);
}
.ac-list.open{ display:block; }
.ac-item{ padding:10px 14px; font-size:14px; cursor:pointer; }
.ac-item:hover, .ac-item.active{ background:var(--panel-2); color:var(--volt); }
.ac-empty{ padding:10px 14px; font-size:13px; color:var(--ink-dim); }
.bar-track{
  height:36px;
  background:var(--panel-2);
  overflow:hidden;
  position:relative;
  margin-bottom:8px;
  border:1px solid var(--line);
}
.bar-fill{
  height:100%;
  display:flex;
  align-items:center;
  padding-left:12px;
  font-size:13px;
  font-weight:700;
  font-family:'JetBrains Mono', monospace;
  transition:width .6s cubic-bezier(.16,1,.3,1);
  white-space:nowrap;
}
.bar-fill.gpu{ background:linear-gradient(90deg, var(--volt-dim), var(--volt)); color:#1a1204;}
.bar-fill.cpu{ background:linear-gradient(90deg, var(--pulse-dim), var(--pulse)); color:#03181c;}
.compare-meta{
  display:flex; justify-content:space-between;
  color:var(--ink-dim); font-size:13px; margin-bottom:22px; font-family:'JetBrains Mono', monospace;
}
.compare-verdict{
  font-size:14.5px;
  color:var(--ink);
  border-top:1px solid var(--line);
  padding-top:18px;
}
.compare-verdict b{ color:var(--volt); }
.compare-verdict.cpu-mode b{ color:var(--pulse); }

/* ---------- top picks ---------- */
.top-picks{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:36px; }
.top-picks-col{ background:var(--panel); border:1px solid var(--line); padding:20px; }
.top-picks-title{ font-size:14px; font-weight:600; margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line); letter-spacing:.03em; }
.top-picks-title.gpu{ color:var(--volt); }
.top-picks-title.cpu{ color:var(--pulse); }
.top-picks-col ol{ list-style:none; margin:0; padding:0; counter-reset:pick; }
.top-picks-col li{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); cursor:pointer; font-size:13.5px; }
.top-picks-col li:last-child{ border-bottom:none; }
.top-picks-col li:hover{ color:var(--ink); padding-left:4px; }
.top-picks-rank{ counter-increment:pick; font-family:'JetBrains Mono', monospace; color:var(--ink-dim); font-size:12px; width:16px; flex-shrink:0; }
.top-picks-rank::before{ content:counter(pick); }
.top-picks-name{ flex:1; }
.top-picks-value{ font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--ink-dim); white-space:nowrap; }
@media (max-width:640px){ .top-picks{ grid-template-columns:1fr; } }

/* ---------- ¿puede mi pc mover este juego? ---------- */
.game-check{ margin:56px 0 40px; }
.game-check-form{ display:flex; flex-wrap:wrap; gap:10px; margin:24px 0; }
.game-check-form select{ flex:1; min-width:160px; }
.game-check-form .hero-btn{ flex:0 0 auto; }
.game-result{ background:var(--panel); border:1px solid var(--line); padding:24px; margin-top:8px; }
.game-result-row{ display:flex; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; font-family:'JetBrains Mono', monospace; }
.game-result-row:last-of-type{ border-bottom:none; }
.game-badge{ font-weight:700; padding:4px 12px; font-size:12.5px; font-family:'Exo 2',sans-serif; letter-spacing:.03em; }
.game-badge.green{ background:rgba(76,224,160,0.14); color:var(--ok); }
.game-badge.yellow{ background:rgba(255,46,156,0.14); color:var(--volt); }
.game-badge.red{ background:rgba(255,59,92,0.14); color:var(--danger); }
.game-bottleneck{ font-size:13px; color:var(--ink-dim); margin-top:14px; }
.game-upgrade{ margin-top:16px; padding-top:16px; border-top:1px solid var(--line); font-size:14px; }
.game-upgrade a{ color:var(--volt); font-weight:600; }

/* ---------- franja de estadísticas ---------- */
.stats-strip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  margin-top:56px; overflow:hidden;
}
.stat-box{ background:var(--panel); padding:18px 20px; }
.stat-box .stat-val{ font-family:'JetBrains Mono', monospace; font-size:22px; font-weight:700; display:block; margin-bottom:4px; }
.stat-box .stat-label{ font-size:12px; color:var(--ink-dim); }
.stat-box.gpu .stat-val{ color:var(--volt); }
.stat-box.cpu .stat-val{ color:var(--pulse); }
@media (max-width:640px){ .stats-strip{ grid-template-columns:repeat(2,1fr); } }

/* ---------- filtro de marca ---------- */
.brand-filter{ display:flex; gap:8px; margin:-8px 0 20px; flex-wrap:wrap; }
.brand-chip{
  font-family:'Exo 2', sans-serif; font-size:13px; font-weight:600; cursor:pointer;
  padding:7px 16px; border:1px solid var(--line-strong); background:var(--panel); color:var(--ink-dim);
}
.brand-chip.active{ color:var(--void); border-color:transparent; }
.brand-chip[data-brand="nvidia"].active{ background:#76B900; }
.brand-chip[data-brand="amd"].active{ background:#ED1C24; color:#fff; }
.brand-chip[data-brand="intel"].active{ background:#0071C5; color:#fff; }
.brand-chip[data-brand="all"].active{ background:var(--ink); }
.brand-dot{ display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; }

/* ---------- ventiladores por gama ---------- */
.fan-tiers{ margin-top:48px; }
.fan-row{ display:flex; gap:18px; flex-wrap:wrap; margin-top:20px; }
.fan-item{
  background:var(--panel); border:1px solid var(--line); cursor:pointer;
  padding:18px 14px 14px; display:flex; flex-direction:column; align-items:center; gap:10px;
  flex:1; min-width:130px; transition:border-color .15s ease, transform .15s ease;
}
.fan-item:hover{ transform:translateY(-3px); border-color:var(--line-strong); }
.fan-svg{ width:64px; height:64px; }
.fan-blades{ transform-origin:50px 50px; animation:fan-spin 2.4s linear infinite; }
.fan-item:hover .fan-blades{ animation-duration:.5s; }
@keyframes fan-spin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .fan-blades{ animation:none; } }
.fan-label{ font-family:'Exo 2', sans-serif; font-size:13.5px; letter-spacing:.03em; text-transform:uppercase; color:var(--ink); }
.fan-item:nth-child(1) .fan-label{ color:var(--volt); }
.fan-item:nth-child(2) .fan-label{ color:var(--violet); }
.fan-item:nth-child(3) .fan-label{ color:var(--pulse); }
.fan-item:nth-child(4) .fan-label{ color:var(--ok); }
.tier-badge{
  display:inline-flex; align-items:center; gap:10px; margin-top:16px;
  background:var(--panel-2); border:1px solid var(--line-strong); padding:8px 16px; font-size:13px;
}
.tier-badge button{ background:none; border:none; color:var(--ink-dim); cursor:pointer; font-size:13px; text-decoration:underline; }

/* ---------- calidad-precio: destacado ---------- */
.value-featured{
  padding:32px 28px; background:var(--panel);
  border:1px solid var(--line); position:relative; overflow:hidden;
}
.value-featured::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--volt), var(--pulse), var(--violet));
}
.value-featured .section-title{ font-size:30px; }
.value-winner{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
  background:linear-gradient(90deg, var(--volt-dim), var(--pulse-dim));
  border:1px solid var(--line-strong); padding:18px 22px; margin:20px 0 28px;
}
.value-winner .vw-name{ font-family:'Exo 2', sans-serif; font-size:20px; font-weight:700; }
.value-winner .vw-tag{ font-size:12px; color:var(--ink-dim); display:block; margin-bottom:2px; }
.value-winner .vw-stat{ font-family:'JetBrains Mono', monospace; font-size:22px; font-weight:700; color:var(--volt); }
.value-table{ width:100%; border-collapse:collapse; margin-top:20px; }
.value-table th{ text-align:left; font-size:11.5px; color:var(--ink-dim); letter-spacing:.05em; padding:0 10px 10px; border-bottom:1px solid var(--line-strong); }
.value-table th.num, .value-table td.num{ text-align:right; }
.value-table td{ padding:12px 10px; font-size:14px; border-bottom:1px solid var(--line); cursor:pointer; }
.value-table tr:hover td{ background:rgba(255,255,255,0.02); color:var(--ink); }
.value-table td:first-child{ color:var(--ink-dim); font-family:'JetBrains Mono', monospace; }
.value-table .vt-pts{ color:var(--volt); font-weight:700; font-family:'JetBrains Mono', monospace; }

th.sortable{ cursor:pointer; user-select:none; }
th.sortable:hover{ color:var(--ink); }
th.sortable .sort-arrow{ font-size:10px; margin-left:4px; opacity:0.6; }

/* tabs + controls */
.controls{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:64px 0 20px; }
.tabs{ display:flex; gap:4px; background:var(--panel); padding:4px; border:1px solid var(--line); }
.tab{
  padding:9px 18px; font-size:14px; cursor:pointer;
  color:var(--ink-dim); font-family:'Exo 2',sans-serif; font-weight:600; letter-spacing:.02em;
  background:transparent; border:none;
}
.tab.active.gpu{ background:var(--volt-dim); color:var(--volt); }
.tab.active.cpu{ background:var(--pulse-dim); color:var(--pulse); }
.search{
  flex:1; min-width:180px;
  background:var(--panel); border:1px solid var(--line-strong); color:var(--ink);
  padding:10px 14px; font-family:inherit; font-size:14px;
}
.search:focus{ outline:none; border-color:var(--pulse); }
.sort{
  background:var(--panel); border:1px solid var(--line-strong); color:var(--ink-dim);
  padding:10px 14px; font-family:inherit; font-size:14px;
}

/* ---------- tabla ---------- */
table{ width:100%; border-collapse:collapse; margin-bottom:12px; }
thead th{ text-align:left; font-weight:600; font-size:11.5px; color:var(--ink-dim); letter-spacing:.06em; padding:0 10px 10px; border-bottom:1px solid var(--line-strong); font-family:'Exo 2',sans-serif; }
th.num, td.num{ text-align:right; }
tbody tr{ border-bottom:1px solid var(--line); cursor:pointer; }
tbody tr:hover{ background:rgba(255,255,255,0.02); }
td{ padding:16px 10px; font-size:14px; vertical-align:middle; }
td.rank{ color:var(--ink-dim); width:34px; }
td.name{ font-weight:500; }
td.score-cell{ width:220px; }
.score-bar-track{ height:8px; background:var(--panel-2); overflow:hidden; margin-bottom:5px; border:1px solid var(--line); }
.score-bar-fill{ height:100%; }
.score-bar-fill.gpu{ background:linear-gradient(90deg, var(--volt-dim), var(--volt)); }
.score-bar-fill.cpu{ background:linear-gradient(90deg, var(--pulse-dim), var(--pulse)); }
.score-num{ font-size:12px; color:var(--ink-dim); font-family:'JetBrains Mono', monospace; }
td.price{ white-space:nowrap; }
td.actions{ white-space:nowrap; text-align:right; }
.buy{
  display:inline-block; font-size:12px; font-weight:700; text-decoration:none;
  padding:8px 14px; margin-left:6px; border:1px solid var(--line-strong);
  color:var(--ink); font-family:'Exo 2',sans-serif; letter-spacing:.02em;
  clip-path:polygon(0 0, 100% 0, 100% 65%, 90% 100%, 0 100%);
}
.buy.amazon:hover{ border-color:#FF9900; color:#FF9900; }
.real-dot{ color:var(--ok); font-size:11px; }
.real-badge{ color:var(--ok); font-size:11px; font-weight:500; margin-left:6px; text-transform:none; }
.real-note{ font-size:12.5px; color:var(--ink-dim); background:var(--panel-2); padding:10px 12px; margin:-14px 0 24px; border-left:2px solid var(--ok); }

/* ---------- modal ---------- */
.modal-overlay{
  position:fixed; inset:0; z-index:100;
  background:rgba(4,5,8,0.82);
  display:none; align-items:flex-start; justify-content:center;
  padding:60px 20px; overflow-y:auto;
}
.modal-overlay.open{ display:flex; }
.modal-box{ background:var(--panel); border:1px solid var(--line-strong); max-width:620px; width:100%; padding:32px; position:relative; }
.modal-close{ position:absolute; top:18px; right:18px; background:var(--panel-2); border:1px solid var(--line-strong); color:var(--ink-dim); width:30px; height:30px; cursor:pointer; font-size:14px; }
.modal-close:hover{ color:var(--ink); }
.modal-kicker{ color:var(--ink-dim); font-size:12px; letter-spacing:.1em; margin:0 0 6px; }
.brand-icon{ width:100%; max-width:220px; height:auto; display:block; margin:0 0 18px; }
.modal-title{ font-size:28px; margin:0 0 22px; padding-right:30px; }
.modal-stats{ display:flex; gap:26px; flex-wrap:wrap; margin-bottom:30px; }
.modal-stat-label{ display:block; color:var(--ink-dim); font-size:12px; margin-bottom:4px; }
.modal-stat-val{ font-size:17px; font-weight:700; font-family:'JetBrains Mono', monospace; }
.modal-section-h{ font-size:13px; color:var(--ink-dim); font-weight:600; margin:0 0 12px; text-transform:uppercase; letter-spacing:.06em; }
.price-chart{ width:100%; height:auto; display:block; margin-bottom:8px; }
.modal-value-line{ font-size:14px; line-height:1.6; margin:0 0 10px; }
.modal-value-line .mono{ color:var(--ink); font-weight:600; }
.value-bar-track{ height:8px; background:var(--panel-2); overflow:hidden; margin-bottom:28px; border:1px solid var(--line); }
.value-bar-fill{ height:100%; }
.modal-actions{ display:flex; gap:8px; }
.modal-actions .buy{ margin-left:0; font-size:13px; padding:10px 16px; }

/* ---------- calidad-precio ---------- */
.value-section{ margin:56px 0 40px; }
.section-title{ font-size:27px; margin:0 0 6px; }
.section-sub{ color:var(--ink-dim); font-size:14px; max-width:60ch; margin:0 0 26px; line-height:1.5; }
.scatter-chart{ width:100%; height:auto; display:block; background:var(--panel); border:1px solid var(--line); }
.scatter-dot{ cursor:pointer; transition:opacity .15s; }
.scatter-dot:hover{ opacity:1 !important; stroke:var(--ink); stroke-width:1.5; }
.top-value{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.value-chip{ background:var(--panel); border:1px solid var(--line-strong); padding:8px 16px; font-size:13px; cursor:pointer; display:flex; gap:8px; align-items:center; font-family:'JetBrains Mono', monospace; }
.value-chip:hover{ border-color:var(--ink-dim); }
.value-chip .rank{ color:var(--ink-dim); font-size:12px; }

/* ---------- huecos de anuncio ---------- */
.ad-slot{ margin:40px 0; min-height:100px; display:flex; align-items:center; justify-content:center; background:var(--panel); border:1px dashed var(--line-strong); position:relative; }
.ad-slot::before{ content:"Publicidad"; position:absolute; top:6px; left:10px; font-size:10px; letter-spacing:.06em; color:var(--ink-dim); text-transform:uppercase; }
.ad-slot ins.adsbygoogle{ width:100%; display:none; }
.ad-slot .ad-placeholder{ font-size:12px; color:var(--ink-dim); padding:20px; text-align:center; }
body.ads-consented .ad-slot ins.adsbygoogle{ display:block; }
body.ads-consented .ad-slot .ad-placeholder{ display:none; }

/* ---------- cookies ---------- */
.cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:200;
  max-width:640px; margin:0 auto;
  background:var(--panel); border:1px solid var(--line-strong);
  padding:18px 20px; display:none; gap:14px; align-items:center; flex-wrap:wrap;
  box-shadow:0 10px 40px rgba(0,0,0,0.5);
}
.cookie-banner.show{ display:flex; }
.cookie-banner p{ margin:0; font-size:13px; color:var(--ink-dim); flex:1; min-width:220px; line-height:1.5; }
.cookie-banner a{ color:var(--ink); }
.cookie-actions{ display:flex; gap:8px; }
.cookie-btn{ font-family:'Exo 2',sans-serif; font-size:13px; font-weight:700; padding:9px 16px; cursor:pointer; border:1px solid var(--line-strong); }
.cookie-btn.reject{ background:transparent; color:var(--ink-dim); }
.cookie-btn.accept{ background:var(--volt); color:#1a1204; border-color:var(--volt); }

footer{ margin-top:60px; padding:32px 0 60px; border-top:1px solid var(--line); color:var(--ink-dim); font-size:12.5px; line-height:1.7; }
footer strong{ color:var(--ink); }

/* ---------- asistente de ayuda flotante ---------- */
.help-widget{ position:fixed; left:20px; bottom:20px; z-index:300; }
.help-bubble{
  font-family:'Exo 2', sans-serif; font-weight:700; font-size:14px; cursor:pointer;
  background:var(--panel); color:var(--ink); border:1px solid var(--line-strong);
  padding:12px 18px; box-shadow:0 8px 24px rgba(0,0,0,0.35);
}
.help-bubble:hover{ border-color:var(--pulse); }
.help-panel{
  display:none; flex-direction:column;
  position:absolute; left:0; bottom:56px; width:320px; max-height:440px;
  background:var(--panel); border:1px solid var(--line-strong);
  box-shadow:0 20px 50px rgba(0,0,0,0.45);
}
.help-panel.open{ display:flex; }
.help-panel-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 16px; border-bottom:1px solid var(--line);
  font-family:'Exo 2', sans-serif; font-weight:700; font-size:14px;
}
.help-close{ background:none; border:none; color:var(--ink-dim); cursor:pointer; font-size:14px; }
.help-messages{ flex:1; overflow-y:auto; padding:14px 16px; display:flex; flex-direction:column; gap:10px; max-height:280px; }
.help-msg{ margin:0; font-size:13.5px; line-height:1.5; padding:9px 12px; max-width:88%; }
.help-msg a{ color:var(--pulse); }
.help-msg-bot{ background:var(--panel-2); color:var(--ink); align-self:flex-start; }
.help-msg-user{ background:var(--volt-dim); color:var(--ink); align-self:flex-end; }
.help-form{ display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--line); }
.help-input{ flex:1; background:var(--panel-2); border:1px solid var(--line-strong); color:var(--ink); padding:9px 12px; font-family:inherit; font-size:13px; }
.help-input:focus{ outline:none; border-color:var(--pulse); }
.help-send{ background:var(--volt); color:#1a1204; border:none; padding:9px 14px; font-weight:700; cursor:pointer; font-family:'Exo 2', sans-serif; font-size:13px; }
@media (max-width:480px){
  .help-panel{ width:calc(100vw - 32px); left:-4px; }
}

@media (max-width:640px){
  .compare-row{ grid-template-columns:1fr; }
  .compare-vs{ margin:0 auto; }
  thead{ display:none; }
  table, tbody, tr, td{ display:block; width:100%; }
  tbody tr{ padding:14px 0; }
  td{ padding:3px 0; }
  td.score-cell{ width:auto; margin:8px 0; }
  td.actions{ text-align:left; margin-top:10px; }
  .buy{ margin-left:0; margin-right:6px; }
}
.model-lead{ color:var(--ink-dim); font-size:15px; line-height:1.5; }



/* ---------- extras específicos de fichas y comparaciones ---------- */




/* ---------- extras específicos de fichas y comparaciones ---------- */




/* ---------- extras específicos de fichas y comparaciones ---------- */




/* ---------- extras específicos de fichas y comparaciones ---------- */

.page-wrap{ padding-top:40px; padding-bottom:60px; }




.breadcrumb{ font-size:13px; color:var(--ink-dim); margin-bottom:32px; }




.breadcrumb a{ color:var(--ink-dim); text-decoration:none; }




.breadcrumb a:hover{ color:var(--ink); }




.breadcrumb span{ color:var(--ink); }




.model-hero{ margin-bottom:28px; max-width:640px; }




.model-hero .brand-icon{ max-width:180px; margin-bottom:20px; }




.model-hero h1{ font-size:clamp(32px,6vw,44px); margin:0 0 12px; }




.page-stats{ max-width:640px; }




.page-disclaimer{ color:var(--ink-dim); font-size:12.5px; line-height:1.6; max-width:640px; margin-top:40px; }




.page-footer{ margin-top:40px; padding-top:24px; border-top:1px solid var(--line); }




.page-footer a{ color:var(--ink-dim); font-size:14px; text-decoration:none; }




.page-footer a:hover{ color:var(--ink); }





/* ---------- páginas de comparación X vs Y ---------- */
.vs-table{ width:100%; border-collapse:collapse; margin:28px 0 40px; max-width:640px; }




.vs-table th, .vs-table td{ padding:12px 14px; border-bottom:1px solid var(--line); text-align:left; font-size:14px; }




.vs-table th{ color:var(--ink-dim); font-weight:500; font-size:13px; }




.vs-table td:first-child{ color:var(--ink-dim); width:40%; }




.winner-cell{ color:var(--volt); font-weight:600; }




.pros-cons{ display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:640px; margin-bottom:36px; }




.pros-title{ font-weight:600; margin:0 0 10px; }




.pros-cons ul, .alt-list{ list-style:none; margin:0; padding:0; }




.pros-cons li{ font-size:14px; padding:6px 0 6px 18px; position:relative; color:var(--ink-dim); }




.pros-cons li::before{ content:"+"; position:absolute; left:0; color:var(--volt); font-weight:700; }




.alt-list{ max-width:640px; margin-bottom:36px; }




.alt-list li{ font-size:14px; padding:8px 0; border-bottom:1px solid var(--line); }




.alt-list a{ color:var(--ink); text-decoration:none; font-weight:500; }




.alt-list a:hover{ color:var(--volt); }




  .pros-cons{ grid-template-columns:1fr; }




  .vs-table td:first-child{ width:auto; }

.pair-card{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  background:var(--panel-2); border:1px solid var(--line-strong); padding:16px 20px; margin-bottom:36px;
}

.pair-info{ display:flex; flex-direction:column; gap:4px; }

.pair-tag{ font-size:11.5px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.05em; }

.pair-name{ font-family:'Exo 2', sans-serif; font-weight:700; font-size:17px; }

.pair-stats{ font-size:12.5px; color:var(--ink-dim); }

.pair-actions{ display:flex; gap:6px; }


/* ---------- barra grande RGB de calidad-precio (fichas individuales) ---------- */
.rgb-value-bar{
  width:100%; height:38px; background:var(--panel-2); position:relative; overflow:hidden;
  border-bottom:1px solid var(--line-strong);
}

.rgb-value-fill{
  position:absolute; top:0; left:0; height:100%; width:0%;
  background:linear-gradient(90deg, #FF2E9C, #FF7A3D, #FFD23D, #4CE0A0, #22D3FF, #9D4EFF, #FF2E9C);
  background-size:300% 100%;
  transition:width 2.5s cubic-bezier(.16,1,.3,1);
  animation:rgb-value-shift 4s linear infinite;
}

.rgb-value-label{
  position:relative; z-index:1; display:flex; align-items:center; justify-content:center;
  height:100%; font-family:'Exo 2', sans-serif; font-weight:700; font-size:13px;
  color:#fff; text-shadow:0 1px 3px rgba(0,0,0,0.6); letter-spacing:.02em;
}
/* ---------- ventilador gigante de fondo (fichas individuales) ---------- */
.giant-fan-bg{
  position:fixed; top:50%; left:50%; z-index:-1;
  width:75vmin; height:75vmin; max-width:760px; max-height:760px;
  margin-top:calc(-1 * min(37.5vmin, 380px)); margin-left:calc(-1 * min(37.5vmin, 380px));
  opacity:0.05; pointer-events:none;
  transform-origin:50% 50%;
  animation:giant-fan-spin 40s linear infinite;
}
@keyframes giant-fan-spin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}
.giant-fan-svg{ width:100%; height:100%; overflow:visible; display:block; }
@media (prefers-reduced-motion: reduce){
  .giant-fan-bg{ animation:none; }
}
@media (max-width:900px){
  .giant-fan-bg{ opacity:0.04; }
}

/* ---------- capa editorial (veredicto, precios, nuevas secciones) ---------- */
.precio-comprobado{display:inline-block;font:600 .72rem/1.3 var(--font-mono);color:var(--ok);background:rgba(61,220,151,.1);border:1px solid rgba(61,220,151,.45);border-radius:3px;padding:1px 7px;margin-left:6px;vertical-align:middle}
.precio-estimado{display:inline-block;font:600 .72rem/1.3 var(--font-mono);color:var(--ink-dim);border:1px dashed var(--line-strong);border-radius:3px;padding:1px 7px;margin-left:6px;vertical-align:middle}
.veredicto{margin:18px 0 26px;padding:18px 22px;border:1px solid var(--line-strong);border-left:5px solid var(--ink-dim);background:var(--panel-2)}
.veredicto-kicker{margin:0 0 6px;font:700 .72rem var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.veredicto-chip{margin:0 0 8px;font:700 1.45rem/1.2 var(--font-heading)}
.veredicto-texto{margin:0 0 8px;line-height:1.55}.veredicto-fiab,.veredicto-nota{margin:4px 0 0;font-size:.82rem;color:var(--ink-dim)}
.v-excelente{border-left-color:#3DDC97}.v-excelente .veredicto-chip{color:#3DDC97}
.v-buena{border-left-color:#22D3FF}.v-buena .veredicto-chip{color:#22D3FF}
.v-condiciones{border-left-color:#F5B83D}.v-condiciones .veredicto-chip{color:#F5B83D}
.v-no{border-left-color:#FF5C6C}.v-no .veredicto-chip{color:#FF5C6C}
.para-quien{margin:6px 0 4px;padding-left:20px}.para-quien li{margin:3px 0}
.nota-editorial{margin:14px 0;padding:12px 16px;border-left:3px solid var(--pulse);background:rgba(34,211,255,.06);line-height:1.55}
.compra-box{margin:22px 0;padding:16px 20px;border:1px solid var(--line-strong);background:var(--panel-2)}
.compra-precio{margin:0 0 10px;font-weight:600}
.reportar{margin:18px 0 8px;font-size:.92rem}
.pie-independencia{margin:14px 0 0;font-size:.8rem;line-height:1.5;color:var(--ink-dim)}
.tabla-ed{width:100%;border-collapse:collapse;margin:12px 0 20px;font-size:.92rem}.tabla-ed th,.tabla-ed td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}.tabla-ed th{font:700 .72rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim)}
.tabla-ed td.num{text-align:right;font-family:var(--font-mono);white-space:nowrap}
.grid-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:16px 0 26px}
.tarjeta-ed{display:block;padding:16px 18px;border:1px solid var(--line-strong);background:var(--panel-2);color:inherit;text-decoration:none}
.tarjeta-ed:hover{border-color:var(--volt)}.tarjeta-ed b{display:block;margin-bottom:6px;font-size:1.02rem}.tarjeta-ed span{font-size:.88rem;color:var(--ink-dim);line-height:1.45}
.barra-ed{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:.88rem}.barra-ed i{display:block;height:14px;background:linear-gradient(90deg,var(--volt),var(--pulse));border-radius:2px}
.indice-pagina{margin:14px 0 22px;padding:12px 18px;border:1px solid var(--line);background:var(--panel-2)}.indice-pagina ol{margin:6px 0 0;padding-left:20px}
.ultima-act{margin:6px 0 18px;font-size:.88rem;color:var(--ink-dim)}
.ev-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:720px){.ev-cols{grid-template-columns:1fr}}

/* enlaces legibles en contenido editorial (fondo oscuro) */
.page-wrap .model-lead a,.page-wrap .tabla-ed a,.page-wrap .alt-list a,.page-wrap .peq a,.page-wrap .ultima-act a,.page-wrap .indice-pagina a,.page-wrap .reportar a,.page-wrap .nota-editorial a,.page-wrap .veredicto a,.page-wrap .byline a,.page-wrap .page-disclaimer a{color:var(--pulse);text-decoration:underline;text-decoration-color:rgba(34,211,255,.4);text-underline-offset:2px}
.page-wrap .tabla-ed a:hover,.page-wrap .alt-list a:hover,.page-wrap .model-lead a:hover{color:var(--volt)}
.page-wrap a.tarjeta-ed,.page-wrap a.buy{text-decoration:none}
.page-wrap .tabla-ed{background:transparent}
