/* Lisibilité multi-thèmes : couleurs « or » adaptées aux thèmes clairs + correctifs de contraste */
:root{--gold:#ffcf5a}
:root[data-theme="carrara-white"],:root[data-theme="silver-arrow"],:root[data-theme="ivory-dune"],:root[data-theme="nordic-frost"],
:root[data-theme="solar-flare"],:root[data-theme="alpine-horizon"],:root[data-theme="rose-gold-gt"],:root[data-theme="mint-speedway"]{--gold:#8a5300}
:root[data-theme="carrara-white"],:root[data-theme="silver-arrow"],:root[data-theme="ivory-dune"],:root[data-theme="nordic-frost"],
:root[data-theme="solar-flare"],:root[data-theme="alpine-horizon"],:root[data-theme="rose-gold-gt"],:root[data-theme="mint-speedway"]{
  --bronze-ink:#8c5420;--ice-ink:#0b6fa8}
:root{--bronze-ink:#d79a5c;--ice-ink:#7fd0ff}
.ssn-cta-go{color:var(--bronze-ink)}
.ssn-ice{color:var(--ice-ink)}
.pv3-level .mentor-zone{grid-column:1/-1}
/* quiz : réponses multiples */
.qz-multi{margin:.1rem 0 .7rem;font-size:.85rem;font-weight:700;color:var(--accent)}
.qz-opt{display:flex;align-items:center;gap:.7rem}
.qz-box{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--stroke-line);display:grid;place-items:center;font-style:normal;font-size:.8rem;font-weight:900;color:var(--on-accent);transition:background .15s,border-color .15s}
.qz-opt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface))}
.qz-opt.sel .qz-box{background:var(--accent);border-color:var(--accent)}
.qz-opt.good .qz-box{background:#22c55e;border-color:#22c55e;color:#fff}
.qz-opt.miss{border-color:#22c55e;border-style:dashed}
.qz-opt.miss .qz-box{border-color:#22c55e;color:#22c55e}
.qz-opt.bad .qz-box{background:#ef4444;border-color:#ef4444}
/* pass de saison : 3 onglets */
.ssn-tabs{display:flex;gap:.3rem;padding:.3rem;border-radius:999px;border:1px solid var(--stroke-line);background:color-mix(in srgb,var(--bg-elevated) 70%,transparent);margin:.2rem 0 .4rem;overflow-x:auto;scrollbar-width:none}
.ssn-tabs::-webkit-scrollbar{display:none}
.ssn-tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:42px;padding:0 .9rem;border:0;border-radius:999px;background:transparent;color:var(--color-muted);font:inherit;font-size:.86rem;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}
.ssn-tab i{font-style:normal}
.ssn-tab.on{background:var(--accent);color:var(--on-accent)}
.ssn-tab:not(.on):hover{color:var(--color-ink)}
.ssn-pane{display:grid;gap:14px;animation:pvIn .3s both}
@media (max-width:420px){.ssn-tab i{display:none}.ssn-tab{padding:0 .6rem;font-size:.8rem}}
@media (max-width:480px){.ssn-tab{flex:1 1 0;min-width:0;padding:.3rem .4rem;font-size:.76rem;white-space:normal;line-height:1.1;text-align:center}}
/* coûts : en rouge quand il manque des cristaux */
.cg-price.lack,.cg-price.lack b{color:#ef4444!important}
.cta-btn.lack,.cta-btn.lack:disabled{color:#ef4444!important;border-color:color-mix(in srgb,#ef4444 60%,transparent)!important;background:color-mix(in srgb,#ef4444 10%,var(--bg-surface))!important;opacity:1}
.cg-pack.off .cg-price.lack{opacity:1}
.pity.legendary .pity-bar u{background:#f5b301}

/* lot 1 : verrou, historique, recyclage, suspense d'ouverture */
.tcg-lk{position:absolute;top:6px;right:6px;z-index:5;font-size:.8rem;font-style:normal;background:rgba(0,0,0,.6);border-radius:99px;padding:2px 5px;line-height:1}
.cg-recycle{margin-left:auto;margin-right:10px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);border-radius:99px;padding:6px 12px;font:inherit;font-size:.82rem;cursor:pointer}
.cg-hist{width:100%;max-width:420px;margin:8px auto 0;font-size:.85rem}
.cg-hist summary{cursor:pointer;opacity:.85}
.cg-hist ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.cg-hist li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--stroke-line);padding:3px 0}
.cg-hist li span{opacity:.65}
.rc-box{display:grid;gap:10px;max-height:86vh;max-width:520px;width:100%;background:var(--bg-surface);color:var(--color-ink);border-radius:18px;padding:16px;margin:auto;overflow:auto}
.rc-list{display:grid;gap:6px;overflow:auto;max-height:50vh}
.rc-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--stroke-line);border-radius:12px}
.rc-n{display:grid;min-width:0}.rc-n b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-n small{opacity:.75}
.rc-q{display:flex;align-items:center;gap:6px}.rc-q button{width:30px;height:30px;border-radius:99px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);font-size:1rem;cursor:pointer}
.rc-q output{min-width:20px;text-align:center;font-weight:700}
.rc-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@keyframes suspPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.07);filter:brightness(1.5)}}
@keyframes suspShake{0%,100%{translate:0 0}25%{translate:-3px 1px}75%{translate:3px -1px}}
.flip.pend{animation:suspPulse .45s ease-in-out infinite,suspShake .12s linear infinite;z-index:3;box-shadow:0 0 28px 6px var(--burst,#b86bff)}
.flip.susp-epic{--burst:#b86bff}.flip.susp-legendary{--burst:#f5b301}.flip.susp-shiny,.flip.susp-special,.flip.susp-mythic{--burst:#ff4fd8}
.flip.pend.susp-legendary,.flip.pend.susp-shiny,.flip.pend.susp-special,.flip.pend.susp-mythic{animation-duration:.3s,.08s}
.dim .flip:not(.pend){opacity:.45;transition:opacity .3s}
@media (prefers-reduced-motion:reduce){.flip.pend{animation:none}}

/* roue du jour + Avent */
.tcg-art{position:relative}
.wh-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wh-row p{flex:1;min-width:160px;margin:0}.wh-mini{font-size:2rem}
.wh-box{display:grid;gap:12px;justify-items:center;background:var(--bg-surface);color:var(--color-ink);border-radius:20px;padding:18px;margin:auto;max-width:360px;width:100%}
.wh-wrap{position:relative;width:min(260px,70vw);aspect-ratio:1}
.wh-pin{position:absolute;top:-14px;left:50%;translate:-50% 0;z-index:3;color:var(--accent);font-style:normal;font-size:1.6rem;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4))}
.wh-wheel{position:absolute;inset:0;border-radius:50%;border:4px solid var(--accent);background:conic-gradient(#3b9dff 0 36deg,#ffd166 0 72deg,#3b9dff 0 108deg,#b86bff 0 144deg,#3b9dff 0 180deg,#6fe3ff 0 216deg,#3b9dff 0 252deg,#ffd166 0 288deg,#b86bff 0 324deg,#ff6b6b 0 360deg);transform:rotate(0)}
.wh-wheel span{position:absolute;left:50%;top:50%;font-size:1.5rem;transform:rotate(var(--a)) translateY(-92px) rotate(calc(var(--a) * -1));translate:-50% -50%}
.wh-wheel.spin{transform:rotate(var(--to));transition:transform 3.4s cubic-bezier(.12,.7,.1,1)}
.wh-res{min-height:1.6em;text-align:center;margin:0}
.adv-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
@media (max-width:480px){.adv-grid{grid-template-columns:repeat(4,1fr)}}
.adv-c{aspect-ratio:1;border-radius:12px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);display:grid;place-items:center;align-content:center;gap:2px;font:inherit;padding:2px;cursor:pointer;position:relative}
.adv-c b{font-size:.8rem;opacity:.8}.adv-c span{font-size:1.2rem}.adv-c small{font-size:.58rem;opacity:.8;text-align:center;line-height:1.1}
.adv-c.can{border-color:#2fa84f;box-shadow:0 0 0 2px color-mix(in srgb,#2fa84f 35%,transparent);animation:advPulse 1.6s ease-in-out infinite}
.adv-c.got{background:color-mix(in srgb,#2fa84f 18%,var(--bg-elevated))}
.adv-c.lock{opacity:.5;cursor:default}.adv-c.big{grid-column:span 2;aspect-ratio:auto}
@keyframes advPulse{50%{transform:scale(1.05)}}
@media (prefers-reduced-motion:reduce){.adv-c.can{animation:none}}

/* lot 2 : quiz 4 niveaux, onglets, entraînement, chrono */
.qz-levels{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))!important}
.qz-lv span{font-size:.8rem!important}
.qz-lv.lv4 span{color:#b86bff}
.qz-tabs{display:flex;gap:6px;margin:.2rem 0 .8rem;flex-wrap:wrap}
.qz-tabs button{border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);border-radius:99px;padding:.45rem .95rem;font:inherit;font-weight:600;font-size:.88rem;cursor:pointer}
.qz-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.qz-tabs.small button{padding:.3rem .7rem;font-size:.8rem}
.qz-levels.chrono{margin:.4rem 0 1rem}
.qz-explain{margin:.8rem 0 .2rem;padding:.8rem .9rem;border-radius:14px;border:1px solid var(--stroke-line);background:var(--bg-elevated);display:grid;gap:.4rem;font-size:.9rem}
.qz-ex{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.qz-ex li{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;border-bottom:1px solid var(--stroke-line);padding:.2rem 0}
.qz-ex li small{color:var(--color-muted)}.qz-ex li.good a{color:#22c55e;font-weight:700}
.qz-note{margin:0}
.qz-explain a{color:var(--accent)}
.qz-clock{display:flex;align-items:baseline;gap:.3rem;position:relative;margin:.2rem 0 .4rem}
.qz-clock b{font-size:2.4rem;font-family:var(--font-tech,inherit);color:var(--accent)}
.qz-fl{position:absolute;right:0;top:0;font-style:normal;font-weight:800;font-size:1.3rem;animation:qzFl .6s ease-out forwards}
.qz-fl.good{color:#22c55e}.qz-fl.bad{color:#ef4444}
@keyframes qzFl{from{transform:translateY(8px);opacity:0}30%{opacity:1}to{transform:translateY(-8px);opacity:.9}}

/* ---- cartes Circuit */
.tcg-circ{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,var(--bg-elevated),var(--bg-surface));color:var(--accent)}
.tcg-trace{width:82%;height:82%;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35))}
.tcg-cstats b{font-size:.78em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cg-realpct b{color:var(--accent)}
.tcg-livtag{position:absolute;right:6px;bottom:30px;font-size:13px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.pilot-mention{color:var(--accent);font-weight:700;text-decoration:none}
.pilot-mention:hover{text-decoration:underline}
.evalb-layer{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:12px}
.evalb-layer[hidden]{display:none}
.evalb-box{background:var(--bg-surface);color:var(--color-ink);border:1px solid var(--stroke-line);border-radius:14px;max-width:640px;width:100%;max-height:88vh;overflow:auto;padding:14px}
.evalb-box header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.evalb-box h3{margin:0;font-size:1.05rem}
.evalb-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.evalb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.evalb-grid figure{margin:0}
.evalb-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
.evalb-grid figcaption{font-size:.75rem;color:var(--color-secondary)}
.evalb-del{border:0;background:none;color:var(--color-muted);cursor:pointer;font-size:1rem}

/* ---- badges rares (diamant) */
.badge-tile.on.diamond,.ph-badge.diamond,.sx-b.diamond,.ac-card.on.diamond{border-color:#67e8f9;background:linear-gradient(135deg,color-mix(in srgb,#67e8f9 14%,var(--bg-surface)),color-mix(in srgb,#c084fc 12%,var(--bg-surface)));box-shadow:0 0 12px color-mix(in srgb,#67e8f9 35%,transparent)}
.badge-pill.diamond{color:#67e8f9;border-color:color-mix(in srgb,#67e8f9 60%,transparent)}
/* ---- cadres animés (niveaux 20 et 30, saison rare) */
.cosm-f.cf-aurora{animation:cfHue 5s linear infinite}
.cosm-f.cf-prism{animation:cfHue 3.2s linear infinite,cosmGlow 2.4s ease-in-out infinite;box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--cf),0 0 14px 4px color-mix(in srgb,var(--cf) 60%,transparent)}
.cosm-f.cf-s_eclipse{animation:cfPulse 2.2s ease-in-out infinite}
@keyframes cfHue{to{filter:hue-rotate(360deg)}}
@keyframes cfPulse{50%{box-shadow:0 0 0 2px var(--bg-surface),0 0 0 5px var(--cf),0 0 22px 8px color-mix(in srgb,var(--cf) 75%,transparent)}}
@media (prefers-reduced-motion:reduce){.cosm-f.cf-aurora,.cosm-f.cf-prism,.cosm-f.cf-s_eclipse{animation:none!important}}
.cg-cphoto{margin:8px 0;padding:8px;border:1px dashed var(--stroke-line);border-radius:10px}
.cg-cphoto label{font-size:.78rem;color:var(--color-secondary);display:block;margin-bottom:4px}

/* ---- attente : le bouton qui lance une action serveur affiche un petit chargement */
.ma-busy{position:relative;pointer-events:none;color:transparent!important;text-shadow:none!important}
.ma-busy>*{opacity:.0}
.ma-busy::after{content:"";position:absolute;inset:0;margin:auto;width:1.05em;height:1.05em;min-width:14px;min-height:14px;border-radius:50%;border:2px solid var(--on-accent,#fff);border-right-color:transparent;animation:maSpin .7s linear infinite}
.btn-ghost.ma-busy::after,.ghost.ma-busy::after{border-color:var(--accent);border-right-color:transparent}
@keyframes maSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ma-busy::after{animation-duration:1.6s!important;animation-iteration-count:infinite!important}}

/* ===== Icônes maison (remplacent les émojis) — js/icons.js ===== */
.mi{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;vertical-align:-.2em;line-height:1;font-style:normal;flex:none}
.mi svg{width:100%;height:100%;display:block;overflow:visible}
.mi .mi-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mi{position:relative}
.mi-w{display:contents}
.mi-new,.mi-hundred{width:1.5em}
.mi-star_c,.mi-star_o,.mi-heart_c,.mi-heart_o,.mi-check,.mi-cross,.mi-sparkle_c,.mi-caret_d,.mi-play,.mi-play_l,.mi-dot_k{width:1em;height:1em;vertical-align:-.12em}
button .mi,.btn .mi,a .mi{pointer-events:none}

/* ===== Accueil « Garage » (js/garage-home.js) — uniquement les couleurs des thèmes ===== */
.gh{padding-top:1.1rem;padding-bottom:.4rem}
.gh-k{font-size:.72rem;letter-spacing:.18em;font-weight:800;text-transform:uppercase;color:var(--accent)}
.gh-title{font-size:clamp(1.7rem,6vw,2.4rem);font-weight:900;letter-spacing:-.03em;margin:.15rem 0 .8rem;color:var(--color-ink)}
.gh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
@media(min-width:760px){.gh-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gh-tile{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;border-radius:20px;border:1px solid var(--stroke-line);background:linear-gradient(160deg,var(--bg-elevated),var(--bg-surface));color:var(--color-ink);text-decoration:none;min-height:112px;overflow:hidden;transition:transform var(--m-fast,.18s) var(--m-spring,ease),border-color .2s}
.gh-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 55%,var(--stroke-line))}
.gh-tile:active{transform:scale(.98)}
.gh-lab{font-size:.74rem;color:var(--color-muted);font-weight:600}
.gh-num{font-size:clamp(1.8rem,7vw,2.3rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums}
.gh-num i{font-style:normal;font-size:.5em;font-weight:700;color:var(--color-muted);margin-left:.3em;letter-spacing:0}
.gh-row{display:flex;align-items:center;gap:.4rem}.gh-row .mi{width:.85em;height:.85em}
.gh-tile small{font-size:.74rem;color:var(--color-muted)}
.gh-ring{position:absolute;right:.7rem;top:.7rem;width:46px;height:46px;transform:rotate(-90deg)}
.gh-ring circle{fill:none;stroke-width:3.4}.gh-ring-bg{stroke:color-mix(in srgb,var(--color-ink) 12%,transparent)}.gh-ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .8s var(--m-smooth,ease)}
.gh-bar{display:block;height:6px;border-radius:6px;background:color-mix(in srgb,var(--color-ink) 12%,transparent);margin-top:auto;overflow:hidden}.gh-bar u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#fbbf24);text-decoration:none}
.gh-cta{display:flex;align-items:center;justify-content:center;gap:.6rem;margin-top:.8rem;height:56px;border-radius:28px;font-weight:800;text-decoration:none;color:var(--color-ink);border:1px solid var(--stroke-line);background:var(--bg-elevated)}
.gh-cta .mi{width:1.3em;height:1.3em}
.gh-cta.ready{color:var(--on-accent,#fff);border-color:transparent;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#000));box-shadow:0 10px 28px color-mix(in srgb,var(--accent) 38%,transparent)}
.gh-cta:active{transform:scale(.985)}
.gh-links{display:flex;gap:.5rem;margin-top:.7rem;overflow-x:auto;scrollbar-width:none;padding-bottom:.2rem}.gh-links::-webkit-scrollbar{display:none}
.gh-links a{display:inline-flex;align-items:center;gap:.4rem;flex:none;padding:.5rem .85rem;border-radius:99px;border:1px solid var(--stroke-line);background:var(--bg-surface);color:var(--color-ink);text-decoration:none;font-weight:700;font-size:.85rem}
/* pilotes connectés : on remplace le grand hero par le Garage et on range les blocs par priorité */
html.ma-garage #page-home .hero-stage{display:none}
html.ma-garage #page-home.page-on{display:flex;flex-direction:column}
html.ma-garage #page-home>#home-garage{order:1}
html.ma-garage #page-home>#cod-home{order:2}
html.ma-garage #page-home>#home-contest{order:3}
html.ma-garage #page-home>section:has(#home-events){order:5}
html.ma-garage #page-home>#home-feed-sec{order:6}
html.ma-garage #page-home>section:has(#home-community){order:7}
html.ma-garage #page-home>.brand-marquee{order:8}
html.ma-garage #page-home>section:has(.cta-band){display:none}
@media(prefers-reduced-motion:reduce){.gh-tile,.gh-ring-fg{transition:none}}
html.ma-garage #page-home>#cod-home{width:min(var(--st-w,1360px),100% - 2rem);max-width:none;margin-inline:auto;padding:0}
.gh-skel .gh-tile,.gh-skel .gh-cta{background:linear-gradient(100deg,var(--bg-surface) 30%,var(--bg-elevated) 50%,var(--bg-surface) 70%);background-size:200% 100%;animation:gh-sk 1.4s linear infinite;border-color:var(--stroke-line)}
.gh-skel .gh-cta{display:block}
@keyframes gh-sk{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.gh-skel .gh-tile,.gh-skel .gh-cta{animation:none}}

/* ===== Catalogue : marques, panneau de filtres, pastilles (js/catalog-ui.js) ===== */
.bs{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem 0 .6rem;margin:.2rem 0 .3rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.bs::-webkit-scrollbar{display:none}
.bs-chip{flex:none;display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem .35rem .35rem;border-radius:99px;border:1px solid var(--stroke-line);background:var(--bg-surface);color:var(--color-ink);font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;transition:transform .15s,border-color .2s,background .2s}
.bs-chip:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--stroke-line))}.bs-chip:active{transform:scale(.97)}
.bs-ini{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--accent) 16%,var(--bg-elevated));color:var(--accent);font-size:.68rem;font-weight:900;letter-spacing:.02em}
.bs-chip.on{background:var(--accent);color:var(--on-accent,#fff);border-color:transparent}.bs-chip.on .bs-ini{background:color-mix(in srgb,var(--on-accent,#fff) 22%,transparent);color:inherit}
.cx-own{position:absolute;left:.5rem;bottom:.5rem;z-index:2;display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:99px;font-size:.68rem;font-weight:800;letter-spacing:.02em;color:#fff;background:rgba(15,15,20,.72);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18)}
.cx-own.r-rare{border-color:#3b82f6}.cx-own.r-epic{border-color:#a855f7}.cx-own.r-legendary{border-color:#f5b301;color:#f5b301}.cx-own.r-mythic{border-color:#ef4444}
.cx-own:not(.got){opacity:.78}.cx-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e}
.car-thumb-wrap{position:relative}
.adv-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1190;opacity:0;animation:adv-fade .2s forwards}
@keyframes adv-fade{to{opacity:1}}
.adv-foot{display:none}
@media(max-width:760px){
  #adv-panel:not([hidden]){position:fixed;left:0;right:0;bottom:0;z-index:1200;max-height:82vh;overflow-y:auto;padding:1.1rem 1rem 6rem;border-radius:24px 24px 0 0;background:var(--bg-surface);border:1px solid var(--stroke-line);box-shadow:0 -20px 60px rgba(0,0,0,.45);animation:adv-up .28s var(--m-spring,cubic-bezier(.2,.8,.2,1))}
  #adv-panel:not([hidden])::before{content:"";display:block;width:42px;height:4px;border-radius:4px;background:var(--stroke-line);margin:-.3rem auto .9rem}
  @keyframes adv-up{from{transform:translateY(100%)}}
  #adv-panel:not([hidden]) .adv-actions{display:none}
  #adv-panel:not([hidden]) .adv-foot{display:flex;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:1201;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));background:var(--bg-surface);border-top:1px solid var(--stroke-line)}
  .adv-foot .fill-btn{flex:1}
  body.adv-open{overflow:hidden}
}
@media(prefers-reduced-motion:reduce){.adv-backdrop,#adv-panel{animation:none!important}}
@media(max-width:760px){#adv-panel .adv-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#adv-panel .adv-field,#adv-panel .adv-field *{min-width:0;max-width:100%}#adv-panel select,#adv-panel input{width:100%}}

/* ===== Fiche voiture : glissement entre onglets (js/sheet-swipe.js) ===== */
@keyframes cpNext{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes cpPrev{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.sheet-tabbed[data-dir="next"] .tab-on{animation:cpNext .3s var(--m-spring,ease) both}
.sheet-tabbed[data-dir="prev"] .tab-on{animation:cpPrev .3s var(--m-spring,ease) both}
.sheet-core-body{touch-action:pan-y}
@media(prefers-reduced-motion:reduce){.sheet-tabbed .tab-on{animation:none!important}}

/* ===== Première page (visiteurs) : le texte et la recherche d'abord, le compte-tours ensuite ===== */
.hero-cta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.1rem}
.hero-cta .cta-btn{flex:1 1 170px;justify-content:center;min-height:52px;border-radius:26px}
html.ma-garage .hero-cta{display:none}
@media(max-width:900px){
  html:not(.ma-garage) #page-home .hero-inner{display:flex;flex-direction:column;gap:1.4rem}
  html:not(.ma-garage) #page-home .hero-copy{order:1}
  html:not(.ma-garage) #page-home .hero-visual{order:2;width:min(300px,78vw);margin:0 auto}
  html:not(.ma-garage) #page-home .hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
  html:not(.ma-garage) #page-home .hero-stats>div{padding:.7rem .8rem;border-radius:16px;border:1px solid var(--stroke-line);background:var(--bg-surface)}
}

/* ===== Bannière du profil : choix parmi mes voitures (js/profile-banner.js) ===== */
.bp{margin:.8rem 0 1rem}.bp-h{display:flex;flex-direction:column;margin-bottom:.5rem}.bp-h small,.bp-empty{color:var(--color-muted);font-size:.8rem}
.bp-row{display:flex;gap:.6rem;overflow-x:auto;padding:.2rem 0 .5rem;scrollbar-width:thin}
.bp-it{flex:none;width:132px;padding:0;border:2px solid var(--stroke-line);border-radius:14px;background:var(--bg-surface);color:var(--color-ink);overflow:hidden;cursor:pointer;text-align:left;font:inherit;transition:transform .15s,border-color .2s}
.bp-it:active{transform:scale(.97)}.bp-it img{display:block;width:100%;height:84px;object-fit:cover}.bp-it span{display:block;padding:.3rem .5rem;font-size:.74rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bp-it.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}

/* ===== Écran de chargement : même logo et même mouvement que l'animation de démarrage (#splash) ===== */
#boot-splash{position:fixed;inset:0;z-index:99990;display:grid;place-items:center;align-content:center;justify-items:center;gap:1.1rem;background:var(--bg-core,#09090b);transition:opacity .45s ease,visibility .45s}
#boot-splash.out{opacity:0;visibility:hidden}
#boot-splash .sp-mark{width:min(30vw,120px);height:auto;overflow:visible}
#boot-splash .sp-bar1,#boot-splash .sp-bar2{fill:var(--accent,#ef4444);opacity:0;transform:translate3d(-60px,0,0) skewX(-12deg);animation:spBar .5s cubic-bezier(.2,.9,.25,1) .05s forwards}
#boot-splash .sp-bar2{animation-delay:.17s}
#boot-splash .sp-word{display:flex;font:800 clamp(1.25rem,6vw,1.7rem)/1 -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,sans-serif;letter-spacing:.22em;margin-right:-.22em}
#boot-splash .sp-word i{font-style:normal;opacity:0;transform:translate3d(0,.6em,0);animation:spLet .4s cubic-bezier(.2,.9,.3,1) forwards;animation-delay:calc(.5s + var(--n)*.04s)}
#boot-splash .sp-m{color:var(--color-ink,#fff)}#boot-splash .sp-a{color:var(--accent,#ef4444)}
#boot-splash .sp-line{display:block;position:relative;overflow:hidden;width:min(46vw,180px);height:3px;border-radius:3px;background:color-mix(in srgb,var(--accent,#ef4444) 35%,transparent);transform:scaleX(0);animation:spLine .5s cubic-bezier(.3,.8,.2,1) .85s forwards}
#boot-splash .sp-line::after{content:"";position:absolute;inset:0;width:45%;border-radius:inherit;background:var(--accent,#ef4444);animation:spLoad 1.1s ease-in-out 1.35s infinite;transform:translateX(-100%)}
@keyframes spLoad{to{transform:translateX(230%)}}
/* si l'animation de démarrage vient de se jouer, on reprend directement sur l'image finale (aucune coupure) */
html.splash-ran #boot-splash .sp-bar1,html.splash-ran #boot-splash .sp-bar2,html.splash-ran #boot-splash .sp-word i,html.splash-ran #boot-splash .sp-line{animation:none;opacity:1;transform:none}
html.splash-ran #boot-splash .sp-line::after{animation-delay:0s}
html.splash-ran #boot-splash .sp-mark{transform:scale(1.12)}
@media(prefers-reduced-motion:reduce){#boot-splash .sp-bar1,#boot-splash .sp-bar2,#boot-splash .sp-word i,#boot-splash .sp-line{animation:none;opacity:1;transform:none}#boot-splash .sp-line::after{animation:none;width:100%}}

/* ===== Bouton flottant du pack du jour ===== */
.fab-pack{position:fixed;right:14px;bottom:calc(92px + env(safe-area-inset-bottom));z-index:900;display:inline-flex;align-items:center;gap:.5rem;height:48px;padding:0 1rem 0 .8rem;border-radius:24px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 65%,#000));color:var(--on-accent,#fff);font-weight:800;font-size:.85rem;text-decoration:none;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 40%,transparent);animation:fabIn .4s var(--m-spring,ease) both}
.fab-pack[hidden]{display:none}.fab-pack .mi{width:1.3em;height:1.3em}
@keyframes fabIn{from{opacity:0;transform:translateY(16px) scale(.9)}}
@media(min-width:900px){.fab-pack{bottom:24px}}
@media(prefers-reduced-motion:reduce){.fab-pack{animation:none}}

/* ===== Bordures animées selon la rareté des cartes (collection, détail, packs) ===== */
@property --tcg-ang{syntax:"<angle>";inherits:false;initial-value:0deg}
.tcg{position:relative}
.tcg.tcg-epic:not(.locked)::after,.tcg.tcg-legendary:not(.locked)::after,.tcg.tcg-mythic:not(.locked)::after,.tcg.tcg-special:not(.locked)::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;z-index:7;background:conic-gradient(from var(--tcg-ang),transparent 0 55%,var(--rc,#f5b301) 78%,#fff 86%,transparent 95%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask-composite:exclude;animation:tcgSpin 4.5s linear infinite}
.tcg.tcg-epic:not(.locked)::after{animation-duration:7s;opacity:.7}
.tcg.tcg-mythic:not(.locked)::after{animation-duration:3s}
@keyframes tcgSpin{to{--tcg-ang:360deg}}
@media(prefers-reduced-motion:reduce){.tcg::after{animation:none!important}}

/* ===== Collection : vue « Classeur » (on feuillette de gauche à droite) ===== */
.tcg-grid.binder{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:calc((100% - 2.2rem) / 3);gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem;border-radius:20px;border:1px solid var(--stroke-line);background:linear-gradient(160deg,var(--bg-elevated),var(--bg-surface));box-shadow:inset 0 0 0 6px color-mix(in srgb,var(--accent) 8%,transparent);scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tcg-grid.binder>.tcg{scroll-snap-align:start;content-visibility:visible}
.tcg-grid.binder>.tcg-sec{display:none}
.tcg-grid.binder>.cg-pager,.tcg-grid.binder>.tcg-empty{grid-column:auto!important;grid-row:1 / span 2;align-self:center;min-width:220px;position:static!important}
@media(min-width:900px){.tcg-grid.binder{grid-auto-columns:calc((100% - 3.2rem) / 5);grid-template-rows:repeat(2,auto)}}

/* ===== Catalogue : fiches plus visuelles ===== */
#vehicles-grid .car-thumb-wrap{aspect-ratio:16/10}
#vehicles-grid .specs-trio{gap:.4rem}#vehicles-grid .spec-val{font-size:1.25rem;font-weight:900;letter-spacing:-.02em}
.cat-frise-btn{min-height:38px;padding:0 .9rem;font-size:.82rem}

/* ===== Fiche voiture : chiffres en tuiles, photo plus grande ===== */
.sheet-kpis{gap:.6rem;background:none!important;border:0!important;padding:0!important;box-shadow:none!important;overflow:visible}
.sheet-kpis>div{border:1px solid var(--stroke-line)!important;border-radius:18px;background:linear-gradient(160deg,var(--bg-elevated),var(--bg-surface));text-align:left}
.sheet-kpis>div+div{border-left:1px solid var(--stroke-line)!important}
@media(max-width:760px){.sheet-hero-banner{margin-inline:-.2rem;border-radius:0 0 26px 26px;overflow:hidden}.sheet-big-title{font-size:clamp(1.9rem,8vw,2.6rem);letter-spacing:-.03em}}

/* ---- points rouges : défis terminés à récupérer (n'ajoute rien à la mise en page) */
.gh-chal-link,html[data-chal-ready] .play-subtabs a[href="#/jouer/defis"]{position:relative}
html[data-chal-ready] .gh-chal-link::after,html[data-chal-ready] .play-subtabs a[href="#/jouer/defis"]::after{content:"";position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px var(--bg-core,#09090b);animation:ma-dotpulse 1.8s ease-in-out infinite}
@keyframes ma-dotpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){html[data-chal-ready] .gh-chal-link::after{animation:none}}

/* ---- défis à cartes : affiches */
.cc-sec{margin-top:26px}
.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:12px}
.cc-poster{--cc:var(--accent);display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:var(--bg-surface);border:1px solid var(--stroke-line);box-shadow:0 0 0 1px color-mix(in srgb,var(--cc) 35%,transparent)}
.cc-poster.r-epic{--cc:#a855f7}.cc-poster.r-legendary{--cc:#f59e0b}.cc-poster.r-rare{--cc:#38bdf8}
.cc-poster.ready{box-shadow:0 0 0 2px var(--cc),0 8px 26px color-mix(in srgb,var(--cc) 35%,transparent)}
.cc-poster.won{opacity:.78}
.cc-art{position:relative;aspect-ratio:16/9;background:var(--bg-elevated)}
.cc-art img{width:100%;height:100%;object-fit:cover;display:block}
.cc-art::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.55))}
.cc-rar{position:absolute;left:10px;top:10px;z-index:1;padding:3px 9px;border-radius:99px;background:var(--cc);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.cc-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
.cc-name{color:var(--color-ink)}
.cc-tasks{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.cc-tasks li{display:flex;gap:9px;align-items:flex-start;font-size:.85rem;color:var(--color-muted)}
.cc-tasks li i{font-style:normal;flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--bg-elevated);font-size:.75rem}
.cc-tasks li.ok{color:var(--color-ink)}.cc-tasks li.ok i{background:var(--cc);color:#fff}

/* ---- image de club */
.club-cover{position:relative;border-radius:18px;overflow:hidden;margin-bottom:14px;background:var(--bg-elevated);border:1px solid var(--stroke-line)}
.club-cover img{display:block;width:100%;max-height:220px;object-fit:cover}
.club-cover.empty{padding:14px}
.club-cover-act{display:flex;gap:8px;flex-wrap:wrap}
.club-cover:not(.empty) .club-cover-act{position:absolute;right:10px;bottom:10px}
.club-ico.club-img{width:38px;height:38px;border-radius:10px;object-fit:cover;flex:none}

/* ---- choix de la vitrine : aperçu, fonds, filtres, grille (mobile + PC) */
.tcg-overlay[data-kind="showcase"]{place-items:start center;padding:0;display:block}
.vt{width:min(1180px,100%);margin:0 auto;min-height:100%;display:flex;flex-direction:column;color:var(--color-ink,#fff);text-align:left}
.vt-x{display:none}.vt-top{padding-right:64px!important;position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:color-mix(in srgb,var(--bg-core,#09090b) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--stroke-line,rgba(255,255,255,.12))}
.vt-top h2{margin:0;font-size:1.25rem}.vt-sub{margin:2px 0 0;font-size:.8rem;color:var(--color-muted,#a1a1aa)}
.vt-x{width:40px;height:40px;border-radius:50%;border:1px solid var(--stroke-line,rgba(255,255,255,.2));background:var(--bg-elevated,#18181b);color:inherit;font-size:1.4rem;cursor:pointer;line-height:1}
.vt-body{display:flex;flex-direction:column;gap:14px;padding:14px 16px 90px}
.vt-side{display:flex;flex-direction:column;gap:10px}
.vt-h{margin:4px 0 0;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted,#a1a1aa)}
.vt-prev{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;border-radius:16px;border:1px solid var(--stroke-line,rgba(255,255,255,.12))}
.vt-prev[data-bg=""]{background:var(--bg-surface,#111)}.vt-prev:not([data-bg=""]){border-color:transparent}
.vt-slot{position:relative;aspect-ratio:1/1.1;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:rgba(0,0,0,.28);border:1.5px dashed rgba(255,255,255,.22)}
.vt-slot.on{border-style:solid;border-color:var(--accent);display:block;background:#000}
.vt-slot.r-legendary{border-color:#f59e0b}.vt-slot.r-epic{border-color:#a855f7}.vt-slot.r-rare{border-color:#38bdf8}
.vt-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vt-slot::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(0,0,0,.85));pointer-events:none}
.vt-slot small{color:var(--color-muted,#a1a1aa);font-size:.72rem}
.vt-n{position:absolute;left:6px;top:6px;z-index:2;min-width:20px;height:20px;border-radius:99px;background:var(--accent);color:var(--on-accent,#fff);font-size:.72rem;font-weight:700;display:grid;place-items:center}
.vt-slot:not(.on) .vt-n{background:rgba(255,255,255,.18);color:#fff}
.vt-slot b{position:absolute;left:6px;right:6px;bottom:30px;z-index:2;font-size:.68rem;line-height:1.15;color:#fff;text-shadow:0 1px 3px #000}
.vt-sb{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;justify-content:space-between;padding:2px 4px}
.vt-sb button{border:0;background:transparent;color:#fff;min-width:30px;height:28px;cursor:pointer;font-size:.8rem}.vt-sb button:disabled{opacity:.25}
.vt-bgs{display:flex;gap:8px;flex-wrap:wrap}
.vt-bg{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;color:var(--color-muted,#a1a1aa);font:inherit;font-size:.68rem;cursor:pointer;padding:0}
.vt-bg i{display:block;width:44px;height:44px;border-radius:12px;border:2px solid transparent;box-shadow:0 0 0 1px var(--stroke-line,rgba(255,255,255,.2))}
.vt-bg i:not([data-bg]){background:var(--bg-elevated,#18181b)}.vt-bg.on i{border-color:var(--accent)}.vt-bg.on{color:var(--color-ink,#fff)}
.vt-tools{display:grid;gap:10px;margin-bottom:12px}
.vt-tools input{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--stroke-line,rgba(255,255,255,.2));background:var(--bg-surface,#111);color:inherit;font:inherit}
.vt-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.vt-chip{flex:none;border:1px solid var(--stroke-line,rgba(255,255,255,.2));background:var(--bg-surface,#111);color:inherit;border-radius:99px;padding:6px 13px;font:inherit;font-size:.8rem;cursor:pointer}
.vt-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent,#fff)}
.vt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px 10px;width:100%}
.vt .cg-pickcard{width:100%;min-width:0}
.vt .cg-pickcard .tcg-stats,.vt .cg-pickcard .tcg-note,.vt .cg-pickcard .tcg-brand{display:none}
.vt-actions{display:flex;gap:10px}.vt-actions .cta-btn{flex:1}
.vt-actions.d{display:none}
.vt-actions.m{position:fixed;left:0;right:0;bottom:0;z-index:6;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg-core,#09090b) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--stroke-line,rgba(255,255,255,.12))}
@media (min-width:900px){
  .vt-body{flex-direction:row;align-items:flex-start;gap:24px;padding-bottom:30px}
  .vt-side{position:sticky;top:78px;width:340px;flex:none}
  .vt-main{flex:1;min-width:0}
  .vt-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px 12px}
  .vt-actions.d{display:flex}.vt-actions.m{display:none}
}

/* ---- Bataille contre un joueur : choix du mode, liste des pilotes, partie en direct, notification volante */
.bl{max-width:760px;width:100%;margin:0 auto}
.bl-modes{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;width:100%}
.bl-mode{display:flex;flex-direction:column;gap:.35rem;text-align:left;padding:1rem;border-radius:16px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);cursor:pointer;font:inherit}
.bl-mode b{font-size:1.05rem}.bl-mode small{color:var(--color-muted)}
.bl-mode:hover,.bl-mode:focus-visible{border-color:var(--accent)}
.bl-q{width:100%;padding:.7rem .9rem;border-radius:12px;border:1px solid var(--stroke-line);background:var(--bg-surface);color:var(--color-ink);font:inherit}
.bl-list{display:grid;gap:.5rem;width:100%;max-height:52vh;overflow:auto}
.bl-user{display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;border-radius:14px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);text-align:left;cursor:pointer;font:inherit}
.bl-user:hover,.bl-user:focus-visible{border-color:var(--accent)}
.bl-user img,.bl-av{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--bg-surface);flex:none}
.bl-user span{display:grid;min-width:0}.bl-user b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bl-user small{color:var(--color-muted)}
.bl-clock{font-size:2.2rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--accent)}
.bt-hand.dim{opacity:.55}.bt-hand .pick.sel{outline:3px solid var(--accent);outline-offset:3px;border-radius:12px}
.bt-hand .pick:disabled{cursor:default}
.bl-toast{position:fixed;z-index:9000;right:14px;top:78px;width:min(360px,calc(100vw - 28px));display:grid;gap:.6rem;padding:.9rem 1rem;border-radius:16px;background:var(--bg-elevated);color:var(--color-ink);border:1px solid var(--accent);box-shadow:0 18px 40px -12px rgba(0,0,0,.55);opacity:0;transform:translateY(-12px);transition:opacity .22s,transform .22s}
.bl-toast.on{opacity:1;transform:none}
.bl-toast-t{display:grid;gap:.1rem}.bl-toast-t small{color:var(--color-muted)}
.bl-toast-a{display:flex;gap:.5rem}
.bl-toast-x{justify-self:start;background:none;border:0;color:var(--color-muted);font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer;padding:0}
@media (max-width:640px){.bl-modes{grid-template-columns:1fr}.bl-toast{right:8px;left:8px;width:auto;top:auto;bottom:calc(86px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.bl-toast{transition:none}}

/* ---- Batailles v2 : arène commune (IA et joueur) */
.bx{display:grid;gap:.7rem;width:100%;justify-items:center}
.bx-bar{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:center;width:100%}
.bx-pl{display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border-radius:14px;border:1px solid var(--stroke-line);background:var(--bg-elevated);min-width:0;transition:box-shadow .25s,border-color .25s}
.bx-pl.foe{flex-direction:row-reverse;text-align:right}
.bx-pl>span:not(.bx-pips){display:grid;gap:.15rem;min-width:0}.bx-pl b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.bx-pl em{font-style:normal;font-weight:900;font-size:1.5rem;color:var(--accent);font-variant-numeric:tabular-nums}
.bx-pl.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),0 0 24px -2px var(--accent);animation:bx-pulse 1.4s ease-in-out infinite}
.bx-av{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;color:#fff;background:hsl(var(--h) 55% 38%)}
.bx-pips{display:flex!important;gap:4px;flex-wrap:nowrap}.bx-pl.foe .bx-pips{justify-content:flex-end}.bx-pips i{width:10px;height:10px;border-radius:50%;background:var(--stroke-line)}
.bx-pips i.w{background:#4ade80}.bx-pips i.l{background:#f87171}.bx-pips i.t{background:#fbbf24}
.bx-mid{font-size:.8rem;color:var(--color-muted);text-align:center;font-weight:700}
.bx-banner{display:grid;gap:.1rem;width:100%;padding:.7rem 1rem;border-radius:16px;text-align:center}
.bx-banner b{font-size:clamp(1.2rem,5vw,1.7rem);letter-spacing:.04em;text-transform:uppercase}
.bx-banner small{font-size:.9rem}
.bx-banner.me{background:var(--accent);color:var(--on-accent);animation:bx-pulse 1.4s ease-in-out infinite}
.bx-banner.foe,.bx-banner:not(.me){background:var(--bg-elevated);color:var(--color-muted);border:1px dashed var(--stroke-line)}
.bx-time{width:100%;height:8px;border-radius:99px;background:var(--stroke-line);overflow:hidden}
.bx-time i{display:block;height:100%;background:var(--color-muted);transform-origin:left;animation:bx-drain var(--d) linear forwards;animation-delay:calc(-1 * var(--e))}
.bx-time.me i{background:var(--accent);animation-name:bx-drain,bx-late}
.bx-time.me i{animation-duration:var(--d),var(--d);animation-timing-function:linear;animation-fill-mode:forwards;animation-delay:calc(-1 * var(--e)),calc(-1 * var(--e))}
.bx-arena{display:grid;grid-template-columns:1fr auto 1fr;gap:.6rem;align-items:center;justify-items:center;width:100%}
.bx-slot{position:relative;border-radius:18px;padding:6px;transition:box-shadow .25s}
.bx-slot.on{box-shadow:0 0 0 2px var(--accent),0 0 28px -2px var(--accent)}
.bx-slot .tcg,.bx-slot .bt-hidden{width:min(150px,34vw)}
.bx-slot.flip .tcg{animation:bx-flip .6s cubic-bezier(.2,.8,.2,1) both}
.bx-vs{font-weight:900;font-size:1.2rem;color:var(--accent)}
.bx-cmp{display:grid;gap:.4rem;width:min(520px,100%)}
.bx-row{display:grid;grid-template-columns:5.2rem 1fr 5.2rem;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:12px;background:var(--bg-surface);border:1px solid transparent}
.bx-row.hot{border-color:var(--accent);background:var(--bg-elevated)}
.bx-v{font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-muted)}.bx-v.me{text-align:left}.bx-v.foe{text-align:right}.bx-v.w{color:#4ade80}.bx-v small{font-weight:500;font-size:.7rem}
.bx-k{display:grid;gap:3px;text-align:center;font-size:.75rem;color:var(--color-muted)}
.bx-bars{display:grid;grid-template-columns:1fr 1fr;gap:4px}.bx-bars i{display:block;height:6px;border-radius:99px;background:var(--stroke-line);position:relative;overflow:hidden}
.bx-bars i::after{content:"";position:absolute;inset:0;width:var(--w);background:var(--color-muted);border-radius:inherit}
.bx-bars i.me{transform:scaleX(-1)}.bx-bars i.w::after{background:#4ade80}
.bx-cmp.anim .bx-bars i::after{animation:bx-grow .7s ease-out both}
.bx-end{position:relative;display:grid;gap:.3rem;text-align:center;padding:1rem 1.4rem;border-radius:20px;border:2px solid var(--stroke-line);background:var(--bg-elevated);overflow:hidden;width:min(420px,100%)}
.bx-end b{font-size:2rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.bx-end.win{border-color:#4ade80}.bx-end.win b{color:#4ade80}.bx-end.lose b{color:#f87171}.bx-end.tie b{color:#fbbf24}
.bx-end.anim{animation:bx-pop .5s cubic-bezier(.2,1.4,.4,1) both}
.bx-prize{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;font-weight:800;color:var(--accent)}
.bx-conf i{position:absolute;top:-10px;left:calc(var(--i) * 5.5%);width:8px;height:14px;border-radius:2px;background:hsl(calc(var(--i) * 40) 80% 60%);animation:bx-fall 2.2s ease-in calc(var(--i) * .08s) both}
.bx-emotes{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}
.bx-emotes button{padding:.35rem .7rem;border-radius:99px;border:1px solid var(--stroke-line);background:var(--bg-elevated);color:var(--color-ink);font:inherit;font-size:.85rem;cursor:pointer}
.bx-emotes button:hover,.bx-emotes button:focus-visible{border-color:var(--accent)}
.bx-bub{position:absolute;top:-14px;z-index:2;padding:.3rem .7rem;border-radius:99px;background:var(--accent);color:var(--on-accent);font-weight:800;font-size:.85rem;white-space:nowrap;animation:bx-bub 3s ease both}
.bx-bub.me{left:6px}.bx-bub.foe{right:6px}
@keyframes bx-pulse{0%,100%{filter:none}50%{filter:brightness(1.18)}}
@keyframes bx-drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes bx-late{0%,70%{background:var(--accent)}85%,100%{background:#ef4444}}
@keyframes bx-flip{from{transform:perspective(600px) rotateY(90deg);opacity:0}to{transform:none;opacity:1}}
@keyframes bx-grow{from{width:0}}
@keyframes bx-pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes bx-fall{from{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(260px) rotate(540deg);opacity:0}}
@keyframes bx-bub{0%{transform:translateY(8px);opacity:0}10%,80%{transform:none;opacity:1}100%{opacity:0}}
@media (max-width:640px){.bx-row{grid-template-columns:4.4rem 1fr 4.4rem}.bx-bar{grid-template-columns:1fr 1fr}.bx-mid{grid-column:1/-1;order:-1}}
@media (prefers-reduced-motion:reduce){.bx-pl.on,.bx-banner.me,.bx-slot.flip .tcg,.bx-end.anim,.bx-conf i,.bx-cmp.anim .bx-bars i::after{animation:none}}

/* ---- Batailles : tout doit tenir dans l'écran (hauteur) */
.bx{gap:.5rem;min-width:0;max-width:100%}.tcg-overlay[data-kind=battle] .tcg-stage,.tcg-overlay .tcg-stage:has(.bx){max-width:100%;overflow-x:hidden}
.bx-banner{padding:.45rem .8rem}.bx-banner b{font-size:clamp(1.05rem,4.5vw,1.45rem)}.bx-banner small{font-size:.82rem}
.bx-slot .tcg,.bx-slot .bt-hidden{width:130px;width:min(150px,34vw,21vh)}
.bx .bt-hand{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,88px);gap:.35rem;justify-content:center;width:100%;max-width:100%}.bx .bt-hand .pick{min-width:0;padding:0}
.bx .bt-hand .tcg{width:100%}
.bx-row{padding:.2rem .45rem}
.bx-recap{width:min(520px,100%);padding:.35rem .7rem;border-radius:10px;font-size:.82rem;font-weight:700;text-align:center;background:var(--bg-surface);color:var(--color-muted);border-left:4px solid var(--stroke-line)}
.bx-recap.win{border-color:#4ade80;color:#4ade80}.bx-recap.lose{border-color:#f87171;color:#f87171}.bx-recap.tie{border-color:#fbbf24;color:#fbbf24}
.bx .tcg-hint{margin:0}.bx .bt-note{margin:0}
@media (max-height:800px){.bx .bt-note{display:none}}
@media (max-height:700px){.bx-bars{display:none}.bx-row{grid-template-columns:5rem 1fr 5rem}.bx-end{padding:.6rem 1rem}.bx-end b{font-size:1.5rem}}
@media (max-height:700px){.bx-slot .tcg,.bx-slot .bt-hidden{width:min(130px,32vw,17vh)}.bx-banner small{display:none}.bx{gap:.35rem}}
.bx .bt-hand{padding:4px 3px}
.bx .bt-hand .tcg-rar{font-size:6.5px;padding:.1em .4em;max-width:62%;overflow:hidden;text-overflow:clip}
.bx .bt-hand .tcg-no,.bx .bt-hand .tcg .tcg-num{display:none}
.bx .bt-hand .bt-hidden{width:100%}
