/* ═════════════════════════════════════════════════════════════════
   PESCA · la orilla de noche
   ─────────────────────────────────────────────────────────────────
   Este juego se queda con la pantalla entera. No hay tarjeta, no hay
   panel compartido: hay un cielo, un agua y un pantalán de tablones.
   La paleta es agua fría (verdeazul profundo) con UN solo calor: el
   latón del carrete y la luz de la luna sobre el agua. Nada de oro.

   Sin degradados sobre texto, sin resplandores de color, sin cristal
   esmerilado, sin bordes dorados translúcidos.
   ════════════════════════════════════════════════════════════════ */

body.escena-pesca{
  --agua:#0b2b39;          /* agua lejana  */
  --agua-h:#05141d;        /* agua cercana */
  --luna:#cfe6ef;          /* la única luz */
  --laton:#b08243;         /* herrajes de la caña, un solo calor */
  --madera:#3a2c20;
  --madera-c:#5a4531;
}

/* ── el fondo de la escena: cielo bajo, sin estrellas de plantilla ── */
body.escena-pesca .escena-fondo{
  opacity:1;
  background:
    radial-gradient(ellipse 44% 34% at 50% 30%, rgba(207,230,239,.10), transparent 66%),
    radial-gradient(ellipse 130% 70% at 50% 118%, rgba(0,0,0,.92), transparent 62%),
    linear-gradient(180deg, #0a1a25 0%, #08151e 44%, #040c12 100%);
}
/* niebla baja: dos bandas quietas, no una animación de humo */
body.escena-pesca .escena-fondo::after{
  content:'';position:absolute;left:0;right:0;top:34%;height:26%;opacity:.5;
  background:linear-gradient(180deg, transparent, rgba(150,190,205,.05) 46%, transparent);
}
/* por si la página aún no monta .escena-fondo, el cuerpo ya es la orilla */
body.escena-pesca{
  background:
    radial-gradient(ellipse 44% 34% at 50% 30%, rgba(207,230,239,.09), transparent 66%),
    linear-gradient(180deg, #0a1a25 0%, #08151e 44%, #040c12 100%);
}

/* la escena manda sobre el marco compartido */
body.escena-pesca header,
body.escena-pesca .bonus,
body.escena-pesca .vineta,
body.escena-pesca #j-pesca > .sub,
body.escena-pesca #j-pesca .cabecera-juego h1{display:none}
body.escena-pesca #j-pesca .panel{background:none;border:none;box-shadow:none;padding:0}
body.escena-pesca #j-pesca .cabecera-juego{
  position:fixed;top:9px;left:14px;z-index:41;margin:0;padding:0}
body.escena-pesca #j-pesca .cabecera-juego::after{display:none}
body.escena-pesca #j-pesca .info-btn{position:static}
body.escena-pesca .env{min-height:100dvh;padding:0;max-width:none}

/* ══ ESTRUCTURA: tres franjas, siempre dentro de la ventana ══ */
#j-pesca .pz-orilla{
  position:relative;
  display:flex;flex-direction:column;
  height:100dvh;min-height:0;overflow:hidden;
  padding-top:40px;                       /* hueco de la barra mínima */
}

/* ── cielo y otra ribera ─────────────────────────────────────────── */
#j-pesca .pz-cielo{
  position:relative;flex:0 0 auto;height:clamp(52px,11vh,104px);overflow:hidden}
#j-pesca .pz-luna{
  position:absolute;left:50%;bottom:16px;width:44px;height:44px;border-radius:50%;
  transform:translateX(-50%);
  background:radial-gradient(circle at 40% 36%, #f2f8fb, #b9d2dc 58%, #7d99a6);
  opacity:.9}
/* la otra orilla: una silueta recortada, no un degradado */
#j-pesca .pz-ribera{
  position:absolute;left:-4%;right:-4%;bottom:0;height:26px;background:#050f16;
  clip-path:polygon(0 100%,0 62%,6% 48%,11% 60%,17% 38%,23% 56%,29% 44%,36% 58%,
    43% 34%,49% 52%,55% 40%,62% 58%,68% 42%,75% 60%,81% 46%,88% 58%,94% 44%,100% 60%,100% 100%)}
/* juncos delante de la ribera, a la izquierda */
#j-pesca .pz-juncos{
  position:absolute;left:4%;bottom:0;width:120px;height:34px;opacity:.85;
  background:
    linear-gradient(to top, #040d13 60%, transparent 60%) 0 0/100% 100% no-repeat;
  clip-path:polygon(2% 100%,4% 20%,6% 100%,10% 100%,13% 6%,16% 100%,21% 100%,23% 34%,
    26% 100%,33% 100%,36% 14%,39% 100%,46% 100%,48% 44%,51% 100%,58% 100%,61% 24%,
    64% 100%,72% 100%,74% 52%,77% 100%,86% 100%,88% 30%,91% 100%)}

/* ── el agua ─────────────────────────────────────────────────────── */
#j-pesca .lago{
  position:relative;flex:1 1 auto;min-height:132px;overflow:hidden;
  border:none;border-radius:0;margin:0;
  background:#061620;
  cursor:crosshair;
}
#j-pesca .lago canvas{display:block;width:100%;height:100%}
/* borde superior del agua: una línea de espuma finísima */
#j-pesca .lago::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;
  background:rgba(190,225,238,.22);z-index:2}

/* la pieza cobrada: sale del agua, no aparece */
#j-pesca .pique{
  position:absolute;left:50%;top:46%;z-index:4;
  font-size:clamp(38px,7.4vh,62px);line-height:1;
  transform:translate(-50%,26px) scale(.6);opacity:0;
  transition:none;pointer-events:none;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}
#j-pesca .pique.on{
  animation:pzSale .62s cubic-bezier(.16,1.02,.32,1) both}
@keyframes pzSale{
  0%  {opacity:0;transform:translate(-50%,34px) scale(.5) rotate(-14deg)}
  46% {opacity:1;transform:translate(-50%,-16px) scale(1.06) rotate(6deg)}
  70% {transform:translate(-50%,-4px) scale(.99) rotate(-3deg)}
  100%{opacity:1;transform:translate(-50%,-8px) scale(1) rotate(0)}
}

/* el aviso del medio segundo: aparece seco y se va seco */
#j-pesca .pz-aviso{
  position:absolute;left:50%;top:18%;transform:translateX(-50%);z-index:5;
  opacity:0;pointer-events:none}
#j-pesca .pz-aviso span{
  display:block;font-family:var(--mono);font-size:12px;letter-spacing:.32em;
  color:#0a1c24;background:var(--luna);padding:5px 12px 5px 14px;border-radius:2px}
#j-pesca .pz-aviso.on{animation:pzAviso .5s steps(1,end) both}
@keyframes pzAviso{
  0%,42%{opacity:1;transform:translateX(-50%) scale(1)}
  43%,58%{opacity:.35;transform:translateX(-50%) scale(1)}
  59%,100%{opacity:1;transform:translateX(-50%) scale(1)}
}
#j-pesca .pz-aviso.fuera{opacity:0;animation:none;transition:opacity .18s linear}

/* ── la caña: entra por la derecha, no está centrada ─────────────── */
#j-pesca .caña{
  position:absolute;right:0;bottom:0;width:52%;height:100%;z-index:3;
  pointer-events:none;font-size:0}
#j-pesca .pz-vara{
  position:absolute;right:-6%;bottom:-14%;width:100%;height:150%;
  transform-origin:88% 92%;
  transform:rotate(0deg);
  transition:transform .55s cubic-bezier(.3,.72,.2,1)}
#j-pesca .pz-tramo{
  position:absolute;right:8%;bottom:8%;width:78%;height:3px;border-radius:2px;
  transform-origin:100% 50%;transform:rotate(-34deg);
  background:linear-gradient(90deg,#15100c 0%,#2b2118 34%,#4a3826 100%)}
/* la punta: de aquí sale el hilo. El canvas lee su posición real. */
#j-pesca .pz-punta{
  position:absolute;right:85.4%;bottom:31.6%;width:2px;height:2px}
#j-pesca .pz-carrete{
  position:absolute;right:14%;bottom:2%;width:22px;height:22px;border-radius:50%;
  background:radial-gradient(circle at 36% 32%, #d9a95f, #8f6631 62%, #4d3617);
  border:1px solid #2a1d0d}
#j-pesca .pz-carrete i{
  position:absolute;left:50%;top:50%;width:2px;height:11px;margin:-5.5px 0 0 -1px;
  background:#3a2913;border-radius:1px;transform-origin:50% 50%}
#j-pesca .pz-corcho{
  position:absolute;right:2%;bottom:-2%;width:30px;height:15px;border-radius:3px;
  background:linear-gradient(180deg,#4a3826,#2a1e12);border:1px solid #17100a}

/* los tres gestos de la caña */
#j-pesca .caña.pz-lanza .pz-vara{
  transform:rotate(-19deg);transition:transform .34s cubic-bezier(.2,.9,.25,1)}
#j-pesca .caña.pz-espera .pz-vara{
  transform:rotate(-4deg);transition:transform .7s cubic-bezier(.3,.7,.2,1)}
#j-pesca .caña.pz-clava .pz-vara{
  transform:rotate(-26deg);transition:transform .13s cubic-bezier(.2,1.4,.4,1)}
#j-pesca .caña.pz-flojo .pz-vara{
  transform:rotate(2deg);transition:transform .5s cubic-bezier(.4,0,.6,1)}
#j-pesca .caña.pz-carga .pz-carrete i{animation:pzGira .55s linear infinite}
@keyframes pzGira{to{transform:rotate(360deg)}}

/* ── el pantalán ─────────────────────────────────────────────────── */
#j-pesca .pz-muelle{
  position:relative;flex:0 0 auto;z-index:6;
  padding:10px clamp(10px,3vw,26px) max(10px,env(safe-area-inset-bottom));
  background:
    repeating-linear-gradient(90deg,
      rgba(0,0,0,.34) 0 1px, transparent 1px 74px),
    linear-gradient(180deg,#20180f 0%,#160f09 100%);
  border-top:2px solid #0a0704;
  box-shadow:0 -14px 34px rgba(0,0,0,.6)}
/* vetas de la madera */
#j-pesca .pz-muelle::before{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(180deg,
    rgba(255,255,255,.018) 0 1px, transparent 1px 6px)}

#j-pesca .pz-tablon{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:clamp(8px,2vw,20px);flex-wrap:nowrap}
#j-pesca .pz-lado{display:flex;flex-direction:column;gap:5px;min-width:0}
#j-pesca .pz-lado-der{align-items:flex-end;text-align:right}
#j-pesca .pz-lab{
  font-family:var(--mono);font-size:9px;letter-spacing:.28em;color:#8b7a63}

#j-pesca .apuesta{margin:0;gap:5px}
#j-pesca .chip{
  min-width:44px;height:28px;padding:0 9px;border-radius:3px;
  background:#120c07;border:1px solid #3a2c1c;color:#9c8a72;
  font-family:var(--mono);font-size:11px;box-shadow:none}
#j-pesca .chip:hover{background:#1a120a;color:#c8b596;border-color:#5a4531}
#j-pesca .chip.on{
  background:#0a1c24;border-color:#4d7f92;color:var(--luna)}

/* el mando: un botón de madera clavado al tablón, no una píldora */
#j-pesca .pz-lanzar{
  flex:0 1 auto;cursor:pointer;font-family:var(--ui);color:#eaf4f8;
  padding:9px 22px;border-radius:3px;
  background:linear-gradient(180deg,#1b4356 0%,#12303e 100%);
  border:1px solid #2f6478;
  box-shadow:inset 0 1px 0 rgba(207,230,239,.14), 0 3px 0 #071820;
  transition:transform .1s var(--sal,ease), box-shadow .1s}
#j-pesca .pz-lanzar-t{
  display:block;font-size:12px;font-weight:600;letter-spacing:.18em}
#j-pesca .pz-lanzar-s{
  display:block;font-size:9.5px;letter-spacing:.06em;color:#87a9b6;margin-top:2px}
#j-pesca .pz-lanzar:hover:not(:disabled){background:linear-gradient(180deg,#22536a,#153a4a)}
#j-pesca .pz-lanzar:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 0 #071820}
#j-pesca .pz-lanzar:disabled{opacity:.5;cursor:default}
/* mientras se espera, el botón deja de gritar */
#j-pesca .pz-lanzar.pz-quieto .pz-lanzar-t{color:#7f9aa6}

#j-pesca .pz-reflejo b{
  display:block;font-family:var(--mono);font-size:15px;font-weight:600;color:var(--luna);
  font-variant-numeric:tabular-nums;line-height:1.1}
#j-pesca .pz-reflejo i{
  display:block;font-style:normal;font-size:8.5px;letter-spacing:.06em;color:#6e6152;margin-top:2px}
#j-pesca .pz-reflejo.pz-tarde b{color:#c98f6a}

/* el parte */
#j-pesca .res{margin-top:8px;min-height:40px;text-align:center}
#j-pesca .res .big{font-size:19px;font-weight:600;letter-spacing:.02em}
#j-pesca .res .small{
  font-size:11.5px;color:#9aa8ae;margin-top:2px;
  font-family:var(--mono);font-variant-numeric:tabular-nums}

/* chapas de latón clavadas en el tablón */
#j-pesca .miMarca{margin-top:8px;gap:6px}
#j-pesca .mm{
  min-width:74px;padding:5px 10px;border-radius:2px;
  background:#140d07;border:1px solid #3a2c1c;box-shadow:none}
#j-pesca .mm .v{
  font-family:var(--mono);font-size:13px;color:var(--laton);
  font-variant-numeric:tabular-nums}
#j-pesca .mm .l{font-size:8px;letter-spacing:.1em;color:#6e6152;margin-top:1px}

/* ── alturas cortas: Discord da 543px y todo tiene que caber ─────── */
@media(max-height:620px){
  #j-pesca .pz-cielo{height:44px}
  #j-pesca .pz-luna{width:34px;height:34px;bottom:10px}
  #j-pesca .lago{min-height:110px}
  #j-pesca .pz-muelle{padding:8px 12px 8px}
  #j-pesca .res{margin-top:6px;min-height:34px}
  #j-pesca .res .big{font-size:16px}
  #j-pesca .miMarca{margin-top:6px}
  #j-pesca .mm{padding:4px 8px;min-width:64px}
  #j-pesca .mm .v{font-size:12px}
  #j-pesca .pz-lanzar{padding:7px 16px}
}
@media(max-height:500px){
  #j-pesca .pz-cielo{display:none}
  #j-pesca .miMarca{display:none}
  #j-pesca .pz-lanzar-s{display:none}
}

/* ── pantallas estrechas: el pantalán se apila ───────────────────── */
@media(max-width:560px){
  #j-pesca .pz-tablon{flex-wrap:wrap;justify-content:center;gap:8px}
  #j-pesca .pz-lado,#j-pesca .pz-lado-der{align-items:center;text-align:center;flex:1 1 40%}
  #j-pesca .pz-lanzar{order:3;flex:1 1 100%}
  #j-pesca .caña{width:74%}
}

@media(prefers-reduced-motion:reduce){
  #j-pesca .pique.on{animation-duration:.01ms}
  #j-pesca .pz-aviso.on{animation:none;opacity:1}
  #j-pesca .caña .pz-vara{transition-duration:.01ms}
}
