/* public/css/b1-goblins.css — la banda de goblins, en todas las páginas públicas.
   Separada de estudio-b1.css porque la cargan también páginas sin hero B1. */
@keyframes b1-goblin-pop{0%{opacity:0;scale:.85}80%{opacity:1;scale:1.04}100%{opacity:1;scale:1}}
/* Escenario fuera del hero B1: se posiciona para la capa y la recorta,
   para que ningún goblin se salga a tapar el resto de la página. */
.b1-goblins-escenario{position:relative}
.b1-goblins-escenario>.b1-goblins{overflow:hidden}
.b1-goblins-pausa{position:absolute;right:12px;z-index:5;min-height:44px;padding:8px 12px;border:1px solid #635e51;background:#f1ece0;color:#4a463c;font:600 12px/1.2 Inter,Arial,sans-serif;cursor:pointer}
.b1-goblins-pausa:focus-visible{outline:3px solid #2b3685;outline-offset:3px}
.b1-goblins-pausa[hidden]{display:none}
/* ── Banda de goblins (public/js/b1-goblins.js) ──────────────────────────
   Capa dentro del hero: el recorte del hero los mantiene dentro. Solo los
   botones de cada goblin y la tarjeta de «pillado» reciben el puntero. */
.b1-goblins{position:absolute;inset:0;z-index:4;pointer-events:none}
.b1-goblin{position:absolute;width:48px;height:56px}
.b1-goblin[hidden]{display:none}
.b1-goblin-clip{position:absolute;inset:0;overflow:hidden}
.b1-goblin-btn{position:absolute;left:0;bottom:0;width:48px;height:56px;padding:0;border:0;background:none;cursor:pointer;pointer-events:none;transform:translateY(100%);transition:transform .25s steps(4,end)}
.b1-goblin-btn.b1-goblin-fuera{pointer-events:auto;transform:translateY(0)}
.b1-goblin-btn:focus-visible{outline:3px solid #2b3685;outline-offset:-3px}
.b1-goblin-btn img{display:block;width:48px;height:56px;image-rendering:pixelated}
.b1-goblin-lleva{position:absolute;left:50%;bottom:48px;translate:-50% 0;white-space:nowrap;padding:2px 6px;background:#fbf8f0;border:2px solid #15130f;color:#15130f;font:800 9px/1.3 Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.b1-goblin-lleva-letra{padding:0 6px;font:600 24px/1.1 var(--font-display,Georgia,serif);letter-spacing:0;text-transform:none}
.b1-goblin-lleva-img{padding:2px;line-height:0}
.b1-goblin-lleva-img img{width:30px;height:30px;object-fit:cover;image-rendering:pixelated}
.b1-goblin-bocata{position:absolute;left:50%;bottom:60px;translate:-50% 0;width:max-content;max-width:190px;padding:4px 8px;background:#fbf8f0;color:#15130f;border:2px solid #15130f;font:900 11px/1.25 Inter,Arial,sans-serif;letter-spacing:.02em;text-align:center;z-index:2;animation:b1-goblin-pop .22s steps(3,end) both}
.b1-goblin-bocata-alta{bottom:76px}
.b1-goblin-pillado{position:absolute;bottom:64px;width:250px;padding:12px 14px;background:#fbf8f0;color:#15130f;border:2px solid #15130f;box-shadow:5px 5px 0 #15130f;text-align:left;pointer-events:auto;z-index:3;animation:b1-goblin-pop .35s steps(5,end) both}
.b1-goblin-pillado-abajo{bottom:auto;top:64px}
.b1-goblin-pillado-eti{display:block;margin-bottom:4px;font:800 9px/1.4 Inter,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#ad2914}
.b1-goblin-pillado strong{display:block;margin-bottom:4px;font:600 20px/1.15 var(--font-display,Georgia,serif)}
.b1-goblin-pillado-txt{display:block;margin-bottom:10px;font-size:13px;line-height:1.45;color:#4a463c}
.b1-goblin-pillado-txt b{color:#15130f;letter-spacing:.06em}
.b1-goblin-pillado button{min-height:44px;padding:0 14px;background:#2b3685;color:#fff;border:2px solid #15130f;font:800 10px/1 Inter,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.b1-goblin-pillado button:focus-visible{outline:3px solid #ad2914;outline-offset:3px}
.b1-goblin-pillado-cola{position:absolute;bottom:-10px;width:16px;height:10px;background:#fbf8f0;border-right:2px solid #15130f;border-bottom:2px solid #15130f;transform:skewX(-30deg)}
.b1-goblin-pillado-abajo .b1-goblin-pillado-cola{bottom:auto;top:-10px;border-bottom:0;border-top:2px solid #15130f;transform:skewX(30deg)}
.b1-goblin-agujero,.b1-goblin-cofre,.b1-goblin-fuego,.b1-goblin-muslito{position:absolute;image-rendering:pixelated;pointer-events:none}
.b1-goblin-agujero{width:48px;height:15px;animation:b1-goblin-pop .2s steps(3,end) both}
.b1-goblin-cofre{width:54px;height:42px;animation:b1-goblin-pop .25s steps(4,end) both}
.b1-goblin-fuego{width:28px;height:32px}
.b1-goblin-muslito{width:24px;height:24px;z-index:2}
.b1-goblin-hueco{position:absolute;border:2px dashed rgba(21,19,15,.45);pointer-events:none}
.b1-chispa{position:absolute;z-index:3;pointer-events:none;animation:b1-chispa .55s steps(6,end) forwards}
@keyframes b1-chispa{from{transform:translate(0,0);opacity:1}to{transform:translate(var(--dx),var(--dy));opacity:0}}
/* Lo robado desaparece a la vista, no del árbol de accesibilidad. */
[data-b1-robado]{opacity:0!important;transition:none}
.b1-letra-robada{display:inline-block;opacity:0}

/* Cartel de madera. Entra y se balancea solo con los efectos activos: en
   pausa queda quieto y visible, nunca congelado a medio entrar. */
.b1-cartel{position:absolute;left:clamp(16px,3vw,48px);bottom:40px;z-index:3;width:clamp(200px,16vw,240px);padding:10px 10px 0;overflow:hidden;pointer-events:none;text-align:left}
.b1-cartel-balanceo{position:relative;transform-origin:50% 100%}
.b1-hero[data-b1-active="true"] .b1-cartel-sube{animation:b1-cartel-sube .7s steps(7,end) 2.4s both}
.b1-hero[data-b1-active="true"] .b1-cartel-balanceo{animation:b1-cartel-balanceo 3.2s steps(4,end) 3.1s infinite}
.b1-hero[data-b1-active="true"] .b1-cartel-brillo{animation:b1-cartel-brillo 2.4s steps(1,end) 3.3s infinite}
.b1-cartel-tabla{position:relative;z-index:1;padding:14px 18px 16px;background:repeating-linear-gradient(0deg,#7a5230 0 13px,#634125 13px 15px);box-shadow:inset 0 0 0 3px #2e1c0e,inset 0 0 0 6px #8e6238;clip-path:polygon(6px 0,calc(100% - 6px) 0,calc(100% - 6px) 3px,calc(100% - 3px) 3px,calc(100% - 3px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 3px) calc(100% - 6px),calc(100% - 3px) calc(100% - 3px),calc(100% - 6px) calc(100% - 3px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 3px),3px calc(100% - 3px),3px calc(100% - 6px),0 calc(100% - 6px),0 6px,3px 6px,3px 3px,6px 3px)}
.b1-cartel-tabla p{margin:0;text-align:center;font:900 13px/1.3 Inter,Arial,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#fbe7b0;text-shadow:2px 2px 0 #2e1c0e;text-wrap:balance}
.b1-cartel-clavo{position:absolute;width:4px;height:4px;background:#2e1c0e;box-shadow:1px 1px 0 #c9a36a}
.b1-cartel-clavo-tl{left:10px;top:10px}.b1-cartel-clavo-tr{right:10px;top:10px}.b1-cartel-clavo-bl{left:10px;bottom:10px}.b1-cartel-clavo-br{right:10px;bottom:10px}
.b1-cartel-brillo{position:absolute;right:22px;top:7px;width:6px;height:6px;background:#f2d15a;box-shadow:6px 0 0 #f2d15a,-6px 0 0 #f2d15a,0 6px 0 #f2d15a,0 -6px 0 #f2d15a;opacity:0}
.b1-cartel-postes{display:flex;justify-content:space-around;padding:0 22%}
.b1-cartel-postes span{display:block;width:12px;height:40px;background:linear-gradient(90deg,#8e6238 0 4px,#5b3a1e 4px 9px,#2e1c0e 9px 12px)}
@keyframes b1-cartel-sube{0%{transform:translateY(110%)}70%{transform:translateY(-6%)}100%{transform:translateY(0)}}
@keyframes b1-cartel-balanceo{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}
@keyframes b1-cartel-brillo{0%,80%,100%{opacity:0}85%,95%{opacity:1}}
@media(max-width:1180px){.b1-cartel{position:relative;left:auto;bottom:auto;width:min(320px,100%);margin:18px auto 0;padding:6px 6px 0}.b1-cartel-tabla{padding:8px 14px 10px}.b1-cartel-tabla p{font-size:11px}.b1-cartel-postes span{height:14px}}
@media(prefers-reduced-motion:reduce){.b1-goblin-btn{transition:none}.b1-goblin-bocata,.b1-goblin-pillado{animation:none}}

/* Chispas al pulsar botones y enlaces fuera del hero (las del hero van en su capa). */
.b1-chispas-pagina{position:fixed;inset:0;z-index:900;pointer-events:none}
.b1-chispas-pagina .b1-chispa{position:fixed}

/* En pausa, el hero congela sus animaciones a medio camino; una tarjeta
   congelada en su primer fotograma sería invisible. Aquí se quitan. */
.b1-goblins[data-animado="false"] *{animation:none!important;transition:none!important}
