/* v2.0.2 — animation des attaques (fiche + fenêtre « ? » du combat) et barre d'attaques réduite au nom + « ? » */

/* ---------- mini-scène animée ---------- */
.aa{--T:3.6s;position:relative;width:100%;aspect-ratio:16/var(--arh,8.5);margin:6px 0 4px;border-radius:14px;overflow:hidden;background:radial-gradient(120% 90% at 50% 100%,color-mix(in srgb,var(--c,#c6ff3d) 16%,#0b2616),#06140c 70%);border:1px solid var(--ln);isolation:isolate}
.aa::before{content:"";position:absolute;left:6%;right:6%;top:50%;height:1px;background:linear-gradient(90deg,transparent,#ffffff30,transparent)}
.aa.big{aspect-ratio:16/var(--arh,9);margin:10px 0 6px}
.aa-media{aspect-ratio:auto;background:#000}.aa-media::before{display:none}
.aa-vid{display:block;width:100%;max-height:46vh;object-fit:contain;background:#000}
.aa-tr{position:absolute;left:8px;top:6px;z-index:6;max-width:calc(100% - 16px);padding:2px 8px;border-radius:99px;background:#000a;border:1px solid #ffffff30;font-size:.66rem;font-weight:800;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.aa-s{position:absolute;left:var(--x);top:var(--y);width:clamp(30px,13%,46px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-style:normal;font-size:clamp(1rem,4.2vw,1.5rem);line-height:1;transform:translate(-50%,-50%);background:#ffffff0d;border:1.5px dashed #ffffff26;z-index:2}
.aa.big .aa-s{width:clamp(36px,12%,56px);font-size:clamp(1.2rem,5.4vw,1.9rem)}
.aa-s.e{filter:grayscale(1);opacity:.55}
.aa-s.tg{border:2px solid #ff5a5a;box-shadow:0 0 12px #ff5a5a88;opacity:1;filter:grayscale(.4)}
.aa-s.a.tg{border-color:#4ade80;box-shadow:0 0 12px #4ade8088;opacity:.95}
.aa-s.a:not(.me):not(.tg){opacity:.45;filter:grayscale(1)}
.aa-s.me{border:2px solid var(--c,#c6ff3d);background:color-mix(in srgb,var(--c,#c6ff3d) 24%,#06140c);box-shadow:0 0 14px color-mix(in srgb,var(--c,#c6ff3d) 60%,transparent);z-index:4}

/* lanceur : prend son élan, bondit vers les ennemis, revient */
.aa-atk{animation:aa-lunge var(--T) ease-in-out infinite}
.aa-atk.lunge{--ly:-26%}.aa-atk:not(.lunge){--ly:-8%}
@keyframes aa-lunge{0%,6%{transform:translate(-50%,-50%) scale(1)}14%{transform:translate(-50%,-46%) scale(1.14)}24%{transform:translate(-50%,calc(-50% + var(--ly) * 3.4)) scale(1.1)}34%{transform:translate(-50%,-50%) scale(1)}100%{transform:translate(-50%,-50%) scale(1)}}
.aa-atk:not(.lunge){animation-name:aa-cast}
@keyframes aa-cast{0%,6%{transform:translate(-50%,-50%) scale(1)}16%{transform:translate(-50%,-56%) scale(1.22)}34%{transform:translate(-50%,-50%) scale(1)}100%{transform:translate(-50%,-50%) scale(1)}}
.aa-s.buff{animation:aa-glow var(--T) ease-out infinite}
.aa-s.me.buff{animation:aa-cast var(--T) ease-in-out infinite,aa-glow var(--T) ease-out infinite}
@keyframes aa-glow{0%,38%{box-shadow:0 0 0 0 #4ade8000}46%{box-shadow:0 0 0 10px #4ade8055,0 0 22px #4ade80aa}70%,100%{box-shadow:0 0 0 18px #4ade8000}}
.aa-s.e.hit{animation:aa-shake var(--T) linear infinite}
@keyframes aa-shake{0%,38%{transform:translate(-50%,-50%)}41%{transform:translate(calc(-50% - 7px),-50%) rotate(-8deg)}45%{transform:translate(calc(-50% + 7px),-50%) rotate(8deg)}49%{transform:translate(calc(-50% - 5px),-50%)}53%{transform:translate(calc(-50% + 4px),-50%)}58%,100%{transform:translate(-50%,-50%)}}

/* projectile : part du lanceur, file vers chaque cible */
.aa-pj{position:absolute;left:var(--x0);top:var(--y0);z-index:5;font-style:normal;font-size:1.25rem;line-height:1;opacity:0;transform:translate(-50%,-50%);animation:aa-fly var(--T) cubic-bezier(.5,0,.7,.6) infinite;filter:drop-shadow(0 0 6px #fff9)}
.aa.big .aa-pj{font-size:1.6rem}
@keyframes aa-fly{0%,20%{left:var(--x0);top:var(--y0);opacity:0;transform:translate(-50%,-50%) scale(.5)}24%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}40%{left:var(--x1);top:var(--y1);opacity:1;transform:translate(-50%,-50%) scale(1.25) rotate(200deg)}43%,100%{left:var(--x1);top:var(--y1);opacity:0;transform:translate(-50%,-50%) scale(1.8) rotate(240deg)}}

/* effets sur la cible */
.aa-fx{position:absolute;left:var(--x);top:var(--y);width:0;height:0;z-index:7;pointer-events:none}
.aa-fl{position:absolute;left:0;top:0;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;border:3px solid var(--fc);opacity:0;animation:aa-flash var(--T) ease-out infinite}
@keyframes aa-flash{0%,39%{opacity:0;transform:scale(.3)}42%{opacity:.95;transform:scale(.7)}60%,100%{opacity:0;transform:scale(1.9)}}
.aa-ic{position:absolute;left:0;top:0;font-style:normal;font-size:1.5rem;line-height:1;opacity:0;transform:translate(calc(-50% + var(--ox)),-50%);animation:var(--an,aa-pop) var(--T) ease-out infinite;animation-delay:calc(var(--k) * .12s);filter:drop-shadow(0 2px 4px #000a)}
.aa.big .aa-ic{font-size:1.9rem}
.aa-ic.rise{--an:aa-rise}.aa-ic.spin{--an:aa-spin}
@keyframes aa-pop{0%,40%{opacity:0;transform:translate(calc(-50% + var(--ox)),-50%) scale(.2)}48%{opacity:1;transform:translate(calc(-50% + var(--ox)),-50%) scale(1.5)}60%{opacity:1;transform:translate(calc(-50% + var(--ox)),-50%) scale(1)}80%{opacity:1;transform:translate(calc(-50% + var(--ox)),-50%) scale(1)}92%,100%{opacity:0;transform:translate(calc(-50% + var(--ox)),-50%) scale(.8)}}
@keyframes aa-rise{0%,40%{opacity:0;transform:translate(calc(-50% + var(--ox)),-30%) scale(.5)}50%{opacity:1;transform:translate(calc(-50% + var(--ox)),-70%) scale(1.2)}85%{opacity:1;transform:translate(calc(-50% + var(--ox)),-150%) scale(1)}95%,100%{opacity:0;transform:translate(calc(-50% + var(--ox)),-190%) scale(.9)}}
@keyframes aa-spin{0%,40%{opacity:0;transform:translate(calc(-50% + var(--ox)),-60%) rotate(0) scale(.4)}50%{opacity:1;transform:translate(calc(-50% + var(--ox)),-90%) rotate(180deg) scale(1.3)}85%{opacity:1;transform:translate(calc(-50% + var(--ox)),-90%) rotate(720deg) scale(1)}95%,100%{opacity:0;transform:translate(calc(-50% + var(--ox)),-90%) rotate(900deg) scale(.8)}}
.aa-ch{position:absolute;left:0;top:0;opacity:0;white-space:nowrap;transform:translate(calc(-50% + var(--ox)),-50%);animation:aa-chip var(--T) ease-out infinite;animation-delay:calc(var(--k) * .12s)}
.aa-ch .vf{font-size:.7rem;box-shadow:0 2px 8px #0009;background-color:#06140cdd}
.aa.big .aa-ch .vf{font-size:.82rem}
/* v4.2.2 : pastilles empilées — rangée alliée : vers le haut (--oy négatif) ; rangée ennemie : vers le bas (aa-chip-d, --oy positif) */
@keyframes aa-chip{0%,46%{opacity:0;transform:translate(-50%,calc(20px - var(--oy,0px)))}56%{opacity:1;transform:translate(-50%,calc(-34px - var(--oy,0px)))}86%{opacity:1;transform:translate(-50%,calc(-40px - var(--oy,0px)))}96%,100%{opacity:0;transform:translate(-50%,calc(-48px - var(--oy,0px)))}}
/* cible de la rangée ennemie : la pastille s'affiche en dessous pour ne pas sortir de la scène */
.aa-fx.dn .aa-ch{animation-name:aa-chip-d}
.aa-ch{animation-delay:calc(var(--k) * .12s)}
@keyframes aa-chip-d{0%,46%{opacity:0;transform:translate(-50%,-6px)}56%{opacity:1;transform:translate(-50%,calc(32px + var(--oy,0px)))}86%{opacity:1;transform:translate(-50%,calc(36px + var(--oy,0px)))}96%,100%{opacity:0;transform:translate(-50%,calc(42px + var(--oy,0px)))}}

/* ---------- barre d'attaques du combat : nom + « ? » ---------- */
.vw{flex:1 1 0;min-width:0;display:flex;position:relative}
.vw .vat{flex:1 1 auto;min-height:44px;justify-content:center;align-items:center}
.vw .vat .vn{color:var(--tx);font-size:.74rem;white-space:normal;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;min-width:0}
.qm{position:static;order:2;flex:none;align-self:center;margin-left:4px;z-index:3;width:24px;height:24px;border-radius:50%;border:2px solid #0a2314;background:var(--ac);color:#10260a;font:900 .85rem/1 inherit;font-family:inherit;display:grid;place-items:center;padding:0;cursor:pointer;box-shadow:0 2px 8px #000a;transition:transform .15s}
.qm{position:relative}.qm::after{content:"";position:absolute;inset:-5px}
.qm:active{transform:scale(.9)}
@media(max-width:520px){.vw .vat .vn{font-size:.68rem}.qm{width:22px;height:22px;font-size:.8rem}}
.bt.fg .vw{flex:none}.bt.fg .vw .vat{flex:1 1 auto;padding:6px 10px;min-height:34px}.bt.fg .vw .vat .vn{flex:1 1 auto;order:0;color:var(--tx);font-size:.74rem;display:block;white-space:nowrap;text-overflow:ellipsis}

/* ---------- fenêtre « ? » ---------- */
.ah{z-index:900}
.ahb{position:relative;width:min(520px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;padding:16px 16px 14px;border-radius:22px;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 16%,#0a2314),#06140c 62%);border:1px solid color-mix(in srgb,var(--c) 55%,transparent);box-shadow:0 20px 60px #000c;animation:fi .25s both}
.ahb header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-right:44px}
.ahb header .rk{font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--c) 30%,#0006);border:1px solid color-mix(in srgb,var(--c) 60%,transparent)}
.ahb header b{font-size:1.15rem}.ahb header small{color:var(--mu);font-weight:700}
.ahx{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:50%;border:1px solid var(--ln);background:#0008;color:var(--tx);cursor:pointer;font-size:1rem}
.ahd{margin:10px 0 4px;line-height:1.4}
.ahl{margin:6px 0 8px;padding-left:18px;color:var(--mu);font-size:.85rem;line-height:1.4}
.ahb .vfs{margin-top:4px}.ahb .vfoot{margin-top:6px}
.ahb .wr{margin-top:12px;display:flex;justify-content:center}

/* animation de la fiche : un peu plus compacte */
.sheet .atk .aa{margin:8px 0 6px}

/* v2.0.3 — tuile « ? ×N » : cartes non possédées regroupées par rareté */
.mq{position:relative}
.mq .mqn{font:800 clamp(1rem,4.6vw,1.6rem)/1 var(--disp);font-style:normal;color:var(--c);opacity:.95;margin-top:2px}
