/* =====================================================================
   ARCADE — shell de presentación compartido por todos los juegos
   ---------------------------------------------------------------------
   Cada juego declara su propio acento y el shell entero se tiñe con él.
   En una página de juego basta con:

     <body class="arcade" style="--accent:#F5B841; --accent-2:#8A6A3A;
                                 --tint:#1E1A2A; --glow:rgba(245,184,65,.14)">

   Así Teklas se ve ámbar, otro juego se ve cian, y ninguno se ve como una
   plantilla del otro. La estructura se mantiene; el color no.
   ===================================================================== */

:root{
  --bg:#FBF4E4;          /* fondo de la página, detrás del marco */
  --shell:#FFFDF7;       /* el marco */
  --card:#FFFDF7;        /* tarjetas */
  --line:#101438;        /* borde: en Wenkora el borde es tinta, siempre */
  --line-2:#101438;
  --paper:#101438;       /* tinta = texto */
  --dim:rgba(16,20,56,.58);
  --ok:#12B5A5;
  --bad:#C43A22;
  --hot:#F0533C;
  --live:#12B5A5;        /* punto de "jugando ahora" */

  --accent:#FFC72C;      /* RELLENO. Lo sobrescribe cada juego */
  --accent-2:#1B33C8;    /* TEXTO Y BORDES del acento: versión legible sobre crema */
  --tint:#FFFDF7;
  --glow:rgba(255,199,44,.45);

  --fd:Archivo,Helvetica,Arial,sans-serif;
  --fm:'Space Mono',ui-monospace,Menlo,monospace;
  --bw:2px;    /* grosor de borde de la marca */
  --sh:5px 6px 0 0 var(--line);   /* sombra dura, sin desenfoque */
  --rs:10px;   /* radio chico */
  --rm:18px;   /* radio tarjeta */
  --rl:26px;   /* radio marco */
  --gap:14px;
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
/* El atributo hidden lo pisa cualquier regla de autor con display (.champ, .contrib
   son display:flex). Sin esto, un bloque "oculto" queda como una barra vacía. */
[hidden]{display:none!important}
html,body{background:var(--bg);color:var(--paper);font-family:var(--fd);font-size:16px;line-height:1.5}
body.arcade{padding:0;overscroll-behavior:none}
.wrap{padding:clamp(14px,3vw,30px) clamp(12px,4vw,40px) clamp(28px,5vw,56px)}
img{display:block}

/* ===== marco exterior ===== */
.frame{
  position:relative;max-width:1180px;margin:0 auto;
  background:linear-gradient(160deg,var(--tint),var(--shell) 55%);
  border:var(--bw) solid var(--line);border-radius:var(--rl);
  padding:clamp(10px,1.6vw,16px);
  display:block;
  box-shadow:9px 10px 0 0 var(--line);
}
@media (max-width:820px){ .frame{border-radius:var(--rm)} }

/* ===== columna principal ===== */
.main{display:flex;flex-direction:column;gap:var(--gap);min-width:0}

/* header */
.bar{
  background:var(--shell);border:var(--bw) solid var(--line);border-radius:var(--rm);
  padding:14px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap
}
.hello{font-family:var(--fd);font-weight:600;font-size:clamp(1.05rem,2.4vw,1.5rem);
  letter-spacing:-.02em;color:var(--dim);white-space:nowrap}
.hello b{color:var(--paper);font-weight:800}
.bar .grow{flex:1;min-width:20px}
.seek{
  display:flex;align-items:center;gap:9px;background:var(--card);border:var(--bw) solid var(--line);
  border-radius:999px;padding:9px 15px;min-width:180px;flex:0 1 300px
}
.seek input{flex:1;background:transparent;border:0;outline:0;color:var(--paper);
  font-family:var(--fm);font-size:.82rem;min-width:0}
.seek svg{width:15px;height:15px;fill:none;stroke:var(--dim);stroke-width:1.8}
.ico{
  width:40px;height:40px;border-radius:12px;background:var(--card);border:var(--bw) solid var(--line);
  color:var(--dim);display:grid;place-items:center;cursor:pointer;transition:.16s;
  font-size:.78rem;text-decoration:none;flex:none
}
.ico:hover{background:var(--accent);color:var(--paper)}
.ico.hot{color:var(--accent-2)}
.ico b{font-family:var(--fd);font-weight:800}

/* ===== fila de presencia (en la referencia son avatares; aquí, países) ===== */
.presence{
  display:flex;gap:var(--gap);align-items:stretch;flex-wrap:wrap
}
.pgroup{
  background:var(--shell);border:var(--bw) solid var(--line);border-radius:var(--rm);
  padding:11px 14px;display:flex;align-items:center;gap:9px;flex:1 1 280px;min-width:0;
  overflow-x:auto;scrollbar-width:none
}
.pgroup::-webkit-scrollbar{display:none}
.pgroup .lbl{
  font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  writing-mode:vertical-rl;transform:rotate(180deg);flex:none;max-height:38px
}
.pill{position:relative;flex:none;cursor:pointer}
.pill img,.pill .fb{width:38px;height:26px;border-radius:7px;object-fit:cover;
  border:var(--bw) solid var(--line-2);transition:.18s}
.pill:hover img{transform:translateY(-2px);box-shadow:2px 3px 0 0 var(--line)}
.pill .dot{
  position:absolute;right:-2px;top:-3px;width:9px;height:9px;border-radius:50%;
  background:var(--live);border:2px solid var(--shell)
}
.pill.lead img{box-shadow:0 0 0 3px var(--accent)}
.pill.mine img{box-shadow:0 0 0 3px var(--accent-2)}
.pill .n{position:absolute;left:50%;top:-24px;transform:translateX(-50%);
  background:var(--paper);color:var(--bg);font-size:.62rem;padding:3px 7px;border-radius:6px;
  white-space:nowrap;opacity:0;pointer-events:none;transition:.15s}
.pill:hover .n{opacity:1}
.pcount{
  font-family:var(--fd);font-weight:800;font-size:.9rem;color:var(--accent-2);
  padding:0 4px;flex:none
}
.pcount small{display:block;font-family:var(--fm);font-weight:400;font-size:.56rem;
  color:var(--dim);letter-spacing:.1em;text-transform:uppercase}

/* ===== rejilla hero: 2/3 + 1/3, como la referencia ===== */
.split{display:grid;grid-template-columns:1fr 320px;gap:var(--gap);align-items:start}
@media (max-width:900px){ .split{grid-template-columns:1fr} }

.card{background:var(--card);border:var(--bw) solid var(--line);border-radius:var(--rm);overflow:hidden;box-shadow:var(--sh)}
.card.pad{padding:16px 18px}
.card h3{font-family:var(--fd);font-weight:600;font-size:.8rem;color:var(--dim);
  letter-spacing:.03em;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card h3 .more{margin-left:auto;font-family:var(--fm);font-size:.66rem;color:var(--dim);
  text-decoration:none;cursor:pointer}
.card h3 .more:hover{color:var(--accent-2)}

/* etiquetas del hero */
.tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.tag-pill{
  display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:var(--paper);border:var(--bw) solid var(--line);
  font-size:.64rem;font-weight:600;padding:5px 10px;border-radius:7px;letter-spacing:.02em
}
.tag-pill.ghost{background:transparent;color:var(--paper)}
.tag-pill.ghost b{color:var(--paper);font-weight:600}

/* filas laterales tipo "ediciones del juego" */
.rows{display:flex;flex-direction:column;gap:var(--gap)}
.row-item{
  display:flex;align-items:center;gap:12px;background:var(--card);border:var(--bw) solid var(--line);
  border-radius:var(--rm);padding:12px 14px;cursor:pointer;transition:.16s;box-shadow:var(--sh);
  text-align:left;width:100%;font-family:var(--fm);color:var(--paper);text-decoration:none
}
.row-item:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 0 var(--accent)}
.row-item .thumb{
  width:46px;height:46px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:var(--accent);border:var(--bw) solid var(--line);font-size:1.2rem
}
.row-item .thumb img{width:100%;height:100%;object-fit:cover;border-radius:11px}
.row-item .t{min-width:0;flex:1}
.row-item .t b{display:block;font-family:var(--fd);font-weight:600;font-size:.92rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-item .t span{font-size:.68rem;color:var(--dim)}
.row-item .arw{color:var(--dim);flex:none}
.row-item.on{background:linear-gradient(90deg,var(--glow),transparent)}
.row-item[disabled]{opacity:.5;cursor:default}
.row-item[disabled]:hover{transform:none;box-shadow:none}

/* ===== tarjetas de actividad ===== */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
@media (max-width:700px){ .strip{grid-template-columns:1fr 1fr} }
.act{
  position:relative;border-radius:var(--rm);border:var(--bw) solid var(--line);overflow:hidden;
  min-height:132px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:13px;background:var(--card);isolation:isolate;box-shadow:var(--sh)
}
.act::before{
  content:'';position:absolute;inset:0;z-index:-1;
  background:radial-gradient(110% 85% at 12% 0%,var(--glow),transparent 72%);opacity:.7
}
.act .k{
  position:absolute;top:11px;left:11px;font-family:var(--fd);font-weight:800;
  font-size:1.4rem;color:var(--accent-2);line-height:1
}
.act .k small{display:block;font-family:var(--fm);font-weight:400;font-size:.58rem;
  color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-top:3px}
.act b{font-family:var(--fd);font-weight:600;font-size:.86rem;display:block}
.act span{font-size:.66rem;color:var(--dim);display:block;margin-top:2px}
.act .flag{position:absolute;top:11px;right:11px;width:24px;height:16px;border-radius:3px}

/* ===== panel de estadísticas ===== */
.stats{
  position:relative;border-radius:var(--rm);border:var(--bw) solid var(--line);overflow:hidden;
  background:var(--card);padding:58px 18px 18px;min-height:150px;box-shadow:var(--sh);
  display:flex;flex-direction:column;justify-content:flex-end;gap:14px;isolation:isolate
}
.stats::before{
  content:'';position:absolute;inset:0;z-index:-1;
  background:radial-gradient(90% 110% at 88% 0%,var(--glow),transparent 62%)
}
.hilite{
  position:absolute;top:16px;right:16px;border:var(--bw) solid var(--line);border-radius:11px;
  padding:7px 12px;background:var(--accent);text-align:right
}
.hilite small{display:block;font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--paper);opacity:.7}
.hilite b{font-family:var(--fd);font-weight:800;font-size:1.05rem;color:var(--paper);
  font-variant-numeric:tabular-nums}
.dials{display:flex;gap:22px;flex-wrap:wrap}
.dial{text-align:center}
.dial .ring{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 auto 7px;
  background:conic-gradient(var(--accent) calc(var(--p,0)*1%),var(--bg) 0);box-shadow:inset 0 0 0 var(--bw) var(--line);
  position:relative
}
.dial .ring::after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--card)}
.dial .ring em{position:relative;z-index:1;font-style:normal;font-size:1.05rem}
.dial b{display:block;font-family:var(--fd);font-weight:800;font-size:1.05rem;
  font-variant-numeric:tabular-nums}
.dial span{font-size:.6rem;color:var(--dim)}

/* utilitarios */
.fb{display:inline-flex;align-items:center;justify-content:center;background:var(--bg);
  box-shadow:inset 0 0 0 1px var(--line);color:var(--paper);font-size:.55rem;font-weight:600;border-radius:7px}
.empty{color:var(--dim);font-size:.78rem;padding:18px 0;text-align:center}
.btn{
  font-family:var(--fd);font-weight:800;font-size:1rem;background:var(--accent);color:var(--paper);
  border:var(--bw) solid var(--line);border-radius:999px;padding:13px 28px;cursor:pointer;
  box-shadow:5px 6px 0 0 var(--line);transition:transform .12s,box-shadow .12s;text-decoration:none;display:inline-block;text-align:center
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 8px 0 0 var(--line)}
.btn:disabled{background:var(--card);color:var(--dim);cursor:default;
  box-shadow:2px 3px 0 0 var(--line);transform:none}
.btn:disabled:hover{transform:none;box-shadow:2px 3px 0 0 var(--line)}
.btn:active{transform:translate(2px,3px);box-shadow:2px 2px 0 0 var(--line)}
.btn.ghost{background:var(--card);color:var(--paper);
  font-family:var(--fm);font-size:.78rem;padding:11px 18px;letter-spacing:.02em}
.btn.ghost:hover{background:var(--accent)}
.btn.sm{background:transparent;color:var(--paper);border:var(--bw) solid var(--line);
  font-family:var(--fm);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  padding:9px 15px;box-shadow:3px 4px 0 0 var(--line)}
.btn.sm:hover{background:var(--card);transform:translate(-1px,-1px);box-shadow:5px 6px 0 0 var(--line)}
:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
