/* Rebote, estilo neón (maqueta docs/diseno/maquetas/juegos/Rebote). Sin box-shadow ni
   filter: el brillo es una capa detrás del mismo color con poca opacidad. Fondos
   estáticos; palas, bola y estela solo cambian de transform y opacity. */
.rebote {
  background:
    repeating-linear-gradient(0deg, rgba(34,211,238,.07) 0 .0625rem, transparent .0625rem 1.875rem),
    repeating-linear-gradient(90deg, rgba(34,211,238,.07) 0 .0625rem, transparent .0625rem 1.875rem),
    radial-gradient(ellipse at 50% 45%, #121A3D 0%, #070B1F 70%);
  color: #fff;
}
.rebote-pista {
  position: absolute; left: 8.125rem; right: 8.125rem; top: 4.6875rem; bottom: 4.6875rem;
  background:
    repeating-linear-gradient(0deg, rgba(34,211,238,.12) 0 .0625rem, transparent .0625rem 2.1875rem),
    repeating-linear-gradient(90deg, rgba(34,211,238,.12) 0 .0625rem, transparent .0625rem 2.1875rem),
    rgba(7,11,31,.7);
}
.rebote-pista--sin-arriba { top: 1rem; }
.rebote-centro { position: absolute; left: 50%; top: 50%; width: 8.75rem; height: 8.75rem; margin: -4.375rem 0 0 -4.375rem; border-radius: var(--tg-r-pill); border: .09375rem solid rgba(34,211,238,.35); box-sizing: border-box; }
.rebote-linea { position: absolute; left: 50%; top: 0; bottom: 0; width: .09375rem; margin-left: -.046875rem; background: rgba(34,211,238,.25); }

/* Lados: del color del jugador o pared plateada */
.rebote-lado { position: absolute; --c: #C4C9E0; background: var(--c); border-radius: .09375rem; }
.rebote-lado::before { content: ""; position: absolute; inset: -.3125rem; border-radius: .34375rem; background: var(--c); opacity: .25; }
.rebote-lado:not(.rebote-lado--jugador) { --c: #C4C9E0 !important; }
.rebote-lado--abajo { left: 0; right: 0; bottom: -.0625rem; height: .1875rem; }
.rebote-lado--arriba { left: 0; right: 0; top: -.0625rem; height: .1875rem; }
.rebote-lado--izquierda { top: 0; bottom: 0; left: -.0625rem; width: .1875rem; }
.rebote-lado--derecha { top: 0; bottom: 0; right: -.0625rem; width: .1875rem; }
.rebote-texto-pared { position: absolute; left: 0; right: 0; top: .9375rem; text-align: center; font-size: 1rem; font-weight: var(--tg-w-medium); letter-spacing: .3em; color: #C4C9E0; opacity: .8; }

/* Palas y bola */
.rebote-pala { background: var(--c); border: .125rem solid rgba(255,255,255,.75); border-radius: var(--tg-r-pill); box-sizing: border-box; }
.rebote-pala::before { content: ""; position: absolute; inset: -.5rem; border-radius: var(--tg-r-pill); background: var(--c); opacity: .3; }
.rebote-pared { --c: #C4C9E0; border-color: #C4C9E0; }
.rebote-bola { background: #fff; border: .125rem solid #A5F3FC; border-radius: 50%; box-sizing: border-box; z-index: 2; }
.rebote-bola::before, .rebote-bola::after { content: ""; position: absolute; border-radius: 50%; background: #22D3EE; z-index: -1; }
.rebote-bola::before { inset: -.375rem; opacity: .35; }
.rebote-bola::after { inset: -.9rem; opacity: .18; }
.rebote-estela { position: absolute; left: 0; top: 0; border-radius: 50%; background: #22D3EE; will-change: transform; }
.rebote-estela--0 { width: .75rem; height: .75rem; margin: -.375rem 0 0 -.375rem; opacity: .45; }
.rebote-estela--1 { width: .5rem; height: .5rem; margin: -.25rem 0 0 -.25rem; opacity: .3; }
.rebote-estela--2 { width: .375rem; height: .375rem; margin: -.1875rem 0 0 -.1875rem; opacity: .18; }

/* Personajes fuera de la pista, en su lado */
.rebote-vidas { position: absolute; display: flex; flex-direction: column; align-items: center; gap: .25rem; }
.rebote-vidas-abajo { left: 50%; bottom: .375rem; width: 8rem; margin-left: -4rem; }
.rebote-vidas-arriba { left: 50%; top: .375rem; width: 8rem; margin-left: -4rem; }
.rebote-vidas-izquierda { left: 0; width: 8.125rem; top: 50%; margin-top: -2.25rem; }
.rebote-vidas-derecha { right: 0; width: 8.125rem; top: 50%; margin-top: -2.25rem; }
.rebote-vidas--fuera { opacity: .35; }
.rebote-avatar { width: 2.5rem; height: 2.5rem; box-sizing: border-box; border-radius: var(--tg-r-pill); border: .1875rem solid var(--c); background: #070B1F; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rebote-avatar svg { width: 2rem; height: 2rem; }
.rebote-avatar img.selfie { width: 100%; height: 100%; object-fit: cover; }
.rebote-nombre { font-size: 1.125rem; font-weight: var(--tg-w-medium); line-height: 1.2; color: #fff; white-space: nowrap; }
.rebote-nombre .tg-personaje--linea { width: 1rem; height: 1rem; }

/* Momentos: «¡Paradón!» (verde) y «¡Cuidado, X!» (rojo) */
.rebote-aviso {
  position: absolute; z-index: 3; height: 2.375rem; box-sizing: border-box; padding: 0 .8rem; border-radius: var(--tg-r-pill);
  background: #070B1F; border: .125rem solid; display: flex; align-items: center;
  font-size: 1.25rem; font-weight: var(--tg-w-strong); white-space: nowrap;
}
.rebote-aviso[hidden] { display: none; }
.rebote-aviso--parada { color: #2ecc71; border-color: #2ecc71; margin: -1.1875rem 0 0 -3.5rem; }
.rebote-aviso--cuidado { color: #FF8A8A; border-color: #FF4D4D; }
.rebote-aviso--cuidado.rebote-aviso--abajo { left: 50%; bottom: 4.75rem; margin-left: -6rem; }
.rebote-aviso--cuidado.rebote-aviso--arriba { left: 50%; top: 4.75rem; margin-left: -6rem; }
.rebote-aviso--cuidado.rebote-aviso--izquierda { left: .5rem; top: 50%; margin-top: 3rem; }
.rebote-aviso--cuidado.rebote-aviso--derecha { right: .5rem; top: 50%; margin-top: 3rem; }
