/* Aura polish — profil, sélection et classement. */

/* L'athlète reste le premier plan ; l'aura construit une scène derrière lui. */
.av-stage.has-fx{
  min-height:244px;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(ellipse 45% 42% at 50% 72%,color-mix(in srgb,var(--a1,var(--accent)) 19%,transparent),transparent 75%),
    linear-gradient(180deg,color-mix(in srgb,var(--a1,var(--accent)) 4%,transparent),transparent 58%);
}
.av-stage.has-fx::after{
  content:'';
  position:absolute;
  z-index:0;
  left:50%;
  bottom:3px;
  width:194px;
  height:26px;
  border-radius:50%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse,color-mix(in srgb,var(--a2,var(--accent-soft)) 38%,transparent),transparent 70%);
  filter:blur(7px);
  opacity:.75;
  pointer-events:none;
}
.av-stage.has-fx .av-compo{z-index:2;height:232px}
.av-stage.has-fx .av-compo .av-main{height:226px;filter:drop-shadow(0 13px 19px rgba(0,0,0,.82)) drop-shadow(0 0 22px color-mix(in srgb,var(--a1,var(--accent)) 19%,transparent))}
.av-stage.has-fx .char-fx{z-index:1;top:3px;width:220px;height:238px;left:50%;transform:translateX(-50%);filter:saturate(1.14)}
.av-stage.has-fx .char-fx::before{opacity:.78;filter:blur(7px)}
.av-stage.has-fx .char-fx::after{opacity:.66}

/* Cartes d'aura : identité visuelle lisible avant le nom ou le prix. */
.av-aura-grid{gap:11px}
.aura-pick{
  min-height:116px;
  padding:12px 11px 10px;
  border-radius:17px;
  border-color:color-mix(in srgb,var(--a1,var(--accent)) 30%,rgba(255,255,255,.09));
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--a1,var(--accent)) 13%,#17171b),#0b0b0e 66%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 9px 24px rgba(0,0,0,.25);
}
.aura-pick::before{inset:-44% 2% 17% -18%;opacity:.17}
.aura-pick:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--a1,var(--accent)) 68%,white 8%)}
.aura-pick.on{
  transform:translateY(-2px);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--a1,var(--accent)) 55%,transparent),0 15px 31px rgba(0,0,0,.44),inset 0 0 28px color-mix(in srgb,var(--a1,var(--accent)) 10%,transparent);
}
.aura-logo{width:50px;height:50px;margin-bottom:11px;border-radius:15px}
.aura-logo::after{border-radius:13px}
.aura-mark{width:29px;height:29px}
.aura-name{font-size:13px;letter-spacing:1.25px}
.aura-badge{padding:4px 7px;font-size:8px}

/* Classement courant : une signature compacte remplace l'effet plein format. */
.lb-item .lb-mini-av.has-aura,
.lb-me-bar .lb-mini-av.has-aura{
  isolation:isolate;
  overflow:hidden!important;
  contain:paint;
  clip-path:inset(0 round 10px);
  -webkit-clip-path:inset(0 round 10px);
  border-color:color-mix(in srgb,var(--a1,var(--accent)) 62%,rgba(255,255,255,.18));
  background:radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--a1,var(--accent)) 18%,var(--bg2)),var(--bg) 72%);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--a1,var(--accent)) 15%,transparent),0 0 14px color-mix(in srgb,var(--a1,var(--accent)) 24%,transparent),0 7px 15px rgba(0,0,0,.44);
}
.lb-me-bar .lb-mini-av.has-aura{
  clip-path:inset(0 round 11px);
  -webkit-clip-path:inset(0 round 11px);
}
/* L'effet complet est conservé, mais redimensionné et découpé par le portrait. */
.lb-item .lb-mini-av.has-fx{--lb-fx-scale:.25}
.lb-me-bar .lb-mini-av.has-fx{--lb-fx-scale:.22}
.lb-item .lb-mini-av .lb-fx-scale,
.lb-me-bar .lb-mini-av .lb-fx-scale{z-index:0;opacity:.9}
.lb-item .lb-mini-av .char-fx,
.lb-me-bar .lb-mini-av .char-fx{display:block}
.lb-item .lb-mini-av.has-aura::before,
.lb-me-bar .lb-mini-av.has-aura::before{
  content:'';
  position:absolute;
  z-index:0;
  inset:-7px;
  border-radius:inherit;
  background:radial-gradient(circle,color-mix(in srgb,var(--a2,var(--accent-soft)) 21%,transparent),transparent 68%);
  filter:blur(5px);
  pointer-events:none;
}
.lb-item .lb-aura-signature,
.lb-me-bar .lb-aura-signature{
  position:absolute;
  z-index:0;
  inset:50% auto auto 50%;
  width:115%;
  height:115%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  opacity:.5;
  filter:blur(.15px) drop-shadow(0 0 7px var(--a1,var(--accent)));
  pointer-events:none;
}
.lb-item .lb-aura-signature svg,
.lb-me-bar .lb-aura-signature svg{width:100%;height:100%}
.lb-item .lb-mini-av img,
.lb-me-bar .lb-mini-av img{position:relative;z-index:2}

/* Animation de repli pour les signatures statiques sans VFX complet. */
.lb-item .lb-mini-av.has-aura .lb-aura-signature,
.lb-me-bar .lb-mini-av.has-aura .lb-aura-signature{
  transform-origin:50% 50%;
  animation:lbAuraBreathe 2.8s cubic-bezier(.4,0,.2,1) infinite;
}
.lb-item .lb-mini-av.fx-bolt .lb-aura-signature,
.lb-me-bar .lb-mini-av.fx-bolt .lb-aura-signature{animation:lbAuraBolt 2.5s steps(1,end) infinite}
.lb-item .lb-mini-av.fx-smoke .lb-aura-signature,
.lb-me-bar .lb-mini-av.fx-smoke .lb-aura-signature{animation:lbAuraDrift 3.8s ease-in-out infinite}
.lb-item .lb-mini-av.fx-aurora .lb-aura-signature,
.lb-me-bar .lb-mini-av.fx-aurora .lb-aura-signature,
.lb-item .lb-mini-av.fx-prism .lb-aura-signature,
.lb-me-bar .lb-mini-av.fx-prism .lb-aura-signature{animation:lbAuraOrbit 5.5s linear infinite}
.lb-item .lb-mini-av.fx-sparks .lb-aura-signature,
.lb-me-bar .lb-mini-av.fx-sparks .lb-aura-signature{animation:lbAuraSpark 1.75s cubic-bezier(.16,1,.3,1) infinite}
@keyframes lbAuraBreathe{
  0%,100%{transform:translate(-50%,-50%) scale(.9);opacity:.38}
  50%{transform:translate(-50%,-52%) scale(1.08);opacity:.68}
}
@keyframes lbAuraBolt{
  0%,7%,13%,100%{transform:translate(-50%,-50%) scale(.96);opacity:.42}
  2%,5%,10%{transform:translate(-48%,-51%) scale(1.08);opacity:.82;filter:brightness(1.55) drop-shadow(0 0 8px var(--a1,var(--accent)))}
}
@keyframes lbAuraDrift{
  0%,100%{transform:translate(-53%,-47%) scale(.94) rotate(-3deg);opacity:.38}
  50%{transform:translate(-47%,-54%) scale(1.08) rotate(4deg);opacity:.65}
}
@keyframes lbAuraOrbit{
  from{transform:translate(-50%,-50%) scale(.96) rotate(0);opacity:.48}
  50%{opacity:.7}
  to{transform:translate(-50%,-50%) scale(.96) rotate(360deg);opacity:.48}
}
@keyframes lbAuraSpark{
  0%,100%{transform:translate(-50%,-50%) scale(.84) rotate(-4deg);opacity:.38}
  45%{transform:translate(-50%,-50%) scale(1.12) rotate(4deg);opacity:.78}
}

/* Le podium conserve l'effet complet, avec plus d'espace autour du personnage. */
.podium-avatar{overflow:visible}
.podium-avatar::before{
  background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--a1,var(--accent)) 20%,rgba(255,255,255,.09)),rgba(255,255,255,.018) 60%,transparent 75%);
  box-shadow:0 12px 28px rgba(0,0,0,.5),0 0 25px color-mix(in srgb,var(--a1,var(--accent)) 18%,transparent);
}
.podium-avatar .lb-mini-av.has-fx{
  --lb-fx-scale:.35;
  overflow:hidden;
  contain:paint;
  clip-path:inset(0 round 21px);
  -webkit-clip-path:inset(0 round 21px);
}
.podium-avatar-1 .lb-mini-av.has-fx{
  --lb-fx-scale:.43;
  clip-path:inset(0 round 25px);
  -webkit-clip-path:inset(0 round 25px);
}
.podium-avatar .lb-mini-av.has-fx .lb-fx-scale{z-index:0;opacity:.9}
.podium-avatar .lb-mini-av.has-fx img{position:relative;z-index:2}

@media(max-width:360px){
  .av-stage.has-fx .char-fx{width:202px}
  .aura-pick{min-height:108px;padding:10px 9px}
  .aura-logo{width:46px;height:46px}
}

@media(prefers-reduced-motion:reduce){
  .aura-pick,.aura-logo-frame,.aura-logo-glow,.aura-mark,.lb-aura-signature{animation:none!important;transition:none!important}
}

/* ── Retouche animation : halo, fumée, étincelles ─────────────────────────
   Uniquement transform/opacity animés ; le flou est statique (peint une fois). */

/* HALO — colonne de lumière, couronne qui flotte, rayons nets */
.fx-halo .fh-beam{left:12%;top:-12%;width:76%;height:104%;border-radius:50% 50% 46% 46%;
  background:radial-gradient(ellipse at 50% 8%,rgba(255,255,255,.55),rgba(var(--accent-rgb),.34) 30%,rgba(var(--accent-rgb),.1) 62%,transparent 82%);
  filter:blur(10px);mix-blend-mode:screen;animation:fhBeam2 3.4s ease-in-out infinite}
.fx-halo .fh-ring{top:2%;border-width:3px;border-color:#fff3e6;
  box-shadow:0 0 10px 1px rgba(255,255,255,.7),0 0 26px 6px rgba(var(--accent2-rgb),.7),inset 0 0 16px rgba(var(--accent2-rgb),.5);
  will-change:transform,opacity;animation:fhRing2 3.6s ease-in-out infinite}
.fx-halo .fh-r2{top:5%;border:1.5px solid rgba(255,255,255,.7);box-shadow:0 0 12px rgba(var(--accent2-rgb),.8);animation:fhRing2 5.4s ease-in-out infinite reverse;animation-delay:-.9s}
.fx-halo .fh-ray{width:2px;height:34%;margin-left:-1px;filter:drop-shadow(0 0 3px rgba(var(--accent2-rgb),.9));animation-duration:2.8s}
.fx-halo .fh-dust{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;top:12%}
@keyframes fhBeam2{0%,100%{opacity:.6;transform:scale(.94,.97)}50%{opacity:1;transform:scale(1.06,1.03)}}
@keyframes fhRing2{
  0%,100%{opacity:.82;transform:translateY(2px) perspective(90px) rotateX(68deg) scale(.95)}
  50%{opacity:1;transform:translateY(-5px) perspective(90px) rotateX(68deg) scale(1.08)}}

/* FUMÉE — volutes plus denses qui montent en tournant, base violette lumineuse */
.fx-smoke .fs-base{height:52%;background:radial-gradient(ellipse at 50% 100%,rgba(190,160,255,.8),rgba(126,87,255,.42) 42%,transparent 74%);animation-duration:4.2s}
.fx-smoke .fs-wisp{background:radial-gradient(circle at 42% 38%,rgba(214,196,255,.85),rgba(139,92,246,.5) 38%,rgba(88,52,190,.18) 62%,transparent 74%);animation-name:fsWisp2}
@keyframes fsWisp2{
  0%{opacity:0;transform:translate(var(--wx0,0px),8px) scale(.6) rotate(0deg)}
  20%{opacity:var(--wop,.9)}
  75%{opacity:calc(var(--wop,.9)*.7)}
  100%{opacity:0;transform:translate(calc(var(--wx1,8px)*1.6),-140px) scale(1.7) rotate(40deg)}}

/* ÉTINCELLES — cœur incandescent additif, anneau pointillé, gerbes plus longues */
.fx-sparks .fsp-core{mix-blend-mode:screen;background:radial-gradient(circle,rgba(255,255,235,.9),rgba(255,214,90,.6) 22%,rgba(var(--accent-rgb),.34) 46%,transparent 70%);animation-duration:1.2s}
.fx-sparks .fsp-ring{border:2px dotted rgba(255,226,140,.9);box-shadow:0 0 16px rgba(255,200,80,.6)}
.fx-sparks .fsp-particle{width:3px;height:3px;box-shadow:0 0 7px 2px rgba(255,214,120,.95),0 0 2px #fff;background:#fff4cf}
.fx-sparks .fsp-star{background:linear-gradient(135deg,#fff7d6,#ffd25a);filter:drop-shadow(0 0 6px rgba(255,210,90,.95));animation-duration:1.7s}

@media(prefers-reduced-motion:reduce){
  .fx-halo .char-fx *,.fx-smoke .char-fx *,.fx-sparks .char-fx *{animation-duration:12s!important}
}

/* ── Débordements : l'aura reste dans sa scène ───────────────────────────
   Profil : les anneaux de sol (flames 132 %, prism 116-118 %) dépassaient la scène de 220 px
   et se faisaient couper net. Classement : à 28 % d'échelle ils débordaient sur la ligne voisine. */
.fx-flames .ff-ground-outer{width:112%}
.fx-flames .ff-ground-inner{width:74%}
.fx-flames .ff-base{left:-2%;width:104%}
.fx-flames .ff-heat{inset:2% -4% -8%}
.fx-prism .fp-ground{width:104%}
.fx-prism .fp-ring-outer{width:104%;margin-left:-52%}
.fx-prism .fp-ring-inner{width:86%;margin-left:-43%}
.lb-item .lb-fx-scale,
.lb-me-bar .lb-fx-scale{clip-path:inset(-6% 10% -2% 10%);-webkit-clip-path:inset(-6% 10% -2% 10%)}
