/* v1.9.6 — pack opening, marché, campagne */
.bn{width:min(96vw,520px)}.bn a{font-size:.64rem;padding:8px 0 6px}
#co:hover{filter:brightness(1.2)}

/* ---- pack : lueur de charge, éclat et particules à l'ouverture ---- */
.pack{--t:0}
.pglow{position:absolute;inset:-14%;border-radius:40px;pointer-events:none;z-index:-1;background:radial-gradient(closest-side,var(--pc),#0000 72%);opacity:calc(.18 + var(--t)*.85);transform:scale(calc(.92 + var(--t)*.25));transition:opacity .2s}
.pack.cutting .pglow{filter:saturate(1.4)}
.pspk{position:absolute;inset:0;pointer-events:none;overflow:visible}
.pack.cutting .pspk::before,.pack.cutting .pspk::after{content:"✦";position:absolute;left:calc(var(--t)*94% + 3%);top:11%;color:#fff;text-shadow:0 0 10px var(--pc);animation:spk .5s linear infinite}
.pack.cutting .pspk::after{animation-delay:.25s;content:"✧"}
@keyframes spk{from{transform:translate(0,0) scale(.4);opacity:1}to{transform:translate(8px,-34px) scale(1.2);opacity:0}}
.pack.tear .pglow{animation:pgl .9s .45s both}
@keyframes pgl{0%{opacity:1;transform:scale(1.2)}40%{opacity:1;transform:scale(2.2);background:radial-gradient(closest-side,var(--hc,var(--pc)),#0000 72%)}100%{opacity:0;transform:scale(3)}}
.pflash{position:fixed;inset:0;z-index:400;pointer-events:none;background:radial-gradient(circle at 50% 38%,#fff,color-mix(in srgb,var(--c) 70%,#fff) 25%,#0000 70%);animation:pfl 1s ease-out both}
@keyframes pfl{0%{opacity:0}12%{opacity:.95}100%{opacity:0}}
.prays{position:fixed;z-index:399;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;pointer-events:none;border-radius:50%;
 background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--c) 85%,#fff) 0 4deg,#0000 4deg 15deg);-webkit-mask:radial-gradient(circle,#000,#0000 55%);mask:radial-gradient(circle,#000,#0000 55%);animation:pry 1.5s ease-out both}
@keyframes pry{0%{transform:scale(.1) rotate(0);opacity:0}15%{opacity:.9}100%{transform:scale(1) rotate(50deg);opacity:0}}
.ppt{position:fixed;z-index:401;pointer-events:none;text-shadow:0 0 10px currentColor;line-height:1}

/* ---- cartes tirées ---- */
.fc.hi .fb{box-shadow:0 0 26px 2px var(--c);animation:pul2 1s ease-in-out infinite}
.fc.hi:not(.on)::before{content:"✨";position:absolute;top:-8px;right:-4px;z-index:3;font-size:1.3rem;animation:wig 1.2s ease-in-out infinite}
.nwb{position:absolute;top:6px;left:-6px;z-index:5;padding:3px 9px;border-radius:6px;background:#ff3d7a;color:#fff;font:800 .62rem/1 system-ui;letter-spacing:.06em;transform:rotate(-8deg);box-shadow:0 2px 10px #0008;pointer-events:none}
.emptyp{text-align:center;padding:30px 18px;margin:18px 0}.emptyp i{font-style:normal;font-size:3rem;display:block;opacity:.7}.emptyp h3{margin:8px 0 4px}

/* ---- marché ---- */
.mk-wallet{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 4px}
.mk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(42vw,168px),1fr));gap:16px 12px}
.mk-it{--cw:min(38vw,150px);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;border-radius:20px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--c) 12%,transparent),var(--pn));box-shadow:0 10px 26px -16px var(--c)}
.mk-card{position:relative;width:var(--cw);height:calc(var(--cw)*1.4)}
.mk-deal{position:absolute;top:-8px;right:-8px;z-index:6;background:#ff3d7a;color:#fff;padding:4px 9px;border-radius:99px;font:800 .75rem/1 system-ui;box-shadow:0 4px 12px #0009;transform:rotate(6deg)}
.mk-soldt{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:#000a;border-radius:1.1em;font:800 .95rem var(--disp);letter-spacing:.06em;color:#9fffb0}
.mk-it.sold{opacity:.7;filter:grayscale(.5)}
.mk-price{font-size:.95rem}.mk-price b{font:800 1.15rem var(--disp)}.mk-price s{opacity:.55;margin-right:4px;font-size:.8rem}
.mk-packs{display:grid;gap:12px}
.mk-pack{display:flex;align-items:center;gap:14px;padding:14px;border-color:color-mix(in srgb,var(--pc) 55%,transparent);flex-wrap:wrap}
.mk-pi{width:64px;height:88px;flex:none;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--pc) 45%,#031009),color-mix(in srgb,var(--pc) 15%,#031009));border:1px solid var(--pc);box-shadow:0 0 24px -6px var(--pc)}.mk-pi i{font-style:normal;font-size:2rem}
.mk-pt{flex:1;min-width:150px;display:flex;flex-direction:column;gap:2px}.mk-pt small{color:var(--mu)}
.mk-pb{display:flex;flex-direction:column;align-items:flex-end;gap:6px}

/* ---- campagne ---- */
.cp-list{display:grid;gap:12px;margin-top:10px}
.cp-ch{display:flex;align-items:center;gap:14px;padding:16px;border-color:color-mix(in srgb,var(--c) 55%,transparent);cursor:pointer;transition:.18s;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 14%,transparent),var(--pn))}
.cp-ch:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px var(--c)}.cp-ch.lock{opacity:.55;cursor:default;filter:grayscale(.6)}.cp-ch.lock:hover{transform:none;box-shadow:none}
.cp-e{font-style:normal;font-size:2.4rem;line-height:1;flex:none}.cp-t{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.cp-t b{font:700 1.15rem var(--disp)}.cp-t small{color:var(--mu)}.cp-req{color:#ffb86b!important}
.cp-bar{display:block;height:7px;border-radius:9px;background:#ffffff1f;overflow:hidden;margin:4px 0}.cp-bar s{display:block;height:100%;background:var(--c);box-shadow:0 0 10px var(--c)}
.cp-lvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:14px 0}
.cp-lv{display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 8px;border-radius:18px;border:1px solid var(--ln);background:var(--pn);cursor:pointer;text-align:center;transition:.15s}
.cp-lv:hover{transform:translateY(-3px);border-color:var(--c)}.cp-lv.lock{opacity:.45;cursor:default}.cp-lv.lock:hover{transform:none;border-color:var(--ln)}
.cp-lv.done{border-color:color-mix(in srgb,var(--c) 60%,transparent);background:color-mix(in srgb,var(--c) 10%,var(--pn))}
.cp-lv.boss{grid-column:1/-1;flex-direction:row;justify-content:center;gap:12px;border-color:#facc15;background:linear-gradient(135deg,#facc1522,var(--pn))}
.cp-n{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#04130a;font:800 1rem system-ui}.cp-lv.boss .cp-n{background:none;font-size:1.6rem}
.cp-lv b{font-size:.92rem}
.cp-st{letter-spacing:2px;white-space:nowrap}.cp-st i{font-style:normal;color:#ffffff30}.cp-st i.on{color:#facc15;text-shadow:0 0 8px #facc1599}.cp-st.big{font-size:1.4rem}
.cp-bonus{padding:14px;margin-top:6px}.cp-bn{padding:6px 0;border-top:1px solid var(--ln)}.cp-bn small{color:var(--mu);display:block}.cp-bn.got{opacity:.55;text-decoration:line-through}
.cp-obj,.cp-rw{list-style:none;padding:0;margin:0;display:grid;gap:6px}.cp-obj li{color:var(--mu)}.cp-obj li.got{color:#facc15}
.cp-rw li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:6px 10px;border-radius:12px;background:#ffffff0d}.cp-rw li small{color:var(--mu);min-width:120px}.cp-rw li.got{opacity:.5}.cp-rw li em{margin-left:auto;font-style:normal;color:#9fffb0}
.cp-end{display:flex;justify-content:center;gap:10px;margin:8px 0 4px}.cp-end i{font-style:normal;font-size:3.2rem;color:#ffffff2a;opacity:0;animation:cpS .6s both}
.cp-end i.on{color:#facc15;text-shadow:0 0 18px #facc15}@keyframes cpS{0%{opacity:0;transform:scale(2.6) rotate(-30deg)}70%{opacity:1;transform:scale(.9)}100%{opacity:1;transform:none}}
.cp-end i.nw{filter:drop-shadow(0 0 12px #fff)}
.cp-eo{list-style:none;padding:0;margin:4px 0;color:var(--mu);font-size:.9rem}.cp-eo li.ok{color:#facc15}
.cp-prize{margin:6px 0;font-weight:700;color:#9fffb0}

/* ---- v1.9.10 : cohérence des packs ---- */
/* le morceau découpé du haut prend la couleur du pack, comme le reste */
.pack.tint .pcut{border-color:var(--pc);background:linear-gradient(135deg,color-mix(in srgb,var(--pc) 45%,#031009),color-mix(in srgb,var(--pc) 16%,#031009) 40%,color-mix(in srgb,var(--pc) 60%,#ffffff22) 50%,color-mix(in srgb,var(--pc) 16%,#031009) 60%,color-mix(in srgb,var(--pc) 45%,#031009)) 0 0/300% 100%}
/* clip-path coupe les ombres en rectangle (le « carré » autour du pack) : le halo vient de .pglow */
.pack .ptop,.pack .pcut,.pack.tint .ptop,.pack.tint .pcut{box-shadow:none}
/* dos des cartes tirées : même forme, même bordure et même dos que les vraies cartes */
.fb{font-size:calc(var(--cw)/9);border-radius:1.15em;border:.2em solid color-mix(in srgb,var(--pc,#c6ff3d) 55%,transparent);background:radial-gradient(circle at 50% 38%,#1f8a4f,#0a3d20 62%,#06180d),repeating-linear-gradient(45deg,#ffffff0d 0 .5em,#0000 .5em 1em);box-shadow:inset 0 0 1.6em #000a,0 0 1.4em -.4em var(--gl)}
.fb::before{content:"";position:absolute;inset:.45em;border:1px solid #c6ff3d55;border-radius:.8em;pointer-events:none}
.fc.hi .fb{box-shadow:inset 0 0 1.6em #000a,0 0 1.6em .1em var(--c)}

/* ---- v3.6.0 : coffres de butin (campagne) ---- */
.ch-svg{width:100%;height:auto;display:block;overflow:visible}.ch-lid{transform-box:fill-box;transform-origin:0 100%;transition:transform .5s cubic-bezier(.3,1.5,.5,1)}.ch-glow{opacity:0;transition:opacity .5s}
.open .ch-lid,.cp-chest:hover .ch-lid{transform:translate(0,-6px) rotate(-8deg)}.open .ch-lid{transform:translate(-6px,-20px) rotate(-26deg)}.open .ch-glow{opacity:.8}
.cp-chest{display:flex;flex-direction:column;align-items:center;gap:2px;margin:10px auto 2px;padding:10px 22px;background:linear-gradient(#ffe9a022,#ffe9a008);border:1px solid #facc1566;border-radius:16px;color:inherit;cursor:pointer;animation:chPulse 1.6s ease-in-out infinite}
.cp-chest .ch-svg{width:84px}.cp-chest b{color:#facc15}.cp-chest small{opacity:.75}
@keyframes chPulse{0%,100%{box-shadow:0 0 0 0 #facc1544}50%{box-shadow:0 0 22px 4px #facc1566}}
.cp-cbn{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;margin:8px 0;border:1px solid #facc1566}
.chov{display:grid;place-items:center;z-index:600;background:#000c}.ch-box{width:min(92vw,420px);text-align:center;max-height:94vh;overflow:auto;padding:6px}
.ch-b{display:block;width:min(56vw,220px);margin:4px auto;background:none;border:0;padding:0;cursor:pointer}.ch-b.shake{animation:chShake .12s linear infinite}
@keyframes chShake{0%{transform:rotate(-3deg)}50%{transform:rotate(3deg) translateY(-3px)}100%{transform:rotate(-3deg)}}
.ch-loot{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:6px 0}.ch-c{position:relative;width:min(40vw,150px);filter:drop-shadow(0 0 14px var(--c));animation:chPop .5s cubic-bezier(.2,1.4,.4,1) both;cursor:pointer}
@keyframes chPop{from{opacity:0;transform:translateY(40px) scale(.6)}to{opacity:1;transform:none}}.ch-ft{margin-top:8px}
