/* ═══ COMBATS DANS LE BANDEAU (10.10.2026, js/182) ════════════════════════════════════════════════
   L'arène est posée par js/182 dans la scène du Rex (.rxa-scene), sur sa ligne de sol, et mesurée
   en px ; --rxc-u = la hauteur à l'écran d'un combattant. Tout laisse passer les clics. */

.rxc-arene { position: absolute; z-index: 3; pointer-events: none; overflow: visible; line-height: 0; }
.rxc-arene > * { pointer-events: none; user-select: none; -webkit-user-drag: none; }
/* Sélecteur renforcé : « .rxa-scene img { position: relative } » (js/117) remettrait les sprites
   dans le flux, au-dessus de la ligne de sol. */
.rxc-arene > img.rxc-sprite { position: absolute !important; left: 0; bottom: 0; top: auto; margin: 0; max-width: none; max-height: none;
  transform-origin: 50% 100%; will-change: transform; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .28)); }

/* FIGHT ! / K.O. ! : le même lettrage que le « BONUS ! » de la page de connexion. */
.rxc-arene > .rxc-titre { position: absolute; left: 0; bottom: 0; white-space: nowrap;
  font: 900 calc(var(--rxc-u, 120px) * .2)/1 "Arial Black", Impact, system-ui, sans-serif; letter-spacing: .04em;
  color: #FFE066; -webkit-text-stroke: 1.5px #7A1F00; text-shadow: 0 3px 0 #C2410C, 0 0 10px rgba(255, 200, 60, .5); }
.rxc-clignote { animation: rxcClignote .5s steps(2, end) infinite; }
@keyframes rxcClignote { 50% { opacity: .35; } }

/* L'éclat d'apparition et de disparition des combattants. */
.rxc-sprite.rxc-pouf { animation: rxcPouf .26s ease-out; }
@keyframes rxcPouf { 0% { opacity: .15; filter: brightness(2.6) drop-shadow(0 0 12px #fff); } 100% { opacity: 1; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .28)); } }

/* La morph ball : un halo orangé autour de la boule. */
.rxc-arene > img.rxc-sprite.rxc-halo { filter: drop-shadow(0 0 5px rgba(255, 170, 60, .85)) drop-shadow(0 4px 5px rgba(0, 0, 0, .3)); }
/* Samus mordue par le Metroid : elle clignote en rouge. */
.rxc-arene > img.rxc-sprite.rxc-aie { animation: rxcAie .13s steps(2, end) infinite; }
@keyframes rxcAie { 50% { filter: brightness(1.5) drop-shadow(0 0 7px rgba(255, 50, 50, .95)); } }

/* Starfox (11.10.2026) : l'ombre au sol et la traînée n'ont pas d'ombre portée ; la flamme du
   réacteur luit (halo cyan, lisible sur le bandeau bleu ciel du thème sombre comme sur le marine
   du thème clair : la flamme garde un bord bleu franc). */
.rxc-arene > img.rxc-sprite.rxc-plat { filter: none; }
.rxc-arene > img.rxc-sprite.rxc-lueur { filter: drop-shadow(0 0 3px rgba(150, 236, 255, .95)) drop-shadow(0 0 9px rgba(0, 150, 255, .65)); }

/* Samus contre Ridley (11.10.2026) : Ridley encaisse dans un éclair blanc ; le canon de Samus luit
   pendant qu'elle charge son rayon. */
.rxc-arene > img.rxc-sprite.rxc-flash { filter: brightness(2.6) saturate(.3) drop-shadow(0 0 8px rgba(255, 255, 255, .95)); }
.rxc-arene > img.rxc-sprite.rxc-charge { animation: rxcCharge .16s steps(2, end) infinite; }
@keyframes rxcCharge { 50% { filter: brightness(1.35) drop-shadow(0 0 7px rgba(255, 210, 80, .95)); } }

/* Tous les bandeaux (11.10.2026) : sur un bandeau de page, l'arène est posée dans le bandeau,
   DERRIÈRE son contenu (titres, boutons restent lisibles et cliquables), et coupée à ses bords.
   !important : « .rex-bandeau > *:not(.rex-bandeau-deco) { position: relative } » (css/70) est plus
   spécifique et remettrait l'arène dans le flux. Le mini Rex de js/149 et sa zone s'effacent le
   temps de la scène. */
.rxc-arene.rxc-arene-page { position: absolute !important; z-index: 0 !important; overflow: hidden; }
.opx-rex { transition: opacity .3s ease; }
.rxc-en-scene > .opx-rex { opacity: 0; }
/* Pendant une scène, le texte du bandeau garde un halo de la couleur du fond : il reste lisible
   même quand un personnage passe dessous (bandeau bleu ciel du thème sombre, marine du thème clair). */
html:not([data-theme="clair"]) .rxc-en-scene :is(h1, h2, h3, p, span, a, label, small, strong):not(.rxc-arene *) {
  text-shadow: 0 0 2px rgba(244, 251, 255, .95), 0 0 7px rgba(244, 251, 255, .85); }
html[data-theme="clair"] .rxc-en-scene :is(h1, h2, h3, p, span, a, label, small, strong):not(.rxc-arene *) {
  text-shadow: 0 1px 2px rgba(6, 20, 52, .9), 0 0 7px rgba(6, 20, 52, .7); }

/* Le Rex du bandeau pendant les combats : sorti par le bord, il reste caché, puis revient. */
img.dbx-hero-mascotte.rxc-absent { visibility: hidden !important; }
img.dbx-hero-mascotte.rxc-retour { animation: rxcRetour .42s ease-out !important; }
@keyframes rxcRetour { 0% { opacity: 0; filter: brightness(2.4) drop-shadow(0 0 16px #fff); } 100% { opacity: 1; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .28)); } }

@media (prefers-reduced-motion: reduce) {
  .rxc-arene { display: none; }
  img.dbx-hero-mascotte.rxc-absent { visibility: visible !important; }
  img.dbx-hero-mascotte.rxc-retour { animation: none !important; }
}
