
/* Popthéon — salle des coffres : barre de ressources collante, onglets (barre du bas sur mobile), vitrines de cartes */
@property --ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
:root{
  --bg:#150d19; --panel:#21162a; --panel2:#2b1d35; --line:#3d2b48;
  --ink:#f4eadc; --mute:#ad9aa8; --brass:#e4b55c; --brass-d:#8d6a2b; --ok:#6fd09a; --bad:#ef6b7f; --gemc:#5fd3ea;
  --f-disp:"Unbounded", "Arial Black", system-ui, sans-serif;
  --f-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-num:"JetBrains Mono", ui-monospace, Menlo, monospace;
  --f-sym:"Segoe UI Symbol","Noto Sans Symbols 2","Noto Sans Symbols","Apple Symbols",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html,body{min-height:100%}
body{background:var(--bg) radial-gradient(1200px 600px at 80% -10%, #2c1838 0%, transparent 60%) no-repeat;color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* ---------- Header & nav ---------- */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:10px}
.logo{font-family:var(--f-disp);font-weight:900;font-size:20px;letter-spacing:.06em;color:var(--brass);margin-right:auto;display:flex;align-items:baseline;gap:8px}
.logo small{font-family:var(--f-body);font-weight:600;font-size:11px;letter-spacing:.14em;color:var(--mute);text-transform:uppercase}
.res{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pill{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-family:var(--f-num);font-size:13px;font-variant-numeric:tabular-nums}
.coin,.dust,.gem{display:inline-block;width:12px;height:12px;flex:none;vertical-align:-1px}
.coin{border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3c4,#e4b55c 45%,#8d6a2b)}
.dust{background:radial-gradient(circle at 35% 30%,#f2dcff,#a874e6 45%,#4b2a78);border-radius:2px;transform:rotate(45deg);width:10px;height:10px}
.gem{width:11px;height:11px;transform:rotate(45deg);background:linear-gradient(135deg,#d9fbff,#5fd3ea 50%,#1b6f8f);border-radius:1px}
.lvl{display:flex;align-items:center;gap:8px}
.xpbar{width:64px;height:6px;border-radius:9px;background:var(--line);overflow:hidden}
.xpbar i{display:block;height:100%;background:linear-gradient(90deg,var(--brass-d),var(--brass))}
.daily{border:1px solid var(--brass);background:transparent;border-radius:999px;padding:5px 12px;font-weight:700;font-size:13px;color:var(--brass)}
.daily.ready{background:var(--brass);color:#2a1a10;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--brass) 25%,transparent)}}
nav.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
nav.tabs button{background:none;border:none;padding:10px 14px;font-weight:600;color:var(--mute);border-bottom:2px solid transparent;white-space:nowrap;letter-spacing:.02em}
nav.tabs button[aria-current="page"]{color:var(--ink);border-color:var(--brass)}
.tcnt{font-family:var(--f-num);font-size:11px;background:var(--panel2);border-radius:6px;padding:1px 6px;margin-left:6px;color:var(--brass)}
.btabs{display:none;position:fixed;left:0;right:0;bottom:0;z-index:30;grid-template-columns:repeat(5,minmax(0,1fr));background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);
  padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
.btabs button{background:none;border:none;display:grid;justify-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--mute);padding:4px 0;position:relative}
.btabs .ic{font-size:19px;line-height:1;font-family:var(--f-sym)}
.btabs button[aria-current="page"]{color:var(--brass)}
.btabs .dot{position:absolute;top:2px;right:calc(50% - 16px);width:8px;height:8px;border-radius:50%;background:var(--bad)}

main{padding-block:24px 60px}
h1,h2,h3{font-family:var(--f-disp);text-wrap:balance;margin:0;font-weight:700;letter-spacing:.01em}
h2{font-size:22px}
h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:500}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:700}
.muted{color:var(--mute)}
.small{font-size:12px}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums}
.lede{max-width:60ch;margin:.4em 0 0;color:var(--mute)}
.head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:9px 14px;font-weight:700;border:1px solid var(--line);background:var(--panel2);transition:transform .12s,background .15s;text-align:center}
.btn:hover{background:var(--line)}
.btn:active{transform:translateY(1px)}
.btn.gold{background:linear-gradient(180deg,#f1c873,#c8933a);color:#2a1a10;border-color:#f6d68f}
.btn.gold:hover{filter:brightness(1.07)}
.btn.gemb{background:linear-gradient(180deg,#8be6f5,#2f9db8);color:#062530;border-color:#b8f3fc}
.btn.sm{padding:6px 10px;font-size:13px;border-radius:8px}
.btn.danger{border-color:var(--bad);color:var(--bad);background:transparent}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;min-width:0}
input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=datetime-local],select,textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:8px 10px;font:inherit;min-width:0}
input[type=color]{width:100%;height:38px;border-radius:8px;border:1px solid var(--line);background:none;padding:2px}
textarea{resize:vertical;min-height:70px}
label.f,.f{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--mute);letter-spacing:.04em;align-content:start;min-width:0}
.chk{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--ink);font-size:13px;letter-spacing:0}
.chk input{accent-color:var(--brass);width:16px;height:16px}

/* ---------- Card ---------- */
.card{--rx:0deg;--ry:0deg;--mx:50%;--my:50%;--mxn:.5;--o:0;--rc:#999;
  position:relative;width:100%;aspect-ratio:63/88;container-type:inline-size;border-radius:5.5%/4%;
  background:linear-gradient(150deg,var(--rc),color-mix(in srgb,var(--rc) 35%,#0b060e) 60%,var(--rc));
  transform:perspective(800px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s ease-out,box-shadow .25s;
  box-shadow:0 6px 18px rgba(0,0,0,.45);user-select:none;-webkit-user-select:none}
.card.live{transition:transform .06s linear}
.card .frame{position:absolute;inset:3.4cqw;border-radius:3.5cqw;background:linear-gradient(180deg,#1b1220,#120b16);display:flex;flex-direction:column;padding:3cqw;gap:2.2cqw;overflow:hidden}
.c-head{display:flex;justify-content:space-between;align-items:center;gap:2cqw}
.c-name{font-family:var(--f-disp);font-weight:700;font-size:6.6cqw;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-no{font-family:var(--f-num);font-size:4.2cqw;color:var(--mute);flex:none}
.c-art{position:relative;height:62cqw;flex:none;border-radius:2.4cqw;overflow:hidden;background:linear-gradient(160deg,var(--c1),var(--c2));display:grid;place-items:center;box-shadow:inset 0 0 0 .6cqw color-mix(in srgb,var(--rc) 60%,transparent)}
.c-art img,.pkimg img{position:absolute;max-width:none;transform-origin:50% 50%;pointer-events:none;-webkit-user-drag:none;user-select:none}
.c-art img.legacy,.pkimg img.legacy{inset:0;width:100%;height:100%;object-fit:cover}
.pkimg{position:absolute;inset:0;overflow:hidden;border-radius:inherit}
.pkimg::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.3) 45%,transparent 60%) 0 0/250% 100%,linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55));animation:packsheen 4s ease-in-out infinite;pointer-events:none}
.pack.has-img b{position:relative;z-index:1}
.pack.has-img small{z-index:1;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.pack.has-img.no-g b{display:none}
.pack[data-frame]:hover{transform:none}
[data-frame]{touch-action:none}
[data-frame].has-img{cursor:grab}
[data-frame]:active{cursor:grabbing}
.bigpack{width:170px}
.poolbox{display:grid;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}
.poolcards{display:flex;flex-wrap:wrap;gap:6px;max-height:260px;overflow:auto;padding:2px}
.poolcards .chip{font-size:12px;padding:5px 10px}
.poolcards .chip .rdot{margin-right:6px;width:7px;height:7px}
.contentgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px;width:100%;text-align:left}
.contentgrid .it{display:grid;gap:4px;font-size:12px;cursor:pointer}
.contentgrid .it .od{font-family:var(--f-num);font-weight:700}
.contentgrid .it.miss .card{filter:grayscale(.85) brightness(.7)}
.c-pat{position:absolute;inset:0;opacity:.28}
.s-genies .c-pat{background:linear-gradient(#fff3 1px,transparent 1px) 0 0/8cqw 8cqw,linear-gradient(90deg,#fff3 1px,transparent 1px) 0 0/8cqw 8cqw}
.s-conq .c-pat{background:repeating-linear-gradient(135deg,#0004 0 3cqw,transparent 3cqw 6cqw)}
.s-artistes .c-pat{background:radial-gradient(circle,#fff5 .9cqw,transparent 1.1cqw) 0 0/6cqw 6cqw}
.s-legendes .c-pat{background:repeating-radial-gradient(circle at 50% 110%,#0000 0 4cqw,#fff2 4cqw 4.6cqw)}
.s-mythes .c-pat{background:repeating-conic-gradient(from 0deg at 50% 100%,#fff2 0 4deg,transparent 4deg 12deg)}
.s-crea .c-pat{background:radial-gradient(circle at 30% 20%,#fff4,transparent 50%)}
.glyph{position:relative;font-size:34cqw;line-height:1;color:#fff8e8;text-shadow:0 1cqw 3cqw rgba(0,0,0,.55),0 0 8cqw color-mix(in srgb,var(--rc) 70%,transparent);font-family:var(--f-sym)}
.c-lim{position:absolute;right:2cqw;bottom:2cqw;font-family:var(--f-num);font-size:3.8cqw;font-weight:700;color:#fff;background:#000000b0;border:.4cqw solid var(--rc);border-radius:1.4cqw;padding:.6cqw 1.8cqw;letter-spacing:.04em;z-index:1}
.c-evt{position:absolute;left:2cqw;top:2cqw;font-size:3.6cqw;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#120a16;background:var(--evc,#7fd1c7);border-radius:1.4cqw;padding:.6cqw 1.8cqw;z-index:1}
.c-band{display:flex;justify-content:space-between;gap:2cqw;font-size:4cqw;text-transform:uppercase;letter-spacing:.08em;color:var(--rc);font-weight:700;border-bottom:.4cqw solid #ffffff1a;padding-bottom:1.4cqw}
.c-band span:first-child{white-space:nowrap;flex:none}
.c-band span:last-child{color:var(--mute);text-transform:none;letter-spacing:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-text{font-size:4.6cqw;line-height:1.3;color:#d9cbc8;flex:1;overflow:hidden;font-style:italic}
.c-foot{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-num);font-size:4.2cqw}
.c-st{display:flex;gap:2.6cqw;color:var(--mute)}
.c-st b{color:var(--ink)}
.pips{display:flex;gap:.9cqw}
.pips i{width:2.4cqw;height:2.4cqw;transform:rotate(45deg);background:#ffffff1f}
.pips i.on{background:var(--rc);box-shadow:0 0 1.5cqw var(--rc)}
.shine,.glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.glare{background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.45),transparent 45%);mix-blend-mode:overlay;opacity:var(--o);transition:opacity .3s}
.sh-tag{position:absolute;top:-2.4cqw;right:5cqw;font-family:var(--f-disp);font-size:3.8cqw;font-weight:700;padding:.8cqw 2.4cqw;border-radius:9cqw;background:linear-gradient(90deg,#ff9bd2,#fff1a8,#8ff0ff);color:#2b1530;letter-spacing:.06em;z-index:2}
.r5{box-shadow:0 0 22px color-mix(in srgb,var(--rc) 55%,transparent),0 6px 18px rgba(0,0,0,.5)}
.r6{background:conic-gradient(from var(--ang),#fff6d6,#ffd36e,#ff8fd8,#8fd8ff,#c6ffb0,#fff6d6);animation:spin 5s linear infinite;box-shadow:0 0 28px rgba(255,236,170,.55),0 6px 18px rgba(0,0,0,.5)}
@keyframes spin{to{--ang:360deg}}
.fx-holo .shine{background:linear-gradient(115deg,transparent 22%,rgba(255,40,140,.6) 33%,rgba(255,230,0,.6) 41%,rgba(0,255,170,.6) 50%,rgba(0,160,255,.6) 58%,rgba(180,40,255,.6) 66%,transparent 78%) var(--mx) var(--my)/260% 260%;mix-blend-mode:color-dodge;opacity:calc(.35 + var(--o)*.35)}
.fx-prisme .shine{background:repeating-linear-gradient(45deg,rgba(255,255,255,.14) 0 2px,transparent 2px 7px),conic-gradient(from calc(var(--mxn)*1turn) at var(--mx) var(--my),#ff3b6b,#ffe14d,#4dff9a,#4dd2ff,#9a6bff,#ff3b6b);mix-blend-mode:color-dodge;opacity:calc(.3 + var(--o)*.3)}
.fx-or{background:linear-gradient(145deg,#f7e08a,#a8792a 30%,#fff1b8 55%,#8a5f1c 80%,#f7e08a)}
.fx-or .shine{background:linear-gradient(120deg,transparent 30%,rgba(255,214,120,.95) 45%,rgba(255,250,225,1) 50%,rgba(255,200,90,.95) 55%,transparent 70%) var(--mx) var(--my)/250% 250%;mix-blend-mode:overlay;opacity:calc(.55 + var(--o)*.4)}
.fx-galaxie .shine{background:radial-gradient(circle,#fff 0 .6px,transparent 1.2px) 0 0/13px 13px,radial-gradient(circle,#ffe9ff 0 .8px,transparent 1.4px) 5px 7px/23px 19px,radial-gradient(circle at var(--mx) var(--my),rgba(150,90,255,.7),rgba(30,200,255,.3) 40%,transparent 75%);mix-blend-mode:screen;opacity:calc(.55 + var(--o)*.35)}
.fx-aurore .shine{background:linear-gradient(100deg,rgba(0,255,170,.5),rgba(120,80,255,.5),rgba(255,80,200,.45),rgba(0,255,170,.5)) 0 0/300% 100%;mix-blend-mode:color-dodge;opacity:calc(.35 + var(--o)*.3);animation:aur 7s linear infinite}
@keyframes aur{to{background-position:300% 0}}
.fx-glitch .shine{background:repeating-linear-gradient(0deg,rgba(0,255,255,.14) 0 1px,transparent 1px 3px),linear-gradient(90deg,rgba(255,0,90,.35),rgba(0,255,255,.35));mix-blend-mode:screen;opacity:calc(.45 + var(--o)*.3)}
.fx-glitch .c-art>.glyph,.fx-glitch .c-art>.imgw{animation:glitch 2.6s steps(1) infinite}
.imgw{position:absolute;inset:0}
@keyframes glitch{0%,86%,100%{transform:none;filter:none}88%{transform:translate(1.5cqw,-.5cqw);filter:hue-rotate(90deg) saturate(2)}91%{transform:translate(-1.5cqw,.6cqw);filter:hue-rotate(-90deg)}94%{transform:translate(.6cqw,0) skewX(6deg)}}

/* card backs */
.cback{width:100%;aspect-ratio:63/88;container-type:inline-size;position:relative}
.cb-in{position:absolute;inset:0;border-radius:5.5%/4%;
  background:radial-gradient(circle at 50% 50%,#3a2446 0 22%,transparent 23%),repeating-conic-gradient(from 45deg,#2a1a33 0 25%,#1d1224 0 50%) 0 0/16% 11.5%,#1d1224;
  border:3cqw solid #8d6a2b;box-shadow:inset 0 0 0 1cqw #e4b55c55,0 6px 18px rgba(0,0,0,.5)}
.cb-in::after{content:"P";position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-disp);font-weight:900;font-size:22cqw;color:var(--brass);text-shadow:0 0 6cqw #e4b55c66}
.b-nuit .cb-in{background:radial-gradient(circle,#fff 0 .5px,transparent 1px) 0 0/11px 11px,radial-gradient(circle,#cfe0ff 0 .7px,transparent 1.3px) 4px 6px/19px 17px,linear-gradient(160deg,#1c2a5c,#090d22);border-color:#5a6fb8}
.b-nuit .cb-in::after{color:#cfe0ff;text-shadow:0 0 6cqw #8fb0ff}
.b-or .cb-in{background:linear-gradient(120deg,#8a5f1c,#f7e08a 30%,#a8792a 50%,#fff1b8 70%,#8a5f1c);border-color:#fff1b8}
.b-or .cb-in::after{color:#5a3a0e;text-shadow:0 .5cqw 0 #fff6}
.b-vitrail .cb-in{background:repeating-linear-gradient(0deg,#120a16 0 1.2cqw,transparent 1.2cqw 18cqw),repeating-linear-gradient(90deg,#120a16 0 1.2cqw,transparent 1.2cqw 18cqw),conic-gradient(from 20deg,#c0392b,#e67e22,#f1c40f,#27ae60,#2980b9,#8e44ad,#c0392b);border-color:#120a16}
.b-vitrail .cb-in::after{color:#fff;text-shadow:0 0 4cqw #000}
.b-neon .cb-in{background:repeating-linear-gradient(0deg,#3ff0ff12 0 1px,transparent 1px 6px),#0b0614;border-color:#ff3fd2;box-shadow:0 0 18px #ff3fd2aa,inset 0 0 18px #3ff0ff88}
.b-neon .cb-in::after{color:#3ff0ff;text-shadow:0 0 6cqw #3ff0ff}

/* ---------- Packs ---------- */
.grid2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}
@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}
.stack{display:grid;gap:16px;min-width:0}
.packs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.packcard{display:grid;gap:10px;justify-items:center;text-align:center;padding:18px 14px;background:var(--panel);border:1px solid var(--line);border-radius:18px;align-content:start;position:relative}
.packcard .owned{position:absolute;top:10px;right:10px;font-family:var(--f-num);font-size:12px;background:var(--ink);color:var(--bg);border-radius:999px;padding:1px 8px;font-weight:700}
.packcard .buys{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.pack{width:140px;max-width:100%;aspect-ratio:5/8;border-radius:12px;position:relative;cursor:pointer;transition:transform .2s;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 45%,transparent 60%) 0 0/250% 100%,var(--pk);
  box-shadow:0 14px 30px rgba(0,0,0,.5),inset 0 0 0 3px rgba(255,255,255,.12);display:grid;place-items:center;animation:packsheen 4s ease-in-out infinite;container-type:inline-size}
.pack:hover{transform:translateY(-6px) rotate(-2deg)}
.pack::before{content:"";position:absolute;inset:0 0 auto;height:10cqw;background:repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 6px,transparent 6px 12px);border-radius:12px 12px 0 0}
.pack b{font-family:var(--f-disp);font-weight:900;font-size:22cqw;color:#fff8e6;text-shadow:0 2px 10px rgba(0,0,0,.5);letter-spacing:.04em}
.pack .g{font-family:var(--f-sym)}
.pack small{position:absolute;bottom:9cqw;left:6cqw;right:6cqw;font-size:max(9px,7cqw);letter-spacing:.14em;text-transform:uppercase;color:#fff8e6cc;font-weight:700;line-height:1.2}
.pack.mini{width:56px;border-radius:7px;animation:none;cursor:default}
.pack.mini:hover{transform:none}
.pack.mini small{display:none}
@keyframes packsheen{0%,60%{background-position:150% 0,0 0}100%{background-position:-100% 0,0 0}}
.pk-violet{--pk:linear-gradient(160deg,#5a2a6e,#2a1338 60%,#1a0c24)}
.pk-or{--pk:linear-gradient(160deg,#e9c46a,#a3732b 45%,#4d2f0e)}
.pk-emeraude{--pk:linear-gradient(160deg,#3fae86,#185a46 55%,#0b261e)}
.pk-nuit{--pk:linear-gradient(160deg,#3b4f9a,#141b3d 60%,#090c1d)}
.pk-cramoisi{--pk:linear-gradient(160deg,#d94b5c,#6b1426 55%,#2a0710)}
.pk-evt{--pk:linear-gradient(160deg,var(--evc),color-mix(in srgb,var(--evc) 30%,#120a16) 60%,#0d0710)}
.pack.shake{animation:shake .5s}
@keyframes shake{20%{transform:rotate(-5deg)}40%{transform:rotate(5deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(3deg) scale(1.05)}}
.bag{display:flex;gap:12px;flex-wrap:wrap}
.bagit{display:flex;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:10px 12px;min-width:0;flex:1 1 220px}
.bagit .info{flex:1;min-width:0}
.bagit .info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rates{width:100%;border-collapse:collapse;font-size:13px}
.rates th{font-weight:600;color:var(--mute);text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:6px 6px 6px 0}
.rates td{padding:6px 6px 6px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.rates td.r,.rates th.r{text-align:right;font-family:var(--f-num)}
.rates input{width:84px;padding:5px 7px}
.scroll{overflow-x:auto}
.rdot{display:inline-block;width:9px;height:9px;transform:rotate(45deg);margin-right:8px;vertical-align:1px}
.up{color:var(--ok);font-weight:700;margin-left:4px}
.meter{height:8px;border-radius:9px;background:var(--bg);overflow:hidden;border:1px solid var(--line)}
.meter i{display:block;height:100%;background:linear-gradient(90deg,#f0a531,#ef4f6b)}
.quest{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.quest:last-child{border:none}
.quest.done{opacity:.5}
.series-row{display:grid;grid-template-columns:100px 1fr auto;gap:10px;align-items:center;font-size:13px;padding:4px 0}
.limrow{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:10px;align-items:center;font-size:13px;padding:7px 0;border-bottom:1px solid var(--line);cursor:pointer}
.limrow:last-child{border:none}
.limrow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.sold{color:var(--bad);font-weight:700;font-size:12px}

/* events */
.evban{--evc:#7fd1c7;border-radius:18px;padding:18px;background:linear-gradient(120deg,color-mix(in srgb,var(--evc) 32%,var(--panel)),var(--panel) 75%);border:1px solid color-mix(in srgb,var(--evc) 55%,var(--line));display:grid;gap:10px;position:relative;overflow:hidden}
.evban::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--evc) 45%,transparent),transparent 70%);pointer-events:none}
.evban h2{font-size:20px}
.bons{display:flex;flex-wrap:wrap;gap:6px}
.bon{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:#0005;border:1px solid color-mix(in srgb,var(--evc) 60%,transparent);color:var(--ink)}
.countdown{font-family:var(--f-num);font-weight:700;color:var(--evc)}

/* ---------- Collection ---------- */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-block:16px}
.chip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--mute)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.toolbar select{width:auto}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px}
.slot{position:relative;cursor:pointer;background:none;border:none;padding:0;text-align:left}
.slot .cnt{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);font-family:var(--f-num);font-size:12px;background:var(--ink);color:var(--bg);border-radius:999px;padding:1px 9px;font-weight:700;z-index:3;white-space:nowrap}
.slot .cnt.sh{background:linear-gradient(90deg,#ff9bd2,#fff1a8,#8ff0ff);color:#2b1530}
.ghost{width:100%;aspect-ratio:63/88;border-radius:5.5%/4%;border:2px dashed var(--line);display:grid;place-items:center;text-align:center;padding:12px;color:var(--mute);font-size:12px;gap:4px;align-content:center;background:repeating-linear-gradient(135deg,transparent 0 10px,#ffffff05 10px 20px)}
.ghost b{font-family:var(--f-disp);font-size:13px;color:#ad9aa899}
.ghost .q{font-family:var(--f-disp);font-size:42px;color:var(--line)}
.prog{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.prog .meter{flex:1;min-width:160px;height:10px}
.prog .meter i{background:linear-gradient(90deg,var(--brass-d),var(--brass))}

/* ---------- Market & shop ---------- */
.subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-block:14px 18px}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.lot{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:10px;align-content:start;min-width:0;position:relative}
.lot .cardbox{width:140px;max-width:100%;margin:0 auto;cursor:pointer}
.lot .row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}
.price{font-family:var(--f-num);font-weight:700;font-size:16px;display:inline-flex;gap:6px;align-items:center}
.strike{text-decoration:line-through;color:var(--mute);font-size:12px;font-family:var(--f-num)}
.disc{position:absolute;top:10px;left:10px;z-index:4;background:var(--ok);color:#0c2416;font-weight:800;font-size:12px;border-radius:999px;padding:2px 8px}
.who{color:var(--mute);font-size:12px}
.me{color:var(--ok);font-weight:700}
.timer{font-family:var(--f-num);font-size:13px;padding:2px 8px;border-radius:6px;background:var(--bg);border:1px solid var(--line)}
.timer.hot{color:var(--bad);border-color:var(--bad)}
.trade{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center}
.trade .cardbox{width:100%;max-width:130px;margin:0 auto}
.trade .arrow{font-family:var(--f-disp);font-size:22px;color:var(--brass)}
.tradelot{grid-column:span 2}
@media (max-width:460px){.tradelot{grid-column:1/-1}}
.empty{padding:40px 16px;text-align:center;color:var(--mute);border:1px dashed var(--line);border-radius:16px}
.sec{display:grid;gap:14px;margin-top:30px}
.gemgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.gemcard{background:linear-gradient(180deg,#123542,var(--panel) 70%);border:1px solid #2c5a68;border-radius:16px;padding:16px;display:grid;gap:8px;justify-items:center;text-align:center;position:relative}
.gemcard .big{font-family:var(--f-disp);font-size:26px;font-weight:900;color:#bff4ff;display:flex;gap:8px;align-items:center}
.gemcard .big .gem{width:16px;height:16px}
.tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:800;background:var(--gemc);color:#062530;border-radius:999px;padding:2px 9px;white-space:nowrap}
.offerwide{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:linear-gradient(110deg,#3a2510,var(--panel) 60%);border:1px solid var(--brass-d);border-radius:18px;padding:18px}
@media (max-width:640px){.offerwide{grid-template-columns:1fr;text-align:center;justify-items:center}}
.backs{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px}
.backit{display:grid;gap:8px;justify-items:center;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px}
.backit .cback{width:80px}
.backit.on{border-color:var(--brass)}
.soon{opacity:.75;border-style:dashed}

/* ---------- Studio ---------- */
.ed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:24px;align-items:start}
@media (max-width:900px){.ed{grid-template-columns:minmax(0,1fr)}.ed .pv{order:-1;position:static}}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form .full{grid-column:1/-1}
.form3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:560px){.form{grid-template-columns:minmax(0,1fr)}.form3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pv{position:sticky;top:calc(env(safe-area-inset-top,0px) + 110px);display:grid;gap:12px;justify-items:center}
.pv .cardbox{width:min(300px,72vw)}
.glyphs{display:flex;flex-wrap:wrap;gap:6px}
.glyphs button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--bg);font-size:18px;font-family:var(--f-sym)}
.glyphs button[aria-pressed="true"]{border-color:var(--brass);background:var(--panel2)}
.fxs{display:flex;flex-wrap:wrap;gap:6px}
.rarsel{display:flex;flex-wrap:wrap;gap:6px}
.rarsel button{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px 9px;font-size:12px;font-weight:700}
.rarsel button[aria-pressed="true"]{background:var(--rc);color:#170d1c;border-color:var(--rc)}
.range{display:grid;grid-template-columns:70px 1fr 40px;gap:8px;align-items:center;font-size:12px;color:var(--mute)}
.range input{accent-color:var(--brass);width:100%}
.framebox{display:grid;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}
.crealist{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px;margin-top:12px}
.crealist .it{display:grid;gap:6px}
.crealist .it .acts{display:flex;gap:4px}
.crealist .it .acts .btn{flex:1;padding:5px}
.pkcfg{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:560px){.pkcfg{grid-template-columns:minmax(0,1fr)}.pkcfg>.pack{justify-self:center}}
.odds{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-top:4px}
.odds b{font-family:var(--f-num)}
.simres{margin-top:10px}
.bar{height:6px;border-radius:4px;background:var(--rc);min-width:2px}
details.evd{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:0;overflow:hidden}
details.evd>summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
details.evd>summary::-webkit-details-marker{display:none}
details.evd .body{padding:0 18px 18px;display:grid;gap:16px}
.status{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 9px}
.st-on{background:var(--ok);color:#0c2416}.st-soon{background:var(--brass);color:#2a1a10}.st-off{background:var(--panel2);color:var(--mute)}
.swatch{width:14px;height:14px;border-radius:4px;flex:none}
.exlist{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- Overlay ---------- */
.ov{position:fixed;inset:0;z-index:50;background:rgba(9,5,12,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;overflow:auto;overscroll-behavior:contain;
  padding:max(20px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.ov>*{margin:auto}
.ov-box{width:min(1050px,100%);display:grid;gap:20px;justify-items:center;text-align:center}
.rv-row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;perspective:1200px}
.flip{width:clamp(120px,16vw,180px);cursor:pointer;position:relative;animation:deal .5s backwards}
.flip:nth-child(2){animation-delay:.08s}.flip:nth-child(3){animation-delay:.16s}.flip:nth-child(4){animation-delay:.24s}.flip:nth-child(5){animation-delay:.32s}.flip:nth-child(n+6){animation-delay:.4s}
@keyframes deal{from{transform:translateY(60px) scale(.8);opacity:0}}
.flip-in{position:relative;z-index:1;transform-style:preserve-3d}
.flip.on .flip-in{transform:rotateY(180deg)}
.face{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.face.front{position:absolute;inset:0;transform:rotateY(180deg)}
.flip.tease:not(.on) .cb-in{animation:tease 1.1s ease-in-out infinite;border-color:var(--rc)}
@keyframes tease{50%{box-shadow:0 0 34px var(--rc),inset 0 0 0 1cqw #fff4;transform:translateY(-4px)}}
.badge{position:absolute;top:-10px;left:50%;transform:translateX(-50%);z-index:4;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap}
.badge.new{background:var(--ok);color:#0c2416}
.badge.dup{background:var(--panel2);color:var(--mute);border:1px solid var(--line)}
.rv-label{margin-top:12px;font-weight:700;font-size:13px;opacity:0;transition:opacity .3s .4s;color:var(--rc)}
.flip.on .rv-label{opacity:1}
.burst{position:fixed;inset:0;pointer-events:none;z-index:60;background:radial-gradient(circle at 50% 50%,var(--rc),transparent 60%);animation:burst .9s ease-out forwards}
.rv-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.rv-bg img{width:100%;height:100%;object-fit:cover;filter:blur(28px) saturate(1.3);opacity:.32;transform:scale(1.15)}
.opk{position:relative;width:min(240px,58vw);cursor:pointer;margin-block:10px 4px;animation:float 2.6s ease-in-out infinite}
.opk .pack{width:100%;max-width:none;cursor:pointer;animation:none;box-shadow:0 24px 60px rgba(0,0,0,.6),inset 0 0 0 3px rgba(255,255,255,.14)}
.opk .pack:hover{transform:none}
.opk-body,.opk-top{position:relative}
.opk-top{position:absolute;inset:0;clip-path:inset(0 0 86% 0)}
.opk-body{clip-path:inset(14% 0 0 0)}
.opk-glow{position:absolute;inset:-35%;border-radius:50%;background:radial-gradient(circle,var(--rc),transparent 62%);opacity:0;pointer-events:none}
@keyframes float{50%{transform:translateY(-10px) rotate(1deg)}}
.flip .frays,.flip .fglow{position:absolute;pointer-events:none;border-radius:50%;opacity:0}
.flip .fglow{inset:-18%;background:radial-gradient(circle,var(--rc),transparent 65%);z-index:0}
.flip .frays{inset:-55%;z-index:0;background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--rc) 75%,transparent) 0 7deg,transparent 7deg 22deg);-webkit-mask:radial-gradient(circle,#000 18%,transparent 66%);mask:radial-gradient(circle,#000 18%,transparent 66%);transition:opacity .6s}
.flip .frays.on{opacity:.75;animation:raysspin 14s linear infinite}
.fr6 .frays{background:repeating-conic-gradient(from 0deg,#ff8fd8 0 6deg,transparent 6deg 15deg,#ffd36e 15deg 21deg,transparent 21deg 30deg,#8fd8ff 30deg 36deg,transparent 36deg 45deg)}
@keyframes raysspin{to{transform:rotate(360deg)}}
.ring{position:absolute;left:50%;top:44%;width:40%;aspect-ratio:1;border-radius:50%;border:3px solid var(--rc);transform:translate(-50%,-50%);pointer-events:none;z-index:3;animation:ring .8s ease-out forwards}
@keyframes ring{to{width:180%;opacity:0;border-width:1px}}
#fxl{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}
.spk{position:absolute;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.spk.star{background:none;box-shadow:none;color:var(--c);font-size:16px;line-height:1;display:grid;place-items:center;text-shadow:0 0 8px var(--c);font-family:var(--f-sym)}
@keyframes burst{from{opacity:.85}to{opacity:0}}
.detail{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:28px;text-align:left;align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;width:min(820px,100%);position:relative}
.detail .big .card{touch-action:none}
.detail .acts{display:grid;gap:12px;margin-top:14px}
.detail .acts .line{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.detail .acts .line input,.detail .acts .line select{width:110px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px;margin-top:10px}
.kv dt{color:var(--mute)}.kv dd{margin:0;font-family:var(--f-num);min-width:0;overflow-wrap:anywhere}
.x{position:absolute;top:12px;right:12px;z-index:5}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;width:min(440px,100%);display:grid;gap:14px;text-align:left}

.toasts{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:80;display:grid;gap:8px;max-width:min(360px,calc(100vw - 32px))}
.toast{background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:10px;padding:10px 14px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.5);animation:tin .3s}
.toast.good{border-left-color:var(--ok)}.toast.bad{border-left-color:var(--bad)}
@keyframes tin{from{transform:translateY(12px);opacity:0}}

.foot{padding-block:0 40px;text-align:center}
.linkbtn{background:none;border:none;color:var(--mute);font-size:12px;text-decoration:underline;text-underline-offset:3px;opacity:.7}
.badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.bdg{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:2px 6px;background:var(--panel2);color:var(--mute);border:1px solid var(--line)}
.bdg.on{color:var(--brass);border-color:var(--brass-d)}.bdg.bad{color:var(--bad);border-color:var(--bad)}
.allcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:16px 12px;margin-top:14px}
.allcards .it{background:none;border:none;padding:0;text-align:left;cursor:pointer;display:grid;gap:4px}
.allcards .it.sel .card{outline:3px solid var(--brass);outline-offset:3px}
.allcards .nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mode{display:flex;gap:6px;flex-wrap:wrap}
.oddsline{font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:3px}
.oddsline b{font-family:var(--f-num)}
.droptable td{white-space:nowrap}
.droptable .nm{font-weight:600;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.droptable input{width:78px}.droptable select{width:auto;padding:5px 7px}
.warn{color:var(--bad);font-size:13px;font-weight:600}
.adminbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.lockico{font-family:var(--f-sym)}
.insts{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:12px 10px;margin-top:10px;max-height:340px;overflow:auto;padding:6px 4px 4px}
.inst{background:none;border:none;padding:0;display:grid;gap:4px;text-align:left;cursor:pointer;color:var(--ink)}
.inst .card{transition:transform .15s,outline-color .15s;outline:2px solid transparent;outline-offset:3px}
.inst.sel .card{outline-color:var(--brass)}
.inst.drop .card{outline-color:var(--bad);filter:grayscale(.6) brightness(.7)}
.inst .badges{margin-top:0}
.modal.trim{width:min(860px,100%)}
.modal.trim .insts{max-height:46vh}
.slot .cnt.full{background:var(--brass);color:#2a1a10}
.selhelp{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--brass-d);border-radius:12px;padding:10px 14px;margin-bottom:16px}
.cgrid.picking .slot .card{transition:transform .15s,filter .15s}
.cgrid.picking .slot:not(.picked) .card{filter:brightness(.75)}
.cgrid.picking .slot.picked .card{outline:3px solid var(--brass);outline-offset:3px}
.selmark{position:absolute;top:8px;left:8px;z-index:4;background:var(--brass);color:#2a1a10;font-weight:800;font-size:12px;border-radius:999px;padding:2px 9px;font-family:var(--f-num)}
.selbar{position:fixed;left:0;right:0;bottom:0;z-index:25;background:color-mix(in srgb,var(--panel) 96%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--brass-d);padding-bottom:env(safe-area-inset-bottom,0px)}
.selbar-in{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-block:12px}
.cgrid.picking{padding-bottom:80px}
.pctline{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.pctline input[type=range]{width:100%;accent-color:var(--brass)}
.sellist{max-height:44vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:0 10px}
@media (max-width:700px){.selbar{bottom:calc(62px + env(safe-area-inset-bottom,0px));padding-bottom:0}.cgrid.picking{padding-bottom:130px}}
.c-fe{position:absolute;left:2cqw;bottom:2cqw;font-size:3.4cqw;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#2a1a10;background:linear-gradient(90deg,#f7e08a,#e4b55c);border-radius:1.4cqw;padding:.6cqw 1.8cqw;z-index:1}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:4px}
.kpi span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:600}
.kpi b{font-size:20px;display:flex;align-items:center;gap:6px}
.movers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.mvr{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;width:100%;background:none;border:none;border-bottom:1px solid var(--line);padding:8px 0;text-align:left;font-size:13px}
.mvr:last-child{border:none}.mvr .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.thumb{width:30px;height:30px;border-radius:7px;flex:none;display:grid;place-items:center;overflow:hidden;background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:inset 0 0 0 2px var(--rc)}
.thumb img{width:100%;height:100%;object-fit:cover}.thumb i{font-style:normal;font-size:16px;color:#fff;font-family:var(--f-sym)}
.chg{font-family:var(--f-num);font-size:12px;font-weight:700;white-space:nowrap}.chg.up{color:var(--ok)}.chg.dn{color:var(--bad)}.chg.flat{color:var(--mute)}
.hot{color:#ffb35c;font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:.08em}
.btable{border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.btable table{min-width:900px}
.btable th,.btable td{padding:9px 10px;border-bottom:1px solid var(--line);font-family:var(--f-num);font-size:13px}
.btable td:first-child,.btable th:first-child{font-family:var(--f-body)}
.btable .stick{position:sticky;left:0;background:var(--panel);z-index:1}
.brow{cursor:pointer}.brow:hover td{background:var(--panel2)}
.bname{display:flex;gap:10px;align-items:center}.bname b{display:block;font-family:var(--f-body)}
.sortbtn{background:none;border:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer}
.spark{display:block}
.bprice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.bprice>b{font-size:28px;font-family:var(--f-disp)}
.pchart-wrap{position:relative;margin-top:12px}
.pchart{width:100%;height:230px;display:block}
.pchart .grid{stroke:var(--line);stroke-width:1}.pchart .ax{fill:var(--mute);font-size:11px;font-family:var(--f-num)}
.pchart .xh{stroke:var(--mute);stroke-width:1;stroke-dasharray:3 3}
.ptip{position:absolute;pointer-events:none;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.4)}
.bdet{width:min(980px,100%);grid-template-columns:minmax(0,260px) minmax(0,1fr)}
.bkv{grid-template-columns:auto 1fr}
.bhero{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap;margin-top:10px}
.bhero .bprice{margin-top:2px}.bchg{display:grid;gap:4px}
.bsec{margin-top:16px}.bsec h4{margin:0 0 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700}
.bstats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.bstat{display:grid;gap:3px;align-content:start;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.bstat>span{font-size:12px;color:var(--mute)}
.bstat>b{font-size:19px;color:var(--ink);line-height:1.15;overflow-wrap:anywhere}.bstat>b small{font-size:12px;color:var(--mute);font-weight:600}
.bstat>small{font-size:12px;color:var(--mute);overflow-wrap:anywhere}.bstat>small b{color:var(--ink)}
.bstat.hl{border-color:var(--brass-d);background:linear-gradient(135deg,rgba(228,181,92,.10),transparent 70%),var(--panel2)}
.bstat i.coin{transform:scale(.8)}
.serial.first{border-color:var(--brass-d)}
.bhow{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.bhow summary{cursor:pointer;color:var(--brass);font-size:13px;font-weight:700}.bhow p{margin:.5em 0 0;line-height:1.5}
.pchart .smark{fill:var(--panel);stroke:#7fd1c7;stroke-width:2}
.pleg{margin:.2em 0 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pleg .lg-line{display:inline-block;width:16px;height:2px;background:var(--brass);border-radius:2px}
.pleg .lg-dot{display:inline-block;width:9px;height:9px;border-radius:50%;border:2px solid #7fd1c7;margin-left:10px}
@media (max-width:560px){.bstats{grid-template-columns:repeat(2,minmax(0,1fr))}.bstat>b{font-size:17px}.bhero{gap:14px}}
@media (max-width:700px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.movers{grid-template-columns:minmax(0,1fr)}.pchart{height:180px}.bdet .big{width:min(180px,50vw)}}
/* ---------- Mobile ---------- */
@media (max-width:700px){
  nav.tabs{display:none}
  .btabs{display:grid}
  main{padding-block:16px calc(96px + env(safe-area-inset-bottom,0px))}
  .toasts{bottom:calc(84px + env(safe-area-inset-bottom,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));max-width:none}
  .logo{font-size:16px}.logo small{display:none}
  .hd{gap:8px;padding-block:8px}
  .res{gap:6px}
  .pill{padding:4px 8px;font-size:12px;gap:5px}
  .xpbar{width:34px}
  .daily{padding:4px 10px;font-size:12px}
  input[type=text],input[type=number],input[type=email],input[type=password],input[type=date],input[type=datetime-local],select,textarea{font-size:16px}
  h2{font-size:19px}
  .panel{padding:14px;border-radius:14px}
  .packs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .packcard{padding:14px 8px;border-radius:14px}
  .pack{width:min(112px,100%)}
  .packcard .buys .btn{padding:6px 8px;font-size:12px}
  .cgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
  .mgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .lot{padding:10px;border-radius:12px;gap:8px}
  .lot .cardbox{width:100%}
  .lot .btn{width:100%}
  .price{font-size:14px}
  .rv-row{gap:10px}
  .flip{width:calc((100vw - 56px)/3)}
  .ov-box h2{font-size:17px}
  .detail{padding:18px;gap:18px;grid-template-columns:minmax(0,1fr)}
  .detail .big{width:min(240px,70vw);margin:0 auto}
  .gemgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .backs{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .backit .cback{width:64px}
  .series-row{grid-template-columns:84px 1fr auto}
}
@media (max-width:360px){.pill.lvl .xpbar{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- Popthéon : connexion, profil, Studio ---------- */
#app{min-height:100vh}
.authwrap{min-height:100vh;display:grid;place-items:center;padding-block:32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  background:radial-gradient(900px 500px at 50% -10%,#3a1d48 0%,transparent 70%)}
.authbox{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:28px;display:grid;gap:16px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.authbox.center{text-align:center;justify-items:center}
.logo.big{font-size:30px;margin:0;justify-content:center;text-align:center;display:block}
.tagline{margin:-6px 0 0;text-align:center}
.authtabs{margin:0;justify-content:center}
.setupnote{background:color-mix(in srgb,var(--ok) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--ok) 50%,var(--line));border-radius:12px;padding:12px 14px;font-size:14px}
.me-btn{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px 12px 3px 3px;font-weight:700;font-size:13px;max-width:180px}
.me-btn .uname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar{border-radius:50%;object-fit:cover;flex:none;display:inline-grid;place-items:center;background:linear-gradient(135deg,#5a2a6e,#e4b55c);color:#fff8e6;font-family:var(--f-disp);font-weight:900;border:2px solid var(--line)}
.lockmini{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--bad);border:1px solid var(--bad);border-radius:5px;padding:0 4px}
.bigempty{padding:56px 20px;display:grid;gap:10px;justify-items:center}
.bigempty h2{font-size:20px}
.lockico.big{font-family:var(--f-sym);font-size:42px;color:var(--brass)}
.switchrow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}
.switchrow:last-child{border:none}
.switchrow>span:first-child{display:grid;gap:2px}
.switch{position:relative;flex:none;width:46px;height:26px}
.switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.switch i{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .2s}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--ink);transition:transform .2s}
.switch input:checked+i{background:var(--ok)}
.switch input:checked+i::after{transform:translateX(20px)}
.switch input:focus-visible+i{outline:2px solid var(--brass);outline-offset:2px}
.checklist{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.checklist li{display:flex;gap:10px;align-items:center;font-size:14px}
.checklist .ck{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.checklist li.ok{color:var(--mute)}.checklist li.ok .ck{background:var(--ok);border-color:var(--ok);color:#0c2416}
.checklist li span:nth-child(2){flex:1}
.serow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.serow input[type=text]{flex:1;min-width:160px}
.serow input[type=color]{width:46px;flex:none}
.swatch.big{width:30px;height:30px;border-radius:8px;flex:none}
.pklayout{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:900px){.pklayout{grid-template-columns:minmax(0,1fr)}}
.pklist{display:grid;gap:6px}
.pkrow{display:flex;gap:10px;align-items:center;background:none;border:1px solid transparent;border-radius:12px;padding:6px;text-align:left;width:100%}
.pkrow:hover{background:var(--panel2)}
.pkrow.sel{border-color:var(--brass);background:var(--panel2)}
.pkrow b{display:block;font-size:14px}
.pkrow .pack.mini{width:40px}
.arr7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.arr7 label{display:grid;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.arr7 label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arr7 input{padding:6px;text-align:center}
@media (max-width:560px){.arr7{grid-template-columns:repeat(4,minmax(0,1fr))}}
.profhead{display:flex;gap:16px;align-items:center;margin:8px 0 6px}
.serials{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.serial{display:grid;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:13px}
.who.seller{display:inline-flex;align-items:center;gap:6px}
.inst[disabled]{opacity:.5;cursor:not-allowed}
@media (max-width:700px){.me-btn{padding:2px}.me-btn .uname{display:none}.hd .logo{font-size:15px}.res{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}.daily{white-space:nowrap}}
.btable td .btn{font-family:var(--f-body)}
/* ---------- 1.1 : variantes, plan de release, import ---------- */
.c-var{position:absolute;right:2cqw;top:2cqw;font-size:3.4cqw;font-weight:800;letter-spacing:.04em;color:#120a16;background:linear-gradient(90deg,#c6ffb0,#8fd8ff);border-radius:1.4cqw;padding:.6cqw 1.8cqw;z-index:1;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planbox{margin-bottom:18px}
.planrows{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 22px;margin-top:12px}
.planrow{display:grid;grid-template-columns:104px 1fr auto;gap:10px;align-items:center;font-size:13px;padding:3px 0}
.planrow .meter{height:6px}
.varbox{display:flex;gap:14px;align-items:end;flex-wrap:wrap;background:var(--bg);border:1px solid color-mix(in srgb,#8fd8ff 45%,var(--line));border-radius:12px;padding:10px 12px;margin-bottom:14px}
.varbox>span{font-size:14px;flex:1;min-width:200px;align-self:center}
.varbox .f{min-width:200px;flex:1}
.modal.imp{width:min(980px,100%)}
.impcols{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13px;line-height:1.9}
.imptxt{min-height:120px;font-family:var(--f-num);font-size:12px;white-space:pre;overflow-x:auto}
.impsum{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
tr.rowbad td{background:color-mix(in srgb,var(--bad) 10%,transparent)}
tr.rowskip td{opacity:.55}
.recobox{border-color:var(--brass-d);background:linear-gradient(110deg,color-mix(in srgb,var(--brass) 10%,var(--panel)),var(--panel) 70%);margin-bottom:6px}
.versions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ver{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:5px 10px 5px 5px;font-size:13px}
.ver.sel{border-color:var(--brass)}
.ver span{display:block}
@media (max-width:700px){.planrow{grid-template-columns:90px 1fr auto}}

/* =====================================================================
   1.2 · caisses, cadres, badges, Communauté
   ===================================================================== */
/* cadres de photo de profil */
.afr{display:inline-grid;place-items:center;border-radius:50%;padding:var(--fp,3px);position:relative;flex:none;isolation:isolate;vertical-align:middle}
.afr::before{content:"";position:absolute;inset:0;border-radius:50%;z-index:-1;background:var(--fc1)}
.afr>.avatar{border-color:var(--panel)}
.fs-simple::before{background:var(--fc1)}
.fs-or::before{background:conic-gradient(from 210deg,var(--fc2),var(--fc1),#fff6d8,var(--fc1),var(--fc2),var(--fc1),#fff6d8,var(--fc2));box-shadow:0 0 0 1px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.35)}
.fs-neon::before{background:var(--fc1);box-shadow:0 0 6px var(--fc1),0 0 16px color-mix(in srgb,var(--fc1) 70%,transparent),inset 0 0 4px #fff}
.fs-prisme::before{background:conic-gradient(#ff6b8b,#ffd36b,#7dff9b,#6bd8ff,#b26bff,#ff6b8b);animation:afrspin 5s linear infinite}
.fs-flammes::before{background:conic-gradient(#ff3d00,#ffb300,#ff6d00,#ffe082,#ff3d00,#ff9100,#ff3d00);animation:afrspin 2.6s linear infinite;box-shadow:0 0 12px #ff6d00,0 -2px 16px rgba(255,140,0,.55)}
.fs-givre::before{background:conic-gradient(#f2fbff,var(--fc1),#ffffff,#9fd8ff,#f2fbff,var(--fc1),#f2fbff);box-shadow:0 0 10px rgba(170,225,255,.7)}
.fs-galaxie::before{background:radial-gradient(circle at 28% 24%,#fff 0 1px,transparent 1.6px),radial-gradient(circle at 72% 64%,#fff 0 1px,transparent 1.6px),radial-gradient(circle at 46% 86%,#fff 0 .8px,transparent 1.4px),conic-gradient(#140a2e,var(--fc1),#2d1460,var(--fc2),#140a2e);animation:afrspin 14s linear infinite;box-shadow:0 0 10px color-mix(in srgb,var(--fc1) 60%,transparent)}
@keyframes afrspin{to{transform:rotate(1turn)}}

/* badges */
.pbdg{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:7px;flex:none;overflow:hidden;vertical-align:middle;
  background:linear-gradient(145deg,color-mix(in srgb,var(--bc) 82%,#fff),color-mix(in srgb,var(--bc) 72%,#000));border:1px solid color-mix(in srgb,var(--bc) 45%,#000);
  color:color-mix(in srgb,var(--bc) 20%,#120a16);font:900 12px/1 var(--f-sym);box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.pbdg i{font-style:normal}
.pbdg img{width:100%;height:100%;object-fit:cover}
.pbdg.lg{width:30px;height:30px;font-size:17px;border-radius:9px}
.pbdg.xl{width:50px;height:50px;font-size:28px;border-radius:14px}
.pbdg.xxl{width:88px;height:88px;font-size:50px;border-radius:24px}
.pbdg.r4,.pbdg.r5,.pbdg.r6{box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 10px color-mix(in srgb,var(--bc) 65%,transparent)}
.pbdg.r6{animation:bglow 2.4s ease-in-out infinite}
@keyframes bglow{50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 0 18px var(--bc)}}
.wb{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center}
.who2{display:inline-flex;gap:10px;align-items:center;min-width:0}
.who2 .wn{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
.who2 b{color:var(--ink);overflow-wrap:anywhere}

/* caisses */
.pkrow .case.mini{--w:46px}
.bname .case.mini{--w:44px}
.caseit{flex-wrap:wrap}
.bagbtns{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.lot .case{margin:0 auto;width:100%;--w:170px}

/* ---------- caisse : coffre blindé en 3D ---------- */
@property --lc{syntax:"<color>";inherits:true;initial-value:#ffe2a0}
.case{--w:150px;width:var(--w);max-width:100%;aspect-ratio:4/3;position:relative;flex:none;perspective:calc(var(--w) * 4.2);
  --cw:calc(var(--w) * .6);--cb:calc(var(--w) * .27);--cl:calc(var(--w) * .1);--cd:calc(var(--w) * .4);--crx:-24deg;--cry:-33deg;--u:calc(var(--w) * .01);
  --steel:color-mix(in srgb,var(--k2) 30%,#a7aeb7);--steel-d:color-mix(in srgb,var(--k2) 22%,#3e434b)}
.case.mini{--w:58px}
.case.big{--w:220px}
.case .cr-sh{position:absolute;left:50%;top:79%;width:86%;height:15%;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);pointer-events:none}
.case .cr3{position:absolute;left:calc(50% - var(--cw) / 2 - var(--w) * .035);top:calc(54% - var(--cb) / 2 + var(--cl) / 2);width:var(--cw);height:var(--cb);transform-style:preserve-3d;transform:rotateX(var(--crx)) rotateY(var(--cry));transition:transform .5s cubic-bezier(.2,.9,.3,1)}
.case .cf{position:absolute;left:0;top:0;display:block;box-sizing:border-box;
  border:calc(var(--u) * 2) solid var(--steel);
  background:
   radial-gradient(circle at calc(var(--u) * 2.4) calc(var(--u) * 2.4),#f4f7fa 0 calc(var(--u) * .7),#4a4f57 calc(var(--u) * 1.05),transparent calc(var(--u) * 1.3)),
   radial-gradient(circle at right calc(var(--u) * 2.4) top calc(var(--u) * 2.4),#f4f7fa 0 calc(var(--u) * .7),#4a4f57 calc(var(--u) * 1.05),transparent calc(var(--u) * 1.3)),
   radial-gradient(circle at left calc(var(--u) * 2.4) bottom calc(var(--u) * 2.4),#f4f7fa 0 calc(var(--u) * .7),#4a4f57 calc(var(--u) * 1.05),transparent calc(var(--u) * 1.3)),
   radial-gradient(circle at right calc(var(--u) * 2.4) bottom calc(var(--u) * 2.4),#f4f7fa 0 calc(var(--u) * .7),#4a4f57 calc(var(--u) * 1.05),transparent calc(var(--u) * 1.3)),
   linear-gradient(var(--shade,transparent),var(--shade,transparent)),
   repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 calc(var(--u) * .5),transparent calc(var(--u) * .5) calc(var(--u) * 4.5)),
   linear-gradient(180deg,color-mix(in srgb,var(--k1) 78%,#fff),var(--k1) 38%,color-mix(in srgb,var(--k1) 62%,#000));
  box-shadow:inset 0 0 0 calc(var(--u) * .35) rgba(255,255,255,.35),inset 0 calc(var(--u) * -2.5) calc(var(--u) * 4) rgba(0,0,0,.35)}
.case .fr,.case .bk{width:var(--cw);height:var(--cb)}
.case .fr{transform:translateZ(calc(var(--cd) / 2))}
.case .bk{transform:rotateY(180deg) translateZ(calc(var(--cd) / 2));--shade:rgba(0,0,0,.4)}
.case .lf,.case .rt{width:var(--cd);height:var(--cb);left:calc((var(--cw) - var(--cd)) / 2)}
.case .lf{transform:rotateY(-90deg) translateZ(calc(var(--cw) / 2));--shade:rgba(0,0,0,.45)}
.case .rt{transform:rotateY(90deg) translateZ(calc(var(--cw) / 2));--shade:rgba(0,0,0,.32)}
.case .bt{width:var(--cw);height:var(--cd);top:calc(var(--cb) - var(--cd) / 2);transform:rotateX(-90deg);--shade:rgba(0,0,0,.6)}
/* bandes métalliques verticales sur la face avant */
.case .fr::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 13%,var(--steel-d) 13% 14%,var(--steel) 14% 19%,var(--steel-d) 19% 20%,transparent 20% 80%,var(--steel-d) 80% 81%,var(--steel) 81% 86%,var(--steel-d) 86% 87%,transparent 87%);opacity:.9}
.case .fr::before{content:"";position:absolute;left:0;right:0;top:calc(var(--u) * -2);height:calc(var(--u) * 1.6);background:var(--lc);box-shadow:0 0 calc(var(--u) * 4) calc(var(--u) * 1.5) var(--lc);opacity:0;z-index:2}
.case .cplate{position:absolute;left:24%;right:24%;top:16%;bottom:16%;border-radius:calc(var(--u) * 2);display:grid;place-items:center;overflow:hidden;z-index:1;
  background:linear-gradient(160deg,color-mix(in srgb,var(--k1) 55%,#000),color-mix(in srgb,var(--k1) 30%,#000));box-shadow:inset 0 calc(var(--u) * .8) calc(var(--u) * 1.6) rgba(0,0,0,.7),0 calc(var(--u) * .4) 0 rgba(255,255,255,.18)}
.case .cplate img{width:100%;height:100%;object-fit:cover;display:block}
.case .g{font-size:calc(var(--w) * .13);line-height:1;color:var(--k2);font-family:var(--f-sym);text-shadow:0 0 calc(var(--u) * 3) color-mix(in srgb,var(--k2) 60%,transparent)}
/* couvercle (charnière à l'arrière) */
.case .clid{position:absolute;left:0;top:calc(var(--cl) * -1);width:var(--cw);height:var(--cl);transform-style:preserve-3d;transform-origin:50% 100% calc(var(--cd) / -2)}
.case .lfr,.case .lbk{width:var(--cw);height:var(--cl)}
.case .lfr{transform:translateZ(calc(var(--cd) / 2));border-bottom-color:var(--steel-d)}
.case .lbk{transform:rotateY(180deg) translateZ(calc(var(--cd) / 2));--shade:rgba(0,0,0,.4)}
.case .llf,.case .lrt{width:var(--cd);height:var(--cl);left:calc((var(--cw) - var(--cd)) / 2)}
.case .llf{transform:rotateY(-90deg) translateZ(calc(var(--cw) / 2));--shade:rgba(0,0,0,.45)}
.case .lrt{transform:rotateY(90deg) translateZ(calc(var(--cw) / 2));--shade:rgba(0,0,0,.3)}
.case .ltop{width:var(--cw);height:var(--cd);top:calc(var(--cd) / -2);transform:rotateX(90deg);--shade:rgba(255,255,255,.1)}
.case .lin{width:var(--cw);height:var(--cd);top:calc(var(--cl) - var(--cd) / 2);transform:rotateX(-90deg);--shade:rgba(0,0,0,.55);background-blend-mode:normal}
.case .cstrap{position:absolute;top:0;bottom:0;left:50%;width:22%;translate:-50% 0;background:linear-gradient(90deg,var(--steel-d),var(--steel) 15% 85%,var(--steel-d));box-shadow:0 0 0 calc(var(--u) * .3) rgba(0,0,0,.35)}
.case .cstrap::after{content:"";position:absolute;inset:30% 28%;border-radius:calc(var(--u) * 1);background:var(--k2);box-shadow:inset 0 calc(var(--u) * .4) 0 rgba(255,255,255,.45)}
.case .cglow{position:absolute;left:0;top:calc(var(--cd) / -2 + var(--u) * 2);width:var(--cw);height:var(--cd);transform:rotateX(90deg);background:radial-gradient(closest-side,#fff,var(--lc) 45%,color-mix(in srgb,var(--lc) 40%,#000));opacity:0}
/* cadenas */
.case .clock{position:absolute;left:calc(50% - var(--u) * 4.5);top:calc(var(--u) * -3.2);width:calc(var(--u) * 9);height:calc(var(--u) * 7.5);transform:translateZ(calc(var(--cd) / 2 + var(--u) * .6))}
.case .csh{position:absolute;left:20%;right:20%;top:-58%;height:75%;border:calc(var(--u) * 1.3) solid #c9ced6;border-bottom:0;border-radius:calc(var(--u) * 4) calc(var(--u) * 4) 0 0;box-shadow:inset 0 calc(var(--u) * .3) 0 rgba(255,255,255,.6)}
.case .cbd{position:absolute;inset:0;border-radius:calc(var(--u) * 1.4);background:radial-gradient(circle at 50% 42%,#1a1310 0 10%,transparent 11%),linear-gradient(#1a1310,#1a1310) 50% 66%/8% 26% no-repeat,linear-gradient(160deg,#ffe9a8,#d8a53c 45%,#8a5a12);box-shadow:inset 0 calc(var(--u) * .4) 0 rgba(255,255,255,.6),0 calc(var(--u) * .6) calc(var(--u) * 1.2) rgba(0,0,0,.5)}
.case.mini .clock{display:none}
@media (hover:hover){.case:not(.mini):not(.stage):hover .cr3{transform:rotateX(-20deg) rotateY(-22deg)}.case:not(.mini):not(.stage):hover .clid{transform:rotateX(14deg);transition:transform .35s ease-out}.case:not(.mini):not(.stage):hover .cglow{opacity:.85}.case .clid{transition:transform .35s ease-in}}
/* lots d'une caisse */
.dtile{width:132px;flex:none;display:grid;justify-items:center;gap:6px;padding:12px 8px 10px;border-radius:12px;position:relative;text-align:center;min-height:150px;align-content:start;
  background:linear-gradient(180deg,color-mix(in srgb,var(--rc) 14%,var(--panel2)),var(--panel));border:1px solid var(--line);border-bottom:3px solid var(--rc)}
.dart{height:70px;display:grid;place-items:center}
.dart .pack.mini{width:44px}
.dname{font-weight:700;font-size:12px;color:var(--ink);line-height:1.2;max-width:100%;overflow-wrap:anywhere}
.dr{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--rc)}
.dcur{display:grid;justify-items:center;gap:8px;font-size:17px;color:var(--ink)}
.dcur i{transform:scale(1.7)}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;width:100%;margin-top:6px}
.dgrid.sm{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.dcell{display:grid;justify-items:center;gap:4px}
.dcell .dtile{width:100%}
.dcell.own .dtile{opacity:.55}
.dcell .od{font-family:var(--f-num);font-size:13px}


/* ---------- ouverture : scène ---------- */
.caseov{max-width:900px;width:100%}
.cstage{--lc:#ffe2a0;--rc:#ffe2a0;position:relative;width:100%;height:350px;display:grid;place-items:end center;transition:--lc .7s ease}
.cstage .case.stage{--w:min(320px,74vw);position:relative;z-index:2;margin-bottom:-6px;opacity:0;transition:transform .5s cubic-bezier(.3,.8,.3,1),filter .5s}
.cstage .crays{position:absolute;left:50%;top:44%;width:min(640px,130vw);aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .7s;
  background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--lc) 60%,transparent) 0 5deg,transparent 5deg 16deg);-webkit-mask:radial-gradient(closest-side,#000 18%,transparent 72%);mask:radial-gradient(closest-side,#000 18%,transparent 72%);animation:crspin 16s linear infinite}
.cstage .cbeam{position:absolute;left:50%;bottom:34%;width:min(230px,52vw);height:120%;translate:-50% 0;pointer-events:none;z-index:1;opacity:0;transform:scaleY(.1);transform-origin:50% 100%;transition:opacity .4s,transform .55s cubic-bezier(.2,.9,.3,1);
  background:linear-gradient(to top,color-mix(in srgb,var(--lc) 65%,#fff),color-mix(in srgb,var(--lc) 45%,transparent) 35%,transparent 85%);clip-path:polygon(30% 100%,70% 100%,100% 0,0 0);filter:blur(7px);mix-blend-mode:screen}
.cstage .roul{position:absolute;left:0;right:0;top:46%;z-index:3;width:auto;margin:0;opacity:0;pointer-events:none;transform:translateY(-50%) scaleX(.15);transition:opacity .35s,transform .5s cubic-bezier(.2,.9,.3,1);background:rgba(12,7,16,.86);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.cstage .cprize{position:absolute;left:50%;top:2%;z-index:4;width:220px;height:160px;translate:-50% 0;display:grid;place-items:center;pointer-events:none;opacity:0}
.cstage .cprize .pz{transform:scale(1.9);filter:drop-shadow(0 0 10px var(--rc)) drop-shadow(0 6px 10px rgba(0,0,0,.5))}
.cstage .cprize .pz .dcur{font-size:13px}
/* 1. chute */
.cstage.drop .case.stage{opacity:1;animation:crdrop .75s cubic-bezier(.45,0,.6,1) both}
@keyframes crdrop{0%{transform:translateY(-120%);opacity:0}12%{opacity:1}58%{transform:translateY(0) scale(1.05,.93)}72%{transform:translateY(-5%) scale(.98,1.02)}86%{transform:translateY(0) scale(1.02,.985)}100%{transform:none}}
/* 2. secousses et fuite de lumière */
.cstage.knock .cr3{animation:crknock 1.1s ease-in-out both}
@keyframes crknock{0%,100%{transform:rotateX(var(--crx)) rotateY(var(--cry))}
  4%{transform:rotateX(var(--crx)) rotateY(var(--cry)) translateY(-6%) rotateZ(-3deg)}10%{transform:rotateX(var(--crx)) rotateY(var(--cry)) rotateZ(1deg)}18%{transform:rotateX(var(--crx)) rotateY(var(--cry))}
  37%{transform:rotateX(var(--crx)) rotateY(var(--cry)) translateY(-9%) rotateZ(4deg)}44%{transform:rotateX(var(--crx)) rotateY(var(--cry)) rotateZ(-2deg)}52%{transform:rotateX(var(--crx)) rotateY(var(--cry))}
  66%{transform:rotateX(var(--crx)) rotateY(var(--cry)) translateY(-13%) rotateZ(-5deg)}73%{transform:rotateX(var(--crx)) rotateY(var(--cry)) rotateZ(3deg)}80%{transform:rotateX(var(--crx)) rotateY(var(--cry)) rotateZ(-1deg)}}
.cstage.knock .case .fr::before{animation:crleak 1.1s ease-in both}
@keyframes crleak{0%{opacity:0}5%,38%,67%{opacity:.9}20%,52%{opacity:.15}85%,100%{opacity:1}}
.cstage.knock .clid{animation:crlidjump 1.1s ease-in-out both}
@keyframes crlidjump{0%,100%,18%,52%,82%{transform:none}5%{transform:rotateX(5deg)}38%{transform:rotateX(8deg)}67%{transform:rotateX(12deg)}}
/* 3. le cadenas saute */
.cstage.unlocked .clock{opacity:0;animation:crlock .8s cubic-bezier(.3,0,.7,1) both}
.cstage.unlocked .csh{animation:crshackle .25s ease-out both}
@keyframes crshackle{to{transform:translateY(-35%)}}
@keyframes crlock{0%{opacity:1;transform:translateZ(calc(var(--cd) / 2 + var(--u) * .6))}25%{opacity:1;transform:translateZ(calc(var(--cd) / 2 + var(--u) * 4)) translateY(-40%) rotate(-12deg)}100%{opacity:0;transform:translateZ(calc(var(--cd) / 2 + var(--u) * 8)) translateY(420%) rotate(70deg)}}
/* 4. le couvercle s'ouvre */
.cstage.open .clid{transform:rotateX(106deg);animation:crlid .6s cubic-bezier(.2,1.5,.4,1) both}
@keyframes crlid{0%{transform:rotateX(10deg)}100%{transform:rotateX(106deg)}}
.cstage.open .cglow{opacity:1;transition:opacity .25s}
.cstage.open .case .fr::before{opacity:0;animation:none}
.cstage.open .cbeam{opacity:.9;transform:none}
.cstage.open .crays{opacity:.35}
/* 5. la roulette sort de la caisse */
.cstage.spin .roul{opacity:1;transform:translateY(-50%) scaleX(1)}
.cstage.spin .case.stage{transform:translateY(10%) scale(.82);filter:brightness(.55)}
.cstage.spin .cbeam{opacity:.5}
/* 6. le lot sort de la caisse */
.cstage.reveal .roul{opacity:0;transform:translateY(-50%) scale(.96)}
.cstage.reveal .crays{opacity:.95}
.cstage.reveal .cbeam{opacity:1}
.cstage.reveal .cprize{opacity:1;animation:crprize .85s cubic-bezier(.2,1.4,.4,1) both,crbob 3.2s ease-in-out .85s infinite}
@keyframes crprize{0%{opacity:0;transform:translateY(150px) scale(.15)}35%{opacity:1}100%{opacity:1;transform:none}}
@keyframes crbob{50%{transform:translateY(-8px)}}
.cstage.reveal[data-tier="4"] .crays,.cstage.reveal[data-tier="5"] .crays,.cstage.reveal[data-tier="6"] .crays{animation-duration:7s;width:min(820px,160vw)}
@keyframes crspin{to{rotate:1turn}}
/* passer l'animation : état final direct */
.cstage.fin .case.stage,.cstage.fin .cr3,.cstage.fin .clid,.cstage.fin .clock,.cstage.fin .csh,.cstage.fin .case .fr::before{animation:none}
.cstage.fin .cprize{animation:crbob 3.2s ease-in-out infinite}
.cres.wait{min-height:136px}
.cres.wait>*{visibility:hidden}
.csbar{display:flex;gap:18px;justify-content:center}
.csbar .linkbtn{opacity:.8}
.rmark.bump{animation:rbump .12s ease-out}
@keyframes rbump{50%{transform:translateX(-50%) scaleX(1.9);box-shadow:0 0 22px var(--brass)}}
/* ouverture : roulette */
.roul{position:relative;width:min(860px,100%);overflow:hidden;padding:16px 0;border-radius:16px;background:rgba(0,0,0,.38);border:1px solid var(--line);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.rtrack{display:flex;gap:8px;padding-left:8px;will-change:transform}
.rmark{position:absolute;top:0;bottom:0;left:50%;width:3px;transform:translateX(-50%);background:var(--brass);box-shadow:0 0 12px var(--brass);border-radius:2px;z-index:2}
.rmark::before,.rmark::after{content:"";position:absolute;left:50%;transform:translateX(-50%);border:9px solid transparent}
.rmark::before{top:-2px;border-top-color:var(--brass)}
.rmark::after{bottom:-2px;border-bottom-color:var(--brass)}
.dtile.hit{box-shadow:0 0 0 2px var(--rc),0 0 30px color-mix(in srgb,var(--rc) 65%,transparent);animation:hitpop .55s ease-out}
@keyframes hitpop{40%{transform:scale(1.08)}}
.cres{display:grid;gap:14px;justify-items:center}
.cres-in{display:grid;gap:4px;justify-items:center}
.cres-in b{font:900 clamp(20px,4vw,28px)/1.15 var(--f-disp);color:var(--rc);text-wrap:balance}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* profil */
.eqprev{display:flex;gap:14px;align-items:center;margin:12px 0;flex-wrap:wrap}
.cosgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.cosit{display:grid;justify-items:center;gap:5px;padding:10px 6px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--ink);font-size:12px;font-weight:600;text-align:center;cursor:pointer;min-width:0}
.cosit span{overflow-wrap:anywhere}
.cosit:hover{border-color:var(--brass-d)}
.cosit.sel{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}
.cosit:focus-visible,.react:focus-visible,.pmit:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

/* Communauté */
.feed{display:grid;gap:14px;max-width:780px}
.post{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:grid;gap:12px;min-width:0}
.post.auto{border-color:color-mix(in srgb,var(--brass) 35%,var(--line))}
.post .phead{display:flex;justify-content:space-between;gap:8px 12px;align-items:center;flex-wrap:wrap}
.pbody{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);line-height:1.5}
.pcontent{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--panel2);border-radius:14px;padding:12px;min-width:0}
.pcard{width:150px;flex:none;cursor:pointer}
.pcos{display:grid;place-items:center;width:150px;flex:none;padding:8px 0}
.pinfo{display:grid;gap:4px;min-width:0;flex:1 1 180px;justify-items:start}
.pinfo b{font-size:16px;color:var(--ink);overflow-wrap:anywhere}
.pcoll{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.pbig{display:block;font:900 34px/1 var(--f-disp);color:var(--brass)}
.post .pfoot{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.react{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--panel2);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--mute);cursor:pointer}
.react .ic{font-family:var(--f-sym);color:var(--brass)}
.react b{color:var(--ink);font-weight:700}
.react[aria-pressed="true"]{border-color:var(--brass);color:var(--ink);background:color-mix(in srgb,var(--brass) 16%,var(--panel2))}
.post .pfoot .linkbtn{margin-left:auto}
.lbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.lb{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.lb li{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 8px;border-radius:10px}
.lb li.me{background:color-mix(in srgb,var(--brass) 12%,transparent)}
.lb .rk{color:var(--mute);font-weight:700;text-align:right}
.lb li:nth-child(1) .rk{color:#f4c95d}.lb li:nth-child(2) .rk{color:#d4d8de}.lb li:nth-child(3) .rk{color:#d99a6c}
.pmodal{width:min(640px,100%)}
.pmodal textarea{width:100%;resize:vertical;min-height:72px;font:inherit}
.pmgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:10px;max-height:300px;overflow:auto;padding:4px}
.pmit{background:none;border:2px solid transparent;border-radius:10px;padding:2px;cursor:pointer}
.pmit.sel{border-color:var(--brass)}

/* Studio */
.cepv{display:grid;gap:10px;justify-items:center;align-content:start}
.cepv-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:center}
.kdrops select{max-width:180px}
.kdrops input{width:80px}

@media (max-width:700px){
  .dtile{width:108px;min-height:134px;padding:10px 6px 8px}
  .dart{height:58px}
  .case.big{--w:180px}
  .cstage{height:300px}
  .cres.wait{min-height:186px}
  .cstage .cprize .pz{transform:scale(1.6)}
  .pcard,.pcos{width:120px}
  .bagbtns{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  .fs-prisme::before,.fs-flammes::before,.fs-galaxie::before,.pbdg.r6,.dtile.hit,.cstage .crays,.cstage .cprize{animation:none}
}

/* =====================================================================
   Effets exceptionnels (sur tous les exemplaires d'une carte)
   ===================================================================== */
.aura{position:absolute;inset:0;border-radius:5.5%/4%;pointer-events:none;z-index:3}
.aura::before,.aura::after{content:"";position:absolute;pointer-events:none;border-radius:inherit}
/* Foudre : arcs électriques qui courent sur le bord, éclairs et flash */
.au-foudre{box-shadow:0 0 2.4cqw rgba(80,180,255,.55),0 0 7cqw rgba(60,130,255,.3),inset 0 0 3cqw rgba(110,200,255,.3);animation:auzap 3.6s infinite}
.au-foudre::before{inset:0;background:radial-gradient(circle at 18% 22%,rgba(225,245,255,.55),transparent 45%),radial-gradient(circle at 82% 80%,rgba(225,245,255,.5),transparent 45%);mix-blend-mode:screen;opacity:0;animation:auflash 3.6s infinite}
.au-foudre::after{inset:0;background:linear-gradient(180deg,rgba(90,190,255,.16),transparent 22%,transparent 78%,rgba(90,190,255,.16)),linear-gradient(90deg,rgba(90,190,255,.14),transparent 18%,transparent 82%,rgba(90,190,255,.14));mix-blend-mode:screen}
.au-foudre .zap{position:absolute;left:-3%;top:-2.2%;width:106%;height:104.4%;overflow:visible;filter:drop-shadow(0 0 .8cqw #7fd4ff) drop-shadow(0 0 2.2cqw #2c8cff)}
.au-foudre .zr{fill:none;stroke-linecap:round;stroke-linejoin:round}
.au-foudre .z0{stroke:rgba(90,190,255,.55);stroke-width:2.6;stroke-dasharray:46 20 18 30;animation:auarc 2.3s linear infinite reverse}
.au-foudre .z1{stroke:#bfeaff;stroke-width:1.3;stroke-dasharray:34 26 10 22 52 30;animation:auarc 1.7s linear infinite,auzflk .12s steps(2) infinite}
.au-foudre .z2{stroke:#fff;stroke-width:.55;stroke-dasharray:20 44 8 36;animation:auarc 1.1s linear infinite reverse,auzflk .09s steps(2) infinite}
.au-foudre .bolt{position:absolute;width:24%;height:52%;overflow:visible;opacity:0;filter:drop-shadow(0 0 .7cqw #bfe9ff) drop-shadow(0 0 2.6cqw #3a9dff);animation:aubolt 3.6s infinite}
.au-foudre .bolt path{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.au-foudre .bolt path.bg{stroke:#7fd0ff;stroke-width:4.2;opacity:.55}
.au-foudre .b1{left:-6%;top:3%}
.au-foudre .b2{right:-6%;bottom:4%;animation-delay:1.8s}
@keyframes auarc{to{stroke-dashoffset:-460}}
@keyframes auzflk{50%{opacity:.55}}
@keyframes auzap{0%,52%,62%,100%{box-shadow:0 0 2.4cqw rgba(80,180,255,.55),0 0 7cqw rgba(60,130,255,.3),inset 0 0 3cqw rgba(110,200,255,.3)}54%,59%{box-shadow:0 0 5cqw rgba(170,230,255,.95),0 0 14cqw rgba(80,160,255,.6),inset 0 0 7cqw rgba(190,235,255,.6)}56.5%{box-shadow:0 0 3cqw rgba(110,200,255,.6),0 0 8cqw rgba(60,130,255,.35),inset 0 0 3cqw rgba(140,220,255,.35)}}
@keyframes auflash{0%,52%,62%,100%{opacity:0}54%,59%{opacity:1}56.5%{opacity:.25}}
@keyframes aubolt{0%,51%,64%,100%{opacity:0}53%,55%,58%,60%{opacity:1}56.5%{opacity:.15}}
/* Halo lumineux : une lumière qui pulse autour de la carte */
.au-halo{box-shadow:0 0 5cqw 1cqw rgba(255,240,190,.6),0 0 14cqw 2cqw rgba(255,214,120,.35);animation:auhalo 3.4s ease-in-out infinite}
.au-halo::before{inset:0;background:radial-gradient(ellipse at 50% -10%,rgba(255,250,225,.75),transparent 55%);mix-blend-mode:screen;animation:auhalo2 3.4s ease-in-out infinite}
@keyframes auhalo{50%{box-shadow:0 0 8cqw 2cqw rgba(255,244,205,.85),0 0 22cqw 4cqw rgba(255,214,120,.5)}}
@keyframes auhalo2{50%{opacity:.55}}
/* Flammes : des braises qui montent du bas de la carte */
.au-flammes{box-shadow:0 0 5cqw rgba(255,110,20,.6),0 2cqw 9cqw rgba(255,60,0,.45);animation:aufire .9s ease-in-out infinite alternate}
.au-flammes::before{inset:0;background:linear-gradient(to top,rgba(255,80,0,.6),rgba(255,160,0,.28) 22%,transparent 45%);mix-blend-mode:screen;animation:auflick .35s steps(2) infinite alternate}
.au-flammes::after{inset:auto 0 0 0;height:55%;background:radial-gradient(1.6cqw 3cqw at 20% 100%,#ffd36b,transparent),radial-gradient(1.2cqw 2.4cqw at 45% 100%,#ff9f2e,transparent),radial-gradient(1.4cqw 2.8cqw at 70% 100%,#ffe39a,transparent),radial-gradient(1cqw 2cqw at 88% 100%,#ff8a1f,transparent);background-size:100% 100%;mix-blend-mode:screen;animation:auembers 2.2s linear infinite}
@keyframes aufire{to{box-shadow:0 0 7cqw rgba(255,140,30,.75),0 3cqw 12cqw rgba(255,70,0,.55)}}
@keyframes auflick{to{opacity:.75}}
@keyframes auembers{from{transform:translateY(0);opacity:1}to{transform:translateY(-70%);opacity:0}}
/* Étincelles : des éclats qui scintillent sur toute la carte */
.au-etincelles::before,.au-etincelles::after{inset:0;mix-blend-mode:screen}
.au-etincelles::before{background:radial-gradient(circle at 12% 18%,#fff 0 0.70cqw,rgba(255,236,170,.75) 1.12cqw,transparent 2.24cqw),radial-gradient(circle at 78% 30%,#fff 0 0.95cqw,rgba(255,236,170,.75) 1.52cqw,transparent 3.04cqw),radial-gradient(circle at 30% 72%,#fff 0 1.20cqw,rgba(255,236,170,.75) 1.92cqw,transparent 3.84cqw),radial-gradient(circle at 86% 84%,#fff 0 0.70cqw,rgba(255,236,170,.75) 1.12cqw,transparent 2.24cqw),radial-gradient(circle at 52% 8%,#fff 0 0.95cqw,rgba(255,236,170,.75) 1.52cqw,transparent 3.04cqw),radial-gradient(circle at 8% 52%,#fff 0 1.20cqw,rgba(255,236,170,.75) 1.92cqw,transparent 3.84cqw);animation:autwinkle 1.6s ease-in-out infinite}
.au-etincelles::after{background:radial-gradient(circle at 60% 12%,#fff 0 0.70cqw,rgba(255,236,170,.75) 1.12cqw,transparent 2.24cqw),radial-gradient(circle at 20% 46%,#fff 0 0.95cqw,rgba(255,236,170,.75) 1.52cqw,transparent 3.04cqw),radial-gradient(circle at 66% 58%,#fff 0 1.20cqw,rgba(255,236,170,.75) 1.92cqw,transparent 3.84cqw),radial-gradient(circle at 44% 92%,#fff 0 0.70cqw,rgba(255,236,170,.75) 1.12cqw,transparent 2.24cqw),radial-gradient(circle at 92% 10%,#fff 0 0.95cqw,rgba(255,236,170,.75) 1.52cqw,transparent 3.04cqw),radial-gradient(circle at 38% 34%,#fff 0 1.20cqw,rgba(255,236,170,.75) 1.92cqw,transparent 3.84cqw);animation:autwinkle 1.6s ease-in-out .8s infinite}
.au-etincelles{box-shadow:0 0 4cqw rgba(255,240,200,.45)}
@keyframes autwinkle{0%,100%{opacity:.05}50%{opacity:1}}
/* Givre : bords gelés et reflet froid */
.au-givre{box-shadow:0 0 4cqw rgba(170,225,255,.6),inset 0 0 6cqw rgba(225,245,255,.85),inset 0 0 1.4cqw rgba(255,255,255,.9)}
.au-givre::before{inset:0;background:repeating-conic-gradient(from 15deg at 0 0,rgba(255,255,255,.22) 0 2deg,transparent 2deg 9deg),repeating-conic-gradient(from 195deg at 100% 100%,rgba(255,255,255,.22) 0 2deg,transparent 2deg 9deg);-webkit-mask:radial-gradient(circle at 0 0,#000,transparent 38%),radial-gradient(circle at 100% 100%,#000,transparent 38%);mask:radial-gradient(circle at 0 0,#000,transparent 38%),radial-gradient(circle at 100% 100%,#000,transparent 38%);mix-blend-mode:screen}
.au-givre::after{inset:0;background:linear-gradient(115deg,transparent 35%,rgba(220,245,255,.45) 50%,transparent 65%) 0 0/250% 100%;mix-blend-mode:screen;animation:aufrost 5s ease-in-out infinite}
@keyframes aufrost{50%{background-position:100% 0}}
/* Studio */
.aus .au-chip{border-color:color-mix(in srgb,var(--brass) 45%,var(--line))}
.hylist{display:grid;gap:8px}
.hyrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.hyrow .rk{width:20px;text-align:right;color:var(--brass);font-weight:700}
.hyrow .hyn{display:grid;gap:2px;min-width:0;flex:1 1 180px}
.hyrow .hyn b{color:var(--ink)}
.hyrow select{max-width:180px}
@media (prefers-reduced-motion:reduce){.aura,.aura::before,.aura::after,.aura .bolt,.aura .zap,.aura .zr{animation:none}.au-foudre .bolt{opacity:.85}.au-foudre .zr{stroke-dasharray:none}}

.hyrow.on{border-color:color-mix(in srgb,var(--brass) 55%,var(--line))}
.hyrow .meter{height:6px;margin-top:3px;max-width:260px}
.hysub{margin:16px 0 8px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.card.has-au .sh-tag{z-index:4}
/* =====================================================================
   Boosters : sachet en aluminium scellé (bords sertis, reflet, ombrage)
   ===================================================================== */
.pack{background:none;box-shadow:none;animation:none;border-radius:0;--prx:0deg;--pry:0deg;--pmx:50%;--pmy:28%;
  filter:drop-shadow(0 12px 16px rgba(0,0,0,.5)) drop-shadow(0 2px 3px rgba(0,0,0,.35));
  transform:perspective(700px) rotateX(var(--prx)) rotateY(var(--pry));transition:transform .4s cubic-bezier(.2,.9,.3,1)}
.pack:hover{transform:perspective(700px) rotateX(var(--prx)) rotateY(var(--pry)) translateY(-6px)}
.pack.tilt{transition:transform .08s linear}
.pack::before{content:none}
.pack.mini{border-radius:0;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.pack.mini:hover{transform:none}
.pkf{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:var(--pk);--z:3.4cqw;
  -webkit-mask:conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top/var(--z) 51% repeat-x,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/var(--z) 51% repeat-x;
  mask:conic-gradient(from 135deg at top,#0000,#000 1deg 89deg,#0000 90deg) top/var(--z) 51% repeat-x,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/var(--z) 51% repeat-x}
.pack.mini .pkf{--z:7cqw}
.pkf .pkimg{border-radius:0}
.pkf b,.pkf small,.pkf .pk-brand,.pkf .pk-n{position:relative;z-index:2}
.pkf small{position:absolute;bottom:13cqw}
/* volume du sachet : bords plus sombres, centre bombé */
.pk-sh{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.12) 7%,rgba(255,255,255,.07) 26%,transparent 48%,rgba(0,0,0,.1) 88%,rgba(0,0,0,.55)),
   linear-gradient(180deg,transparent 9%,rgba(0,0,0,.32) 10.5%,transparent 17%,transparent 84%,rgba(0,0,0,.32) 89.5%,transparent 91%),
   radial-gradient(120% 60% at 50% 50%,transparent 60%,rgba(0,0,0,.28))}
/* bords sertis (stries perpendiculaires au bord) */
.pk-cr{position:absolute;left:0;right:0;height:10cqw;z-index:3;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.2) 0 .6cqw,rgba(0,0,0,.22) .6cqw 1.5cqw),linear-gradient(180deg,rgba(255,255,255,.25),rgba(0,0,0,.25)),var(--pk)}
.pk-cr.t{top:0;box-shadow:0 .6cqw 1.2cqw rgba(0,0,0,.45)}
.pk-cr.b{bottom:0;box-shadow:0 -.6cqw 1.2cqw rgba(0,0,0,.45)}
/* ligne de déchirure et encoches */
.pk-tl{position:absolute;left:0;right:0;top:16%;z-index:3;border-top:.5cqw dashed rgba(255,255,255,.32);pointer-events:none}
.pk-tl::before,.pk-tl::after{content:"";position:absolute;top:-2.2cqw;border:2cqw solid transparent;border-top-width:2cqw;border-bottom-width:2cqw}
.pk-tl::before{left:-.5cqw;border-left:3cqw solid rgba(10,5,14,.85)}
.pk-tl::after{right:-.5cqw;border-right:3cqw solid rgba(10,5,14,.85)}
.pk-brand{position:absolute!important;top:29cqw;left:7cqw;right:30cqw;font:800 5.2cqw/1 var(--f-disp);letter-spacing:.16em;text-transform:uppercase;color:#fff8e6;opacity:.85;text-shadow:0 1px 3px rgba(0,0,0,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-n{position:absolute!important;top:28cqw;right:7cqw;font:700 4.6cqw/1 var(--f-num);font-style:normal;color:#1b1020;background:#fff8e6;border-radius:2cqw;padding:.8cqw 1.8cqw;box-shadow:0 .5cqw 1cqw rgba(0,0,0,.4)}
/* film métallisé : reflet qui suit la souris + reflet qui passe */
.pk-foil{position:absolute;inset:0;z-index:4;pointer-events:none;mix-blend-mode:screen;
  background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.42) 47%,rgba(255,255,255,.08) 53%,transparent 60%) 150% 0/260% 100% no-repeat,
   radial-gradient(farthest-corner circle at var(--pmx) var(--pmy),rgba(255,255,255,.3),transparent 42%),
   linear-gradient(125deg,rgba(255,80,200,.08),rgba(80,255,230,.08) 50%,rgba(255,230,80,.08));
  animation:pkfoil 5s ease-in-out infinite}
@keyframes pkfoil{0%,55%{background-position:150% 0,0 0,0 0}100%{background-position:-110% 0,0 0,0 0}}
.pack.mini .pk-foil{animation:none}

/* ---------- ouverture ---------- */
.pkov{max-width:760px;width:100%}
.pstage{position:relative;width:100%;display:grid;place-items:center;padding:26px 0 18px}
.pstage .prays{position:absolute;left:50%;top:50%;width:min(620px,130vw);aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;opacity:.16;transition:opacity .6s;
  background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--rc) 55%,transparent) 0 5deg,transparent 5deg 17deg);-webkit-mask:radial-gradient(closest-side,#000 15%,transparent 72%);mask:radial-gradient(closest-side,#000 15%,transparent 72%);animation:crspin 22s linear infinite}
.pstage.lit .prays{opacity:.7}
.opk{width:min(250px,56vw);touch-action:none;user-select:none;-webkit-user-select:none;margin:0;--tp:0}
.opk-in{position:relative}
.opk .pack{width:100%;max-width:none;cursor:grab;box-shadow:none;filter:drop-shadow(0 26px 30px rgba(0,0,0,.6)) drop-shadow(0 3px 5px rgba(0,0,0,.4))}
.opk.drag .pack{cursor:grabbing}
.opk-body,.opk-top{position:relative;z-index:1}
.opk-top{position:absolute;inset:0;z-index:2;transform-origin:100% 16%;transform:rotate(calc(var(--tp) * -7deg)) translateY(calc(var(--tp) * -5px))}
.opk.rtl .opk-top{transform-origin:0 16%;transform:rotate(calc(var(--tp) * 7deg)) translateY(calc(var(--tp) * -5px))}
.opk.auto .opk-top{transition:transform .38s ease-in}
.opk-glow{position:absolute;inset:-30%;z-index:0;border-radius:50%;background:radial-gradient(circle at 50% 30%,var(--rc),transparent 60%);opacity:calc(var(--tp) * .7);pointer-events:none}
.opk-cards{position:absolute;left:13%;right:13%;top:6%;z-index:0}
.opk-cards .cback{position:relative}
.opk-cards .cback+.cback{position:absolute;left:0;top:0}
.opk-cards .cback:nth-child(2){transform:rotate(-3deg) translateX(-3%)}
.opk-cards .cback:nth-child(3){transform:rotate(3.5deg) translateX(3%)}
.opk-cards .cb-in{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 26px color-mix(in srgb,var(--rc) 70%,transparent)}
/* guide : pointillés lumineux + point qui montre le geste */
.opk-guide{position:absolute;left:0;right:0;top:16%;height:0;z-index:5;pointer-events:none}
.opk-guide::before{content:"";position:absolute;left:3%;right:3%;top:-1px;border-top:2px dashed rgba(255,255,255,.7);filter:drop-shadow(0 0 4px rgba(255,255,255,.8));opacity:.9;animation:pkguide 1.6s ease-in-out infinite}
@keyframes pkguide{50%{opacity:.35}}
.opk-cut{position:absolute;left:2%;top:-2px;height:4px;width:calc(var(--tp) * 96%);border-radius:4px;background:#fff;box-shadow:0 0 6px 2px var(--rc),0 0 22px 6px color-mix(in srgb,var(--rc) 55%,transparent)}
.opk.rtl .opk-cut{left:auto;right:2%}
.opk.auto .opk-cut{transition:width .38s ease-in}
.opk-hand{position:absolute;top:-9px;left:3%;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,#fff 0 30%,rgba(255,255,255,.35) 55%,transparent 70%);box-shadow:0 0 14px #fff;animation:pkhand 1.8s cubic-bezier(.5,0,.4,1) infinite}
@keyframes pkhand{0%{left:3%;opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1)}80%{opacity:1}100%{left:calc(97% - 18px);opacity:0;transform:scale(.7)}}
.opk.tearing .opk-guide::before,.opk.tearing .opk-hand{animation:none;opacity:0}
/* booster rare : il tremble tout seul et la lumière filtre */
.opk.rumble .opk-in{animation:pkrumble 2.4s ease-in-out infinite}
.opk.rumble:not(.tearing) .opk-glow{animation:pkleak 2.4s ease-in-out infinite}
.opk.r5 .opk-in{animation-duration:1.7s}
.opk.r5:not(.tearing) .opk-glow{animation-duration:1.7s}
.opk.tearing .opk-in{animation:none}
@keyframes pkrumble{0%,64%,100%{transform:none}68%{transform:rotate(-2.5deg) translateX(-3px)}72%{transform:rotate(2.5deg) translateX(3px)}76%{transform:rotate(-1.8deg)}80%{transform:rotate(1.2deg)}84%{transform:none}}
@keyframes pkleak{0%,62%,100%{opacity:0}72%,80%{opacity:.55}}
.rv-row.dealt .flip{animation:none}
@media (prefers-reduced-motion:reduce){.pk-foil,.opk-hand,.opk-guide::before,.opk.rumble .opk-in,.opk.rumble .opk-glow,.pstage .prays{animation:none}}
/* =====================================================================
   Onglet Jeu : vitrine de la réserve (boosters en éventail)
   ===================================================================== */
.pkshow{position:relative;margin-top:12px;padding:20px 12px 12px;border-radius:14px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(60% 70% at 50% 100%,rgba(228,181,92,.16),transparent 70%),radial-gradient(40% 50% at 50% 30%,rgba(127,209,199,.06),transparent 70%),var(--panel2)}
.pkshow::after{content:"";position:absolute;left:12%;right:12%;bottom:40px;height:18px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.45),transparent);pointer-events:none}
.pkfans{display:flex;justify-content:center;align-items:flex-end;padding:0 28px 22px}
.pkfan{position:relative;z-index:var(--z,1);margin:0 -14px;transform:translateY(var(--y,0)) rotate(var(--r,0deg));transform-origin:50% 120%;transition:transform .35s cubic-bezier(.2,.9,.3,1)}
.pkfan:hover,.pkfan:focus-within{z-index:20;transform:translateY(-8px) rotate(0deg) scale(1.06)}
.pkfan .pack{width:112px}
.pkcount{position:absolute;top:-6px;right:-4px;z-index:6;font-size:12px;font-weight:700;color:#1a1206;background:var(--brass);border-radius:999px;padding:2px 8px;box-shadow:0 3px 8px rgba(0,0,0,.45)}
.pkfan.l .pkcount{right:auto;left:-4px}
.pkshow-cap{position:relative;z-index:1;text-align:center;margin:0}
.pkshow.empty-show{display:grid;place-items:center;padding:18px 12px 22px}
.pkshow.empty-show::after{bottom:14px}
.pkshow.empty-show .pkfan{margin:0;transform:rotate(-4deg)}
.pkshow.empty-show .pack{width:92px;cursor:default;opacity:.4;filter:grayscale(.7) drop-shadow(0 10px 14px rgba(0,0,0,.5))}
.pkshow.empty-show+.empty{margin-top:10px!important}
@media (max-width:560px){.pkshow{padding:16px 8px 10px}.pkfans{padding:0 22px 18px}.pkfan{margin:0 -10px;transform:translateY(calc(var(--y,0) * .7)) rotate(calc(var(--r,0deg) * .7))}.pkfan .pack{width:72px}.pkshow::after{bottom:34px}}
@media (prefers-reduced-motion:reduce){.pkfan{transition:none}}
/* =====================================================================
   Ouverture : voir une carte révélée en grand
   ===================================================================== */
.rv-hint{margin:.35em 0 0}
.flip .zhint{position:absolute;right:6px;bottom:30px;z-index:5;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(10,6,14,.72);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:13px;opacity:0;transform:scale(.8);transition:opacity .3s .9s,transform .3s .9s;pointer-events:none}
.flip.on{cursor:zoom-in}
.flip.on .zhint{opacity:1;transform:none}
.zoom{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) 16px max(16px,env(safe-area-inset-bottom,0px));background:rgba(6,3,9,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);overflow:auto;overscroll-behavior:contain}
.zoom[hidden]{display:none}
.zbox{position:relative;display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;align-items:center;width:min(820px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.zbox .x{position:absolute;top:12px;right:12px}
.zcard{position:relative;filter:drop-shadow(0 18px 30px rgba(0,0,0,.55))}
.zcard::before{content:"";position:absolute;inset:-6%;border-radius:24px;background:radial-gradient(closest-side,color-mix(in srgb,var(--rc) 35%,transparent),transparent);z-index:-1;pointer-events:none}
.zinfo{display:grid;gap:10px;min-width:0;text-align:left}
.zinfo h2{margin:0;padding-right:70px}
.ztags{display:flex;flex-wrap:wrap;gap:6px}
.ztag{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--ink)}
.ztag.new{border-color:var(--ok);color:var(--ok)}
.ztag.wf{border-color:var(--brass);color:#1a1206;background:var(--brass)}
.ztag.sh{border-color:#ff9bd2;background:linear-gradient(90deg,rgba(255,155,210,.25),rgba(255,241,168,.25))}
.ztext{margin:0;font-style:italic;color:var(--ink);line-height:1.5}
.zstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.zstats>div{display:grid;gap:3px;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.zstats span{font-size:12px;color:var(--mute)}
.zstats b{font-size:18px;color:var(--ink)}
.zstats i.coin{transform:scale(.8)}
.znav{display:flex;align-items:center;gap:12px}
@media (max-width:700px){
  .zoom{place-items:start center}
  .zbox{grid-template-columns:minmax(0,1fr);gap:14px;padding:52px 16px 16px}
  .zcard{width:min(260px,70vw);justify-self:center}
  .zstats{grid-template-columns:repeat(3,minmax(0,1fr))}.zstats b{font-size:15px}
  .znav{justify-content:center}
}
@media (prefers-reduced-motion:reduce){.flip .zhint{transition:none}}
/* =====================================================================
   Effets animés des cadres et des badges
   --cx : couleur de l'effet · --cs : taille de l'objet (px)
   ===================================================================== */
@property --cfa{syntax:"<angle>";inherits:false;initial-value:0deg}
.cfxw{display:inline-grid;place-items:center;position:relative;isolation:isolate;flex:none;vertical-align:middle}
.pbdg{position:relative}
.cfx,.cfx-sh{position:absolute;pointer-events:none;display:block}
.afr .cfx{border-radius:50%}
.cfxw .cfx{border-radius:30%}
.cfx i{position:absolute;display:block}

/* Éclat : un reflet traverse l'objet */
.cfx-sh{inset:0;border-radius:inherit;overflow:hidden;z-index:2;mix-blend-mode:screen}
.afr .cfx-sh{border-radius:50%}
.cfx-sh::before{content:"";position:absolute;inset:-20% -70%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.9) 50%,transparent 58%);transform:translateX(-55%);animation:cfxsheen 2.8s ease-in-out infinite}
@keyframes cfxsheen{0%,40%{transform:translateX(-55%)}100%{transform:translateX(55%)}}

/* Pulsation : une lueur qui respire */
.cfx-pulse .cfx{inset:0;z-index:-1;animation:cfxpulse 1.9s ease-in-out infinite}
@keyframes cfxpulse{0%,100%{box-shadow:0 0 calc(var(--cs) * .08) calc(var(--cs) * .02) color-mix(in srgb,var(--cx) 60%,transparent)}50%{box-shadow:0 0 calc(var(--cs) * .32) calc(var(--cs) * .1) var(--cx)}}

/* Étincelles : des étoiles qui scintillent autour */
.cfx-etincelles .cfx{inset:-24%;z-index:3}
.cfx-etincelles .cfx i{width:20%;aspect-ratio:1;background:radial-gradient(circle,#fff 0 16%,color-mix(in srgb,var(--cx) 60%,#fff) 34%,transparent 66%);
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);transform:scale(0);animation:cfxtw 1.8s ease-in-out infinite}
.cfx-etincelles .cfx i:nth-child(1){left:6%;top:12%}
.cfx-etincelles .cfx i:nth-child(2){left:74%;top:2%;width:16%;animation-delay:.55s}
.cfx-etincelles .cfx i:nth-child(3){left:84%;top:58%;animation-delay:.95s}
.cfx-etincelles .cfx i:nth-child(4){left:34%;top:82%;width:15%;animation-delay:.3s}
.cfx-etincelles .cfx i:nth-child(5){left:-2%;top:56%;width:14%;animation-delay:1.25s}
.cfx-etincelles .cfx i:nth-child(6){left:48%;top:-6%;width:13%;animation-delay:.75s}
@keyframes cfxtw{0%,100%{transform:scale(0) rotate(0);opacity:0}45%{opacity:1}50%{transform:scale(1) rotate(90deg);opacity:1}}

/* Orbite : deux lumières tournent autour */
.cfx-orbite .cfx{inset:-15%;z-index:3;animation:cfxspin 2.8s linear infinite}
.cfx-orbite .cfx i{width:15%;aspect-ratio:1;border-radius:50%;left:42.5%;top:-6%;background:radial-gradient(circle,#fff 0 28%,var(--cx) 58%,transparent 74%);box-shadow:0 0 calc(var(--cs) * .1) var(--cx)}
.cfx-orbite .cfx i:nth-child(2){top:auto;bottom:-4%;width:10%;left:45%;opacity:.8}
@keyframes cfxspin{to{transform:rotate(1turn)}}

/* Halo : des ondes de lumière qui s'éloignent */
.cfx-halo .cfx{inset:0;z-index:-1}
.cfx-halo .cfx::before,.cfx-halo .cfx::after{content:"";position:absolute;inset:0;border-radius:inherit;border:calc(var(--cs) * .045) solid var(--cx);box-shadow:0 0 calc(var(--cs) * .12) var(--cx);opacity:0;animation:cfxhalo 2.2s ease-out infinite}
.cfx-halo .cfx::after{animation-delay:1.1s}
@keyframes cfxhalo{0%{transform:scale(.95);opacity:.95}100%{transform:scale(1.55);opacity:0}}

/* Arc-en-ciel : un contour lumineux qui change de couleur */
.cfx-arcenciel .cfx{inset:-11%;z-index:-2;background:conic-gradient(from var(--cfa),#ff3c8e,#ffb800,#3cff9e,#2ba8ff,#b44cff,#ff3c8e);filter:blur(calc(var(--cs) * .045));animation:cfxhue 2.6s linear infinite}
.cfxw.cfx-arcenciel .cfx{inset:-9%}
@keyframes cfxhue{to{--cfa:360deg}}

/* Flammes : des flammes montent autour */
.cfx-flammes .cfx{inset:-48% -16% -2%;z-index:-2;border-radius:0!important}
.cfx-flammes .cfx::after{content:"";position:absolute;inset:18% 4% 0;border-radius:50%;background:radial-gradient(closest-side,rgba(255,120,0,.55),transparent);animation:cfxglow .5s ease-in-out infinite alternate}
.cfx-flammes .cfx i{bottom:10%;width:30%;height:78%;border-radius:50% 50% 40% 40% / 62% 62% 38% 38%;transform-origin:50% 100%;
  background:radial-gradient(ellipse 48% 92% at 50% 100%,#fffbe0 0 10%,#ffd040 26%,#ff8a00 48%,rgba(255,50,0,.6) 70%,transparent 90%);filter:blur(calc(var(--cs) * .012));animation:cfxflame 1.15s ease-in infinite}
.cfx-flammes .cfx i:nth-child(1){left:-4%;height:58%;animation-delay:.1s}
.cfx-flammes .cfx i:nth-child(2){left:10%;height:76%;animation-delay:.55s}
.cfx-flammes .cfx i:nth-child(3){left:24%;height:90%;animation-delay:.25s}
.cfx-flammes .cfx i:nth-child(4){left:36%;height:100%;animation-delay:.8s}
.cfx-flammes .cfx i:nth-child(5){left:48%;height:88%;animation-delay:.4s}
.cfx-flammes .cfx i:nth-child(6){left:62%;height:74%;animation-delay:.95s}
.cfx-flammes .cfx i:nth-child(7){left:74%;height:56%;animation-delay:.65s}
@keyframes cfxflame{0%{transform:scale(1,1);opacity:.95}60%{opacity:.85}100%{transform:translateY(-22%) scale(.35,.55);opacity:0}}
@keyframes cfxglow{to{opacity:.6;transform:scale(1.05)}}

/* Foudre : un arc électrique qui crépite sur le contour */
.cfz{left:-12%;top:-12%;width:124%;height:124%;overflow:visible;z-index:3;filter:drop-shadow(0 0 calc(var(--cs) * .04) #bfeaff) drop-shadow(0 0 calc(var(--cs) * .12) #2c8cff)}
.cfz circle,.cfz rect{fill:none;stroke:#effbff;stroke-width:2.6;stroke-linecap:round;stroke-dasharray:46 18 14 26;animation:auarc 1.5s linear infinite}
.cfz .z2{stroke:#73c8ff;stroke-width:6;opacity:.55;stroke-dasharray:34 24 20 30;animation:auarc 2.2s linear infinite reverse}

/* Studio : choix de l'effet */
.fxpick{display:grid;gap:8px}
.fxchips{display:flex;flex-wrap:wrap;gap:8px}
.fxchip{display:grid;justify-items:center;gap:8px;min-width:78px;padding:14px 8px 8px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}
.fxchip:hover{border-color:var(--brass-d)}
.fxchip.on{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}
@media (prefers-reduced-motion:reduce){.cfx,.cfx *,.cfx::before,.cfx::after,.cfx-sh::before,.cfz circle,.cfz rect{animation:none!important}.cfx-etincelles .cfx i{transform:scale(.8);opacity:.8}}
/* =====================================================================
   1.4 · Communauté : réponses, discussions ; Studio : équipe, modération
   ===================================================================== */
.commgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:22px;align-items:start}
.cside{position:sticky;top:12px;min-width:0}
.mob-only{display:none}
@media (max-width:900px){
  .commgrid{grid-template-columns:minmax(0,1fr)}
  .mob-only{display:inline-flex}
  .commgrid .cside{display:none;position:static}
  .commgrid.talk .cside{display:block}
  .commgrid.talk .cm-body{display:none}
}
.rolebdg{flex:none}
.tcnt.hot{background:var(--bad,#ef4f6b);color:#fff}
.hidnote{color:var(--brass);margin:0}
.mention{color:var(--brass);font-weight:700}

/* réponses sous une publication */
.post .pfoot .pacts{margin-left:auto;display:flex;gap:10px}
.post .pfoot .pacts .linkbtn{margin-left:0}
.preplies{display:grid;gap:8px}
.preplies:empty{display:none}
.rp{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:8px 10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.rp.hid{opacity:.6;border-style:dashed}
.rpb{min-width:0;display:grid;gap:2px}
.rph{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
.rph b{color:var(--ink);font-size:13px;overflow-wrap:anywhere}
.rpb p,.msg .mb p{margin:0;font-size:14px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.rpa{display:flex;gap:12px;flex-wrap:wrap}
.rpa .linkbtn,.rpto .linkbtn{font-size:12px}
.rpto{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--mute);overflow-wrap:anywhere}
.rpmore{justify-self:start;background:none;border:0;padding:2px 0;color:var(--brass);font-weight:700;font-size:13px;cursor:pointer}
.rpmore:hover{text-decoration:underline}
.rform{display:grid;gap:6px}
.rrow{display:flex;gap:8px;align-items:flex-end}
.rrow input,.rrow textarea{flex:1;min-width:0}
.rrow textarea{resize:none;min-height:38px;max-height:140px;line-height:1.35}

/* discussions */
.tkpanel{display:grid;gap:12px}
.tkseg{display:flex;gap:6px;flex-wrap:wrap}
.tklist{display:grid;gap:4px;max-height:min(62vh,640px);overflow:auto;margin:0 -6px;padding:0 6px}
.tkrow{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:12px;padding:8px;color:var(--ink);cursor:pointer}
.tkrow:hover{background:var(--panel2);border-color:var(--line)}
.tkrow.un b{color:#fff}
.tkic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);color:var(--brass);font-weight:800;font-family:var(--f-sym)}
.tkic.private{color:#9fd8ff}
.tkn{display:grid;gap:2px;min-width:0}
.tkn b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tkn .small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tkpin{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brass)}
.tkfol{color:var(--mute);font-size:12px}
.tkrules{margin:0;border-top:1px solid var(--line);padding-top:10px}
.tkempty{margin:.4em 0}
.tkhead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}
.tkt{display:grid;gap:2px;min-width:0}
.tkt b{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkmenu{display:flex;gap:6px}
.tkmsgs{display:grid;align-content:start;gap:2px;height:min(56vh,560px);overflow:auto;padding:6px 4px;margin:0 -4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overscroll-behavior:contain}
.msg{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:start;padding:6px 6px;border-radius:10px;position:relative}
.msg:not(.cont){margin-top:6px}
.msg.cont{padding-top:1px}
.msg:hover{background:var(--panel2)}
.msg.me .mb p{color:#fff}
.msg.hid{opacity:.55}
.mav{width:34px;display:grid;place-items:start center}
.mb{min-width:0;display:grid;gap:2px}
.macts{display:flex;gap:2px;opacity:0;transition:opacity .15s}
.msg:hover .macts,.msg:focus-within .macts{opacity:1}
.macts .linkbtn{padding:2px 6px;font-size:14px;text-decoration:none}
@media (hover:none){.macts{opacity:.7}}
.tkform{display:grid;gap:6px}

/* Studio : équipe */
.permgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;margin:8px 0}
.tmlist{display:grid;gap:10px;margin-top:10px}
.tmrow{display:grid;gap:6px;padding:12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.tmhead{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.tmhead select{max-width:160px}
.rbrow{display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.rbpv{display:grid;place-items:center;min-height:70px}
.permhelp{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.permhelp li{display:grid;gap:2px}
.permhelp b{color:var(--ink);font-size:13px}

/* Studio : modération */
.replist{display:grid;gap:12px;margin-top:10px}
.repit{display:grid;gap:8px;padding:12px;border-radius:12px;background:var(--panel2);border:1px solid color-mix(in srgb,var(--bad,#ef4f6b) 40%,var(--line))}
.rephead{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.repq{margin:0;padding:8px 12px;border-left:3px solid var(--bad,#ef4f6b);background:rgba(0,0,0,.2);border-radius:0 8px 8px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);font-size:14px}
.repacts{display:flex;gap:6px;flex-wrap:wrap}
.mulist{display:grid;gap:6px;margin-top:12px}
.murow{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:6px 8px;border-radius:10px;background:var(--panel2)}
.wordadd{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.wordadd input[type="text"]{flex:1;min-width:150px}
.wordlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;max-height:220px;overflow:auto}
.wchip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);font-size:12px;color:var(--ink)}
.wchip.ex{border-style:dashed}
.wchip button{background:none;border:0;color:var(--mute);cursor:pointer;font-size:14px;line-height:1;padding:0 4px}
.wchip button:hover{color:var(--bad,#ef4f6b)}
/* =====================================================================
   1.5 · profils publics, amis, clans, bandeaux de mise à jour
   ===================================================================== */
.clk{cursor:pointer}
.who2.clk:hover b,.rph b.clk:hover{text-decoration:underline}
.who2.clk:focus-visible,.ctag:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:6px}
/* badge de clan : 2 à 4 lettres */
.ctag{--cc:#e4b55c;display:inline-grid;place-items:center;flex:none;vertical-align:middle;cursor:pointer;min-width:28px;height:18px;padding:0 5px;border-radius:5px;
  font:800 10px/1 var(--f-num);letter-spacing:.08em;color:color-mix(in srgb,var(--cc) 25%,#0d0710);
  background:linear-gradient(180deg,color-mix(in srgb,var(--cc) 88%,#fff),color-mix(in srgb,var(--cc) 78%,#000));
  border:1px solid color-mix(in srgb,var(--cc) 50%,#000);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 1px 2px rgba(0,0,0,.35)}
.ctag.lg{height:24px;min-width:40px;font-size:12px;border-radius:7px;padding:0 7px}
.ctag.xl{height:38px;min-width:64px;font-size:17px;border-radius:10px;padding:0 10px}
.ctag.xxl{height:64px;min-width:110px;font-size:30px;border-radius:16px;padding:0 16px;letter-spacing:.1em;box-shadow:inset 0 2px 0 rgba(255,255,255,.4),0 6px 18px color-mix(in srgb,var(--cc) 35%,transparent)}
.who2 .wn .ctag{margin-left:2px}
/* profil d'un joueur */
.pprof{width:min(640px,100%);display:grid;gap:16px;position:relative}
.pprof .x{position:absolute;top:14px;right:14px}
.pphead{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding-right:70px}
.ppn{display:grid;gap:6px;min-width:0}
.ppn h2{margin:0;overflow-wrap:anywhere}
.ppacts{display:flex;gap:8px;flex-wrap:wrap}
.kpis.small4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpis.small4 .kpi b{font-size:20px}
@media (max-width:560px){.kpis.small4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pptop{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:8px}
.pptc{cursor:pointer;min-width:0}
@media (max-width:560px){.pptop{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* clans */
.cllist{display:grid;gap:6px;margin-top:10px}
.clrow{display:grid;grid-template-columns:24px auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.clrow .rk{color:var(--mute);font-weight:700;text-align:right}
.cln{display:grid;gap:2px;min-width:0;background:none;border:0;padding:0;text-align:left;color:var(--ink);cursor:pointer}
.cln b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cln:hover b{text-decoration:underline}
.clmine{border-color:color-mix(in srgb,var(--cc) 45%,var(--line))}
.clhead{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;border-color:color-mix(in srgb,var(--cc) 45%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--cc) 14%,var(--panel)),var(--panel) 70%)}
.clinfo h2{margin:0}
.clacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.clmacts{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:560px){.clhead{grid-template-columns:1fr}.clrow{grid-template-columns:auto minmax(0,1fr)}.clrow .rk{display:none}.clrow .btn{grid-column:1/-1}}
.clpv{display:grid;place-items:center;padding:6px 0 4px}
/* bandeaux : nouvelle version, annonce, base à mettre à jour */
.tbars{display:grid;gap:8px;margin-top:12px}
.tbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);font-size:14px}
.tbar.upd{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 12%,var(--panel))}
.tbar.note{border-color:color-mix(in srgb,#5fd0ff 50%,var(--line));background:color-mix(in srgb,#5fd0ff 10%,var(--panel))}
.tbar.warnb{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--panel))}
.me-btn .tcnt{margin-left:-6px}
/* =====================================================================
   1.6 · Administration : un espace à part, couleur turquoise,
   séparé du Studio de création (doré)
   ===================================================================== */
.adm{--adm:#4fd1c5;--adm-d:#1f6f69;display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:start;margin-top:8px}
.admnav{position:sticky;top:12px;display:grid;gap:14px;padding:16px;border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--adm) 8%,var(--panel)),var(--panel));border:1px solid color-mix(in srgb,var(--adm) 30%,var(--line))}
.admbrand{display:flex;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.admbrand b{display:block;color:var(--ink);font-family:var(--f-disp);font-size:15px}
.admbrand span{font-size:12px;color:var(--adm)}
.admnav nav{display:grid;gap:2px}
.admnav nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:10px;border:0;background:none;color:var(--mute);font-weight:600;font-size:14px;cursor:pointer}
.admnav nav button:hover{background:var(--panel2);color:var(--ink)}
.admnav nav button[aria-current="page"]{background:color-mix(in srgb,var(--adm) 16%,transparent);color:#fff;box-shadow:inset 3px 0 0 var(--adm)}
.admnav nav button .tcnt{margin-left:auto}
.aic{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--panel2);color:var(--adm);font-family:var(--f-sym);font-size:13px;flex:none}
.admswitch{background:none;border:1px dashed var(--line);border-radius:10px;padding:8px 10px;color:var(--brass);font-weight:600;font-size:13px;cursor:pointer;text-align:left}
.admswitch:hover{border-color:var(--brass)}
.admhead{margin-bottom:16px}
.admhead .eyebrow{color:var(--adm)}
.admhead h2{margin:4px 0 2px}
.admhead p{margin:0}
.admmain{min-width:0}
.admmain .btn.gold{background:linear-gradient(180deg,#7fe6db,var(--adm));border-color:var(--adm);color:#06231f}
.admmain .chip[aria-pressed="true"]{background:var(--adm);border-color:var(--adm);color:#06231f}
@media (max-width:900px){
  .adm{grid-template-columns:minmax(0,1fr);gap:14px}
  .admnav{position:static;padding:10px}
  .admbrand{display:none}
  .admnav nav{display:flex;overflow-x:auto;gap:4px;scrollbar-width:none}
  .admnav nav button{width:auto;white-space:nowrap;flex:none}
  .admnav nav button[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--adm)}
  .admswitch{display:none}
}
/* point « en direct » */
.livedot{width:10px;height:10px;border-radius:50%;background:var(--adm,#4fd1c5);box-shadow:0 0 0 0 color-mix(in srgb,var(--adm,#4fd1c5) 60%,transparent);animation:livep 1.8s ease-out infinite;flex:none;display:inline-block}
.livedot.sm{width:8px;height:8px;margin-right:6px;vertical-align:1px}
@keyframes livep{70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.livepill{display:inline-flex;align-items:center;gap:2px;padding:5px 12px;border-radius:999px;background:color-mix(in srgb,var(--adm) 15%,transparent);color:var(--adm);font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.livepill.off{background:var(--panel2);color:var(--mute)}
.livepill.off .livedot{animation:none;background:var(--mute)}
/* tuiles de la vue d'ensemble */
.atiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.atile{display:grid;gap:4px;padding:14px 16px;border-radius:16px;background:var(--panel);border:1px solid var(--line);min-width:0}
.atile span{font-size:12px;color:var(--mute);font-weight:600;display:flex;align-items:center}
.atile b{font-size:28px;color:var(--ink);line-height:1.1}
.atile small{font-size:12px;color:var(--mute)}
.atile.hl{background:linear-gradient(140deg,color-mix(in srgb,var(--adm) 22%,var(--panel)),var(--panel));border-color:color-mix(in srgb,var(--adm) 45%,var(--line))}
.atile.hl b{color:var(--adm)}
.atile.warn{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,var(--panel))}
.atile.warn b{color:var(--bad)}
.atile.clk:hover{transform:translateY(-1px)}
@media (max-width:1100px){.atiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.agrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:900px){.agrid{grid-template-columns:minmax(0,1fr)}}
.aspark{width:100%;height:140px;margin-top:12px;display:block}
.aspark rect{fill:color-mix(in srgb,var(--adm) 70%,transparent)}
.aspark rect:last-child{fill:var(--adm)}
.asparkx{display:flex;justify-content:space-between;font-size:11px;color:var(--mute);margin-top:4px}
.aquick{display:grid;gap:8px;margin-top:10px}
/* journal */
.lgbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.lgbar input[type="search"]{flex:1 1 220px;min-width:0;max-width:340px}
.lgcats{display:flex;gap:6px;flex-wrap:wrap}
.lgcats .chip{display:inline-flex;align-items:center;gap:6px}
.lgdot{width:8px;height:8px;border-radius:50%;background:var(--lc);display:inline-block}
.lgpanel{padding:0;overflow:hidden}
.lghead{display:flex;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--line)}
.lglist{display:grid;max-height:68vh;overflow:auto;font-size:13px}
.lglist.mini{max-height:none;margin-top:8px}
.lglist.sheet{max-height:none;margin-top:8px;border:1px solid var(--line);border-radius:12px}
.lgrow{display:grid;grid-template-columns:70px 108px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 16px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.lglist.mini .lgrow,.lglist.sheet .lgrow{padding:7px 10px;grid-template-columns:62px 100px minmax(0,1fr) auto}
.lgrow:last-child{border-bottom:0}
.lgrow:hover{background:var(--panel2)}
.lgrow time{font-family:var(--f-num);color:var(--mute);font-size:12px}
.lgcat{justify-self:start;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;color:var(--lc);background:color-mix(in srgb,var(--lc) 14%,transparent);border:1px solid color-mix(in srgb,var(--lc) 35%,transparent);white-space:nowrap}
.lgtxt{color:var(--ink);overflow-wrap:anywhere}
.lgwho{background:none;border:1px solid var(--line);border-radius:8px;color:var(--mute);font-size:11px;padding:2px 8px;cursor:pointer}
.lgwho:hover{color:var(--adm);border-color:var(--adm)}
.lgrow.fresh{animation:lgin 1.6s ease-out}
@keyframes lgin{0%{background:color-mix(in srgb,var(--adm,#4fd1c5) 30%,transparent);transform:translateX(-6px)}20%{transform:none}100%{background:transparent}}
@media (max-width:640px){.lgrow,.lglist.mini .lgrow,.lglist.sheet .lgrow{grid-template-columns:auto minmax(0,1fr);gap:4px 8px}.lgrow .lgtxt{grid-column:1/-1}.lgrow .lgwho{display:none}}
/* joueurs */
.aptable tbody tr.clk:hover{background:var(--panel2)}
.aptable td,.aptable th{padding-left:12px}
.apn{display:flex;align-items:center;gap:8px;min-width:0}
.apn b{color:var(--ink);white-space:nowrap}
.odot{width:8px;height:8px;border-radius:50%;background:var(--line);display:inline-block;flex:none}
.odot.on{background:var(--ok);box-shadow:0 0 6px var(--ok)}
/* fiche joueur : panneau latéral */
.ov.drawer{justify-content:flex-end;padding:0}
.asheet{width:min(560px,100%);min-height:100%;background:var(--panel);border-left:1px solid color-mix(in srgb,var(--adm,#4fd1c5) 40%,var(--line));padding:24px;display:grid;gap:16px;align-content:start;position:relative;animation:slidein .25s ease-out;--adm:#4fd1c5}
@keyframes slidein{from{transform:translateX(40px);opacity:0}}
.asheet .x{position:absolute;top:16px;right:16px}
.ashead{display:flex;gap:16px;align-items:center;padding-right:70px}
.ashead h2{margin:0}
.asacts{display:flex;gap:8px;flex-wrap:wrap}
.asacts .btn.gold{background:linear-gradient(180deg,#7fe6db,var(--adm));border-color:var(--adm);color:#06231f}
.asstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.asstats div{padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);display:grid;gap:2px}
.asstats span{font-size:11px;color:var(--mute)}
.asstats b{font-size:17px;color:var(--ink)}
.adjform{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:12px;border-radius:12px;background:var(--panel2);border:1px dashed var(--line)}
.adjform .f{width:130px}
/* cadeaux */
.drgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:18px;align-items:start}
.drside{position:sticky;top:12px;display:grid;gap:16px}
@media (max-width:1000px){.drgrid{grid-template-columns:minmax(0,1fr)}.drside{position:static}}
.drstep h3{display:flex;align-items:center;gap:10px}
.stepn{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--adm,#4fd1c5);color:#06231f;font-size:13px;font-weight:800;letter-spacing:0}
.drpick{position:relative;margin-top:10px}
.drpick input{width:100%}
.drsug{display:grid;gap:2px;margin-top:4px}
.drsug button{display:flex;gap:8px;align-items:center;text-align:left;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);cursor:pointer;font-size:13px}
.drsug button:hover{border-color:var(--adm,#4fd1c5)}
.drsug .thumb{width:22px;height:30px}
.drchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.drcount{margin:12px 0 0;color:var(--mute);font-size:14px}
.drcount b{color:var(--adm,#4fd1c5);font-size:18px}
.drcur{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.drcur label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--mute)}
.drcur label i{margin-right:4px}
@media (max-width:560px){.drcur{grid-template-columns:minmax(0,1fr)}}
.drsec{display:grid;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.drsec>b{color:var(--ink);font-size:13px}
.drsec>.btn{justify-self:start}
.drrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.drrow select{flex:1 1 180px;min-width:0}
.drrow input[type="number"]{width:72px}
.drcn{display:grid;flex:1 1 140px;min-width:0}
.drcn b{color:var(--ink);font-size:13px}
.drcos{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.cosit.sel{border-color:var(--adm,#4fd1c5);box-shadow:0 0 0 1px var(--adm,#4fd1c5)}
.dhlist{display:grid;gap:10px;margin-top:10px}
.dhrow{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.dhrow>div:first-child{display:grid;gap:2px}
.dhrow b{color:var(--ink)}
.dhp{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.dhp .meter i{background:linear-gradient(90deg,#7fe6db,var(--adm,#4fd1c5))}
/* le cadeau (aperçu et côté joueur) */
.giftbox{position:relative;border-radius:18px;padding:18px 16px 16px;background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,#4fd1c5 22%,var(--panel2)),var(--panel2));border:1px solid color-mix(in srgb,#4fd1c5 40%,var(--line));overflow:hidden;display:grid;gap:14px}
.gribbon{position:absolute;inset:0 auto 0 50%;width:18px;transform:translateX(-50%);background:linear-gradient(90deg,#c9a24e,#f4d98b,#c9a24e);opacity:.18;pointer-events:none}
.gtop{position:relative;display:grid;gap:4px;text-align:center}
.gtop .eyebrow{color:#4fd1c5}
.gtop b{font-family:var(--f-disp);font-size:20px;color:var(--ink);overflow-wrap:anywhere}
.gtop p{margin:0;color:var(--mute);font-size:14px;white-space:pre-wrap}
.gitems{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.gitems.big{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.gitem{display:grid;justify-items:center;gap:6px;padding:10px 6px;border-radius:12px;background:color-mix(in srgb,var(--panel) 88%,#000);border:1px solid var(--line);text-align:center;font-size:12px;font-weight:600;color:var(--ink);min-width:0}
.gitem span{overflow-wrap:anywhere}
.gart{height:64px;display:grid;place-items:center}
.gart .pack.mini{width:40px}
.gart .case.mini{--w:64px}
.gitem.card .gart{height:auto}
.gcard{width:80px}
.gitems.big .gcard{width:100px}
.coin.xl,.gem.xl,.dust.xl{width:34px;height:34px}
.dust.xl{width:28px;height:28px}
.gem.xl{width:30px;height:30px}
.giftmodal{width:min(620px,100%);display:grid;gap:14px}
.tbar.gift{border-color:#4fd1c5;background:color-mix(in srgb,#4fd1c5 12%,var(--panel))}
input[type=search]{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--ink);padding:8px 10px;font:inherit;min-width:0}
input[type=search]:focus{outline:2px solid color-mix(in srgb,var(--adm,#4fd1c5) 60%,transparent);outline-offset:1px}
@media (max-width:700px){input[type=search]{font-size:16px}}
/* ===== Outils de l'équipe sur les cartes (1.9) ===== */
.adminbox{display:grid;gap:8px;margin-top:14px;padding:12px;border-radius:12px;border:1px dashed var(--adm,#4fd1c5);background:color-mix(in srgb,var(--adm,#4fd1c5) 6%,transparent)}
.adminbox .eyebrow{color:var(--adm,#4fd1c5)}
.adminbox .line{display:flex;gap:8px;flex-wrap:wrap}
.invmodal{width:min(1040px,100%);max-height:calc(100dvh - 32px);overflow:auto;display:grid;gap:14px;align-content:start;text-align:left;position:relative}
.invhead{display:flex;align-items:center;gap:12px;padding-right:80px}
.invkpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.invkpis>div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.invkpis span{font-size:12px;color:var(--mute)}.invkpis b{font-size:18px;color:var(--ink)}.invkpis i.coin{transform:scale(.8)}
.invbar{display:flex;gap:8px;flex-wrap:wrap}.invbar input{flex:1 1 220px;width:auto;min-width:0}.invbar select{flex:0 1 auto;width:auto;max-width:100%}
.invgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}
.invit{position:relative;display:grid;gap:6px;align-content:start;padding:8px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);color:inherit;font:inherit;text-align:left;min-width:0}
button.invit{cursor:pointer}button.invit:hover{border-color:var(--brass-d)}
.invit.on{border-color:var(--bad,#ef4f6b);box-shadow:0 0 0 1px var(--bad,#ef4f6b);background:color-mix(in srgb,var(--bad,#ef4f6b) 10%,var(--panel2))}
.invl{display:grid;gap:1px;min-width:0}.invl b{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.invck{position:absolute;top:6px;right:6px;z-index:6;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:2px solid rgba(255,255,255,.55);background:rgba(10,6,14,.7);color:#fff;font-weight:800;font-size:14px}
.invit.on .invck{background:var(--bad,#ef4f6b);border-color:var(--bad,#ef4f6b)}
.invdel{position:sticky;bottom:-24px;z-index:8;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 -24px -24px;padding:12px 24px;background:color-mix(in srgb,var(--bad,#ef4f6b) 14%,var(--panel));border-top:1px solid var(--bad,#ef4f6b)}
.invdel input{flex:1 1 220px;min-width:0}
@media (max-width:640px){.invkpis{grid-template-columns:repeat(2,minmax(0,1fr))}.invgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.invhead{padding-right:70px}}
/* =====================================================================
   1.7 · préproduction : on ne la confond jamais avec le vrai jeu
   ===================================================================== */
html.preprod #app > header{box-shadow:inset 0 3px 0 #f2a65a}
.tbar.pre{border-color:#f2a65a;color:var(--ink);background:repeating-linear-gradient(135deg,color-mix(in srgb,#f2a65a 16%,var(--panel)) 0 14px,color-mix(in srgb,#f2a65a 9%,var(--panel)) 14px 28px)}
.tbar.pre b{background:#f2a65a;color:#2a1405;border-radius:6px;padding:2px 8px;margin-right:8px;letter-spacing:.08em;font-size:12px}
.fbbtn{position:fixed;right:16px;bottom:16px;z-index:45;display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:999px;border:1px solid #f2a65a;background:color-mix(in srgb,#f2a65a 22%,var(--panel));color:var(--ink);font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.fbbtn:hover{background:color-mix(in srgb,#f2a65a 35%,var(--panel))}
@media (max-width:900px){.fbbtn{bottom:calc(76px + env(safe-area-inset-bottom));right:10px;padding:8px 12px}}
.fblist{display:grid;gap:10px}
.fbit{display:grid;gap:8px;padding:14px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.fbit.st-open{border-left:3px solid var(--brass)}
.fbit.st-done{opacity:.75}
.fbit.st-wontfix{opacity:.55}
.fbh{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fbst{margin-left:auto;font-size:12px;font-weight:700}
.fbb{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.fbnote{margin:0;color:var(--brass)}
.fbua{margin:0;font-size:11px;overflow-wrap:anywhere}
.fba{display:flex;gap:8px;flex-wrap:wrap}
.fba input{flex:1 1 200px}
/* ===== Quêtes ===== */
.form2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.form2{grid-template-columns:minmax(0,1fr)}}
.qpanel .head{align-items:center}
.qtabs{display:flex;gap:6px;flex-wrap:wrap}
.qtabs .chip{display:inline-flex;align-items:center;gap:4px}
.qtabs .tcnt{margin-left:2px}
.qlist{display:grid;gap:8px;margin-top:12px}
.qrow,.qbonus{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);transition:border-color .3s,background .3s}
.qic{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(228,181,92,.08);border:1px solid rgba(228,181,92,.22);color:var(--brass);font-size:17px;line-height:1}
.qmain{display:grid;gap:3px;min-width:0}
.qmain b{font-size:14px;color:var(--ink);overflow-wrap:anywhere}
.qmain .small{overflow-wrap:anywhere}
.qbar{position:relative;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:4px}
.qbar i{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--brass-d),var(--brass));transition:width .6s cubic-bezier(.2,.8,.2,1)}
.qside{display:grid;justify-items:end;gap:5px;text-align:right}
.qrw{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 10px;font-size:12px;font-weight:700;color:var(--ink)}
.qrw span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.qrw i{transform:scale(.85)}
.qok{font-size:12px;font-weight:700;color:var(--ok)}
.qrow.done:not(.claimed){border-color:var(--brass-d);background:linear-gradient(135deg,rgba(228,181,92,.12),transparent 60%),var(--panel2);animation:qglow 2.4s ease-in-out infinite}
.qrow.done:not(.claimed) .qic{background:var(--brass);color:#1a1206;border-color:var(--brass)}
.qrow.claimed{opacity:.62}
.qrow.claimed .qbar i{background:var(--ok)}
.qbonus{margin-top:10px;border-style:dashed}
.qbonus .qic{color:#7fd1c7;background:rgba(127,209,199,.08);border-color:rgba(127,209,199,.3)}
.qbonus.on:not(.claimed){border-style:solid;border-color:#7fd1c7;background:linear-gradient(135deg,rgba(127,209,199,.14),transparent 60%),var(--panel2)}
.qbonus.claimed{opacity:.62}
.qother{margin-top:10px;font-size:13px}
@keyframes qglow{0%,100%{box-shadow:0 0 0 0 rgba(228,181,92,0)}50%{box-shadow:0 0 18px -4px rgba(228,181,92,.45)}}
@media (prefers-reduced-motion:reduce){.qrow.done:not(.claimed){animation:none}.qbar i{transition:none}}
@media (max-width:560px){
  .qrow,.qbonus{grid-template-columns:30px minmax(0,1fr);row-gap:8px}
  .qic{width:30px;height:30px;font-size:15px}
  .qside{grid-column:1 / -1;grid-template-columns:auto 1fr auto;align-items:center;justify-items:start;text-align:left}
  .qside .qrw{justify-content:flex-start}
  .qside .btn,.qside .qok{justify-self:end}
}
/* Studio */
.qdefs{display:grid;gap:8px;margin-top:12px}
.qdef{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"ic main tags" "ic main rw";gap:4px 10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:inherit;text-align:left;cursor:pointer;font:inherit}
.qdef:hover{border-color:var(--brass-d)}
.qdef.sel{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass)}
.qdef.off{opacity:.55}
.qdef .qic{grid-area:ic}.qdef .qmain{grid-area:main}.qdef .qtags{grid-area:tags;display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.qdef .qrw{grid-area:rw}
.bdg.live{color:#7fd1c7;border-color:rgba(127,209,199,.5)}
.qeopts{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:end}
.qbd{border-top:1px solid var(--line);padding-top:10px}
.qbd summary{cursor:pointer;list-style:none;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.qbd summary::-webkit-details-marker{display:none}
.qbd summary::before{content:"▸";color:var(--brass);transition:transform .2s}
.qbd[open] summary::before{transform:rotate(90deg)}
@media (max-width:560px){.qdef{grid-template-columns:30px minmax(0,1fr);grid-template-areas:"ic main" "tags tags" "rw rw"}.qdef .qtags,.qdef .qrw{justify-content:flex-start}}
/* panneau repliable */
.qtog{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;text-align:left}
.qtog h3{margin:0}
.qchev{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;border:1px solid var(--line);background:var(--panel2);color:var(--brass);font-size:11px;transform:rotate(90deg);transition:transform .2s}
.qtog:hover .qchev,.qtog:focus-visible .qchev{border-color:var(--brass-d)}
.qpanel.folded .qchev{transform:none}
.qsum{display:inline-flex;align-items:center;gap:12px;background:none;border:0;padding:0;color:var(--mute);font:inherit;font-size:13px;cursor:pointer}
.qsum b{color:var(--ink);margin-left:3px}
.qsum .tcnt{margin-left:0}
.qbody.qin{animation:qopen .25s ease-out}
@keyframes qopen{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.qbody.qin{animation:none}.qchev{transition:none}}
/* ===== Amis (Communauté) ===== */
.frwrap{display:grid;gap:16px}
.frsearch{position:relative}
.frsearch input{width:100%}
.frsugbox{display:grid;gap:6px;margin-top:6px}
.frsugbox:empty{display:none}
.frsug{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.frgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:12px}
.frcard{display:grid;gap:8px;padding:12px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.frcard.on{border-color:rgba(108,214,145,.45)}
.frtop{min-width:0}
.fracts{display:flex;gap:6px;flex-wrap:wrap}
.frdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5c5266;margin-right:6px;vertical-align:1px;flex:none}
.frdot.on{background:var(--ok,#6cd691);box-shadow:0 0 0 3px rgba(108,214,145,.18)}
.fron{color:var(--ok,#6cd691)}
.frreq{border-color:var(--brass-d)}
.frmini .frmlist{display:grid;gap:4px;margin-top:10px}
.frmrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:4px 6px;border-radius:10px}
.frmrow:hover{background:var(--panel2)}
.frmrow .who2{min-width:0;overflow:hidden}
.iconbtn{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);cursor:pointer;font-size:14px;line-height:1}
.iconbtn:hover{border-color:var(--brass-d);color:var(--brass)}
.iconbtn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
.cside .frmini{margin-bottom:16px}
@media (max-width:560px){.frgrid{grid-template-columns:minmax(0,1fr)}}
/* ===== Défilement : colonnes qui suivent, sous l'en-tête ===== */
:root{--hdr:0px}
.cside,.admnav,.drside{top:calc(var(--hdr) + 12px)}
.pv{top:calc(var(--hdr) + 12px)}
@media (min-width:901px){
  /* Communauté : la colonne de droite suit le défilement et tient dans l'écran */
  .cside{max-height:calc(100vh - var(--hdr) - 24px);max-height:calc(100dvh - var(--hdr) - 24px);display:flex;flex-direction:column;gap:16px}
  html.preprod .cside{max-height:calc(100vh - var(--hdr) - 76px);max-height:calc(100dvh - var(--hdr) - 76px)}
  .cside>*{flex:none}
  .cside .frmini{margin-bottom:0}
  .cside .frmini .frmlist{max-height:176px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .cside>.tkpanel{flex:1 1 auto;min-height:220px;display:flex;flex-direction:column;gap:12px}
  .cside>.tkpanel>*{flex:none}
  .cside>.tkpanel>.tklist{flex:1 1 auto;min-height:60px;max-height:none;overscroll-behavior:contain;scrollbar-width:thin}
  .cside>.tkpanel>.tkmsgs{flex:1 1 auto;min-height:140px;height:auto}
  /* Admin : le menu suit aussi, et défile s'il est plus haut que l'écran */
  .admnav{max-height:calc(100dvh - var(--hdr) - 24px);overflow:auto;scrollbar-width:thin}
}
/* Fil : fin de page plutôt que défilement sans fin */
.feedmore{justify-self:start;margin-top:14px;width:min(780px,100%)}
.feedend{display:grid;justify-items:center;gap:6px;text-align:center;margin-top:16px;padding:22px 16px;border-radius:16px;border:1px dashed var(--line);max-width:780px}
.feedend b{color:var(--ink)}
.feedend .btnrow{margin-top:6px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.feedend.pause{border-style:solid;border-color:var(--brass-d);background:linear-gradient(180deg,rgba(228,181,92,.07),transparent)}
.feic{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--panel2);border:1px solid var(--line);color:var(--brass);font-size:18px}
@media (min-width:901px){
  /* fil ouvert : la conversation occupe toute la hauteur disponible */
  .cside:has(>.tkthread){height:calc(100vh - var(--hdr) - 24px);height:calc(100dvh - var(--hdr) - 24px)}
  html.preprod .cside:has(>.tkthread){height:calc(100vh - var(--hdr) - 76px);height:calc(100dvh - var(--hdr) - 76px)}
  .cside>.tkthread{min-height:0}
}
/* Notifications : elles ne bloquent jamais un bouton (les touchers passent au travers) */
.toasts{pointer-events:none}
.toast{pointer-events:none}
/* Téléphone : pendant une fenêtre plein écran (ouverture de booster, caisse, cadeau…),
   les notifications montent en haut de l'écran pour libérer les boutons du bas */
@media (max-width:900px){
  body:has(#ov > .ov) .toasts{top:calc(env(safe-area-inset-top,0px) + 10px);bottom:auto}
  body:has(#ov > .ov) .toast{opacity:.94;font-size:13px;padding:8px 12px}
}
