/* NEXKAI — identité globale (menus, collection, boosters, profil). Le plateau de duel garde le thème du set joué. */
:root{--nx-bg:#120f2e;--nx-bg2:#1b2557;--nx-panel:rgba(22,24,60,.78);--nx-line:rgba(170,160,255,.22);--nx-ink:#f2f1ff;--nx-muted:#b4b6dc;--nx-violet:#8b6cff;--nx-cyan:#5ee0ff;--nx-warm:#ffd27a;--nx-pink:#ff7ab6;--nx-title:"Bahnschrift","Segoe UI Semibold","Segoe UI",system-ui,sans-serif;--card-back-url:url("../assets/nexkai/card-back.svg")}
body{background:radial-gradient(ellipse 90% 70% at 70% -10%,#3a2a8f 0%,transparent 60%),radial-gradient(ellipse 70% 60% at 0% 110%,#1f4a8f 0%,transparent 60%),linear-gradient(180deg,#141238,#0e0d26) fixed}
header{border-bottom:1px solid var(--nx-line);background:linear-gradient(180deg,#17143fef,#120f2ee6)}
.brand b{width:44px;height:44px}.brand b img{width:44px;height:44px}
.brand>div{font:800 20px var(--nx-title);letter-spacing:.32em;color:#fff}.brand small{color:var(--nx-cyan);letter-spacing:.5em}
nav{background:#15133ad9;border-bottom:1px solid var(--nx-line)}
nav>button.active{color:#fff;border-bottom-color:var(--nx-violet)}nav>button:hover{border-bottom-color:#8b6cff88}
.nx-mode-switch{display:flex;align-items:center;gap:2px;margin-left:12px;padding:3px;border-radius:999px;background:#0d0c26;border:1px solid var(--nx-line)}
.nx-mode-switch button{border:0;border-radius:999px;padding:5px 12px;font:700 11px var(--nx-title);letter-spacing:.12em;text-transform:uppercase;background:none;color:var(--nx-muted)}
.nx-mode-switch button.on{background:linear-gradient(90deg,var(--nx-violet),#5a8bff);color:#fff}
.nx-player-chip{display:flex;align-items:center;gap:8px;margin-left:12px;padding:3px 10px 3px 3px;border-radius:999px;background:#1d1b4a;border:1px solid var(--nx-line);color:#fff;font:600 12px var(--nx-title);cursor:pointer}
.nx-player-chip img{width:28px;height:28px;border-radius:50%}
.nx-btn{font:700 13px var(--nx-title);letter-spacing:.08em;padding:9px 16px;border-radius:12px;border:1px solid #6f68c8;background:#262866;color:#fff;cursor:pointer;transition:transform .12s,background .15s}
.nx-btn:hover{background:#30337c;transform:translateY(-1px)}.nx-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.nx-btn.primary{border-color:#b9a8ff;background:linear-gradient(135deg,#8b6cff,#4e8bff);box-shadow:0 8px 24px #4e8bff55}
.nx-btn.ghost{background:#1a1946cc}.nx-btn.small{padding:5px 10px;font-size:11px}.nx-btn.danger{border-color:#ff8fa3;background:#4a1830}
.nx-kicker{font:600 11px var(--nx-title);letter-spacing:.45em;text-transform:uppercase;color:var(--nx-cyan)}
.nx-panel{background:var(--nx-panel);border:1px solid var(--nx-line);border-radius:18px;padding:18px;box-shadow:0 18px 50px #0007}
.nx-tabs{display:flex;flex-wrap:wrap;gap:6px}
.nx-tab{border-radius:999px;padding:7px 14px;border:1px solid var(--nx-line);background:#1a1946;color:var(--nx-muted);font:700 12px var(--nx-title);letter-spacing:.1em;cursor:pointer}
.nx-tab.on{color:#fff;border-color:#b9a8ff;background:linear-gradient(90deg,#3a2f9a,#284a9a)}.nx-tab:disabled{opacity:.45;cursor:not-allowed}
.nx-chip{border-radius:999px;padding:4px 10px;border:1px solid var(--nx-line);background:#1a1946;color:var(--nx-muted);font:700 11px var(--nx-title);cursor:pointer}.nx-chip.on{color:#fff;border-color:var(--nx-cyan)}.nx-chip:disabled{opacity:.35;cursor:not-allowed}
.nx-inline{display:inline-flex;align-items:center;gap:6px;color:var(--nx-muted);font-size:12px}
.nx-hint{color:var(--nx-muted);font-size:13px;text-align:center}

/* ---------- cartes et finitions ---------- */
.nx-card{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;--hover:0;position:relative;aspect-ratio:5/7;border-radius:5.5%/4%;transform-style:preserve-3d;perspective:900px}
.nx-card-inner{position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:#0d0c26;box-shadow:0 10px 24px #0009,0 0 0 1px #0008}
.nx-card-art{width:100%;height:100%;object-fit:cover;display:block}
.nx-holo,.nx-sparkle,.nx-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit}
.nx-glare{background:radial-gradient(circle at var(--mx) var(--my),#ffffffaa 0%,#ffffff22 22%,transparent 46%);mix-blend-mode:overlay;opacity:calc(.15 + var(--hover)*.55)}
.nx-card.finish-normal .nx-holo,.nx-card.finish-normal .nx-sparkle{display:none}
/* Holographique (9.1 : moins granuleux, reflets plus naturels) : larges bandes irisées douces qui glissent avec
   l'inclinaison, concentrées autour du point lumineux pour garder le dessin lisible. */
.nx-card.finish-holographic .nx-holo{background:linear-gradient(115deg,transparent 0%,#ff7fb0 18%,#ffe08a 30%,#8cffc4 42%,#7fe6ff 54%,#b49cff 66%,transparent 84%);background-size:240% 240%;background-position:var(--mx) var(--my);mix-blend-mode:color-dodge;opacity:calc(.16 + var(--hover)*.12);filter:blur(.4px) saturate(1.1);-webkit-mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,#000c 35%,#0004 75%);mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,#000c 35%,#0004 75%)}
/* Rainbow : arc-en-ciel plus marqué, toujours lisible. */
.nx-card.finish-rainbow .nx-holo{background:linear-gradient(calc(110deg + var(--ry)*3),#ff3d7f,#ffb13d,#f7ff5c,#3dff9a,#3dd8ff,#7a5cff,#ff3dd1,#ff3d7f);background-size:300% 300%;background-position:var(--mx) var(--my);mix-blend-mode:color-dodge;opacity:calc(.24 + var(--hover)*.12);filter:blur(.6px);-webkit-mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,#000a 45%,#0003 85%);mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,#000a 45%,#0003 85%)}
/* Paillettes fines et clairsemées (au lieu d'une trame serrée). */
.nx-card.finish-rainbow .nx-sparkle,.nx-card.finish-holographic .nx-sparkle{background-image:radial-gradient(circle,#fff 0 .7px,transparent 1.4px),radial-gradient(circle,#fff 0 .5px,transparent 1.1px);background-size:61px 53px,37px 43px;background-position:calc(var(--mx)*.4) calc(var(--my)*.4),calc(var(--mx)*-.3) calc(var(--my)*.6);mix-blend-mode:screen;opacity:calc(.08 + var(--hover)*.35);-webkit-mask-image:radial-gradient(circle at var(--mx) var(--my),#000,transparent 55%);mask-image:radial-gradient(circle at var(--mx) var(--my),#000,transparent 55%)}
.nx-card.finish-holographic .nx-sparkle{opacity:calc(.04 + var(--hover)*.25)}
.nx-card.finish-full_art .nx-inner,.nx-card.finish-full_art .nx-card-inner{box-shadow:0 10px 24px #0009,0 0 0 2px #ffd27a}
.nx-card.finish-full_art .nx-holo{background:linear-gradient(125deg,transparent 30%,#ffe7a8aa 48%,transparent 62%);background-size:250% 250%;background-position:var(--mx) var(--my);mix-blend-mode:soft-light;opacity:.6}
.nx-finish-tag{position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);z-index:3;white-space:nowrap;font:800 9px var(--nx-title);letter-spacing:.14em;padding:2px 8px;border-radius:999px;color:#1b1040;background:linear-gradient(90deg,#ffd27a,#ff9fd0,#9fe3ff)}
/* Miniatures : aucun suivi du pointeur ; seul un léger balayage au survol (économie de rendu dans les galeries). */
.nx-card.nx-mini .nx-glare{opacity:0}.nx-card.nx-mini .nx-sparkle{display:none}
.nx-card.nx-mini:hover .nx-holo{animation:nx-sheen 2.4s linear infinite}
@keyframes nx-sheen{from{background-position:0% 50%}to{background-position:200% 50%}}
/* Vue détaillée et révélation : perspective complète. */
.nx-card.nx-detail,.nx-card.nx-reveal,.nx-card.nx-summary{transition:transform .05s linear}
.nx-card.nx-detail{width:min(62vh,440px,86vw);transform:rotateX(var(--rx)) rotateY(var(--ry));cursor:grab;touch-action:none}
.nx-card.nx-detail .nx-card-inner{box-shadow:calc(var(--ry)*-1.2) calc(var(--rx)*1.2 + 26px) 50px #000b,0 0 0 1px #fff3}
.nx-card.nx-detail .nx-card-art{transform:translateZ(18px) scale(1.01)}

/* ---------- vue détaillée ---------- */
.nx-detail-modal{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;gap:36px;padding:4vh 4vw;background:radial-gradient(ellipse at center,#241f6acc,#07061adb);backdrop-filter:blur(4px);flex-wrap:wrap}
.nx-detail-stage{perspective:1100px;display:flex;align-items:center;justify-content:center}
.nx-detail-side{max-width:440px;color:var(--nx-ink)}
.nx-detail-side h2{margin:4px 0 6px;font:800 30px var(--nx-title);letter-spacing:.04em}
.nx-detail-meta{color:var(--nx-warm);font-weight:700}.nx-detail-arch{color:var(--nx-cyan);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.nx-detail-text{line-height:1.55;color:#e7e8ff}.nx-detail-note{font-size:12px;color:var(--nx-muted);font-style:italic}.nx-detail-owned{font-weight:700}
.nx-preview-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0}.nx-preview-label{flex:1 1 100%;font-size:12px;color:var(--nx-muted)}

/* ---------- boosters ---------- */
#boosters{max-width:none;padding:0}
.nx-booster-page{position:relative;min-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse 60% 55% at 50% 50%,#3d3299 0%,#1c1d58 45%,#100e2c 100%)}
.nx-booster-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:14px 22px}
.nx-booster-info{margin:0;font-size:12px;color:var(--nx-muted)}
.nx-booster-footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;padding:14px}
.nx-booster-footer select{background:#1a1946;color:#fff;border:1px solid var(--nx-line);border-radius:8px;padding:4px 8px}
.nx-booster-stage{position:relative;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;perspective:1300px;min-height:420px}
.nx-pack-float{position:relative;width:min(300px,62vw,max(190px,calc((100vh - 300px)*.625)));aspect-ratio:300/480;animation:nx-float 5.5s ease-in-out infinite;transform-style:preserve-3d;z-index:2}
@keyframes nx-float{0%,100%{transform:translateY(0) rotateZ(-1.2deg)}50%{transform:translateY(-16px) rotateZ(1.2deg)}}
.nx-pack{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;--hover:0;position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(calc(var(--ry) + 0deg));cursor:pointer;touch-action:none;outline:0}
.nx-pack:focus-visible .front{box-shadow:0 0 0 3px var(--nx-cyan)}
.nx-pack-face{position:absolute;inset:0;border-radius:10px 10px 12px 12px;overflow:hidden;backface-visibility:hidden;box-shadow:0 30px 60px #0009}
.nx-pack-face.front{transform:translateZ(9px)}.nx-pack-face.back{transform:rotateY(180deg) translateZ(9px)}
.nx-pack-art{width:100%;height:100%;display:block;object-fit:cover}
.nx-pack-feature{position:absolute;left:11.3%;top:23.3%;width:77.4%;height:52%;object-fit:cover;border-radius:12px;filter:saturate(1.08);object-position:50% 28%}
.nx-pack-foil{position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#ffffff30 32%,#9fe3ff40 40%,#ff9fd040 48%,transparent 60%);background-size:260% 260%;background-position:var(--mx) var(--my);mix-blend-mode:screen;pointer-events:none}
.nx-pack-glare{position:absolute;inset:0;background:radial-gradient(circle at var(--mx) var(--my),#ffffff66,transparent 45%);mix-blend-mode:overlay;opacity:calc(.25 + var(--hover)*.5);pointer-events:none}
.nx-pack-cap{position:absolute;left:0;right:0;top:0;height:7.1%;background:linear-gradient(180deg,#0d1636,#1a2550);border-bottom:2px dashed #ffffff55;transform-origin:0% 100%}
.nx-pack-tear{position:absolute;left:4%;right:4%;bottom:-2px;height:2px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.7}
.nx-pack-cap.torn{animation:nx-tear calc(.6s * var(--nx-f,1)) cubic-bezier(.3,.7,.3,1) forwards}
.nx-pack-cap.tear-swipe{animation-name:nx-tear-swipe}
@keyframes nx-tear{to{transform:translate(40px,-120px) rotate(-24deg);opacity:0}}
@keyframes nx-tear-swipe{to{transform:translate(160px,-60px) rotate(18deg);opacity:0}}
.nx-pack-edge{position:absolute;background:linear-gradient(180deg,#2a2f70,#151a40)}
.nx-pack-edge.left{left:0;top:0;bottom:0;width:18px;transform:translateX(-9px) rotateY(-90deg)}
.nx-pack-edge.right{right:0;top:0;bottom:0;width:18px;transform:translateX(9px) rotateY(90deg)}
.nx-pack-edge.top{top:0;left:0;right:0;height:18px;transform:translateY(-9px) rotateX(90deg)}
.nx-pack-edge.bottom{bottom:0;left:0;right:0;height:18px;transform:translateY(9px) rotateX(-90deg)}
.nx-pack-shadow{width:min(240px,50vw);height:26px;margin-top:26px;border-radius:50%;background:radial-gradient(ellipse,#000a,transparent 70%);animation:nx-shadow 5.5s ease-in-out infinite}
@keyframes nx-shadow{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(.82);opacity:.55}}
.nx-pack.charging{animation:nx-charge .42s ease-in-out}
@keyframes nx-charge{0%{transform:scale(1)}40%{transform:scale(1.08) rotateZ(-1.5deg)}70%{transform:scale(1.1) rotateZ(1.5deg)}100%{transform:scale(1.12)}}
.nx-pack-float.away{animation:nx-away .45s ease-in forwards}
@keyframes nx-away{to{transform:translateY(160px) scale(.85);opacity:0}}
.nx-burst{position:absolute;left:50%;top:38%;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;background:radial-gradient(circle,#fff 0%,#9fe3ffaa 22%,#8b6cff55 45%,transparent 70%);pointer-events:none;animation:nx-burst .9s ease-out forwards;z-index:3}
@keyframes nx-burst{from{transform:scale(.2);opacity:1}to{transform:scale(1.6);opacity:0}}
.nx-rising{position:absolute;left:12%;right:12%;top:2%;height:60%;z-index:-1;transform:translateZ(2px)}
.nx-rise-card{position:absolute;left:0;right:0;top:0;aspect-ratio:5/7;border-radius:8px;background:var(--card-back-url) center/cover;box-shadow:0 8px 20px #0009;animation:nx-rise .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*60ms)}
@keyframes nx-rise{from{transform:translateY(40%)}to{transform:translateY(calc(-62% - var(--i)*6px)) rotate(calc((var(--i) - 2)*3deg))}}
.nx-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.nx-particles span{position:absolute;bottom:-10px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:#cfe9ff;box-shadow:0 0 8px #9fe3ff;opacity:.7;animation:nx-particle var(--d) linear infinite;animation-delay:var(--delay)}
@keyframes nx-particle{from{transform:translateY(0)}to{transform:translateY(-110vh)}}
/* Révélation */
.nx-booster-stage.reveal{justify-content:flex-start;padding-top:12px;gap:14px}
.nx-revealed-row{display:flex;gap:12px;min-height:150px;justify-content:center;flex-wrap:wrap}
.nx-revealed-row .nx-flip{width:96px;position:relative;animation:nx-place .35s ease}
@keyframes nx-place{from{transform:translateY(40px) scale(1.6);opacity:.4}}
.nx-pile{position:relative;width:min(260px,58vw,max(170px,calc((100vh - 400px)*.714)));aspect-ratio:5/7;cursor:pointer;perspective:1200px}
.nx-pile>.nx-flip{position:absolute;inset:0;transform:translate(calc(var(--i)*-2px),calc(var(--i)*-3px));z-index:calc(10 - var(--i))}
.nx-pile .nx-hint{position:absolute;left:-40%;right:-40%;bottom:-46px}
.nx-flip-inner{position:relative;width:100%;aspect-ratio:5/7;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.7,.3,1)}
.nx-flip.flipped .nx-flip-inner{transform:rotateY(180deg)}
.nx-flip-back,.nx-flip-front{position:absolute;inset:0;backface-visibility:hidden;border-radius:6%/4.3%;overflow:visible}
.nx-flip-back{background:var(--card-back-url) center/cover;box-shadow:0 12px 28px #000a;border-radius:12px}
.nx-flip-front{transform:rotateY(180deg)}.nx-flip-front .nx-card{width:100%}
.nx-flip.special .nx-flip-front::after{content:"";position:absolute;inset:-30%;border-radius:50%;background:radial-gradient(circle,#ffe7a8cc,#ff9fd055 35%,transparent 65%);animation:nx-special 1s ease-out forwards;pointer-events:none;z-index:-1}
@keyframes nx-special{from{transform:scale(.3);opacity:1}to{transform:scale(1.4);opacity:0}}
.nx-reveal-controls{display:flex;gap:8px;margin-top:44px}
/* Récapitulatif */
.nx-booster-stage.summary{justify-content:flex-start;padding:10px 16px 20px;gap:16px}
.nx-summary-title{font:800 28px var(--nx-title);letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0}
.nx-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,170px));gap:18px;justify-content:center;width:100%}
.nx-summary-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;animation:nx-place .4s ease backwards}
.nx-summary-cell:nth-child(2){animation-delay:.06s}.nx-summary-cell:nth-child(3){animation-delay:.12s}.nx-summary-cell:nth-child(4){animation-delay:.18s}.nx-summary-cell:nth-child(5){animation-delay:.24s}
.nx-summary-cell .nx-card{width:100%;cursor:zoom-in}
.nx-summary-name{font:700 13px var(--nx-title);color:#fff;margin-top:6px}.nx-summary-sub{font-size:11px;color:var(--nx-muted)}
.nx-new{position:absolute;top:-8px;right:-6px;z-index:4;font:800 10px var(--nx-title);letter-spacing:.12em;padding:2px 8px;border-radius:999px;background:var(--nx-cyan);color:#06243a}
.nx-summary-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
@media(max-width:900px){.nx-summary-grid{grid-template-columns:repeat(3,minmax(0,140px))}}
@media(max-width:520px){.nx-summary-grid{grid-template-columns:repeat(2,minmax(0,140px))}}

/* ---------- collection ---------- */
.nx-collection-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.nx-collection-stats{display:flex;gap:16px;flex-wrap:wrap}.nx-stat{display:flex;flex-direction:column}.nx-stat strong{font:800 22px var(--nx-title);color:#fff}.nx-stat span{font-size:11px;color:var(--nx-muted);text-transform:uppercase;letter-spacing:.12em}
.nx-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.nx-filters input,.nx-filters select{background:#141238;color:#fff;border:1px solid var(--nx-line);border-radius:10px;padding:6px 10px}
.nx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:18px 14px}
.nx-grid-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;color:inherit;cursor:pointer;padding:0}
.nx-grid-cell .nx-card{width:100%}
.nx-grid-cell.missing .nx-card{filter:grayscale(.55) brightness(.62)}
.nx-qty{position:absolute;top:-6px;right:-4px;z-index:4;min-width:24px;height:24px;border-radius:12px;padding:0 6px;display:grid;place-items:center;font:800 12px var(--nx-title);background:#fff;color:#1b1040;box-shadow:0 3px 8px #0008}
.nx-grid-name{font-size:11.5px;color:#dfe0ff;text-align:center;line-height:1.2;margin-top:4px}
.nx-empty{padding:30px;text-align:center;color:var(--nx-muted)}

/* ---------- profil ---------- */
.nx-profile{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:22px;align-items:start}
.nx-profile-card{position:relative;overflow:hidden;text-align:center;padding:26px 18px}
.nx-profile-card .nx-avatar{width:132px;height:132px;border-radius:50%;border:4px solid #fff3;box-shadow:0 10px 30px #0008;object-fit:cover;background:#0d0c26}
.nx-profile-name{font:800 26px var(--nx-title);letter-spacing:.06em;color:#fff;margin:12px 0 2px}
.nx-profile-kind{font-size:12px;color:var(--nx-muted)}
.nx-bg-nebula{background:radial-gradient(ellipse at 30% 0%,#6a4cff88,transparent 60%),radial-gradient(ellipse at 100% 100%,#2fb6ff66,transparent 60%),var(--nx-panel)}
.nx-bg-aurora{background:linear-gradient(160deg,#1fd1a066,#3b5bff55 50%,#8b6cff55),var(--nx-panel)}
.nx-bg-sunset{background:linear-gradient(160deg,#ff7a5966,#ff7ab655 50%,#5a3cff44),var(--nx-panel)}
.nx-bg-midnight{background:linear-gradient(160deg,#0e1a40,#1b1250),var(--nx-panel)}
.nx-bg-forest{background:linear-gradient(160deg,#1f8a7066,#7ee08133 60%,#0e2a2a),var(--nx-panel)}
.nx-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,220px));gap:22px;justify-content:center;perspective:1200px}
.nx-showcase-slot{display:flex;flex-direction:column;align-items:center;gap:8px}
.nx-showcase-slot .nx-card{width:100%;transform:rotateX(var(--rx)) rotateY(var(--ry))}
.nx-slot-empty{width:100%;aspect-ratio:5/7;border-radius:14px;border:2px dashed #ffffff40;display:grid;place-items:center;color:var(--nx-muted);font-size:12px;background:#ffffff08;cursor:pointer}
.nx-slot-tools{display:flex;gap:4px}
.nx-avatar-grid{display:flex;flex-wrap:wrap;gap:10px}
.nx-avatar-grid button{padding:0;border:3px solid transparent;border-radius:50%;background:none;cursor:pointer}.nx-avatar-grid button.on{border-color:var(--nx-cyan)}
.nx-avatar-grid img{width:56px;height:56px;border-radius:50%;display:block}
.nx-form-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
.nx-form-row input[type=text]{background:#141238;color:#fff;border:1px solid var(--nx-line);border-radius:10px;padding:8px 12px;min-width:220px}
.nx-range{display:grid;grid-template-columns:120px 1fr 44px;gap:10px;align-items:center;margin:6px 0;color:var(--nx-muted);font-size:13px}
.nx-picker{position:fixed;inset:0;z-index:380;background:#07061ad0;display:flex;align-items:center;justify-content:center;padding:4vh 3vw}
.nx-picker .nx-panel{width:min(1100px,96vw);max-height:90vh;overflow:auto}
.nx-account-box{margin-top:16px;text-align:left;font-size:13px;color:var(--nx-muted)}
.nx-account-box .nx-btn{margin:4px 4px 0 0}
.nx-warning{border:1px solid #ffd27a66;background:#3a2c1066;color:#ffe7b8;border-radius:12px;padding:10px 12px;font-size:12.5px}
@media(max-width:900px){.nx-profile{grid-template-columns:1fr}.nx-showcase{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}

/* ---------- écran VS ---------- */
.nx-vs{position:fixed;inset:0;z-index:5000;background:#0b0a22;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;cursor:pointer}
.nx-vs-side{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;overflow:hidden}
.nx-vs-side.left{background:linear-gradient(120deg,#3a2f9a,#1b2a6a);animation:nx-vs-left .5s cubic-bezier(.2,.8,.2,1) both;clip-path:polygon(0 0,100% 0,88% 100%,0 100%)}
.nx-vs-side.right{background:linear-gradient(240deg,#8a2f6a,#3a1a5a);animation:nx-vs-right .5s cubic-bezier(.2,.8,.2,1) both;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}
@keyframes nx-vs-left{from{transform:translateX(-100%)}}@keyframes nx-vs-right{from{transform:translateX(100%)}}
.nx-vs-leader{position:absolute;inset:-10%;background-size:150% auto;background-repeat:no-repeat;background-position:center 18%;opacity:.3;filter:blur(1.5px) saturate(1.1);-webkit-mask-image:linear-gradient(180deg,#000 45%,transparent 85%);mask-image:linear-gradient(180deg,#000 45%,transparent 85%)}
.nx-vs-side img.nx-avatar{position:relative;width:min(22vh,180px);height:min(22vh,180px);border-radius:50%;border:5px solid #fff6;box-shadow:0 14px 40px #000a}
.nx-vs-name{position:relative;font:900 clamp(26px,5vw,64px) var(--nx-title);letter-spacing:.08em;text-shadow:0 6px 24px #000a}
.nx-vs-sub{position:relative;font:600 13px var(--nx-title);letter-spacing:.3em;text-transform:uppercase;color:#e3e6ff}
.nx-vs-mark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:900 clamp(60px,11vw,150px) var(--nx-title);color:#fff;text-shadow:0 0 30px #9fe3ff,0 0 80px #8b6cff;animation:nx-vs-hit .5s .35s cubic-bezier(.2,1.6,.4,1) both;z-index:2}
@keyframes nx-vs-hit{from{transform:translate(-50%,-50%) scale(3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.nx-vs-flash{position:absolute;inset:0;background:#fff;opacity:0;animation:nx-vs-flash .35s .5s ease-out both;pointer-events:none;z-index:3}
@keyframes nx-vs-flash{0%{opacity:.55}100%{opacity:0}}
.nx-vs-skip{position:absolute;right:18px;bottom:18px;z-index:4}
.nx-vs.leaving{animation:nx-vs-out .35s ease-in forwards}@keyframes nx-vs-out{to{opacity:0;transform:scale(1.04)}}
@media(max-width:700px){.nx-vs{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.nx-vs-side.left,.nx-vs-side.right{clip-path:none}}
/* Mouvement réduit */
@media(prefers-reduced-motion:reduce){.nx-pack-float,.nx-pack-shadow,.nx-particles span{animation:none}}
body.nx-reduced-motion .nx-pack-float,body.nx-reduced-motion .nx-pack-shadow,body.nx-reduced-motion .nx-particles span,body.nx-reduced-motion .nx-card.nx-mini:hover .nx-holo{animation:none!important}
/* ---------- Coquille NEXKAI (splash, en-tête, accueil, onglets collection) ---------- */
.nx-splash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,#2d2777,#120f2e 70%);transition:opacity .5s}
.nx-splash>div{display:grid;justify-items:center;gap:6px;animation:nxSplashIn 1.2s ease both}
.nx-splash img{width:96px;height:96px;filter:drop-shadow(0 0 24px #8b6cffaa)}
.nx-splash strong{font:900 42px var(--nx-title);letter-spacing:.38em;color:#fff;margin-right:-.38em}
.nx-splash span{font:700 12px var(--nx-title);letter-spacing:.6em;color:var(--nx-cyan);margin-right:-.6em}
.nx-splash.gone{opacity:0;pointer-events:none}
@keyframes nxSplashIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.nx-header-tools{display:flex;align-items:center;margin-left:auto;margin-right:12px}
.nx-player-chip img{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#0d0c26}
.nx-player-chip span{display:grid;line-height:1.1;text-align:left}.nx-player-chip small{color:var(--nx-muted);font-weight:500;font-size:10px}
.nx-home h1{font:900 clamp(44px,7vw,84px) var(--nx-title);letter-spacing:.24em;margin:0;background:linear-gradient(90deg,#fff,#bfb2ff 45%,#7fe6ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.nx-home-sub{margin:-4px 0 14px;font:700 14px var(--nx-title);letter-spacing:.7em;color:var(--nx-cyan)}
.nx-collection-tabs{margin:6px 0 16px}
.nx-coltab[hidden]{display:none!important}
@media (max-width:720px){.nx-header-tools{margin:6px 0;width:100%;justify-content:space-between}.nx-mode-switch,.nx-player-chip{margin-left:0}}
/* Neutralise les règles génériques de formulaire du studio (width:100%, label block) dans les pages NEXKAI. */
.nx-filters input,.nx-filters select,.nx-booster-footer select,.nx-profile select,.nx-profile input[type=checkbox],.nx-header-tools select{width:auto;margin-top:0}
.nx-filters input[type=search]{flex:1 1 220px;min-width:180px}
.nx-profile label,.nx-booster-page label{display:inline-flex;align-items:center;gap:8px;margin:0;flex:none;font-size:13px}
.nx-profile .nx-range{display:grid}
.nx-profile input[type=range]{width:100%;margin:0;padding:0}
.nx-profile input[type=checkbox]{width:16px;height:16px;accent-color:var(--nx-violet)}
html{background:#0e0d26;min-height:100%}

/* ---------- Phase 9.1 : raretés, fiche carte ---------- */
.nx-rarity{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;border-radius:999px;font:800 10px var(--nx-title);letter-spacing:.08em;color:#0d0c26;background:var(--rc,#b9c0d8);box-shadow:0 0 0 1px #0006,0 2px 6px #0007;white-space:nowrap}
.nx-rarity.r-super_rare{background:linear-gradient(135deg,#d9b8ff,#9d6bff);color:#fff;text-shadow:0 1px 2px #0008}
.nx-rarity.r-ultra_rare{background:linear-gradient(135deg,#fff3c4,#ffd27a 45%,#ff9fd0);color:#3a1a00;box-shadow:0 0 0 1px #0006,0 0 12px #ffd27a99}
.nx-card>.nx-rarity{position:absolute;top:4%;right:5%;z-index:3}
.nx-finish-chip{display:inline-flex;align-items:center;height:18px;padding:0 8px;border-radius:999px;font:700 10px var(--nx-title);letter-spacing:.06em;background:#ffffff14;color:#e6e8ff;border:1px solid #ffffff2a}
.nx-finish-chip.f-holographic,.nx-finish-chip.f-rainbow,.nx-finish-chip.f-full_art{background:linear-gradient(90deg,#ffd27a,#ff9fd0,#9fe3ff);color:#1b1040;border:0}
.nx-owned-chip{display:inline-flex;align-items:center;height:18px;padding:0 8px;border-radius:999px;font:700 10px var(--nx-title);background:#5ee0ff22;color:#bff3ff;border:1px solid #5ee0ff55}.nx-owned-chip.none{background:#ffffff10;color:var(--nx-muted);border-color:#ffffff22}
.nx-detail-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}
.nx-detail-chips .nx-rarity,.nx-detail-chips .nx-finish-chip,.nx-detail-chips .nx-owned-chip{height:24px;font-size:12px;padding:0 10px}
.nx-detail-kicker{display:flex;gap:8px;align-items:center;min-height:16px}
.nx-new.static{position:static}
.nx-detail-col{display:flex;flex-direction:column;gap:8px;max-width:460px}
.nx-detail-textbox{background:#0d0c26aa;border:1px solid var(--nx-line);border-radius:12px;padding:4px 14px;max-height:34vh;overflow:auto}
.nx-face-tabs{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
/* ---------- Phase 9.1 : booster plus crédible ---------- */
.nx-booster-stage.locked .nx-pack{pointer-events:none}
.nx-pack-float{animation:nx-float2 6s ease-in-out infinite}
@keyframes nx-float2{0%,100%{transform:translateY(0) rotateZ(-1.6deg) rotateX(2deg)}25%{transform:translateY(-10px) rotateZ(.4deg) rotateX(-1deg)}50%{transform:translateY(-22px) rotateZ(1.6deg) rotateX(-3deg)}75%{transform:translateY(-9px) rotateZ(-.2deg) rotateX(1deg)}}
.nx-pack{transition:transform .08s linear;transform:rotateX(var(--rx)) rotateY(var(--ry)) scale(calc(1 + var(--hover)*.03))}
.nx-pack-face{border-radius:6px 6px 8px 8px;box-shadow:0 34px 70px #000a,0 0 0 1px #ffffff1c inset}
/* Bandes serties (soudures dentelées) */
.nx-pack-crimp{position:absolute;left:0;right:0;height:5.4%;z-index:4;background:repeating-linear-gradient(90deg,#ffffff38 0 2px,#00000030 2px 5px),linear-gradient(180deg,#d9dcf5,#8f95c4 55%,#6d72a8);box-shadow:0 1px 0 #0006,0 -1px 0 #fff4 inset}
.nx-pack-crimp.top{top:0;-webkit-mask:linear-gradient(#000 0 0),conic-gradient(from 135deg at 50% 100%,#000 90deg,#0000 0) 0 100%/8px 4px repeat-x;-webkit-mask-composite:source-over}
.nx-pack-crimp.bottom{bottom:0}
.nx-pack-cap{height:8%;background:transparent;border-bottom:0}
.nx-pack-cap .nx-pack-crimp.top{height:68%}
.nx-pack-tear{bottom:6%;height:1px;background:repeating-linear-gradient(90deg,#fff 0 6px,transparent 6px 10px);opacity:.75}
/* Plis et bombé de l'emballage */
.nx-pack-wrinkles{position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 18%,#ffffff12 19%,transparent 21%),linear-gradient(80deg,transparent 62%,#00000022 63%,transparent 66%),linear-gradient(176deg,transparent 8%,#ffffff18 9%,transparent 11%),linear-gradient(4deg,transparent 88%,#0000002a 90%,transparent 92%);mix-blend-mode:overlay}
.nx-pack-bulge{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 50% 48%,#ffffff1a,transparent 70%),linear-gradient(90deg,#0006,transparent 9%,transparent 91%,#0006)}
.nx-pack-foil{background:linear-gradient(115deg,transparent 22%,#ffffff40 32%,#9fe3ff55 40%,#ff9fd055 48%,#ffe7a855 54%,transparent 64%);background-size:280% 280%;opacity:calc(.55 + var(--hover)*.45);animation:nx-foil-sweep 5s ease-in-out infinite}
@keyframes nx-foil-sweep{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}
.nx-pack-glare{opacity:calc(.35 + var(--hover)*.6)}
.nx-pack-edge{background:linear-gradient(180deg,#b8bce6,#5d63a0 40%,#2a2f70)}
.nx-pack-edge.left,.nx-pack-edge.right{width:16px}
.nx-pack-shadow{animation:nx-shadow2 6s ease-in-out infinite}@keyframes nx-shadow2{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(.78);opacity:.5}}
/* Cartes qui sortent : le booster descend pour qu'elles ne soient jamais coupées par le haut de l'écran */
.nx-booster-stage.opening .nx-pack-float{animation:none;transform:translateY(min(14vh,120px));transition:transform .35s ease}
.nx-rising{top:0;left:10%;right:10%}
.nx-rise-card{background:var(--card-back-url) center/cover,#1b1a4a;box-shadow:0 10px 24px #000b,0 0 18px #9fe3ff55}
@keyframes nx-rise{from{transform:translateY(30%)}to{transform:translateY(calc(-55% - var(--i)*5px)) rotate(calc((var(--i) - 2)*4deg))}}
/* ---------- Phase 9.1 : révélation mise en scène ---------- */
.nx-booster-stage.reveal{justify-content:flex-start;gap:10px;padding:8px 12px 4px}
.nx-revealed-row{min-height:clamp(110px,17vh,170px);gap:10px}
.nx-revealed-row .nx-flip{width:clamp(78px,11vh,120px)}
.nx-spotlight{position:relative;display:grid;place-items:center;padding:6px 40px}
.nx-rays{position:absolute;left:50%;top:50%;width:min(80vh,680px);height:min(80vh,680px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#9fe3ff22,transparent 62%);pointer-events:none;transition:opacity .3s}
.nx-spotlight.special .nx-rays{background:conic-gradient(from 0deg,#fff0,#ffe7a855,#fff0 10%,#9fe3ff55 18%,#fff0 26%,#ff9fd055 34%,#fff0 42%,#ffe7a855 50%,#fff0 58%,#9fe3ff55 66%,#fff0 74%,#ff9fd055 82%,#fff0 90%),radial-gradient(circle,#fff6,transparent 60%);-webkit-mask:radial-gradient(circle,#000 25%,transparent 68%);mask:radial-gradient(circle,#000 25%,transparent 68%);animation:nx-rays 7s linear infinite}
.nx-spotlight.special.r-ultra_rare .nx-rays{filter:saturate(1.6) brightness(1.2)}
@keyframes nx-rays{to{transform:translate(-50%,-50%) rotate(360deg)}}
.nx-pile{width:min(300px,62vw,max(180px,calc((100vh - 470px)*.714)));z-index:2}
.nx-pile .nx-hint{display:none}
.nx-flip.focus .nx-flip-inner{animation:nx-focus .5s cubic-bezier(.2,1.4,.4,1)}
/* 0.9.7 : la mise en avant n'anime plus « transform » (qui écrasait la rotation et faisait passer la carte d'un coup de dos à face) ; seule l'échelle est animée, la rotation 3D se déroule entièrement. */
@keyframes nx-focus{0%{scale:.92}60%{scale:1.06}100%{scale:1}}
.nx-flip.special.focus .nx-flip-front{filter:drop-shadow(0 0 22px #ffe7a8aa)}
.nx-flip[data-rarity="ULTRA_RARE"].focus .nx-flip-front{filter:drop-shadow(0 0 30px #ffd27a) drop-shadow(0 0 60px #ff9fd077)}
.nx-reveal-infobox{min-height:62px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.nx-reveal-name{font:800 clamp(16px,2.4vh,22px) var(--nx-title);letter-spacing:.06em;color:#fff}
.nx-reveal-info .nx-detail-chips{justify-content:center}
.nx-reveal-callout{font:900 clamp(18px,3vh,28px) var(--nx-title);letter-spacing:.2em;background:linear-gradient(90deg,#ffe7a8,#ff9fd0,#9fe3ff);-webkit-background-clip:text;background-clip:text;color:transparent;animation:nx-callout .6s cubic-bezier(.2,1.6,.4,1)}
@keyframes nx-callout{from{transform:scale(2.2);opacity:0}}
.nx-hint.strong{color:#e6e8ff;font-weight:600;margin:0}
.nx-reveal-controls{margin-top:4px}
.nx-pending{position:relative;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;max-width:760px;margin:0 16px 14px;padding:12px 16px;border-radius:14px;background:#ffd27a1f;border:1px solid #ffd27a88;color:#fff3d6;font-size:13px;text-align:center}
.nx-pending strong{font:800 13px var(--nx-title);letter-spacing:.14em;text-transform:uppercase;color:#ffd27a}
.nx-summary-chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}
.nx-summary-cell.special .nx-card{filter:drop-shadow(0 0 14px #ffe7a888)}
/* 9.1 : la page Boosters tient dans l'écran (1366×768 compris) ; tailles calculées sur la hauteur réelle de la scène. */
.nx-booster-page{height:calc(100vh - 116px);min-height:540px}
.nx-booster-stage{min-height:0;container-type:size;overflow:visible}
.nx-booster-stage.idle{justify-content:center;gap:0}
.nx-booster-stage.idle .nx-pack-float{width:min(300px,70cqw,calc((100cqh - 120px)*.625))}
.nx-booster-stage.idle .nx-pack-shadow{margin-top:18px}
.nx-booster-stage.idle .nx-hint{margin:12px 0 0}
.nx-booster-stage.idle .nx-pending~.nx-pack-float{width:min(300px,70cqw,calc((100cqh - 200px)*.625))}
.nx-booster-stage.opening .nx-pack-float{transform:translateY(22cqh)}
@keyframes nx-rise{from{transform:translateY(30%)}to{transform:translateY(calc(-42% - var(--i)*5px)) rotate(calc((var(--i) - 2)*4deg))}}
.nx-booster-stage.reveal{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
.nx-revealed-row{min-height:0;height:min(19cqh,150px);flex:none}
.nx-revealed-row .nx-flip{width:calc(min(19cqh,150px)*.714)}
.nx-reveal-mid{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,56px);flex-wrap:wrap}
.nx-pile{width:min(330px,60cqw,calc((81cqh - 30px)*.714))}
.nx-reveal-side{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:260px;max-width:380px}
.nx-reveal-infobox{min-height:90px}
@media (max-width:820px){.nx-reveal-side{min-width:0}.nx-pile{width:min(260px,60cqw,calc((60cqh - 30px)*.714))}}
/* Fenêtre de l'emballage : on cadre l'illustration (pas le texte de la carte). */
.nx-pack-feature{object-position:50% 18%;object-view-box:inset(5% 7% 36% 7%);box-shadow:0 0 0 2px #ffd27a99,0 6px 18px #0008}
/* 9.1 : filtres étiquetés, kit de départ, grille plus lisible */
.nx-filters{align-items:flex-end;gap:10px 12px;padding:12px;border-radius:14px;background:#ffffff08;border:1px solid var(--nx-line)}
.nx-field{display:flex!important;flex-direction:column;gap:4px;font:700 10px var(--nx-title)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--nx-cyan)!important;margin:0!important}
.nx-field input,.nx-field select{text-transform:none;letter-spacing:0;font:13px system-ui,sans-serif;min-width:150px}
.nx-field input[type=search]{min-width:220px}
.nx-result-count{margin:4px 2px 10px;color:var(--nx-muted);font-size:12px}
.nx-grid-sub{font-size:10px;color:var(--nx-muted);letter-spacing:.04em}
.nx-qty.none{background:#ffffff18;color:#ffffffaa}
.nx-rarity-stats{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;flex-basis:100%;font-size:12px;color:var(--nx-muted)}
.nx-rarity-stat{display:inline-flex;align-items:center;gap:4px}
.nx-provisional{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#ffd27aaa}
.nx-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 16px;border:1px dashed var(--nx-line);border-radius:16px;text-align:center;color:#e6e8ff}
.nx-starter{margin:0 0 16px;padding:16px 18px;border-radius:16px;background:linear-gradient(120deg,#5ee0ff1c,#8b6cff22);border:1px solid #5ee0ff66;color:#e9f9ff}
.nx-starter strong{font:800 14px var(--nx-title);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-cyan)}
.nx-starter p{margin:6px 0 10px;font-size:13px;line-height:1.5}
.nx-starter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nx-starter select{width:auto!important;margin:0!important;background:#141238;color:#fff;border:1px solid var(--nx-line);border-radius:10px;padding:8px 10px;min-width:260px}
.nx-starter.compact{padding:10px 14px}.nx-starter.compact p{margin:4px 0 8px}
.nx-grid-cell .nx-card>.nx-rarity{transform:scale(.9);transform-origin:top right}
/* 9.1 : profil plus clair */
.nx-field-hint{font-size:12px;color:var(--nx-muted);margin:6px 0}.nx-field-hint.warn{color:#ffd27a}
.nx-avatar-modes{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.nx-chip.big{padding:8px 16px;font-size:12px}
.nx-upload{display:flex;gap:16px;align-items:center;margin-top:14px;padding:12px;border-radius:14px;border:1px dashed var(--nx-line);background:#ffffff06}
.nx-upload-thumb{width:84px;height:84px;border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:#0d0c26;border:3px solid #ffffff33;color:var(--nx-muted);font-size:11px;text-align:center}
.nx-upload-thumb img{width:100%;height:100%;object-fit:cover}
.nx-upload-text{display:flex;flex-direction:column;gap:4px}
.nx-bg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.nx-bg-swatch{height:70px;border-radius:12px;border:2px solid transparent;cursor:pointer;display:flex;align-items:flex-end;padding:6px 10px;color:#fff;font:700 12px var(--nx-title);text-shadow:0 1px 3px #000}
.nx-bg-swatch.on{border-color:var(--nx-cyan);box-shadow:0 0 0 3px #5ee0ff44}
.nx-guest{padding:12px 14px;border-radius:12px;background:#ffd27a14;border:1px solid #ffd27a66;color:#fff3d6;font-size:12px}
.nx-guest strong{display:block;font:800 12px var(--nx-title);letter-spacing:.14em;text-transform:uppercase;color:#ffd27a;margin-bottom:4px}
.nx-guest ul{margin:4px 0 0;padding-left:18px;line-height:1.5}
.nx-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;z-index:600;padding:10px 18px;border-radius:999px;background:#1f3d33;border:1px solid #6dffb0aa;color:#d9ffe9;font:700 13px var(--nx-title);box-shadow:0 10px 30px #000a;transition:.25s;pointer-events:none}
.nx-toast.on{opacity:1;transform:translate(-50%,0)}
.nx-crop .nx-panel{max-width:620px}
.nx-crop-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.nx-crop-area canvas{width:280px;height:280px;border-radius:12px;cursor:grab;touch-action:none;background:#0d0c26}
.nx-crop-side{display:flex;flex-direction:column;align-items:center;gap:6px}
.nx-crop-preview{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #fff5}
.nx-player-chip img,.nx-vs-side img.nx-avatar{object-fit:cover}
/* 9.1 : écran VS — arrivée plus marquée (glissement + rebond, avatar qui « tombe », traînées lumineuses) */
.nx-vs-side.left{animation:nx-vs-in-left .62s cubic-bezier(.2,1.25,.35,1) both}
.nx-vs-side.right{animation:nx-vs-in-right .62s .08s cubic-bezier(.2,1.25,.35,1) both}
@keyframes nx-vs-in-left{from{transform:translateX(-105%) skewX(-8deg)}70%{transform:translateX(2%) skewX(0)}}
@keyframes nx-vs-in-right{from{transform:translateX(105%) skewX(8deg)}70%{transform:translateX(-2%) skewX(0)}}
.nx-vs-side img.nx-avatar{animation:nx-vs-avatar .5s .4s cubic-bezier(.2,1.6,.4,1) both}
@keyframes nx-vs-avatar{from{transform:scale(.2) rotate(-12deg);opacity:0}}
.nx-vs-name{animation:nx-vs-name .45s .55s ease-out both}.nx-vs-sub{animation:nx-vs-name .45s .65s ease-out both}
@keyframes nx-vs-name{from{transform:translateY(18px);opacity:0;letter-spacing:.3em}}
.nx-vs-streaks{position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(105deg,transparent 0 46px,#ffffff10 46px 48px,transparent 48px 120px);animation:nx-vs-streak .9s .3s ease-out both;mix-blend-mode:screen}
@keyframes nx-vs-streak{from{transform:translateX(-30%);opacity:0}40%{opacity:1}to{transform:translateX(10%);opacity:0}}
.nx-vs-mark{animation:nx-vs-hit .55s .45s cubic-bezier(.2,1.6,.4,1) both,nx-vs-pulse 1.6s 1s ease-in-out infinite}
@keyframes nx-vs-pulse{50%{text-shadow:0 0 44px #9fe3ff,0 0 110px #8b6cff}}
body.nx-reduced-motion .nx-vs *{animation:none!important}
.nx-filters .nx-field input[type=search]{flex:none;height:auto;min-width:240px}
.nx-filters .nx-field{flex:0 1 auto}
/* ---------- Phase 9.1.1 : ouverture du booster lisible ---------- */
/* Réaction immédiate au clic */
.nx-pack.pressed{scale:.97;transition:scale .08s}
.nx-pack.accepted{scale:1.04;filter:brightness(1.15) drop-shadow(0 0 24px #9fe3ffaa);transition:scale .15s,filter .15s}
/* Bande détachable : un vrai morceau du sachet (même matière), bord inférieur déchiré en dents de scie */
.nx-pack-cap{height:9%;z-index:6;overflow:visible}
.nx-pack-cap-strip{position:absolute;inset:0 0 -6px 0;background:linear-gradient(180deg,#c9cdf0,#7d83c2 35%,#3b3f8f 75%,#2b2f72);clip-path:polygon(0 0,100% 0,100% 82%,96% 100%,92% 84%,88% 100%,84% 84%,80% 100%,76% 84%,72% 100%,68% 84%,64% 100%,60% 84%,56% 100%,52% 84%,48% 100%,44% 84%,40% 100%,36% 84%,32% 100%,28% 84%,24% 100%,20% 84%,16% 100%,12% 84%,8% 100%,4% 84%,0 100%);opacity:0}
.nx-pack-cap.torn .nx-pack-cap-strip{opacity:1}
.nx-pack-cap.torn{animation:nx-tear2 calc(.75s * var(--nx-f,1)) cubic-bezier(.25,.7,.3,1) forwards;filter:drop-shadow(0 10px 12px #0009)}
.nx-pack-cap.tear-swipe{animation-name:nx-tear-swipe2}
@keyframes nx-tear2{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(6px,-10px) rotate(-4deg)}100%{transform:translate(120px,-150px) rotate(-38deg);opacity:0}}
@keyframes nx-tear-swipe2{0%{transform:translate(0,0)}25%{transform:translate(18px,-6px) rotate(5deg)}100%{transform:translate(260px,-70px) rotate(24deg);opacity:0}}
/* Ouverture visible : bord déchiré + intérieur sombre en haut du sachet */
.nx-pack-mouth{position:absolute;left:0;right:0;top:0;height:14%;z-index:5;opacity:0;pointer-events:none;background:linear-gradient(180deg,#05040f 0%,#0d0b2a 45%,transparent 100%);clip-path:polygon(0 52%,4% 64%,8% 52%,12% 64%,16% 52%,20% 64%,24% 52%,28% 64%,32% 52%,36% 64%,40% 52%,44% 64%,48% 52%,52% 64%,56% 52%,60% 64%,64% 52%,68% 64%,72% 52%,76% 64%,80% 52%,84% 64%,88% 52%,92% 64%,96% 52%,100% 64%,100% 100%,0 100%)}
.nx-pack.open-top .nx-pack-mouth{opacity:1;transition:opacity .2s .1s}
.nx-pack.open-top .nx-pack-face.front{clip-path:polygon(0 7.5%,4% 9%,8% 7.5%,12% 9%,16% 7.5%,20% 9%,24% 7.5%,28% 9%,32% 7.5%,36% 9%,40% 7.5%,44% 9%,48% 7.5%,52% 9%,56% 7.5%,60% 9%,64% 7.5%,68% 9%,72% 7.5%,76% 9%,80% 7.5%,84% 9%,88% 7.5%,92% 9%,96% 7.5%,100% 9%,100% 100%,0 100%)}
.nx-pack.open-top .nx-pack-face.front .nx-pack-cap{clip-path:none}
/* Cartes à l'intérieur du sachet : entre le dos (−9px) et la face avant (+9px) → la face avant masque leur bas */
.nx-pack>.nx-rising{position:absolute;left:13%;right:13%;top:8%;height:auto;z-index:auto;transform:translateZ(0);transform-style:preserve-3d;pointer-events:none}
.nx-pack>.nx-rising .nx-rise-card{background:var(--card-back-url) center/cover,#1b1a4a;border:2px solid #f2f1ff;border-radius:7px;box-shadow:0 -6px 18px #0008,0 0 22px #9fe3ff66;animation:nx-rise-in .8s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*70ms);transform:translateY(20%)}
@keyframes nx-rise-in{0%{transform:translateY(25%)}100%{transform:translateY(calc(-58% - var(--i)*4%)) translateX(calc((var(--i) - 2)*9%)) rotate(calc((var(--i) - 2)*5deg))}}
/* Plus d'espace au-dessus pendant l'ouverture : le sachet descend proportionnellement à la scène */
.nx-booster-stage.opening .nx-pack-float{transform:translateY(min(26cqh,200px)) scale(.92)}
.nx-booster-stage.opening .nx-pack-shadow{opacity:.35;transition:opacity .3s}
.nx-burst{top:30%}
/* Reflets du sachet un peu plus marqués, profondeur */
.nx-pack-face.front{box-shadow:0 34px 70px #000a,0 0 0 1px #ffffff1c inset,inset 0 0 40px #0006}
@media (max-width:600px){.nx-booster-stage.idle .nx-pack-float{width:min(240px,68cqw,calc((100cqh - 120px)*.625))}}
.nx-pack>.nx-pack-cap{position:absolute;left:0;right:0;top:0;transform:translateZ(10px);border-radius:6px 6px 0 0;overflow:visible}
.nx-pack>.nx-pack-cap .nx-pack-crimp.top{height:60%}
/* filter sur .nx-pack aplatissait la 3D (les cartes passaient devant la face avant) : lueur portée par la face */
.nx-pack.accepted{filter:none}.nx-pack.accepted .nx-pack-face.front{box-shadow:0 34px 70px #000a,0 0 0 2px #9fe3ffcc,0 0 34px #9fe3ff88}
.nx-booster-stage.opening .nx-pack-float{transform:translateY(min(18cqh,150px)) scale(.9)}
.nx-pack-cap.torn .nx-pack-cap-strip{box-shadow:0 0 0 1px #fff6}
/* ---------- Phase 9.1.1 : album de collection ---------- */
.nx-progress{display:flex;flex-direction:column;gap:10px;margin:0 0 14px}
.nx-progress-row{padding:12px 16px;border-radius:14px;background:#ffffff08;border:1px solid var(--nx-line)}
.nx-progress-row.upcoming{display:flex;gap:12px;align-items:center;opacity:.65;font-size:12px}
.nx-progress-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font:700 14px var(--nx-title);color:#fff;letter-spacing:.04em}
.nx-progress-pct{font:800 18px var(--nx-title);color:var(--nx-cyan)}
.nx-progress-bar{height:10px;border-radius:999px;background:#0d0c26;border:1px solid var(--nx-line);overflow:hidden;margin:8px 0}
.nx-progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,#5ee0ff,#8b6cff,#ff9fd0);border-radius:inherit;transition:width .4s}
.nx-seg{display:inline-flex;border:1px solid var(--nx-line);border-radius:999px;overflow:hidden;background:#141238}
.nx-seg-btn{border:0;background:none;color:var(--nx-muted);font:700 12px var(--nx-title);padding:7px 14px;cursor:pointer;letter-spacing:.04em;text-transform:none}
.nx-seg-btn.on{background:linear-gradient(90deg,var(--nx-violet),#5a8bff);color:#fff}
/* Cartes manquantes : vraie illustration, légèrement assombrie et désaturée (jamais un rectangle noir) */
.nx-album .nx-grid-cell.missing .nx-card{filter:grayscale(.55) brightness(.62);transition:filter .2s,transform .2s}
.nx-album .nx-grid-cell.missing:hover .nx-card,.nx-album .nx-grid-cell.missing:focus-visible .nx-card{filter:grayscale(.1) brightness(.95);transform:scale(1.04)}
.nx-album .nx-grid-cell.owned:hover .nx-card{transform:scale(1.04);transition:transform .2s}
.nx-grid-cell.missing .nx-card{filter:grayscale(.55) brightness(.62)}
.nx-missing-tag{position:absolute;top:6px;left:50%;transform:translateX(-50%);z-index:4;font:800 9px var(--nx-title);letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#0d0c26cc;color:#d7d9ff;border:1px solid #ffffff33;white-space:nowrap}
.nx-grid-num{font:700 10px var(--nx-title);color:var(--nx-muted);letter-spacing:.08em}
.nx-detail-extra{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#e6e8ff}
.nx-detail-status.owned{color:#9dffcf;font-weight:700}.nx-detail-status.missing{color:#ffd27a;font-weight:700}
.nx-detail-fin{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0}.nx-finish-chip.dim{opacity:.45}
.nx-detail-sources{display:flex;flex-direction:column;gap:6px}.nx-source{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;border-radius:10px;background:#ffffff0a;border:1px solid var(--nx-line)}
/* ---------- Phase 9.1.1 : profil (consultation / modification) ---------- */
.nx-profile-page{display:flex;flex-direction:column;gap:18px}
.nx-profile-view{border-radius:22px;overflow:hidden;border:1px solid var(--nx-line);box-shadow:0 24px 60px #0008}
.nx-banner{position:relative;height:clamp(200px,30vh,300px);overflow:hidden}
.nx-banner-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;filter:saturate(1.1)}
.nx-banner-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#0b0a22cc 85%,#0b0a22)}
.nx-banner-portal{background:radial-gradient(circle at 70% 30%,#9fe3ff66,transparent 40%),conic-gradient(from 210deg at 70% 40%,#8b6cff,#5a8bff,#5ee0ff,#ff9fd0,#8b6cff);}
.nx-banner-sunrise{background:radial-gradient(circle at 20% 80%,#fff3c466,transparent 45%),linear-gradient(120deg,#ff9f5a,#ffd27a 40%,#ff7ab6)}
.nx-banner-ocean{background:radial-gradient(circle at 80% 20%,#9fe3ff88,transparent 45%),linear-gradient(160deg,#0b3d91,#1fa6d1 55%,#5ee0ff)}
.nx-banner-crimson{background:radial-gradient(circle at 30% 30%,#ff9fd066,transparent 40%),linear-gradient(140deg,#4a0d2a,#b0124f 50%,#ff5f6d)}
.nx-banner-emerald{background:radial-gradient(circle at 70% 70%,#b8ffd966,transparent 45%),linear-gradient(140deg,#0b3b2e,#11906b 55%,#6dffb0)}
.nx-banner-night{background:radial-gradient(circle,#fff 0 1px,transparent 1.5px) 0 0/37px 41px,radial-gradient(circle,#cfe9ff 0 .8px,transparent 1.3px) 11px 17px/53px 47px,linear-gradient(180deg,#0b0a22,#1b1a4a 60%,#3a2f9a)}
.nx-bg-swatch[class*="nx-banner-"]{height:70px}
.nx-profile-id{position:absolute;left:28px;right:28px;bottom:20px;display:flex;align-items:flex-end;gap:18px;z-index:2}
.nx-avatar.big{width:clamp(96px,14vh,140px);height:clamp(96px,14vh,140px);border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 12px 30px #000a;background:#0d0c26;flex:none}
.nx-profile-names h2{margin:0;font:900 clamp(28px,4.4vh,44px) var(--nx-title);letter-spacing:.04em;color:#fff;text-shadow:0 4px 18px #000a}
.nx-profile-summary{display:flex;flex-wrap:wrap;gap:6px 16px;margin:6px 0 0;font-size:13px;color:#e6e8ff}.nx-profile-summary span+span::before{content:"·";margin-right:16px;color:#ffffff66}
.nx-profile-actions{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:3;flex-wrap:wrap;justify-content:flex-end}
.nx-showcase-wrap{padding:16px 24px 26px}
.nx-showcase.view{display:grid;grid-template-columns:repeat(3,minmax(0,220px));justify-content:center;gap:clamp(14px,3vw,40px);margin-top:10px;perspective:1100px}
.nx-showcase.view .nx-card{width:100%;transform:rotateX(var(--rx)) rotateY(var(--ry));cursor:zoom-in}
.nx-slot-placeholder{aspect-ratio:5/7;border-radius:14px;border:2px dashed #ffffff22;display:grid;place-items:center;color:#ffffff55;font-size:12px}
.nx-profile-more{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.nx-fold summary{cursor:pointer;font:700 14px var(--nx-title);color:#fff;letter-spacing:.04em}.nx-fold[open] summary{margin-bottom:10px}
.nx-edit-bar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-radius:14px;background:#1b1a4af2;border:1px solid #8b6cff88;box-shadow:0 10px 30px #0008}
.nx-edit-bar strong{font:800 14px var(--nx-title);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.nx-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.nx-edit-grid .wide{grid-column:1/-1}
@media (max-width:900px){.nx-edit-grid,.nx-profile-more{grid-template-columns:1fr}.nx-showcase.view{grid-template-columns:repeat(3,minmax(0,1fr))}.nx-profile-actions{position:static;padding:10px}}
.nx-banner img.nx-banner-art{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
.nx-showcase.view .nx-showcase-slot{width:100%}.nx-slot-placeholder{width:100%}
.nx-banner img.nx-banner-art{object-view-box:inset(9% 6% 32% 6%);object-position:50% 30%}
/* ---------- Phase 9.1.1 : holographie plus naturelle ---------- */
/* Reflet spéculaire doux qui suit l'inclinaison (toutes finitions spéciales), plus marqué en gros plan qu'en miniature. */
.nx-card:not(.finish-normal) .nx-holo::after{content:"";position:absolute;inset:-20%;background:linear-gradient(calc(105deg + var(--ry)*2.2),transparent 38%,#ffffff2e 47%,#ffffff55 50%,#ffffff2e 53%,transparent 62%);transform:translate(calc((var(--mx) - 50%)*.35),calc((var(--my) - 50%)*.2));mix-blend-mode:soft-light;pointer-events:none}
.nx-card.nx-mini .nx-holo{opacity:.12!important}.nx-card.nx-mini .nx-holo::after{opacity:.5}
.nx-card.nx-detail.finish-holographic .nx-holo,.nx-card.nx-reveal.finish-holographic .nx-holo{opacity:calc(.22 + var(--hover)*.2)}
.nx-card.nx-detail.finish-rainbow .nx-holo,.nx-card.nx-reveal.finish-rainbow .nx-holo{opacity:calc(.3 + var(--hover)*.18)}
.nx-card.nx-detail .nx-glare{background:radial-gradient(circle at var(--mx) var(--my),#ffffffb0 0%,#ffffff30 18%,transparent 42%);opacity:calc(.1 + var(--hover)*.6)}
.nx-card.nx-detail:not(.finish-normal) .nx-card-art{filter:contrast(1.04) saturate(1.06)}
/* Le dessin reste lisible : l'irisation est atténuée au centre de l'illustration hors du point lumineux */
.nx-card.nx-detail.finish-holographic .nx-sparkle{opacity:calc(.03 + var(--hover)*.2)}
body.nx-reduced-motion .nx-holo::after{display:none}
/* 9.1.1 : petits écrans — navigation sur une ligne défilante, en-tête compact, onglets de boosters défilants */
@media (max-width:640px){
 header{flex-wrap:wrap;gap:6px;padding:8px 12px}header #storageState{display:none}
 nav{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;white-space:nowrap;scrollbar-width:none}nav>button{flex:none;padding:10px 12px!important}nav details,#adminNav{display:none}
 .nx-booster-top{padding:8px 12px}.nx-booster-top .nx-tabs{flex-wrap:nowrap;overflow-x:auto;width:100%}.nx-booster-info{display:none}
 .nx-booster-page{height:calc(100vh - 150px);min-height:480px}}
.nx-printed-outdated{margin:6px 0;padding:6px 9px;border-radius:9px;background:#3a2a07;border:1px solid #ffd27a88;color:#ffe7b0;font-size:12px;line-height:1.35}

/* ===== 9.2 — craft : ressources, fenêtres de fabrication / démantèlement / surplus ===== */
.nx-wallet{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.nx-wallet-chip{display:inline-flex;align-items:baseline;gap:4px;padding:4px 10px;border-radius:999px;background:#0e1430;border:1px solid color-mix(in srgb,var(--rc,#9ad) 55%,transparent);font-size:12px;color:#dfe6ff}
.nx-wallet-chip b{font-size:14px;color:var(--rc,#fff)}.nx-wallet-chip.tickets{--rc:#ffd27a;background:#2a1f05}
.nx-dialog{position:fixed;inset:0;z-index:2000;background:#04061acc;display:grid;place-items:center;padding:16px;backdrop-filter:blur(3px)}
.nx-dialog-box{width:min(720px,100%);max-height:calc(100vh - 32px);overflow:auto;background:linear-gradient(180deg,#151a3d,#0c0f26);border:1px solid #5ee0ff44;border-radius:18px;padding:18px 20px;box-shadow:0 20px 60px #000a}
.nx-dialog-box.wide{width:min(980px,100%)}.nx-dialog-box h2{margin:0 0 10px;font-size:20px;letter-spacing:.04em}
.nx-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;flex-wrap:wrap}
.nx-btn.danger{background:#7a1f33;border-color:#ff7a8a;color:#fff}.nx-btn.danger.ghost{background:transparent;color:#ffb3bf}
.nx-btn.busy{opacity:.6;pointer-events:none}
.nx-craft-body{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:18px;align-items:start}
.nx-craft-art .nx-card{width:100%;max-width:240px}
.nx-kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0}.nx-kv dt{color:#9aa5d6;font-size:13px}.nx-kv dd{margin:0;font-weight:700}.nx-kv dd.neg{color:#ff8a9a}
.nx-qty-row{display:flex;align-items:center;gap:6px;margin:12px 0;flex-wrap:wrap}
.nx-craft-note{font-size:12px;color:#aab3dd;margin:6px 0}.nx-craft-error{font-size:13px;color:#ff9aa8;font-weight:700;margin:6px 0}
.nx-craft-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.nx-protect-tag{font-size:12px;padding:4px 9px;border-radius:999px;background:#3a2a07;color:#ffe7b0}
.nx-dis-list{display:grid;gap:8px}.nx-dis-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px;border-radius:12px;background:#0e1430}
.nx-dis-owned{flex:1;font-size:12px;color:#c6cdf0}.nx-dis-n{min-width:22px;text-align:center}
.nx-dis-warn{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:10px;border-radius:12px;background:#3d1520;border:1px solid #ff7a8a;color:#ffd7dd;font-size:13px}
.nx-surplus-wrap{max-height:52vh;overflow:auto;border-radius:12px;border:1px solid #ffffff1a}
.nx-surplus{width:100%;border-collapse:collapse;font-size:13px}.nx-surplus th,.nx-surplus td{padding:6px 8px;text-align:left;border-bottom:1px solid #ffffff12}.nx-surplus th{position:sticky;top:0;background:#141a3a}
.nx-surplus-total{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px}
@media (max-width:640px){.nx-craft-body{grid-template-columns:1fr}.nx-craft-art .nx-card{max-width:180px;margin:auto}.nx-dialog-box{padding:14px}.nx-surplus th:nth-child(2),.nx-surplus td:nth-child(2){display:none}}

/* ===== 9.2 — quatre finitions : Normale · Brillante · Holographique · Rainbow texturée (purement visuelles) ===== */
.nx-etch,.nx-etch-light{position:absolute;inset:0;pointer-events:none;border-radius:inherit;display:none}
/* BRILLANTE : reflet doux et fines paillettes argentées, sans irisation. */
.nx-card.finish-shiny .nx-holo{background:linear-gradient(calc(120deg + var(--ry)*2),transparent 28%,#ffffff26 44%,#fff8 50%,#ffffff26 56%,transparent 72%);background-size:260% 260%;background-position:var(--mx) var(--my);mix-blend-mode:soft-light;opacity:calc(.35 + var(--hover)*.35)}
.nx-card.finish-shiny .nx-sparkle{background-image:radial-gradient(circle,#fff 0 .55px,transparent 1.1px),radial-gradient(circle,#fff 0 .4px,transparent .9px);background-size:29px 31px,17px 19px;background-position:calc(var(--mx)*.3) calc(var(--my)*.3),calc(var(--mx)*-.2) calc(var(--my)*.2);mix-blend-mode:screen;opacity:calc(.08 + var(--hover)*.3)}
.nx-finish-chip.f-shiny{background:linear-gradient(90deg,#e9eef7,#ffffff,#c9d3e6);color:#1b1f33;border:0}
/* RAINBOW (premium) : irisation multicolore VISIBLE DANS LES TRAITS GRAVÉS (guillochage, spirales, lignes
   topographiques, volutes d'empreinte), qui se déplace et change de couleur avec l'inclinaison ; un reflet blanc
   « accroche » la gravure autour du pointeur ; léger relief (décalage de parallaxe). Le haut et le bas de la carte
   (nom, texte) reçoivent moins d'effet pour rester lisibles. */
.nx-card.finish-rainbow .nx-etch,.nx-card.finish-rainbow .nx-etch-light{display:block}
.nx-card.finish-rainbow .nx-etch{
 background:repeating-linear-gradient(calc(118deg + var(--ry)*3),#ff4f8b 0%,#ffb347 4.5%,#f9ff6a 9%,#5dffb0 13.5%,#4fd8ff 18%,#8a6bff 22.5%,#ff5fe0 27%,#ff4f8b 31.5%) calc(var(--mx)*1.6) calc(var(--my)*1.6)/180% 180%,conic-gradient(from calc(var(--ry)*6 + var(--rx)*4) at var(--mx) var(--my),#ff4f8b,#ffb347,#f9ff6a,#5dffb0,#4fd8ff,#8a6bff,#ff5fe0,#ff4f8b);background-blend-mode:hard-light;
 -webkit-mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg"),linear-gradient(180deg,#0006 0%,#000 14%,#000 52%,#0005 70%,#0002 100%),radial-gradient(ellipse 30% 24% at 50% 40%,#0003 0%,#0008 60%,#000 100%);
 mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg"),linear-gradient(180deg,#0006 0%,#000 14%,#000 52%,#0005 70%,#0002 100%),radial-gradient(ellipse 30% 24% at 50% 40%,#0003 0%,#0008 60%,#000 100%);
 -webkit-mask-size:118% 118%,100% 100%,100% 100%;mask-size:118% 118%,100% 100%,100% 100%;
 -webkit-mask-position:calc(50% + var(--ry)*.35%) calc(50% - var(--rx)*.35%),0 0,0 0;mask-position:calc(50% + var(--ry)*.35%) calc(50% - var(--rx)*.35%),0 0,0 0;
 -webkit-mask-composite:source-in,source-in;mask-composite:intersect,intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 mix-blend-mode:color-dodge;opacity:calc(.34 + var(--hover)*.4);filter:saturate(1.3)}
.nx-card.finish-rainbow .nx-etch-light{
 background:radial-gradient(circle at var(--mx) var(--my),#fff 0%,#ffffffb0 9%,#fff0 26%);
 -webkit-mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg");mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg");
 -webkit-mask-size:118% 118%;mask-size:118% 118%;-webkit-mask-position:calc(50% + var(--ry)*.5%) calc(50% - var(--rx)*.5%);mask-position:calc(50% + var(--ry)*.5%) calc(50% - var(--rx)*.5%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 mix-blend-mode:overlay;opacity:calc(var(--hover)*.85)}
.nx-card.finish-rainbow .nx-holo{background:linear-gradient(calc(115deg + var(--ry)*3),#ff3d7f55,#ffb13d55,#f7ff5c55,#3dff9a55,#3dd8ff55,#7a5cff55,#ff3dd155,#ff3d7f55);background-size:300% 300%;background-position:var(--mx) var(--my);mix-blend-mode:color-dodge}
.nx-card.nx-detail.finish-rainbow .nx-holo,.nx-card.nx-reveal.finish-rainbow .nx-holo{opacity:calc(.2 + var(--hover)*.16)}
.nx-card.nx-detail.finish-rainbow .nx-card-art{filter:contrast(1.05) saturate(1.08)}
.nx-card.finish-rainbow .nx-card-inner{box-shadow:0 10px 26px #0009,0 0 0 1.5px #ffffff55,0 0 18px #c18bff44}
.nx-finish-chip.f-rainbow{background:linear-gradient(90deg,#ff4f8b,#ffb347,#f9ff6a,#5dffb0,#4fd8ff,#8a6bff);color:#170b2b;border:0}
/* Miniatures : rendu simplifié (gravure statique très discrète, aucun reflet suivi, aucun calcul par image). */
.nx-card.nx-mini.finish-rainbow .nx-etch{opacity:.28;filter:none}
.nx-card.nx-mini.finish-rainbow .nx-etch-light{display:none}
/* Appareils peu puissants / mouvement réduit : gravure fixe, aucun reflet dynamique. */
body.nx-reduced-motion .nx-card.finish-rainbow .nx-etch-light,body.nx-low-fx .nx-card.finish-rainbow .nx-etch-light{display:none}
body.nx-low-fx .nx-card.finish-rainbow .nx-etch{opacity:.3;-webkit-mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg");mask-image:url("../assets/nexkai/finishes/rainbow-etch.svg");background:linear-gradient(135deg,#ff4f8b,#f9ff6a,#4fd8ff,#8a6bff)}
@media (prefers-reduced-motion:reduce){.nx-card.finish-rainbow .nx-etch-light{display:none}}
/* 9.2 — défaut mineur de l'ouverture : (1) la bande arrachée devenait un rectangle translucide qui flottait (fondu
   linéaire sur toute l'animation) : elle reste opaque puis disparaît vite ; (2) après l'ouverture, le haut du dos du
   sachet et les tranches dépassaient au-dessus du bord déchiré (fin rectangle « transparent ») : ils sont découpés. */
@keyframes nx-tear2{0%{transform:translate(0,0) rotate(0);opacity:1}25%{transform:translate(6px,-10px) rotate(-4deg);opacity:1}72%{opacity:1}100%{transform:translate(120px,-150px) rotate(-38deg);opacity:0}}
@keyframes nx-tear-swipe2{0%{transform:translate(0,0);opacity:1}25%{transform:translate(18px,-6px) rotate(5deg);opacity:1}72%{opacity:1}100%{transform:translate(260px,-70px) rotate(24deg);opacity:0}}
.nx-pack.open-top .nx-pack-face.back,.nx-pack.open-top .nx-pack-edge.left,.nx-pack.open-top .nx-pack-edge.right{clip-path:inset(9% 0 0 0)}
.nx-pack.open-top .nx-pack-edge.top{display:none}

/* ===== 9.2 — missions, niveau, annonces ===== */
.nx-level-card{display:flex;gap:18px;align-items:center;padding:16px 18px;border-radius:18px;background:linear-gradient(135deg,#1b1f4d,#0f1230);border:1px solid #c18bff55;margin-bottom:14px}
.nx-level-badge{width:72px;height:72px;flex:none;display:grid;place-items:center;border-radius:50%;font:900 30px var(--nx-title);background:radial-gradient(circle at 35% 30%,#ffe7a3,#c99520 60%,#6b4800);color:#241600;box-shadow:0 0 0 3px #fff3c9,0 8px 22px #0008}
.nx-level-text{display:grid;gap:5px;flex:1;min-width:0}.nx-level-text small{color:#aab3dd}
.nx-xp-bar,.nx-mission-bar{height:10px;border-radius:999px;background:#ffffff14;overflow:hidden}.nx-xp-bar span,.nx-mission-bar span{display:block;height:100%;background:linear-gradient(90deg,#5ee0ff,#c18bff,#ffd27a);border-radius:inherit;transition:width .4s}
.nx-mission-rules p{font-size:13px;color:#c6cdf0;margin:6px 0}.nx-last-reason{color:#ffd27a!important}
.nx-mission-section{margin:18px 0}.nx-mission-section h2{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:18px;flex-wrap:wrap}.nx-reset{font-size:12px;color:#9aa5d6;font-weight:400}
.nx-mission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.nx-mission{display:grid;gap:6px;padding:12px;border-radius:14px;background:#11163a;border:1px solid #ffffff1a}
.nx-mission.ready{border-color:#ffd27a;box-shadow:0 0 0 1px #ffd27a55,0 0 18px #ffd27a22}.nx-mission.claimed{opacity:.6}
.nx-mission-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.nx-mission-status{font-size:11px;padding:2px 8px;border-radius:999px;background:#ffffff14}
.nx-mission.ready .nx-mission-status{background:#ffd27a;color:#241600}.nx-mission p{margin:0;font-size:13px;color:#c6cdf0}.nx-mission-count{font-size:12px;color:#dfe6ff}.nx-mission-left{color:#8f99c8}
.nx-reward{display:flex;gap:5px;flex-wrap:wrap}.nx-reward-chip{font-size:11px;padding:2px 8px;border-radius:999px;background:#ffffff14;color:#e6e8ff}.nx-reward-chip.ticket{background:#3a2a07;color:#ffe7b0}.nx-reward-chip.pts{border:1px solid color-mix(in srgb,var(--rc) 60%,transparent);color:var(--rc)}.nx-reward-chip.xp{background:#1d3550;color:#bfe9ff}.nx-reward-chip.cosmetic{background:#3d1a52;color:#ecd2ff}
.nx-history{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px;font-size:13px}.nx-history time{color:#8f99c8;font-size:12px}
.nx-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:3000;background:#141a3ef2;border:1px solid #5ee0ff66;color:#e9f6ff;padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:0 10px 30px #0009;transition:opacity .5s,transform .5s;max-width:min(560px,92vw);text-align:center}
.nx-toast.warn{border-color:#ffd27a88;color:#ffe7b0}.nx-toast.out{opacity:0;transform:translate(-50%,10px)}
.nx-levelup{position:fixed;inset:0;z-index:3100;display:grid;place-items:center;background:radial-gradient(circle,#2a1a5acc,#04061ae6);animation:nxLvIn .5s ease;transition:opacity .6s}.nx-levelup.out{opacity:0}
.nx-levelup-box{display:grid;justify-items:center;gap:6px;padding:28px 40px;border-radius:24px;background:linear-gradient(180deg,#1d2156,#0d1030);border:1px solid #ffd27a;box-shadow:0 0 60px #ffd27a55}
.nx-levelup-kicker{font:800 13px var(--nx-title);letter-spacing:.3em;color:#ffd27a}.nx-levelup-n{font:900 84px/1 var(--nx-title);background:linear-gradient(180deg,#fff7d6,#ffd27a 55%,#c99520);-webkit-background-clip:text;background-clip:text;color:transparent;animation:nxLvPop .7s cubic-bezier(.2,1.6,.4,1)}
.nx-levelup-reward{color:#e6e8ff}.nx-levelup.milestone .nx-levelup-box{border-width:2px;box-shadow:0 0 90px #ffd27a88}
@keyframes nxLvIn{from{opacity:0}to{opacity:1}}@keyframes nxLvPop{0%{transform:scale(.3)}100%{transform:scale(1)}}
body.nx-reduced-motion .nx-levelup,body.nx-reduced-motion .nx-levelup-n{animation:none}
@media (max-width:640px){.nx-level-card{flex-direction:column;align-items:flex-start}.nx-mission-grid{grid-template-columns:1fr}}
/* 9.2 — cosmétiques de niveau */
.nx-banner-aurora{background:radial-gradient(ellipse at 20% 0%,#7dffcf88,transparent 55%),radial-gradient(ellipse at 80% 10%,#c18bff99,transparent 50%),linear-gradient(180deg,#0b2a3a,#151a4a 60%,#2a0f3d)}
.nx-locked{position:relative;opacity:.45;cursor:not-allowed}.nx-locked::after{content:'🔒';position:absolute;right:4px;bottom:2px;font-size:12px}
.nx-frame-gold{box-shadow:0 0 0 3px #ffd27a,0 0 0 5px #6b4800,0 0 18px #ffd27a88!important}
.nx-profile-level{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#c6cdf0}.nx-profile-level b{font:900 13px var(--nx-title);padding:2px 9px;border-radius:999px;background:linear-gradient(135deg,#ffe7a3,#c99520);color:#241600}
.nx-profile-level .nx-xp-bar{width:120px;height:6px}
/* 9.2 — modes de partie, IA VS IA */
.nx-mode-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.nx-mode-tab{padding:10px 16px;border-radius:12px;border:1px solid #6f68c8;background:#1a1946cc;color:#e6e8ff;font:800 13px var(--nx-title);letter-spacing:.08em;cursor:pointer}
.nx-mode-tab.on{background:linear-gradient(135deg,#5ee0ff,#8b6cff);color:#0b0a26;border-color:transparent}
.nx-ai-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.nx-ai-side{border:1px solid #ffffff22;border-radius:12px;padding:10px;display:grid;gap:8px}
.nx-ai-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.nx-sim-out{display:grid;gap:10px}.nx-sim-table td:first-child{font-weight:700}
.nx-spectator-bar{position:sticky;top:0;z-index:50;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:#0d1030f2;border-bottom:1px solid #5ee0ff44}
.nx-spec-status{font-weight:800;color:#ffd27a;min-width:150px}.nx-spec-label,.nx-spec-count{font-size:12px;color:#aab3dd}
.duel-spectator .big-button,.duel-spectator .end-turn,.duel-spectator .match-actions button{pointer-events:none;opacity:.45}
.nx-ai-vs-ai{display:block}.nx-ai-actions{width:100%}
.nx-spectator-bar{position:fixed;top:6px;left:50%;transform:translateX(-50%);z-index:4000;border:1px solid #5ee0ff55;border-radius:14px;box-shadow:0 8px 30px #000a;max-width:calc(100vw - 24px)}

/* 9.2 — rangée Regarder / nombre de parties / Simuler */
.nx-sim-count{width:auto!important;min-width:150px;max-width:220px;display:inline-block}
/* 0.9.4 — compteurs de simulation */
.nx-sim-counts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.nx-sim-count-tile{min-width:120px;padding:8px 12px;border-radius:12px;border:1px solid var(--nx-line);background:#ffffff08;display:flex;flex-direction:column}
.nx-sim-count-tile strong{font:800 20px var(--nx-title);color:#fff}.nx-sim-count-tile span{font-size:11px;color:var(--nx-muted)}
.nx-sim-count-tile.ok strong{color:#9ff0c8}.nx-sim-count-tile.bad{border-color:#ff8597aa}.nx-sim-count-tile.bad strong{color:#ffb3bf}.nx-sim-count-tile.warn strong{color:#ffd27a}
.nx-sim-table{overflow-x:auto;display:block}.nx-sim-impact h4{margin:14px 0 4px;font:700 14px var(--nx-title);color:#fff}.nx-sim-deckname{font-weight:800;color:#fff;list-style:none}
/* 0.9.5.1 — zone de clic du booster : le conteneur (stable) reçoit les clics, avec une marge autour de l'emballage incliné. */
.nx-pack-float{cursor:pointer;touch-action:none}
.nx-pack-float::before{content:"";position:absolute;inset:-18px -16px;border-radius:24px}
.nx-booster-stage.locked .nx-pack-float{pointer-events:none}
/* 0.9.5.1 — entrées « illustration alternative » du catalogue */
.nx-grid-cell.art-variant{outline:1px solid #d8b56a55}
.nx-art-kind{position:absolute;top:6px;left:6px;z-index:3;padding:1px 7px;border-radius:8px;font:800 10px/16px sans-serif;letter-spacing:.06em;text-transform:uppercase;background:#d8b56a;color:#1a1204;box-shadow:0 1px 4px #0008}
.nx-art-kind.kind-alt{background:#9cc3ff}.nx-art-kind.kind-manga{background:#f2f2f2}
.nx-grid-cell{position:relative}
.nx-art-kind.static{position:static;display:inline-block}
/* 0.9.6 — booster quotidien (accueil) */
.nx-daily{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 14px;max-width:548px;margin:14px 0 6px;padding:12px 16px;border-radius:14px;border:1px solid #d8b56a66;background:linear-gradient(120deg,#2a1f0a,#14112b);box-shadow:0 8px 24px #0006}
.nx-daily-head{display:flex;align-items:baseline;gap:10px;grid-column:1}
.nx-daily-head strong{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#f3d58a}
.nx-daily-count{font:800 22px/1 var(--nx-title,inherit);color:#fff}
.nx-daily-pips{grid-column:1;display:flex;gap:6px}
.nx-daily-pip{width:30px;height:42px;border-radius:5px;border:1px dashed #d8b56a66;background:#0007}
.nx-daily-pip.on{border:1px solid #f3d58a;background:linear-gradient(160deg,#d8b56a,#7a5a1e);box-shadow:0 0 12px #f3d58a88}
.nx-daily-gauge{grid-column:1;height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}
.nx-daily-fill{height:100%;background:linear-gradient(90deg,#d8b56a,#ffe9a8);transition:width .6s ease}
.nx-daily-info{grid-column:1;color:#d7cfb8}
.nx-daily-open{grid-column:2;grid-row:1/5}
.nx-daily[data-available="0"] .nx-daily-open{opacity:.6}
/* ===================== 0.9.6-B — BOOSTER REVEAL 2.0 (mise en scène uniquement) ===================== */
.nx-flip{--tc:#ffe7a8;--tc2:#ff9fd0}
.nx-flip.tier-rainbow{--tc:#ff6ad5;--tc2:#6af0ff}.nx-flip.tier-ur{--tc:#ffd25a;--tc2:#fff2b0}.nx-flip.tier-sr{--tc:#b07cff;--tc2:#e3c8ff}
.nx-flip.tier-manga{--tc:#f2f2f2;--tc2:#111}.nx-flip.tier-fullart{--tc:#ffb347;--tc2:#ffe6b0}.nx-flip.tier-alt{--tc:#7cc8ff;--tc2:#d6f0ff}.nx-flip.tier-holo{--tc:#9fe3ff;--tc2:#ffffff}.nx-flip.tier-shiny{--tc:#fff6c8;--tc2:#fff}
/* Montée en tension : la carte (dos) tremble de plus en plus, halo coloré, particules */
.nx-flip.nx-rv-charging{z-index:30}
.nx-flip.nx-rv-charging .nx-flip-inner{animation:nxRvShake .09s linear infinite alternate,nxRvGrow 1.4s ease-in forwards}
.nx-flip.nx-rv-charging.tier-holo .nx-flip-inner,.nx-flip.nx-rv-charging.tier-shiny .nx-flip-inner{animation:nxRvShakeSoft .12s linear infinite alternate}
@keyframes nxRvShake{from{translate:-2px 1px;rotate:-.8deg}to{translate:2px -1px;rotate:.8deg}}
@keyframes nxRvShakeSoft{from{translate:-1px 0}to{translate:1px 0}}
@keyframes nxRvGrow{from{scale:1}to{scale:1.08}}
.nx-flip.nx-rv-charging .nx-flip-back{box-shadow:0 0 0 3px var(--tc),0 0 40px 12px var(--tc),0 0 90px 30px color-mix(in srgb,var(--tc2) 60%,transparent);animation:nxRvPulse .5s ease-in-out infinite alternate}
.nx-flip.nx-rv-charging.tier-rainbow .nx-flip-back{animation:nxRvPulse .5s ease-in-out infinite alternate,nxRvHue 1.2s linear infinite}
@keyframes nxRvPulse{to{filter:brightness(1.35)}}
@keyframes nxRvHue{to{filter:hue-rotate(360deg) brightness(1.3)}}
.nx-flip.nx-rv-pause .nx-flip-inner{animation:none;scale:1.12;filter:brightness(1.6)}
.nx-rv-halo{position:absolute;inset:-45%;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,color-mix(in srgb,var(--tc) 85%,transparent),transparent 62%);animation:nxRvHalo 1.4s ease-in forwards}
.nx-rv-halo.tier-rainbow{background:conic-gradient(from 0deg,#ff4d4d,#ffb84d,#fff04d,#4dff88,#4dd8ff,#8a4dff,#ff4dd2,#ff4d4d);filter:blur(28px);opacity:.85;animation:nxRvHalo 1.4s ease-in forwards,nxRvSpin 1.6s linear infinite}
.nx-rv-halo.tier-manga{background:radial-gradient(circle,#ffffffcc,#00000000 60%)}
@keyframes nxRvHalo{from{scale:.4;opacity:0}to{scale:1.15;opacity:1}}
@keyframes nxRvSpin{to{rotate:360deg}}
/* 0.9.7 : voile sombre supprimé (il ne couvrait pas tout l'écran et assombrissait inutilement la révélation) ; halos, rayons et éclairs conservés. */
@keyframes nxRvFade{from{opacity:0}}
.nx-rv-particles{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:40}
.nx-rv-particles i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--tc);box-shadow:0 0 10px 2px var(--tc);animation:nxRvPart var(--d) cubic-bezier(.1,.7,.3,1) forwards}
.nx-rv-particles.tier-rainbow i{background:hsl(var(--h) 100% 65%);box-shadow:0 0 12px 3px hsl(var(--h) 100% 60%);width:6px;height:10px;border-radius:2px}
.nx-rv-particles.tier-manga i{background:#111;box-shadow:none;width:9px;height:9px}
.nx-rv-particles.tier-ur i{background:#ffe08a;box-shadow:0 0 14px 4px #ffbf2a}
@keyframes nxRvPart{from{transform:translate(0,0) scale(1.4);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
/* Fausse révélation : SR violette qui se fissure puis se brise en UR dorée */
.nx-rv-cracks{position:absolute;inset:0;pointer-events:none;z-index:35;background:
 linear-gradient(62deg,transparent 48.6%,#fff 49.4%,#fff 50%,transparent 50.8%) 0 0/100% 100%,
 linear-gradient(-48deg,transparent 46.8%,#fff 47.5%,#fff 48%,transparent 48.7%) 0 0/100% 100%,
 linear-gradient(12deg,transparent 52%,#fffc 52.6%,transparent 53.2%) 0 0/100% 100%;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px #b07cff);clip-path:circle(0% at 50% 50%);animation:nxRvCrack .5s ease-out forwards}
@keyframes nxRvCrack{to{clip-path:circle(75% at 50% 50%)}}
.nx-flip.nx-rv-crack .nx-flip-inner{animation:nxRvShake .05s linear infinite alternate}
.nx-rv-shards{position:absolute;inset:0;pointer-events:none;z-index:36}
.nx-rv-shards i{position:absolute;left:calc(10% + (var(--k) * 9%));top:calc(15% + (var(--k) * 7%) );width:28%;height:22%;background:linear-gradient(135deg,#d9c4ff,#7d4bd8);clip-path:polygon(50% 0,100% 40%,70% 100%,0 70%);animation:nxRvShard .65s cubic-bezier(.2,.6,.3,1) forwards;animation-delay:calc(var(--k) * 15ms)}
@keyframes nxRvShard{to{transform:translate(calc((var(--k) - 4) * 40px),calc(-120px + var(--k) * 30px)) rotate(calc(var(--k) * 70deg));opacity:0}}
/* Impact : flash, onde de choc, secousse de la scène */
.nx-rv-flash{position:fixed;inset:0;z-index:60;pointer-events:none;background:radial-gradient(circle at 50% 45%,#fff,color-mix(in srgb,var(--fc,#ffe7a8) 70%,transparent) 30%,transparent 70%);animation:nxRvFlash .7s ease-out forwards}
.nx-rv-flash.tier-rainbow{--fc:#ff9fe8}.nx-rv-flash.tier-ur{--fc:#ffd25a}.nx-rv-flash.tier-manga{--fc:#ffffff}.nx-rv-flash.tier-alt{--fc:#7cc8ff}.nx-rv-flash.tier-fullart{--fc:#ffb347}
@keyframes nxRvFlash{from{opacity:1}to{opacity:0}}
.nx-rv-wave{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:5px solid #fff;z-index:50;pointer-events:none;box-shadow:0 0 30px #fff;animation:nxRvWave .9s ease-out forwards}
.nx-rv-wave.tier-rainbow{border-color:#ff8ee8;box-shadow:0 0 40px #6af0ff}.nx-rv-wave.tier-ur{border-color:#ffd25a;box-shadow:0 0 40px #ffbf2a}
@keyframes nxRvWave{to{transform:scale(18);opacity:0;border-width:1px}}
.nx-booster-page.nx-rv-shake{animation:nxRvStageShake .42s ease-out}
@keyframes nxRvStageShake{0%,100%{translate:0 0}20%{translate:-7px 3px}40%{translate:6px -4px}60%{translate:-4px 2px}80%{translate:3px -1px}}
/* Carte révélée : aura persistante selon le palier */
.nx-flip.flipped.tier-rainbow .nx-flip-front{animation:nxRvRainbowAura 2.2s linear infinite}
@keyframes nxRvRainbowAura{0%{filter:drop-shadow(0 0 18px #ff5ad0) drop-shadow(0 0 40px #5adfff)}50%{filter:drop-shadow(0 0 22px #ffe75a) drop-shadow(0 0 44px #8a5aff)}100%{filter:drop-shadow(0 0 18px #ff5ad0) drop-shadow(0 0 40px #5adfff)}}
.nx-flip.flipped.tier-ur .nx-flip-front{filter:drop-shadow(0 0 22px #ffd25a) drop-shadow(0 0 50px #ff9f2a99)}
/* Classique → variante : deux faces superposées */
.nx-flip.has-variant .nx-flip-front{position:absolute}
.nx-flip.has-variant .nx-face-variant{position:absolute;inset:0;opacity:0;transition:opacity .45s ease,filter .45s ease}
.nx-flip.has-variant .nx-face-classic{transition:opacity .45s ease,filter .45s ease}
.nx-flip.nx-rv-variant-shown .nx-face-variant{opacity:1}.nx-flip.nx-rv-variant-shown .nx-face-classic{opacity:0}
.nx-flip.nx-rv-transform.nx-rv-manga .nx-face-classic{filter:grayscale(1) contrast(1.6) brightness(1.1)}
.nx-flip.nx-rv-transform .nx-flip-inner{animation:nxRvShakeSoft .08s linear infinite alternate}
.nx-rv-ink{position:absolute;inset:-10%;z-index:38;pointer-events:none}
.nx-rv-ink i{position:absolute;left:calc(5% + var(--k) * 13%);top:calc(10% + (var(--k) * 37%) - (var(--k) * var(--k) * 4%));width:42%;aspect-ratio:1;border-radius:46% 54% 60% 40%/50% 42% 58% 50%;background:radial-gradient(circle at 40% 40%,#000,#111 60%,#0000 72%);transform:scale(0);animation:nxRvInk 1.5s cubic-bezier(.2,.8,.3,1) forwards;animation-delay:calc(var(--k) * 50ms)}
@keyframes nxRvInk{30%{transform:scale(1.25);opacity:.95}60%{transform:scale(1.4);opacity:.45}to{transform:scale(1.6);opacity:0}}
.nx-flip.nx-rv-manga.nx-rv-variant-shown .nx-flip-front{background:repeating-radial-gradient(circle at 30% 30%,#0000 0 2px,#0002 2px 3px);border-radius:12px}
.nx-rv-frame{position:absolute;inset:0;z-index:37;pointer-events:none;border:4px solid #ffb347;border-radius:10px;box-shadow:0 0 30px #ffb347,inset 0 0 30px #ffb347;animation:nxRvFrame 1.3s ease-out forwards}
@keyframes nxRvFrame{0%{transform:scale(.9);opacity:0}30%{transform:scale(1);opacity:1}100%{transform:scale(1.25);opacity:0}}
.nx-rv-sweep{position:absolute;inset:0;z-index:37;pointer-events:none;border-radius:10px;background:linear-gradient(105deg,transparent 30%,#d6f0ffdd 48%,#7cc8ff99 52%,transparent 70%) -150% 0/250% 100% no-repeat;mix-blend-mode:screen;animation:nxRvSweep 1.2s ease-in-out forwards}
@keyframes nxRvSweep{to{background-position:150% 0}}
.nx-reveal-callout.tier-rainbow{background:linear-gradient(90deg,#ff5ad0,#ffe75a,#5adfff,#8a5aff);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.4em}
.nx-reveal-callout.tier-ur{color:#ffd25a;text-shadow:0 0 18px #ffbf2a}.nx-reveal-callout.tier-manga{color:#fff;text-shadow:2px 2px 0 #000,0 0 14px #fff}
@media (prefers-reduced-motion:reduce){.nx-flip.nx-rv-charging .nx-flip-inner,.nx-booster-page.nx-rv-shake{animation:none}}
/* ===================== 0.9.6-B — APERÇU des finitions EX / Prismatique (non intégrées) ===================== */
.nx-finish-preview{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#05060ccc;overflow:auto;padding:20px}
.nx-fp-box{background:#11122a;border:1px solid #d8b56a55;border-radius:16px;padding:18px 22px;max-width:1500px;width:100%;color:#eee}
.nx-fp-note{opacity:.85;font-size:14px}
.nx-fp-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px;margin:12px 0}
.nx-fp-col{display:grid;gap:14px;justify-items:center}.nx-fp-col h3{margin:0;font-size:14px;letter-spacing:.08em;color:#f3d58a;text-align:center}
.nx-fp-col .nx-card.nx-detail{width:min(100%,250px)}
/* EX : cadre doré estampé, liseré lumineux qui suit l'inclinaison, sceau EX */
.nx-card.finish-preview-ex .nx-card-inner{box-shadow:0 10px 26px #0009,0 0 0 3px #e9c46a,0 0 0 5px #7a5a1e,0 0 22px 4px #f3d58a66}
.nx-card.finish-preview-ex .nx-glare{display:block;opacity:1;background:conic-gradient(from calc(var(--ry,0deg)*6 + 200deg) at var(--mx) var(--my),#fff0,#fff6d6 8%,#ffd36b 12%,#fff0 20%,#fff0 60%,#ffe9a8 70%,#fff0 78%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:7px;border-radius:inherit;mix-blend-mode:screen}
.nx-card.finish-preview-ex .nx-holo{display:block;opacity:calc(.14 + var(--hover,0)*.14);background:repeating-linear-gradient(calc(120deg + var(--ry,0deg)*2),#ffd36b00 0 14px,#ffe9a8aa 16px,#ffd36b00 20px);mix-blend-mode:overlay}
.nx-card.finish-preview-ex .nx-card-art{filter:contrast(1.06) saturate(1.1)}
.nx-card .nx-ex-seal{position:absolute;right:7%;top:9%;z-index:6;font:900 clamp(14px,1.6vw,22px)/1 Georgia,serif;letter-spacing:.04em;padding:4px 8px;border-radius:6px;color:#3a2600;background:linear-gradient(135deg,#fff6d6,#e9c46a 40%,#a87b22 60%,#ffe9a8);box-shadow:0 2px 6px #000a,inset 0 1px 0 #fff;transform:rotate(-6deg)}
/* Prismatique : facettes triangulaires qui décomposent la lumière selon l'angle (sans la gravure du Rainbow) */
.nx-card.finish-preview-prismatic .nx-holo{display:block;opacity:calc(.3 + var(--hover,0)*.2);background:linear-gradient(calc(135deg + var(--ry,0deg)*4),#ff4d4d88,#ffb84d88,#fff04d88,#4dff8888,#4dd8ff88,#8a4dff88,#ff4dd288,#ff4d4d88);background-size:220% 220%;background-position:var(--mx) var(--my);mix-blend-mode:color-dodge;
 -webkit-mask:conic-gradient(from 150deg at 50% 0,#000 0 60deg,#0004 0) 0 0/30px 26px,conic-gradient(from -30deg at 50% 100%,#000c 0 60deg,#0002 0) 15px 0/30px 26px;mask:conic-gradient(from 150deg at 50% 0,#000 0 60deg,#0004 0) 0 0/30px 26px,conic-gradient(from -30deg at 50% 100%,#000c 0 60deg,#0002 0) 15px 0/30px 26px}
.nx-card.finish-preview-prismatic .nx-glare{display:block;background:radial-gradient(circle at var(--mx) var(--my),#ffffff66,#fff0 32%);mix-blend-mode:overlay;opacity:calc(.25 + var(--hover,0)*.35)}
.nx-card.finish-preview-prismatic .nx-sparkle{display:block;background-image:radial-gradient(circle,#fff 0 .8px,transparent 1.6px);background-size:23px 20px;background-position:calc(var(--mx) * .4) calc(var(--my) * .4);opacity:calc(.25 + var(--hover,0)*.5);mix-blend-mode:screen}
.nx-card.finish-preview-prismatic .nx-card-inner{box-shadow:0 10px 26px #0009,0 0 0 1.5px #ffffff88,0 0 20px #8ad8ff55}

/* ===== 0.9.7 — choix de l'expérience (Collection / Simulateur) ===== */
.nx-mode-choice{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 30%,rgba(60,40,120,.92),rgba(6,6,18,.97));opacity:0;transition:opacity .3s}
.nx-mode-choice.in{opacity:1}.nx-mode-choice.out{opacity:0}
.nx-mc-box{max-width:980px;width:100%;text-align:center;color:#f1eeff}
.nx-mc-kicker{letter-spacing:.35em;font-size:.78rem;color:#ffd36b;margin:0}
.nx-mc-title{font-size:clamp(1.4rem,3vw,2.2rem);margin:.3em 0}
.nx-mc-sub{color:#c3bbe8;margin:0 auto 22px;max-width:640px}
.nx-mc-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.nx-mc-card{display:flex;flex-direction:column;gap:10px;text-align:left;padding:22px;border-radius:18px;border:1px solid rgba(255,255,255,.18);color:#fff;cursor:pointer;font:inherit;transition:transform .2s,box-shadow .2s}
.nx-mc-card.collection{background:linear-gradient(150deg,#3a1d63,#8b2f6b)}
.nx-mc-card.simulator{background:linear-gradient(150deg,#123a63,#1f7a8c)}
.nx-mc-card:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.45)}
.nx-mc-name{font-size:1.3rem;letter-spacing:.08em}.nx-mc-tag{color:#ffe7a8}
.nx-mc-card ul{margin:0;padding-left:18px;color:#e6e0ff}
.nx-mc-go{margin-top:auto;align-self:flex-start;padding:6px 16px;border-radius:999px;background:rgba(255,255,255,.18);font-weight:600}

/* ===== 0.9.7 — rotation 3D réelle (dos NEXKAI) pendant les transformations d'illustration ===== */
.nx-flip.nx-rv-spin .nx-flip-inner{transition:none}
.nx-flip.nx-rv-swap .nx-face-variant,.nx-flip.nx-rv-swap .nx-face-classic{transition:none}
