/* Kermés — noche de feria: ámbar de bombita sobre negro verdoso.
   El juego vive sobre un canvas a pantalla completa, así que la interfaz
   flota encima y todo lo que lleva texto necesita su propio fondo. */

:root{
  --noche:#07090c;
  --panel:rgba(7,8,13,.90);
  --borde:#2a2432;
  --borde-vivo:#4a3c2a;
  --ambar:#e8a33d;
  --ambar-claro:#ffd28a;
  --carpa:#a8323f;
  --carpa-claro:#d4636f;
  --verde:#6fa88a;
  --hueso:#e6ded0;
  --tenue:#8f8798;
  --tenue-2:#5d566a;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --mono:'IBM Plex Mono',ui-monospace,'SF Mono',Consolas,monospace;
}

*{box-sizing:border-box}

html,body{
  margin:0;height:100%;
  background:var(--noche);
  color:var(--hueso);
  font-family:var(--serif);
  font-size:18px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
}

#lienzo{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}

#ui{
  position:fixed;inset:0;z-index:1;
  overflow-y:auto;overscroll-behavior:contain;
  display:flex;flex-direction:column;
}

.pantalla{
  min-height:100%;
  display:flex;flex-direction:column;
  padding:0 0 26px;
  animation:aparece .55s ease both;
}
@keyframes aparece{from{opacity:0}to{opacity:1}}

/* ---------- barra superior ---------- */

.barra{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 22px;
  font-family:var(--mono);font-size:.72rem;
  background:linear-gradient(to bottom,rgba(5,6,10,.92),rgba(5,6,10,0));
  position:sticky;top:0;z-index:3;
}
.barra-izq{display:flex;align-items:center;gap:8px;color:var(--tenue)}
.luna-glifo{color:var(--ambar);font-size:1rem}
.luna-txt{letter-spacing:.06em}
.barra-der{display:flex;gap:8px}

/* ---------- panel de contenido ---------- */

.panel{
  margin:auto 0 0;
  padding:26px 64px 26px 34px;
  max-width:min(760px,86vw);
  background:
    linear-gradient(to right,var(--panel) 62%,rgba(7,8,13,.55) 84%,transparent),
    linear-gradient(to top,rgba(7,8,13,.55),transparent 55%);
}
.panel.encuentro{
  background:
    linear-gradient(to right,rgba(14,5,8,.94) 62%,rgba(14,5,8,.6) 84%,transparent),
    linear-gradient(to top,rgba(14,5,8,.6),transparent 55%);
}
.panel.final{margin-top:0;justify-content:flex-start}

.rotulo{margin-bottom:.9em}
.rotulo .arcano{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--ambar);margin:0 0 .45em;
}
.rotulo h1{
  font-size:2.1rem;font-weight:400;margin:0;letter-spacing:.01em;
  text-wrap:balance;text-shadow:0 2px 24px #000;
}

.prosa{max-width:60ch}
.prosa p{
  margin:0 0 .95em;text-wrap:pretty;
  animation:sube .7s ease both;
}
@keyframes sube{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.prosa p.sep{text-align:center;color:var(--tenue-2);letter-spacing:.5em;margin:1.6em 0}
.prosa em{color:var(--ambar-claro);font-style:italic}
.prosa strong{color:#f2ece2;font-weight:600}

.instruccion{
  font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ambar);margin:1.4em 0 .6em;
}
.fino{
  font-family:var(--mono);font-size:.74rem;line-height:1.7;
  color:var(--tenue);margin:.5em 0;
}
.fino strong{color:var(--hueso);font-weight:500}

/* ---------- portada ---------- */

.portada{
  margin:9vh auto auto;text-align:center;padding:0 22px;
  animation:sube 1.4s ease both;
}
.portada .arcano{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--tenue);margin:0 0 1em;
}
.titulo{
  font-size:clamp(3rem,11vw,6rem);font-weight:400;margin:0;
  letter-spacing:.02em;line-height:1;
  background:linear-gradient(180deg,#ffe6b4,var(--ambar) 55%,#8a6114);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 40px rgba(232,163,61,.28));
}
.bajada{
  color:var(--tenue);font-style:italic;font-size:1.05rem;
  margin:1.2em 0 0;
}
.portada + .acciones{justify-content:center;padding:0 22px 8vh;margin-top:auto}

/* ---------- botones ---------- */

.acciones{
  display:flex;flex-wrap:wrap;gap:11px;margin-top:1.6em;align-items:center;
}
.bt{
  font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;
  padding:11px 20px;border-radius:2px;
  border:1px solid var(--borde);
  background:rgba(9,10,16,.8);color:var(--hueso);
  cursor:pointer;
  transition:border-color .18s,color .18s,background .18s;
}
.bt:hover{border-color:var(--ambar);color:var(--ambar-claro)}
.bt:focus-visible{outline:2px solid var(--ambar);outline-offset:2px}
.bt-primario{
  border-color:var(--borde-vivo);color:var(--ambar-claro);
  background:linear-gradient(180deg,rgba(232,163,61,.14),rgba(232,163,61,.04));
}
.bt-primario:hover{background:rgba(232,163,61,.22)}
.bt-chico{padding:6px 12px;font-size:.68rem}

/* ---------- destinos del mapa ---------- */

.destinos{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:10px;margin:1.4em 0 .4em;max-width:960px;
}
.destino{
  display:flex;flex-direction:column;gap:3px;align-items:flex-start;
  text-align:left;padding:13px 16px;
  background:rgba(10,11,18,.8);
  border:1px solid var(--borde);border-radius:2px;
  color:var(--hueso);cursor:pointer;font-family:var(--serif);
  transition:border-color .18s,transform .18s,background .18s;
}
.destino:hover{border-color:var(--ambar);transform:translateY(-2px);background:rgba(232,163,61,.08)}
.destino:focus-visible{outline:2px solid var(--ambar);outline-offset:2px}
.destino-arcano{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ambar);
}
.destino-tit{font-size:1.12rem;line-height:1.2}
.destino-ya{
  font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;color:var(--tenue-2);
}
.destino.visitado{opacity:.62}
.destino.visitado:hover{opacity:1}

/* ---------- opciones de acción ---------- */

.opciones{display:grid;gap:9px;margin:1.1em 0 .3em;max-width:58ch}
.opcion{
  font-family:var(--serif);font-size:1.06rem;text-align:left;
  padding:13px 18px;
  background:rgba(10,11,18,.8);
  border:1px solid var(--borde);border-radius:2px;
  color:var(--hueso);cursor:pointer;
  transition:border-color .18s,transform .18s,background .18s;
}
.opcion:hover{border-color:var(--ambar);transform:translateX(4px);background:rgba(232,163,61,.08)}
.opcion:focus-visible{outline:2px solid var(--ambar);outline-offset:2px}

/* ---------- cartas ---------- */

.mano{display:flex;flex-wrap:wrap;gap:12px;margin:.9em 0 .2em}
.mano.bloqueada .carta{pointer-events:none}
.mano.bloqueada .carta:not(.jugada){opacity:.4;transition:opacity .3s}
.mano-vacia{color:var(--tenue);font-style:italic;margin:.6em 0}

.carta{
  width:96px;height:150px;flex-shrink:0;
  border-radius:5px;
  background:linear-gradient(165deg,#191423,#0a0810);
  border:1px solid #3d3348;
  box-shadow:0 10px 26px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.05);
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  padding:10px 7px;
  animation:reparte .7s ease both;
  transition:transform .26s cubic-bezier(.2,.8,.3,1),box-shadow .26s,border-color .26s;
}
@keyframes reparte{
  from{opacity:0;transform:translateY(70px) rotate(-6deg) scale(.86)}
  to{opacity:1;transform:none}
}
.carta .num{
  font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;color:var(--tenue-2);
}
.carta .glifo{
  font-size:2.2rem;line-height:1;color:var(--ambar);
  filter:drop-shadow(0 0 12px rgba(232,163,61,.5));
}
.carta .nom{font-size:.82rem;text-align:center;line-height:1.15}
.carta.invertida .glifo{
  transform:rotate(180deg);color:var(--carpa-claro);
  filter:drop-shadow(0 0 12px rgba(212,99,111,.5));
}
.carta.invertida .nom::after{content:' ⤾';color:var(--carpa-claro)}

.carta.jugable{cursor:pointer}
.carta.jugable:hover{
  transform:translateY(-16px) scale(1.05);
  border-color:var(--ambar);
  box-shadow:0 20px 44px rgba(0,0,0,.9),0 0 28px rgba(232,163,61,.3);
}
.carta.jugable:focus-visible{outline:2px solid var(--ambar);outline-offset:3px}
.carta.jugada{
  animation:none;
  transform:translateY(-160px) scale(1.3) rotateY(180deg);
  opacity:0;
  transition:transform .45s cubic-bezier(.3,.9,.3,1),opacity .45s;
}

.carta.dorso{
  background:
    repeating-linear-gradient(45deg,#151020 0 6px,#100c19 6px 12px);
  border-color:#3a2f28;
  justify-content:center;
}
.dorso-marca{font-size:1.7rem;color:rgba(200,160,90,.42)}
.carta.dorso.girando{
  transform:rotateY(90deg);
  transition:transform .34s ease-in;
}

/* ---------- tirada ---------- */

.tirada{
  display:flex;flex-wrap:wrap;gap:24px;margin:1.6em 0 .4em;
}
.tirada-caja{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:190px;
}
.tirada-pos{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ambar);margin:.3em 0 0;text-align:center;
}
.tirada-txt{
  margin:0;font-size:.94rem;line-height:1.45;text-align:center;
  color:var(--tenue);opacity:0;transition:opacity .7s;
}
.tirada-txt.visible{opacity:1}
.tirada-txt strong{color:var(--hueso);font-weight:600}

/* ---------- carta ganada ---------- */

.ganada{
  margin:1.3em 0 .2em;padding:14px 16px;
  border-left:2px solid var(--ambar);
  background:rgba(232,163,61,.05);
  max-width:58ch;
}
.ganada-tit{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ambar);margin:0 0 .5em;
}
.ganada-txt{margin:.7em 0 0;font-size:.96rem;color:var(--tenue)}
.ganada-txt strong{color:var(--hueso)}

/* ---------- resumen final ---------- */

.resumen{margin:1.6em 0 0;padding-top:1em;border-top:1px solid var(--borde)}

/* ---------- overlay ---------- */

.overlay{
  position:fixed;inset:0;z-index:20;
  background:rgba(3,4,7,.92);
  overflow-y:auto;padding:26px 16px;
  animation:aparece .25s ease both;
}
.overlay-caja{
  max-width:820px;margin:0 auto;
  background:rgba(9,10,16,.96);
  border:1px solid var(--borde);
  padding:26px 28px;
}

/* ---------- pantallas chicas ---------- */

@media (max-width:700px){
  html,body{font-size:17px}
  .barra{padding:11px 16px;font-size:.66rem}
  .luna-txt{display:none}
  .panel{padding:20px 18px 18px;max-width:none;
    background:linear-gradient(to top,var(--panel) 62%,rgba(7,8,13,.8) 86%,transparent)}
  .rotulo h1{font-size:1.6rem}
  .destinos{grid-template-columns:1fr}
  .carta{width:82px;height:128px}
  .carta .glifo{font-size:1.8rem}
  .carta .nom{font-size:.74rem}
  .tirada{gap:16px;justify-content:center}
  .tirada-caja{width:140px}
  .acciones .bt{flex:1 1 auto}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
