/* ================================================================
   Mintly v3 : cosmétiques (dos et effets animés), progression, guildes, marché, chat de partie, illustrateur, mobile
   ================================================================ */

/* ---------- Dos de cartes cosmétiques ---------- */
.card.back.cosback{display:flex;align-items:center;justify-content:center;padding:.5em;position:relative;overflow:hidden}
.card.back.cosback .in{width:100%;height:100%;border-radius:.5em;border:.15em solid rgba(255,255,255,.65);display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.card.back.cosback .in b{font-family:var(--f-head);font-size:1.6em;color:#fff;text-shadow:0 .1em .4em rgba(0,0,0,.5)}
.cb-aurore{background:linear-gradient(160deg,#0f172a,#134e4a 40%,#4c1d95)!important}
.cb-aurore::before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 0deg,transparent,rgba(94,234,212,.45),transparent 30%,rgba(167,139,250,.45),transparent 60%);animation:cb-spin 9s linear infinite;filter:blur(10px)}
.cb-nebuleuse{background:radial-gradient(circle at 30% 30%,#7c3aed,#1e1b4b 60%,#020617)!important}
.cb-nebuleuse::before{content:"";position:absolute;inset:-50%;background:radial-gradient(1px 1px at 20% 30%,#fff,transparent),radial-gradient(1.5px 1.5px at 60% 70%,#fff,transparent),radial-gradient(1px 1px at 80% 20%,#c4b5fd,transparent),radial-gradient(1px 1px at 40% 85%,#fff,transparent),radial-gradient(2px 2px at 75% 45%,#5eead4,transparent);background-size:60px 60px;animation:cb-spin 40s linear infinite}
.cb-menthe{background:linear-gradient(135deg,#99f6e4,#14b8a6 50%,#134e4a)!important}
.cb-menthe .in b{color:#042f2e!important;text-shadow:none!important}
.cb-or{background:linear-gradient(135deg,#78350f,#f59e0b 30%,#fde68a 50%,#d97706 70%,#78350f)!important;background-size:200% 200%!important;animation:cb-shine 4s ease-in-out infinite}
.cb-pixel{background-color:#1e1b4b!important;background-image:linear-gradient(45deg,#4c1d95 25%,transparent 25%,transparent 75%,#4c1d95 75%),linear-gradient(45deg,#4c1d95 25%,transparent 25%,transparent 75%,#4c1d95 75%)!important;background-size:1.2em 1.2em!important;background-position:0 0,.6em .6em!important;animation:cb-pix 2s steps(4) infinite}
.cb-holo{background:linear-gradient(115deg,#f0abfc,#a5f3fc,#fde68a,#c4b5fd,#86efac,#f0abfc)!important;background-size:300% 300%!important;animation:cb-shine 5s linear infinite}
.cb-holo .in b{color:#1e1b4b!important}
.cb-flammes{background:linear-gradient(0deg,#7f1d1d,#ea580c 40%,#fde047 90%)!important}
.cb-flammes::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 120%,rgba(253,224,71,.8),transparent 60%);animation:cb-flicker 1.2s ease-in-out infinite alternate}
@keyframes cb-spin{to{transform:rotate(360deg)}}
@keyframes cb-shine{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes cb-pix{to{background-position:.6em 0,1.2em .6em}}
@keyframes cb-flicker{from{opacity:.5;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1.1)}}

/* ---------- Effets animés appliqués aux cartes d'un joueur ---------- */
.fx-lueur .tc .card,.cos-prev.fx-lueur .card{animation:fx-glow 2.2s ease-in-out infinite}
@keyframes fx-glow{50%{box-shadow:0 0 18px 2px rgba(167,139,250,.9),0 0 40px rgba(94,234,212,.4)}}
.fx-etincelles .tc .card::before,.cos-prev.fx-etincelles .card::before{content:"";position:absolute;inset:0;z-index:30;pointer-events:none;
  background:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(2px 2px at 70% 60%,#fde68a,transparent),radial-gradient(1.5px 1.5px at 45% 80%,#fff,transparent),radial-gradient(2px 2px at 85% 15%,#a5f3fc,transparent);
  background-size:100% 100%;animation:fx-twinkle 1.6s ease-in-out infinite}
@keyframes fx-twinkle{0%,100%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
.fx-holo .tc .card::before,.cos-prev.fx-holo .card::before{content:"";position:absolute;inset:0;z-index:30;pointer-events:none;mix-blend-mode:color-dodge;
  background:linear-gradient(115deg,transparent 30%,rgba(240,171,252,.5) 42%,rgba(165,243,252,.5) 50%,rgba(253,230,138,.5) 58%,transparent 70%);background-size:250% 100%;animation:fx-sweep 3s linear infinite}
@keyframes fx-sweep{from{background-position:150% 0}to{background-position:-100% 0}}
.fx-flammes .tc .card,.cos-prev.fx-flammes .card{animation:fx-fire 1s ease-in-out infinite alternate}
@keyframes fx-fire{from{box-shadow:0 -4px 14px rgba(234,88,12,.8),0 0 4px #fde047}to{box-shadow:0 -10px 24px rgba(239,68,68,.9),0 0 8px #fde047}}
.fx-arcenciel .tc .card,.cos-prev.fx-arcenciel .card{outline:3px solid;animation:fx-rainbow 3s linear infinite}
@keyframes fx-rainbow{0%{outline-color:#f87171}20%{outline-color:#fbbf24}40%{outline-color:#4ade80}60%{outline-color:#38bdf8}80%{outline-color:#a78bfa}100%{outline-color:#f87171}}
.ptitle{font-size:11px;font-weight:700;padding:1px 8px;border-radius:99px;background:linear-gradient(90deg,rgba(167,139,250,.25),rgba(94,234,212,.25));color:var(--mint,#5eead4);margin-left:6px;white-space:nowrap}

/* ---------- Progression : passe de combat ---------- */
.pass-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.pass-lvl{width:84px;height:84px;border-radius:22px;display:grid;place-items:center;font-family:var(--f-head);font-size:30px;background:var(--brand);color:#0b0518;box-shadow:0 10px 30px rgba(var(--glow),.4)}
.xpbar{height:12px;border-radius:99px;background:var(--glass2);border:1px solid var(--line);overflow:hidden;margin-top:6px}
.xpbar>i{display:block;height:100%;border-radius:99px;background:var(--brand);transition:width .6s var(--ease,ease)}
.pass-track{display:grid;grid-auto-flow:column;grid-auto-columns:118px;gap:10px;overflow-x:auto;padding:8px 2px 14px;scroll-snap-type:x mandatory}
.ptier{scroll-snap-align:start;display:grid;grid-template-rows:auto 1fr 1fr;gap:6px}
.ptier .num{text-align:center;font-family:var(--f-mono);font-size:12px;color:var(--muted)}
.ptier.reached .num{color:var(--mint,#5eead4);font-weight:700}
.prew{border:1px solid var(--line2);border-radius:12px;padding:10px 6px;text-align:center;background:var(--glass2);display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;min-height:104px;position:relative}
.prew .ic{font-size:26px}.prew small{font-size:11px;color:var(--muted);line-height:1.2}
.prew.prem{background:linear-gradient(180deg,rgba(253,230,138,.08),rgba(167,139,250,.06));border-color:rgba(253,230,138,.3)}
.prew.locked{opacity:.45}.prew.claimed{opacity:.55}.prew.claimed::after{content:"✓";position:absolute;top:4px;right:8px;color:var(--ok,#57d98a);font-weight:800}
.prew.ready{border-color:var(--mint,#5eead4);box-shadow:0 0 0 1px var(--mint,#5eead4),0 0 18px rgba(94,234,212,.35);animation:fx-glow 2s infinite}
.quest{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.quest:last-child{border:0}
.quest .q-ic{font-size:22px;width:36px;text-align:center}.quest .q-main{flex:1;min-width:0}.quest.done{opacity:.6}
.tier-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;font-weight:700;border:1px solid var(--line2)}
.tier-bronze{color:#d6a374}.tier-argent{color:#cbd5e1}.tier-or{color:#fcd34d}.tier-platine{color:#67e8f9}.tier-diamant{color:#a5b4fc;background:rgba(165,180,252,.1)}
.countdown{font-family:var(--f-mono);font-size:13px;color:var(--muted)}

/* ---------- Cosmétiques ---------- */
.cos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.cos-item{border:1px solid var(--line2);border-radius:14px;padding:12px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--glass2);transition:.2s}
.cos-item.on{border-color:var(--mint,#5eead4);box-shadow:0 0 0 1px var(--mint,#5eead4)}.cos-item.lock{opacity:.5;filter:grayscale(.6)}
.cos-item small{color:var(--muted);font-size:11.5px}
.cos-prev{display:flex;justify-content:center}

/* ---------- Boutique premium (démo) ---------- */
.demo-banner{display:flex;gap:10px;align-items:center;padding:12px 16px;border-radius:12px;border:1px dashed rgba(253,230,138,.6);background:rgba(253,230,138,.07);color:#fde68a;margin-bottom:16px}
.prem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.prem-card{border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;background:linear-gradient(180deg,rgba(var(--glow),.12),var(--glass));border:1px solid var(--line2);position:relative}
.prem-card .ic{font-size:44px}.prem-card .price{font-family:var(--f-head);font-size:22px}
.prem-card .tag{position:absolute;top:10px;right:10px;font-size:11px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--brand);color:#0b0518}
.checkout{text-align:center}.checkout .spin{margin:20px auto}

/* ---------- Guildes ---------- */
.guild-emb{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:28px;flex:none;background:var(--gc,#8b5cf6);box-shadow:0 8px 20px color-mix(in srgb,var(--gc,#8b5cf6) 45%,transparent)}
.guild-emb.xl{width:90px;height:90px;font-size:46px;border-radius:24px}
.guild-row{display:flex;gap:14px;align-items:center;padding:12px;border-radius:14px;text-decoration:none;color:inherit;border:1px solid transparent;transition:.2s}
.guild-row:hover{background:var(--glass2);border-color:var(--line2)}
.guild-row .rk{font-family:var(--f-head);font-size:18px;width:34px;text-align:center;color:var(--muted)}
.guild-row:nth-child(1) .rk{color:#fcd34d}.guild-row:nth-child(2) .rk{color:#cbd5e1}.guild-row:nth-child(3) .rk{color:#d6a374}
.gtag{font-family:var(--f-mono);font-size:12px;padding:1px 7px;border-radius:6px;background:var(--glass2);border:1px solid var(--line2)}
.emb-pick{display:flex;flex-wrap:wrap;gap:6px}.emb-pick button{font-size:20px;width:40px;height:40px;border-radius:10px;border:1px solid var(--line2);background:var(--glass2);cursor:pointer}
.emb-pick button.on{border-color:var(--accent);background:rgba(var(--glow),.18)}
.gwall{max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:4px}
.gmsg{padding:8px 12px;border-radius:12px;background:var(--glass2)}.gmsg b{font-size:13px}.gmsg .hint{font-size:11px}

/* ---------- Hôtel des ventes ---------- */
.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px}
.mk-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;border-radius:14px;background:var(--glass2);border:1px solid var(--line);transition:.2s}
.mk-item:hover{border-color:rgba(var(--glow),.45);transform:translateY(-3px)}
.mk-item .price{font-family:var(--f-head);font-size:18px}.mk-item .hint{font-size:12px;text-align:center}

/* ---------- Vitrine & wishlist ---------- */
.showcase{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;padding:10px 0}
.showcase .sc{display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .3s}.showcase .sc:hover{transform:translateY(-8px) rotate(-1deg)}
.wish-btn.on{color:#f472b6;border-color:rgba(244,114,182,.6)}
.wish-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.wish-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;border-radius:14px;background:var(--glass2);border:1px solid var(--line);text-align:center}

/* ---------- Campagne & draft ---------- */
.boss-path{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.boss{border-radius:16px;padding:16px;text-align:center;border:1px solid var(--line2);background:var(--glass2);display:flex;flex-direction:column;gap:6px;align-items:center;position:relative}
.boss .bic{font-size:46px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.5))}
.boss.beaten{border-color:rgba(87,217,138,.5)}.boss.beaten::after{content:"✓ Vaincu";position:absolute;top:8px;right:10px;font-size:11px;color:var(--ok,#57d98a);font-weight:800}
.boss.lock{opacity:.45;filter:grayscale(.8)}.boss.next{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 24px rgba(var(--glow),.35)}
.draft-pool{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.dp{position:relative;cursor:pointer;border-radius:10px;transition:transform .15s,opacity .15s}
.dp:not(.on){opacity:.55}.dp.on{transform:translateY(-4px)}.dp.on::after{content:"✓";position:absolute;top:4px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--mint,#5eead4);color:#042f2e;display:grid;place-items:center;font-weight:800;z-index:40}
.draft-bar{position:sticky;bottom:12px;z-index:5;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:14px;background:var(--glass);backdrop-filter:blur(12px);border:1px solid var(--line2);margin-top:14px}
.ach-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.ach{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;border:1px solid var(--line2);background:var(--glass2)}
.ach .ai{font-size:28px}.ach.done{border-color:rgba(94,234,212,.5)}.ach.claimed{opacity:.6}.ach.todo{opacity:.55}

/* ---------- Chat de partie, emotes, vocal, commentaires ---------- */
#gdock{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:14px}
#gdock .gd-btns{display:flex;gap:6px}
#gdock .gd-btns .btn{border-radius:99px;box-shadow:0 6px 18px rgba(0,0,0,.4)}
#gdock .gd-badge{background:var(--danger,#ff6b6b);color:#fff;border-radius:99px;font-size:10px;padding:0 5px;margin-left:2px}
.gd-panel{width:min(340px,calc(100vw - 32px));max-height:min(440px,60vh);display:flex;flex-direction:column;border-radius:16px;background:var(--bg2,#150a29);border:1px solid var(--line2);box-shadow:0 20px 50px rgba(0,0,0,.55);overflow:hidden;animation:modalIn .3s var(--spring,ease)}
.gd-panel header{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
.gd-panel header a{flex:1;text-align:center;padding:6px;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:600;font-size:13px}
.gd-panel header a.on{background:rgba(var(--glow),.12);color:var(--ink)}
.gd-msgs{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:6px;min-height:160px}
.gd-msg{padding:6px 10px;border-radius:12px;background:var(--glass2);max-width:90%;word-wrap:break-word}.gd-msg.me{align-self:flex-end;background:rgba(var(--glow),.2)}
.gd-msg b{font-size:12px;color:var(--accent)}.gd-msg.spec b{color:var(--mint,#5eead4)}
.gd-emotes{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;border-top:1px solid var(--line)}
.gd-emotes button{border:0;background:var(--glass2);border-radius:8px;padding:4px 7px;cursor:pointer;font-size:16px;transition:transform .15s}.gd-emotes button:hover{transform:scale(1.2)}
.gd-input{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line)}.gd-input input{flex:1;min-width:0}
.emote-pop{position:fixed;z-index:70;font-size:44px;pointer-events:none;animation:emote-up 2.2s ease-out forwards;filter:drop-shadow(0 6px 12px rgba(0,0,0,.5));font-weight:900;font-family:var(--f-head)}
.emote-pop small{display:block;font-size:12px;text-align:center;font-family:var(--f-body);color:#fff;text-shadow:0 1px 4px #000}
@keyframes emote-up{0%{opacity:0;transform:translate(-50%,10px) scale(.5)}15%{opacity:1;transform:translate(-50%,0) scale(1.15)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-90px) scale(1)}}
.voice-on{background:rgba(87,217,138,.18)!important;border-color:rgba(87,217,138,.6)!important}
.speaking{outline:2px solid #4ade80;outline-offset:2px;border-radius:99px}
.spec-ticker{position:fixed;left:16px;bottom:16px;z-index:59;display:flex;flex-direction:column;gap:6px;max-width:min(360px,calc(100vw - 32px));pointer-events:none}
.spec-ticker .gd-msg{animation:toastIn .4s;background:rgba(10,6,22,.78);backdrop-filter:blur(6px)}

/* ---------- Illustrateur ---------- */
.illu{display:grid;grid-template-columns:200px 1fr 220px;gap:14px;min-height:460px}
.illu-tools{display:flex;flex-direction:column;gap:6px}.illu-tools .btn{justify-content:flex-start}
.illu-stage{display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#2a2340 0 25%,#1f1933 0 50%) 0 0/20px 20px;border-radius:12px;overflow:hidden}
.illu-stage canvas{max-width:100%;height:auto;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.5);cursor:move;touch-action:none}
.illu-layers{display:flex;flex-direction:column;gap:4px;max-height:420px;overflow:auto}
.illu-layer{display:flex;gap:6px;align-items:center;padding:6px 8px;border-radius:8px;border:1px solid var(--line);cursor:pointer;font-size:13px}
.illu-layer.on{border-color:var(--accent);background:rgba(var(--glow),.12)}.illu-layer span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.illu-layer button{border:0;background:none;color:inherit;cursor:pointer;padding:2px}
.illu-props{display:flex;flex-direction:column;gap:8px;margin-top:10px}.illu-props label{display:flex;flex-direction:column;gap:3px;font-size:12px}
@media (max-width:900px){.illu{grid-template-columns:1fr}.illu-tools{flex-direction:row;flex-wrap:wrap}}

/* ---------- Impression prête à découper ---------- */
@media print{
  #print.cut{gap:0;justify-content:center;align-content:flex-start;padding:6mm 0}
  #print.cut .cutcell{position:relative;width:63mm;height:88mm;margin:2.5mm}
  #print.cut .cutcell .card{outline:none}
  #print.cut .cutcell::before,#print.cut .cutcell::after{content:"";position:absolute;inset:-2.5mm;pointer-events:none;
    background:linear-gradient(#000,#000) 0 2.5mm/2mm .2mm no-repeat,linear-gradient(#000,#000) 2.5mm 0/.2mm 2mm no-repeat,
      linear-gradient(#000,#000) 100% 2.5mm/2mm .2mm no-repeat,linear-gradient(#000,#000) calc(100% - 2.5mm) 0/.2mm 2mm no-repeat}
  #print.cut .cutcell::after{transform:scaleY(-1)}
  #print.cut .ptitle-page{flex-basis:100%;font:10pt sans-serif;color:#444;text-align:center;margin-bottom:2mm}
}

/* ---------- Mobile : barre de navigation du bas ---------- */
#mnav{display:none}
@media (max-width:700px){
  #nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}#nav::-webkit-scrollbar{display:none}
  #mnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;justify-content:space-around;padding:6px 4px calc(6px + env(safe-area-inset-bottom));
    background:rgba(10,6,22,.92);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  #mnav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:var(--muted);text-decoration:none;padding:4px 8px;border-radius:10px;min-width:56px}
  #mnav a span{font-size:20px}#mnav a.on{color:var(--accent);background:rgba(var(--glow),.1)}
  body{padding-bottom:70px}
  .site-footer{margin-bottom:64px}
  #gdock{bottom:80px}
}
:root[data-theme="clair"] #mnav{background:rgba(255,255,255,.92)}

/* ---------- Langue ---------- */
.lang-switch{font-size:12px;font-weight:700;padding:5px 9px}

/* ================================================================ Nouveaux cosmétiques de la boutique */
.cb-sakura{background:linear-gradient(160deg,#fce7f3,#f9a8d4 45%,#be185d)!important}
.cb-sakura::before{content:"";position:absolute;inset:-20% 0 0;background:radial-gradient(3px 2px at 20% 10%,#fff,transparent),radial-gradient(3px 2px at 60% 30%,#fff0f6,transparent),radial-gradient(2px 2px at 80% 60%,#fff,transparent),radial-gradient(3px 2px at 35% 70%,#fff0f6,transparent);background-size:100% 50%;animation:cb-fall 6s linear infinite}
.cb-ocean{background:linear-gradient(180deg,#0ea5e9,#1e3a8a)!important}
.cb-ocean::before{content:"";position:absolute;inset:-10%;background:repeating-radial-gradient(circle at 50% 120%,rgba(255,255,255,.18) 0 .3em,transparent .3em 1.2em);animation:cb-wave 5s ease-in-out infinite alternate}
.cb-galaxie{background:radial-gradient(circle at 50% 50%,#c4b5fd 0,#6d28d9 18%,#1e1b4b 45%,#020617 75%)!important}
.cb-galaxie::before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent,rgba(196,181,253,.35) 10%,transparent 25%,rgba(94,234,212,.3) 40%,transparent 55%,rgba(244,114,182,.3) 70%,transparent 85%);border-radius:50%;animation:cb-spin 14s linear infinite;filter:blur(4px)}
@keyframes cb-fall{to{transform:translateY(50%)}}
@keyframes cb-wave{to{transform:translateY(6%) scale(1.05)}}
.fx-neige .tc .card::before,.cos-prev.fx-neige .card::before{content:"";position:absolute;inset:0;z-index:30;pointer-events:none;
  background:radial-gradient(2px 2px at 15% 20%,#fff,transparent),radial-gradient(2px 2px at 55% 10%,#fff,transparent),radial-gradient(1.5px 1.5px at 80% 40%,#fff,transparent),radial-gradient(2px 2px at 35% 60%,#fff,transparent),radial-gradient(1.5px 1.5px at 70% 80%,#fff,transparent);
  background-size:100% 60%;animation:cb-fall 3s linear infinite}
.fx-foudre .tc .card,.cos-prev.fx-foudre .card{animation:fx-zap 2.4s steps(1) infinite}
@keyframes fx-zap{0%,100%{box-shadow:0 0 6px rgba(125,211,252,.5)}46%{box-shadow:0 0 22px 4px #7dd3fc,0 0 40px #a78bfa}48%{box-shadow:0 0 6px rgba(125,211,252,.5)}50%{box-shadow:0 0 28px 6px #e0f2fe,0 0 50px #7dd3fc}}

/* ================================================================ Boutique */
.shop-wallet{display:flex;gap:10px}.shop-wallet span{padding:8px 14px;border-radius:12px;background:var(--glass2);border:1px solid var(--line2);font-size:15px}
.shop-feature{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:20px}
.shop-deal{background:linear-gradient(135deg,rgba(253,230,138,.12),var(--glass));border-color:rgba(253,230,138,.35)}
.shop-pass{background:linear-gradient(135deg,rgba(167,139,250,.18),rgba(94,234,212,.08));border-color:rgba(167,139,250,.4)}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.shop-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:18px 14px;border-radius:18px;
  background:linear-gradient(180deg,rgba(var(--glow),.08),var(--glass));border:1px solid var(--line2);transition:transform .25s var(--ease,ease),border-color .25s,box-shadow .25s}
.shop-item:hover{transform:translateY(-5px);border-color:rgba(var(--glow),.5);box-shadow:0 18px 40px rgba(0,0,0,.4)}
.shop-item.owned{opacity:.6}
.shop-item .tag{position:absolute;top:10px;right:10px;font-size:11px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--brand);color:#0b0518}
.shop-item .hint{font-size:12.5px;min-height:2.4em}
.shop-prev{min-height:110px;display:flex;align-items:center;justify-content:center;cursor:zoom-in}
.shop-prev.sm{min-height:0;width:48px;cursor:default}.shop-prev.big{min-height:160px}.shop-prev.huge{min-height:290px}
.shop-ic{font-size:58px;filter:drop-shadow(0 8px 16px rgba(0,0,0,.4))}.shop-ic.big{font-size:70px}
.shop-prev.sm .shop-ic{font-size:30px}.shop-title{font-size:16px!important;padding:6px 14px!important}
.shop-prices{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:auto}
#cart-fab{position:fixed;right:20px;bottom:20px;z-index:55;border-radius:99px;padding:12px 20px;font-size:15px;box-shadow:0 12px 30px rgba(var(--glow),.45)}
#cart-fab.bump{animation:bump .5s var(--spring,ease)}
@media (max-width:700px){#cart-fab{bottom:84px}}
.cart-lines{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.cart-line{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--glass2)}
.cart-line .qty{display:flex;align-items:center;gap:4px}
.cart-total{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;border:1px solid var(--line2);margin:10px 0}
.cart-total>div{display:flex;justify-content:space-between}
.pay-anim{padding:40px 0;text-align:center}.pay-anim .spin{width:44px;height:44px;margin:0 auto 14px;border-width:4px}
.pay-ok{text-align:center}.pay-check{width:76px;height:76px;border-radius:50%;margin:6px auto 10px;display:grid;place-items:center;font-size:40px;font-weight:900;color:#042f2e;background:var(--brand);animation:br-pop .5s var(--spring,ease)}

/* ================================================================ Page d'accueil */
.landing{display:flex;flex-direction:column;gap:56px;padding-bottom:30px}
.ld-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;align-items:center;min-height:440px}
.ld-copy h1{font-size:clamp(32px,4.6vw,56px);line-height:1.05;margin:10px 0 16px}
.ld-copy h1 em{font-style:normal;background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.ld-copy p{font-size:17px;color:var(--muted);max-width:560px}
.ld-cta{gap:10px;margin-top:22px;flex-wrap:wrap}
.ld-stats{display:flex;gap:26px;margin-top:30px;flex-wrap:wrap}.ld-stats div{display:flex;flex-direction:column}
.ld-stats b{font-family:var(--f-head);font-size:28px;background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent}.ld-stats span{font-size:13px;color:var(--muted)}
.ld-fan{position:relative;height:380px}
.ld-card{position:absolute;left:50%;top:50%;transform-origin:50% 120%;
  transform:translate(-50%,-50%) rotate(calc((var(--i) - (var(--n) - 1) / 2) * 11deg)) translateY(calc(abs(var(--i) - (var(--n) - 1) / 2) * 12px));
  transition:transform .4s var(--spring,ease);filter:drop-shadow(0 20px 30px rgba(0,0,0,.5));animation:ld-deal .9s var(--spring,ease) both;animation-delay:calc(var(--i) * 110ms)}
.ld-card:hover{z-index:5;transform:translate(-50%,-62%) rotate(calc((var(--i) - (var(--n) - 1) / 2) * 6deg)) scale(1.08)}
@keyframes ld-deal{from{opacity:0;transform:translate(-50%,10%) rotate(0) scale(.7)}}
.ld-pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.ld-pillar{text-align:center;padding:26px}.ld-pillar .ic{font-size:44px}.ld-pillar h2{margin:8px 0}
.ld-section h2{font-size:clamp(24px,3vw,34px);margin:6px 0 20px}
.ld-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;counter-reset:s}
.ld-step{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:16px;border:1px solid var(--line2);background:var(--glass2)}
.ld-step .num{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-family:var(--f-head);background:var(--brand);color:#0b0518;font-weight:800}
.ld-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.ld-game{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;transition:transform .25s,border-color .25s}.ld-game:hover{transform:translateY(-4px);border-color:rgba(var(--glow),.5)}
.ld-game div{display:flex;flex-direction:column;gap:4px}
.ld-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.ld-feat{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:16px;background:var(--glass2);border:1px solid var(--line)}.ld-feat .ic{font-size:28px}
.ld-final{text-align:center;padding:40px 20px;background:linear-gradient(135deg,rgba(167,139,250,.18),rgba(94,234,212,.1))}
.landing .reveal{transition-delay:calc(var(--d,0) * 90ms)}
@media (max-width:860px){.ld-hero{grid-template-columns:1fr}.ld-fan{height:300px}.ld-card .card{--w:130px!important}}
