/* Desactiva la bomba: bomba de dibujos hecha con HTML/CSS. Sin box-shadow; solo se animan
   transform y opacity (temblor, chispa, botón pulsado, cables cortados). */
.bomba { background: #E9EEF7; }
.bo-centro { position: relative; flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; }
.bo-caja { position: relative; width: 36rem; display: flex; flex-direction: column; align-items: center; }
.bo-caja--tiembla { animation: bo-tiembla .5s linear; }
@keyframes bo-tiembla {
  0%, 100% { transform: translateX(0); } 15% { transform: translateX(-1rem) rotate(-1.5deg); } 30% { transform: translateX(.9rem) rotate(1.5deg); }
  45% { transform: translateX(-.7rem) rotate(-1deg); } 60% { transform: translateX(.5rem); } 80% { transform: translateX(-.25rem); }
}
.bo-caja--boom .bo-cuerpo { opacity: .35; transition: opacity .4s; }
.bo-caja--boom .bo-chispa, .bo-caja--hecha .bo-chispa { opacity: 0; animation: none; }

/* Cartuchos con mecha detrás de la caja */
.bo-cartuchos { position: relative; height: 2.4rem; width: 14rem; display: flex; justify-content: center; gap: .3rem; align-items: flex-end; margin-bottom: -.6rem; }
.bo-cartuchos i { width: 3.4rem; height: 2.4rem; background: #D9412F; border-radius: .6rem .6rem 0 0; border: .15rem solid #8E2318; border-bottom: 0; box-sizing: border-box; }
.bo-cartuchos i:nth-child(2) { height: 2.9rem; }
.bo-mecha { position: absolute; left: 50%; top: -1.6rem; width: 2.4rem; height: 1.8rem; border: .3rem solid #6B4A2E; border-color: #6B4A2E transparent transparent #6B4A2E;
  border-radius: 1.6rem 0 0 0; box-sizing: border-box; }
.bo-chispa { position: absolute; left: calc(50% + 1.4rem); top: -2.8rem; font-size: 2rem; line-height: 1; animation: bo-chispa .35s ease-in-out infinite alternate; }
@keyframes bo-chispa { from { transform: scale(.8) rotate(-10deg); opacity: .7; } to { transform: scale(1.15) rotate(10deg); opacity: 1; } }

/* Caja de la bomba */
.bo-cuerpo { position: relative; width: 100%; background: #2B2D42; border-radius: 1.6rem; padding: .8rem 1.2rem .9rem; box-sizing: border-box; border: .2rem solid #15161F; }
.bo-franja { height: .8rem; border-radius: .4rem; margin-bottom: .5rem;
  background: repeating-linear-gradient(-45deg, #F5C400 0 .8rem, #1F1F1F .8rem 1.6rem); }
.bo-arriba { display: flex; align-items: center; justify-content: space-between; margin-bottom: .6rem; }
.bo-pantallita { background: #120D0D; border: .2rem solid #4A4D63; border-radius: .7rem; padding: .1rem 1rem; min-width: 7rem; text-align: center; }
.bo-reloj { font-family: 'Courier New', monospace; font-size: 2.6rem; font-weight: 700; color: #FF4A3D; line-height: 1.1; letter-spacing: .1em; }
.bo-fallos { display: flex; align-items: center; gap: .5rem; }
.bo-fallos__t { color: #C9CCE0; font-size: 1rem; margin-right: .3rem; }
.bo-luz { width: 2rem; height: 2rem; border-radius: 50%; background: #4A4D63; border: .15rem solid #15161F; display: inline-block; }
.bo-luz--on { background: #FF3B30; }
.bo-modulo { background: #C9CED9; border-radius: 1rem; border: .2rem solid #8D93A3; padding: .7rem 1rem; box-sizing: border-box; min-height: 14rem; }

/* Cables */
.bo-modulo--cables { display: flex; flex-direction: column; justify-content: center; gap: .4rem; }
.bo-fila { display: flex; align-items: center; gap: .4rem; height: 1.85rem; }
.bo-modulo--n3 .bo-fila, .bo-modulo--n4 .bo-fila { height: 2.6rem; }
.bo-num { width: 1.8rem; font-size: 1.4rem; text-align: center; color: #2B2D42; }
.bo-borne { width: 1.2rem; height: 1.6rem; background: #8D93A3; border: .12rem solid #5C6273; border-radius: .3rem; box-sizing: border-box; flex: none; }
.bo-cable { flex: 1; display: flex; height: 1.1rem; }
.bo-mitad { flex: 1; height: 100%; box-sizing: border-box; transition: transform .3s var(--tg-ease); }
.bo-mitad:first-child { border-radius: .5rem 0 0 .5rem; transform-origin: 0 50%; }
.bo-mitad:last-child { border-radius: 0 .5rem .5rem 0; transform-origin: 100% 50%; }
.bo-fila--blanco .bo-mitad { border: .12rem solid #8D93A3; }
.bo-fila--cortado .bo-mitad:first-child { transform: rotate(9deg) scaleX(.85); }
.bo-fila--cortado .bo-mitad:last-child { transform: rotate(-9deg) scaleX(.85); }
.bo-fila--cortado .bo-num { text-decoration: line-through; opacity: .5; }

/* Botón */
.bo-modulo--boton { display: flex; align-items: center; justify-content: center; gap: 2.5rem; }
.bo-boton { width: 12rem; height: 12rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2.6rem; font-weight: 800;
  letter-spacing: .02em; border: .5rem solid #5C6273; box-sizing: border-box; transition: transform .15s; }
.bo-boton--blanco { border-color: #8D93A3; }
.bo-boton--pulsado { transform: scale(.88); }
.bo-tira { display: flex; flex-direction: column; align-items: center; gap: .4rem; }
.bo-tira__t { font-size: 1.1rem; color: #2B2D42; font-weight: var(--tg-w-strong); }
.bo-tira__luz { width: 2.4rem; height: 9rem; border-radius: 1.2rem; border: .2rem solid #2B2D42; box-sizing: border-box; display: block; }
.bo-tira__luz--on { animation: bo-latido .6s ease-in-out infinite alternate; }
@keyframes bo-latido { from { opacity: .75; } to { opacity: 1; } }

/* Teclado de dibujos */
.bo-modulo--simbolos { display: grid; grid-template-columns: repeat(2, 7rem); gap: .8rem 1.4rem; justify-content: center; align-content: center; }
.bo-tecla { position: relative; height: 6.4rem; background: #FFFDF6; border: .2rem solid #5C6273; border-radius: .9rem; display: flex; align-items: center; justify-content: center;
  font-size: 3.6rem; line-height: 1; box-sizing: border-box; }
.bo-tecla__led { position: absolute; top: .35rem; right: .35rem; width: .9rem; height: .9rem; border-radius: 50%; background: #B7BCC9; }
.bo-tecla--ok { border-color: #2F9E63; background: #E3F8EA; }
.bo-tecla--ok .bo-tecla__led { background: #2F9E63; }

/* Cartel encima de la bomba */
.bo-cartel { position: absolute; left: 50%; top: 50%; width: 30rem; margin: -6rem 0 0 -15rem; background: #fff; border-radius: 1.4rem; padding: 1rem 1.4rem; text-align: center;
  border: .25rem solid #2B2D42; box-sizing: border-box; }
.bo-cartel[hidden] { display: none; }
.bo-cartel__emo { font-size: 3.4rem; line-height: 1; display: block; }
.bo-cartel__grande { font-size: 2.2rem; font-weight: var(--tg-w-strong); letter-spacing: -.02em; line-height: 1.1; margin-top: .3rem !important; }
.bo-cartel__grande .tg-personaje--linea { width: 2rem; height: 2rem; vertical-align: -.4rem; }
.bo-cartel__sub { font-size: 1.15rem; color: var(--tg-muted); margin-top: .4rem !important; }
.bo-cartel--bien { border-color: #2F9E63; background: #E3F8EA; }
.bo-cartel--boom { border-color: #D9412F; background: #FFF1E0; }

/* Columna de la derecha */
.bo-lado { width: 15rem; flex: none; display: flex; flex-direction: column; gap: .5rem; }
.bo-cuenta { font-size: 1.5rem; font-weight: var(--tg-w-strong); }
.bo-iconos { display: flex; gap: .25rem; font-size: 1.9rem; line-height: 1; }
.bo-icono { opacity: .5; }
.bo-icono--hecho { opacity: 1; }
.bo-icono--ahora { opacity: 1; transform: scale(1.15); }
.bo-roles { display: flex; flex-direction: column; gap: .4rem; }
.bo-rol__t { font-size: 1.1rem; font-weight: var(--tg-w-strong); color: #4A4D63; margin-top: .4rem !important; }
/* Con muchos jugadores, el manual se enseña solo con las caras (sin nombres) */
.bo-caras { display: flex; flex-wrap: wrap; gap: .4rem; }
.bo-caras .cl-ficha { width: 2.6rem; height: 2.6rem; }
