/* WikiTycoon (anciennement Pompe & Dompe). Une app : menu latéral (barre du bas sur téléphone), barre du haut, pages.
   Un seul thème sombre par choix : tapis de casino la nuit. */
/* la pièce WC : un seul caractère (U+E000), en couleur ; tous les montants du jeu commencent par elle (COIN dans app.js) */
@font-face{font-family:"WikiCoin";src:url("fonts/wikicoin.otf?v=3") format("opentype");unicode-range:U+E000;font-display:block}
:root{
  --bg:#1A0D12; --panel:#241218; --panel2:#2D1720; --line:#45242F; --fg:#F6EBDD; --mute:#B89D95;
  --gold:#E9B949; --up:#46D89A; --down:#FF5468; --blue:#5BA8FF; --violet:#B57BFF;
  --display:"WikiCoin", "Bungee", "Arial Black", Impact, sans-serif;
  --body:"WikiCoin", "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;
  --num:"WikiCoin", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  --side:252px;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg);color:var(--fg);margin:0}
body{font-family:var(--body);font-size:15px;line-height:1.45;
  background-image:radial-gradient(circle at 50% 50%, rgba(233,185,73,.05) 1.5px, transparent 2px), radial-gradient(circle at 0 0, rgba(255,84,104,.035) 1.5px, transparent 2px);
  background-size:28px 28px, 28px 28px; background-position:0 0, 14px 14px; background-attachment:fixed}
a{color:inherit}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic.lg{width:28px;height:28px}
.muted{color:var(--mute)}
.up{color:var(--up)} .down{color:var(--down)} .gold{color:var(--gold)}

/* ---------- coquille ---------- */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:22px 14px 16px;border-right:1px solid var(--line);background:rgba(20,10,14,.82);backdrop-filter:blur(6px);z-index:30}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:19px;line-height:1;color:var(--gold);text-decoration:none;padding:0 6px;letter-spacing:.01em}
.brand-logo{flex:none;border-radius:9px;box-shadow:0 3px 10px rgba(0,0,0,.45)}
.brand-w{font-weight:400;min-width:0}
.brand span{color:var(--fg)}
.brand small{display:block;font-family:var(--body);font-size:11px;color:var(--mute);letter-spacing:.16em;text-transform:uppercase;margin-top:8px}
.brand.big{font-size:clamp(24px,5vw,32px);padding:0;justify-content:center}
.nav{display:grid;gap:4px}
.nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:var(--mute);text-decoration:none;font-weight:600;font-size:15px;transition:background .15s,color .15s}
.nav a:hover{background:rgba(246,235,221,.04);color:var(--fg)}
.nav a[aria-current="page"]{background:rgba(233,185,73,.1);color:var(--fg)}
.nav a[aria-current="page"]::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--gold)}
.nav a[aria-current="page"] .ic{color:var(--gold)}
.nav a:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.nav .short{display:none}
.nav .long{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{margin-left:auto;font-style:normal;font-family:var(--num);font-size:9px;font-weight:700;letter-spacing:.06em;padding:2px 6px;flex:none;border-radius:999px;border:1px solid var(--line);color:var(--mute);background:var(--panel2);white-space:nowrap}
.badge:empty{display:none}
.badge.live{color:var(--up);border-color:rgba(70,216,154,.45)}
.badge.rug{color:var(--down);border-color:rgba(255,84,104,.5)}
.badge.hot{color:var(--gold);border-color:rgba(233,185,73,.5)}
.side-foot{margin-top:auto;display:grid;gap:10px}
.who{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--panel);text-decoration:none;min-width:0}
.who:hover{border-color:rgba(233,185,73,.5)}
.who-txt{display:grid;min-width:0}
.who-txt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who-txt small{color:var(--mute);font-size:12px}
.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;flex:none;font-family:var(--display);font-size:16px;color:#2A1700;background:var(--gold)}
.avatar.xl{width:64px;height:64px;font-size:28px}
.net{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--mute);padding:0 10px}
.net .dot{width:7px;height:7px;border-radius:50%;background:var(--mute)}
.net.on .dot{background:var(--up);box-shadow:0 0 0 3px rgba(70,216,154,.15)}

.content{min-width:0;padding:18px clamp(16px,2.4vw,32px) 40px;padding-left:max(clamp(16px,2.4vw,32px),env(safe-area-inset-left,0px));padding-right:max(clamp(16px,2.4vw,32px),env(safe-area-inset-right,0px));display:grid;gap:18px;align-content:start;max-width:1480px;width:100%}
.topbar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between}
.tb-title{display:flex;align-items:center;gap:12px;min-width:0}
.tb-title h1{margin:0;font-family:var(--display);font-size:clamp(22px,3vw,30px);line-height:1.05;color:var(--fg);font-weight:400}
.tb-title p{margin:4px 0 0;color:var(--mute);font-size:14px}
.brand-m{display:none;text-decoration:none;line-height:0}
.brand-m img{display:block;border-radius:10px}
.tb-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pill{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 13px;font-size:13px;color:var(--mute);white-space:nowrap}
.pill b{font-family:var(--num);color:var(--fg);font-weight:700;margin-left:4px}
button.pill{cursor:pointer}
button.pill.ready{border-color:var(--gold);color:var(--gold);background:rgba(233,185,73,.12);animation:glow 1.6s ease-in-out infinite}
button.pill.ready b{color:var(--gold)}
@keyframes glow{50%{box-shadow:0 0 0 4px rgba(233,185,73,.12)}}
.pill.wallet b{color:var(--gold)}
.iconbtn{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:50%;color:var(--mute)}
.iconbtn:hover{color:var(--fg)}
main{display:grid;min-width:0}
.page{display:grid;gap:16px;min-width:0;align-content:start}

@media (max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:fixed;inset:auto 0 0 0;height:auto;flex-direction:row;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));border-right:0;border-top:1px solid var(--line);background:rgba(28,14,19,.96)}
  .brand,.side-foot{display:none}
  .nav{display:flex;width:100%;gap:2px}
  .nav a{flex:1 1 0;min-width:0;flex-direction:column;gap:3px;padding:7px 2px;font-size:11px;font-weight:600;border-radius:10px}
  .nav a[aria-current="page"]::before{left:25%;right:25%;top:-7px;bottom:auto;width:auto;height:3px;border-radius:0 0 3px 3px}
  .nav .long{display:none} .nav .short{display:block}
  .badge{position:absolute;top:3px;right:calc(50% - 18px);margin:0;width:9px;height:9px;padding:0;font-size:0;border-radius:50%;border:0;background:var(--mute)}
  .badge.live{background:var(--up)} .badge.rug{background:var(--down)} .badge.hot{background:var(--gold)}
  .content{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))}
  .brand-m{display:block}
}
@media (max-width:560px){
  .tb-title p{display:none}
  .pill.wallet{display:none}
  .topbar{gap:10px}
}

/* ---------- briques ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;gap:12px;min-width:0;align-content:start}
.p-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-width:0}
.p-head.sub{margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}
.p-head h2,.k-lbl{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.p-head .muted{font-size:12px;font-family:var(--num)}
.h-lg{margin:0;font-family:var(--display);font-size:clamp(20px,3vw,26px);font-weight:400;color:var(--gold);line-height:1.1}
.k-val{font-family:var(--num);font-weight:700;font-size:clamp(22px,2.6vw,30px);line-height:1.1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.k-val.sm{font-size:clamp(18px,2vw,22px)}
.k-sub{font-size:13px;color:var(--mute)}
.k-sub b{font-family:var(--num);color:var(--fg)}
.prog{height:8px;border-radius:4px;background:var(--panel2);border:1px solid var(--line);overflow:hidden}
.prog span{display:block;height:100%;background:linear-gradient(90deg,#B98A2A,var(--gold));width:0;transition:width .4s}
.list{display:grid;gap:3px;font-variant-numeric:tabular-nums}
.li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:7px 9px;border-radius:9px;font-size:14px;text-align:left;width:100%;background:transparent;border:0;color:var(--fg);text-decoration:none}
.li:nth-child(odd){background:rgba(255,255,255,.025)}
.li.me{background:rgba(233,185,73,.1)}
a.li,button.li{cursor:pointer;border:1px solid transparent}
a.li:hover,button.li:hover{border-color:var(--line)}
button.li.sel{border-color:var(--gold)}
.li.dead{opacity:.55}
.li .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.li .n small{color:var(--mute);margin-left:6px;font-size:11px}
.li .a{font-family:var(--num);font-size:13px;color:var(--mute);text-align:right}
.li .b{font-family:var(--num);font-size:13px;font-weight:700;text-align:right;min-width:7ch}
.li .spk{width:56px;height:18px}
.li.w4{grid-template-columns:minmax(0,1fr) auto auto auto}
.empty{color:var(--mute);font-size:13px;padding:4px 2px}
.more{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--gold);text-decoration:none;justify-self:start}
.more .ic{width:16px;height:16px;transition:transform .15s}
.more:hover .ic{transform:translateX(3px)}
.note{font-size:12px;color:var(--mute);margin:0}
.row{display:flex;gap:8px;flex-wrap:wrap}

button,select{font:inherit;cursor:pointer;color:var(--fg);background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:11px 8px}
button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
button:disabled{opacity:.38;cursor:not-allowed}
.go{background:var(--gold);border-color:var(--gold);color:#2A1700;font-weight:700;padding:11px 16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.go:not(:disabled):hover{background:#F2C85E}
.go.sm{padding:7px 12px;font-size:13px;justify-self:start}
.go.big{padding:14px 22px;font-size:16px}
.go.link{padding:8px 14px;font-size:13px;border-radius:10px}
.go .ic{width:16px;height:16px}
input[type=text]{flex:1 1 160px;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;padding:10px 12px;border-radius:10px}
input[type=text]:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.tkin{flex:0 1 110px!important;text-transform:uppercase}

/* ---------- tableau de bord ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpi{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:grid;gap:7px;align-content:start;min-width:0}
.kpi{padding-bottom:30px}
.kpi .spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:26px;opacity:.55;pointer-events:none}
.kpi > *:not(.spark){position:relative}
@media (max-width:1180px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.kpis{gap:10px}.kpi{padding:12px 12px 26px}.kpi .k-sub{font-size:12px}}
@media (max-width:340px){.kpis{grid-template-columns:minmax(0,1fr)}}
.dash-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px}
.dash-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:1180px){.dash-3{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-3>:last-child{grid-column:1/-1}}
@media (max-width:980px){.dash-row{grid-template-columns:minmax(0,1fr)}}
@media (max-width:700px){.dash-3{grid-template-columns:minmax(0,1fr)}}
.live-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.live-top .tk{font-family:var(--display);font-size:clamp(24px,3.4vw,34px);line-height:1;overflow-wrap:anywhere}
.live-top .nm{color:var(--mute);font-size:14px;margin-top:4px}
.live-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}
.chartwrap.mini canvas{aspect-ratio:16/6}
.activity{display:grid;gap:8px;font-size:13px}
.activity div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:baseline}
.activity time{font-family:var(--num);font-size:11px;color:var(--mute);min-width:5.5ch}
.lockbox{display:grid;gap:10px;justify-items:start;padding:12px;border:1px dashed var(--line);border-radius:12px;color:var(--mute)}
.lockbox p{margin:0;font-size:13px}
.lockbox .prog{width:100%}
.colsum{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bestcard{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-height:62px;font-size:13px;min-width:0}
.bestcard .face{--tc:#C9B8A8;flex:none;display:grid;place-items:center;width:40px;height:52px;border-radius:8px;border:2px solid var(--tc);color:var(--tc);font-family:var(--display);font-size:18px;background:color-mix(in srgb,var(--tc) 18%,transparent)}
.bestcard .t-R{--tc:var(--blue)}.bestcard .t-E{--tc:var(--violet)}.bestcard .t-L{--tc:var(--gold)}
.bestcard b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bestcard > div:last-child{min-width:0}

/* ---------- terminal ---------- */
.coinbar{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.coin-chip{display:grid;grid-template-columns:auto auto;gap:2px 12px;align-items:center;flex:none;min-width:150px;text-align:left;padding:9px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.coin-chip b{font-family:var(--display);font-weight:400;font-size:15px}
.coin-chip .m{font-family:var(--num);font-weight:700;font-size:14px;text-align:right}
.coin-chip small{grid-column:1/-1;color:var(--mute);font-size:11px;white-space:nowrap}
.coin-chip[aria-pressed="true"]{border-color:var(--gold);background:rgba(233,185,73,.08)}
.coin-chip.dead{opacity:.55}
.coin-chip.add{display:flex;align-items:center;justify-content:center;min-width:120px;border-style:dashed;color:var(--gold);font-weight:700}
.coinbar .empty{padding:10px 4px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:1100px){.grid{grid-template-columns:minmax(0,1fr)}}
.main{display:grid;gap:12px;min-width:0}
aside{display:grid;gap:16px;min-width:0}
.term{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:14px;min-width:0}
.tok{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end;justify-content:space-between}
.tok .tk{font-family:var(--display);font-size:clamp(26px,5vw,40px);line-height:1;overflow-wrap:anywhere}
.tok .nm{color:var(--mute);font-size:14px}
.tok .nm b{color:var(--fg);font-weight:600}
.phase{font-family:var(--num);font-size:12px;font-weight:700;letter-spacing:.1em;padding:6px 10px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);white-space:nowrap;color:var(--mute)}
.phase.live{color:var(--up);border-color:rgba(70,216,154,.4)}
.phase.rug{color:var(--down);border-color:rgba(255,84,104,.5)}
.phase.grad{color:var(--gold);border-color:rgba(233,185,73,.5)}
.price-row{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-end}
.mult{font-family:var(--num);font-weight:700;font-size:clamp(44px,9vw,76px);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mult.sm{font-size:clamp(34px,5vw,52px)}
.mult.up{color:var(--up)} .mult.down{color:var(--down)}
.pnl{display:grid;gap:3px;min-width:160px;padding:8px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.pnl .lbl{font-size:12px;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
.pnl .v{font-family:var(--num);font-weight:700;font-size:clamp(28px,5vw,40px);line-height:1.05;font-variant-numeric:tabular-nums}
.pnl .s{font-size:13px;color:var(--mute)}
.pnl .s b{font-family:var(--num);font-weight:700}
.risk{display:grid;gap:5px;min-width:180px;flex:1 1 200px;max-width:320px}
.risk .lbl{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--mute);letter-spacing:.08em;text-transform:uppercase}
.risk .lbl b{font-family:var(--num);color:var(--fg);text-align:right}
.risk .bar{height:8px;border-radius:4px;background:var(--panel2);overflow:hidden;border:1px solid var(--line)}
.risk .bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--down))}
.chartwrap{position:relative;border-radius:12px;overflow:hidden;background:#140A0E;border:1px solid var(--line)}
canvas{display:block;width:100%;aspect-ratio:16/8;max-width:100%}
.leaflet-container canvas{max-width:none;aspect-ratio:auto} /* la carte fixe elle-même la taille de ses canevas */
.stamp{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;text-align:center;padding:16px}
.stamp .big{font-family:var(--display);font-size:clamp(40px,10vw,96px);line-height:1}
.stamp .sub{font-size:14px;color:var(--mute);letter-spacing:.12em;text-transform:uppercase;margin-top:8px}
.stamp.rug .big{color:var(--down);transform:rotate(-8deg);border:6px solid var(--down);padding:6px 18px;border-radius:10px;animation:slam .35s ease-out}
.stamp.grad .big{color:var(--gold)}
.stamp.empty .big{font-size:clamp(22px,4vw,34px);color:var(--mute)}
@keyframes slam{from{transform:rotate(-8deg) scale(2.2);opacity:0}to{transform:rotate(-8deg) scale(1);opacity:1}}
/* Launchpad : le graphique remplit ce qui reste de l'écran sous les boutons (au lieu d'un 16:8 fixe qui les poussait hors de vue) */
#cv{aspect-ratio:auto;height:clamp(240px,calc(100vh - 540px),560px)}
@media (max-width:700px){#cv{height:auto;aspect-ratio:16/10}}
.term .trade .btns button{min-height:44px;font-size:16px}
.posline{font-size:14px;color:var(--mute);min-height:22px}
.posline b{font-family:var(--num);color:var(--fg)}
.trade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:560px){.trade{grid-template-columns:minmax(0,1fr)}}
.side{display:grid;gap:8px}
.side .h{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.btns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.btns.s3{grid-template-columns:repeat(3,minmax(0,1fr))}
.buy{font-family:var(--num);font-weight:700;background:rgba(70,216,154,.12);border-color:rgba(70,216,154,.45);color:var(--up)}
.buy:not(:disabled):hover{background:rgba(70,216,154,.22)}
.sell{font-family:var(--num);font-weight:700;background:rgba(255,84,104,.12);border-color:rgba(255,84,104,.45);color:var(--down)}
.sell:not(:disabled):hover{background:rgba(255,84,104,.22)}
.rugbtn{font-family:var(--display);font-size:14px;background:rgba(255,84,104,.16);border:2px dashed var(--down);color:var(--down);padding:12px}
.rugbtn.armed{background:var(--down);color:#2A0008;border-style:solid}
.hint{font-size:12px;color:var(--mute)}
@media (hover:none){.hint{display:none}}
kbd{font-family:var(--num);font-size:11px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:var(--panel2)}
.feed{display:grid;gap:3px;font-size:13px;max-height:220px;overflow:hidden}
.feed div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--mute)}
.feed b{color:var(--fg);font-weight:600}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:4px;counter-reset:s}
.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 10px;padding:7px 9px;border-radius:9px;font-size:14px;color:var(--mute);counter-increment:s}
.steps li::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);font-family:var(--num);font-size:11px}
.steps li b{color:var(--fg);font-weight:600}
.steps li span{font-size:12px}
.steps li.on{background:rgba(233,185,73,.1)}
.steps li.on::before{background:var(--gold);border-color:var(--gold);color:#2A1700}
.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:rgba(26,13,18,.72);backdrop-filter:blur(5px);border-radius:18px;z-index:5}
.card{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:22px;width:min(500px,100%);display:grid;gap:14px;max-height:100%;overflow:auto}
.card h1{font-family:var(--display);font-size:clamp(24px,4.6vw,34px);line-height:1.05;margin:0;color:var(--gold);text-wrap:balance;font-weight:400}
.res table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.res td{padding:6px 4px;border-bottom:1px solid var(--line)}
.res td:last-child{text-align:right;font-family:var(--num);font-weight:700}

/* ---------- cartes ---------- */
.packbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 28px}
@media (max-width:820px){.packbar{grid-template-columns:minmax(0,1fr)}}
.packbar h2{font-family:var(--display);font-size:clamp(22px,4vw,30px);margin:0;color:var(--gold);line-height:1;font-weight:400}
.packbar p{margin:6px 0 10px;color:var(--mute);font-size:14px;max-width:62ch}
.pb-act{display:grid;gap:10px;justify-items:stretch;min-width:240px}
.pb-stats{display:grid;gap:3px;font-size:13px;color:var(--mute)}
.pb-stats b{font-family:var(--num);color:var(--fg)}
.odds{display:flex;flex-wrap:wrap;gap:6px}
.odds span{font-family:var(--num);font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:var(--panel2)}
.odds .t-L{color:var(--gold)}.odds .t-E{color:var(--violet)}.odds .t-R{color:var(--blue)}
.reveal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;min-height:40px}
@media (max-width:760px){.reveal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.colhead{display:flex;flex-wrap:wrap;gap:12px 16px;justify-content:space-between;align-items:flex-end}
.colhead p{margin:4px 0 0;font-size:14px}
.colhead b{font-family:var(--num);color:var(--fg)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chips button{padding:6px 10px;font-size:13px;border-radius:999px;color:var(--mute)}
.chips button[aria-pressed="true"]{color:var(--fg);border-color:var(--gold);background:rgba(233,185,73,.1)}
select{padding:7px 10px;font-size:13px}
.tierbar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--panel2)}
.tierbar span{height:100%}
.collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cardx{--tc:#C9B8A8;position:relative;aspect-ratio:5/7;border-radius:14px;padding:10px;display:grid;grid-template-rows:auto 1fr auto;gap:6px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 28%,#241218),#1A0D12 70%);border:2px solid var(--tc);overflow:hidden;min-width:0}
.cardx.t-R{--tc:var(--blue)}.cardx.t-E{--tc:var(--violet)}.cardx.t-L{--tc:var(--gold)}
.cardx .top{display:flex;justify-content:space-between;font-family:var(--num);font-size:11px;color:var(--tc);font-weight:700;letter-spacing:.06em}
.cardx .face{display:grid;place-items:center;font-family:var(--display);font-size:clamp(34px,6vw,52px);color:var(--tc);opacity:.9;border-radius:10px;background:rgba(0,0,0,.18)}
.cardx .face{position:relative;overflow:hidden;min-height:0}
.cardx .face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.cardx .face .num{position:absolute;right:6px;bottom:4px;font-size:18px;color:var(--fg);text-shadow:0 1px 3px #000}
.pack-cats{margin-top:10px;flex-wrap:wrap}
.cardx .nm{font-weight:600;font-size:14px;line-height:1.15;overflow-wrap:anywhere}
.cardx .meta{font-size:11px;color:var(--mute)}
.cardx .val{display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between;align-items:center;font-family:var(--num);font-size:12px}
.cardx .val b{color:var(--fg)}
.cardx button{padding:4px 8px;font-size:11px;border-radius:7px}
.cardx button.armed{background:var(--down);border-color:var(--down);color:#2A0008;font-weight:700}
.cardx.holo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 45%,rgba(120,220,255,.22) 52%,transparent 65%);background-size:250% 250%;animation:holo 3.2s linear infinite;mix-blend-mode:screen}
@keyframes holo{from{background-position:120% 0}to{background-position:-120% 0}}
.reveal .cardx{animation:flipin .5s ease-out both}
@keyframes flipin{from{transform:rotateY(90deg) scale(.9);opacity:0}to{transform:none;opacity:1}}
.reveal .cardx.t-L,.reveal .cardx.t-E{box-shadow:0 0 0 3px color-mix(in srgb,var(--tc) 40%,transparent),0 0 28px color-mix(in srgb,var(--tc) 45%,transparent)}

/* ---------- classements ---------- */
.rankhero{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:700px){.rankhero{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rankhero > div{display:grid;gap:4px;min-width:0}
#rRank{color:var(--gold);font-size:clamp(28px,4vw,40px)}
.boards{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1100px){.boards{grid-template-columns:minmax(0,1fr)}}
.tablewrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}
.tbl th{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:9px 8px;border-bottom:1px solid rgba(69,36,47,.6);white-space:nowrap}
.tbl td.n{max-width:16ch;overflow:hidden;text-overflow:ellipsis}
.tbl .r{text-align:right}
.tbl td.r{font-family:var(--num);font-size:13px}
.tbl td.r.strong{font-weight:700;color:var(--fg)}
.tbl tr.me td{background:rgba(233,185,73,.1)}
.tbl tr.me td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.tbl .medal{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-family:var(--num);font-size:12px;font-weight:700;background:var(--panel2);border:1px solid var(--line)}
.tbl .m1{background:var(--gold);color:#2A1700;border-color:var(--gold)}
.tbl .m2{background:#C9C2BA;color:#2A1700;border-color:#C9C2BA}
.tbl .m3{background:#C7834D;color:#2A1700;border-color:#C7834D}
.tag{display:inline-block;font-family:var(--num);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}
.tag.p2{color:var(--gold);border-color:rgba(233,185,73,.5)}

/* ---------- profil public (/profile, /u/<pub>) ---------- */
.me-name{font-family:var(--display);font-size:24px;line-height:1.1;overflow-wrap:anywhere}
.pf{display:grid;gap:16px;min-width:0}
.pf-wait{justify-items:start}
.pf-wait p{margin:0;color:var(--mute)}
.pf-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 18px}
.pf-id{display:flex;gap:16px;align-items:center;min-width:0}
.pf-id .avatar.xl{width:76px;height:76px;font-size:32px}
.pf-who{display:grid;gap:4px;min-width:0}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.pf-chips:empty{display:none}
.pf-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:var(--fg);white-space:nowrap}
.pf-chip.acct{color:var(--up);border-color:rgba(70,216,154,.45)}
.pf-chip.guest{color:var(--mute)}
.pf-chip.lg,.pf-chip.tro{color:var(--gold);border-color:rgba(233,185,73,.45)}
.pf-chip.title{background:rgba(233,185,73,.08)}
.pf-acts{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:flex-end}
.pf-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--gold);text-decoration:none}
.pf-link .ic{width:16px;height:16px}
.pf-link:hover{text-decoration:underline;text-underline-offset:3px}
.pf-econ{grid-column:1/-1}
.pf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.pf-grid .pf-wide{grid-column:1/-1}
.pf-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 18px}
.pf-set{display:grid;grid-template-columns:minmax(0,1fr) minmax(50px,90px) auto 18px;gap:8px;align-items:center;font-size:13px;min-width:0}
.pf-set-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-set b{font-family:var(--num);font-size:12px;font-weight:700}
.pf-set.done .prog span{background:linear-gradient(90deg,#2C9C6B,var(--up))}
.pf-set.master b{color:var(--gold)}
.pf-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.pf-cards .empty{grid-column:1/-1}
.pf-kicks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pf-kicks .empty{grid-column:1/-1}
.pf-kick{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel2);min-width:0}
.pf-kick .k-art{aspect-ratio:16/10}
.pf-kick-t{display:grid;gap:2px;padding:8px 10px;font-size:12px;min-width:0}
.pf-kick-t b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-kick-t .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-kick-v{font-family:var(--num);font-weight:700;color:var(--fg)}
#pEstate .colsum{margin-bottom:6px}
@media (max-width:980px){.pf-grid{grid-template-columns:minmax(0,1fr)}.pf-head{grid-template-columns:minmax(0,1fr)}.pf-acts{justify-content:flex-start}}
@media (max-width:560px){.pf-id .avatar.xl{width:60px;height:60px;font-size:26px}.pf-sets{grid-template-columns:minmax(0,1fr)}.pf-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}
/* liens vers le profil d'un joueur (classements, marché, enchères, syndicats, ligues) */
a.plink{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(233,185,73,.55)}
a.plink:hover{color:var(--gold);border-bottom-color:var(--gold)}
.statgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.statgrid div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.statgrid span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.statgrid b{font-family:var(--num);font-size:17px;overflow-wrap:anywhere}

/* ---------- réglages ---------- */
.settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;max-width:1100px}
@media (max-width:900px){.settings{grid-template-columns:minmax(0,1fr)}}
.field{display:grid;gap:6px}
.field > span:first-child{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.sr-only,.field > span.sr-only:first-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.switch{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600}
.switch input{appearance:none;flex:none;width:40px;height:22px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);position:relative;cursor:pointer;margin:0;transition:background .15s}
.switch input::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--mute);transition:transform .15s,background .15s}
.switch input:checked{background:rgba(233,185,73,.3);border-color:var(--gold)}
.switch input:checked::after{transform:translateX(18px);background:var(--gold)}
.switch input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.switch small{font-weight:400}

/* ---------- aide : comment jouer ---------- */
.help{display:grid;gap:12px;max-width:1100px;min-width:0}
.help-cta{grid-template-columns:minmax(0,1fr) auto;align-items:center;border-color:rgba(233,185,73,.5)}
.help-cta > div{display:grid;gap:2px}
@media (max-width:560px){.help-cta{grid-template-columns:minmax(0,1fr)}}
.help-toc-l{display:flex;flex-wrap:wrap;gap:6px}
.help-toc-l a{font-size:13px;font-weight:600;color:var(--fg);text-decoration:none;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--panel2)}
.help-toc-l a:hover{border-color:var(--gold);color:var(--gold)}
details.help-sec{display:block;padding:0;scroll-margin-top:84px}
.help-sec summary{display:flex;align-items:baseline;gap:6px 12px;flex-wrap:wrap;padding:14px 18px;cursor:pointer;list-style:none}
.help-sec summary::-webkit-details-marker{display:none}
.help-sec summary::before{content:"▸";color:var(--gold);font-size:14px;transition:transform .15s;display:inline-block}
.help-sec[open] summary::before{transform:rotate(90deg)}
.help-sec summary h2{margin:0;font-family:var(--display);font-weight:400;font-size:18px;color:var(--fg)}
.help-sec summary .muted{font-size:13px}
.help-sec summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.help-bd{display:grid;gap:10px;padding:0 18px 16px;color:var(--mute);font-size:14px;min-width:0}
.help-bd p{margin:0}
.help-bd ul{margin:0;padding-left:18px;display:grid;gap:7px}
.help-bd b{color:var(--fg);font-weight:600}
.help-tbl td{white-space:normal;vertical-align:top;color:var(--fg);font-size:13px}
.help-tbl td:last-child{font-family:var(--num)}
.help-faq{margin:0;display:grid;gap:4px}
.help-faq dt{color:var(--fg);font-weight:600;margin-top:6px}
.help-faq dd{margin:0}
.intro-help{color:var(--gold);font-weight:600;white-space:nowrap}
@media (prefers-reduced-motion:reduce){.help-sec summary::before{transition:none}}
/* avant le pseudo (pages ouvertes : règles, profil partagé) : pas de portefeuille ni de paie dans la barre du haut */
body.pre-join .tb-right > :not(#muteBtn):not(#signInBtn){display:none!important}

/* ---------- accueil (intro) ---------- */
.intro{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:rgba(18,9,12,.86);backdrop-filter:blur(8px);overflow:auto}
.intro-card{width:min(600px,100%);gap:18px;padding:30px 28px 24px;position:relative;
  background:radial-gradient(120% 70% at 50% -10%,rgba(233,185,73,.16),transparent 60%),var(--panel2);box-shadow:0 30px 80px rgba(0,0,0,.55)}
.intro-hero{display:grid;justify-items:center;text-align:center;gap:10px}
.intro-logo{width:84px;height:84px;border-radius:20px;box-shadow:0 10px 30px rgba(233,185,73,.25),0 4px 12px rgba(0,0,0,.5);animation:introPop .6s cubic-bezier(.2,1.4,.4,1) both}
.intro-word{font-family:var(--display);font-size:clamp(28px,7vw,40px);line-height:1;color:var(--gold);letter-spacing:.02em}
.intro-word span{color:var(--fg)}
.intro-card .intro-tag{font-family:var(--body);font-weight:700;font-size:clamp(17px,4.2vw,21px);line-height:1.3;color:var(--fg);margin:2px 0 0;text-wrap:balance}
.intro-tag em{display:block;font-style:normal;color:var(--gold)}
.intro-lead{margin:0;color:var(--mute);font-size:14px;max-width:44ch;text-wrap:pretty}
.intro-games{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.intro-games li{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.22);border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--fg)}
.intro-games .ic{width:16px;height:16px;color:var(--gold)}
.intro-form{display:grid;gap:8px}
.intro-name{font-size:13px;font-weight:600;color:var(--mute)}
.intro-form input[type=text]{flex:none;width:100%;padding:13px 14px;font-size:16px;background:rgba(0,0,0,.28)}
.intro-play{width:100%;padding:14px 18px;font-size:16px}
.intro-note{text-align:center}
@keyframes introPop{from{transform:scale(.6) rotate(-8deg);opacity:0}}
@media (max-width:480px){.intro{padding:12px;place-items:start center}.intro-card{padding:22px 16px 18px;gap:14px}.intro-logo{width:68px;height:68px}}
@media (prefers-reduced-motion:reduce){.intro-logo{animation:none}}
body.theme-pixel .intro-logo{animation-timing-function:steps(4)}
body.theme-pixel .intro-word,body.theme-pixel .intro-games li,body.theme-pixel .intro-name{font-family:var(--pix)}
body.theme-pixel .intro-card{background:var(--panel2)}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--panel2);border:1px solid var(--gold);color:var(--fg);padding:10px 16px;border-radius:12px;z-index:60;max-width:calc(100% - 32px);text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.4)}
@media (max-width:900px){.toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.stamp.rug .big,.cardx.holo::after,.reveal .cardx,button.pill.ready{animation:none}}

/* ---------- navigation mobile : classements et profil passent dans la barre du haut ---------- */
.m-only{display:none!important}
@media (max-width:900px){
  .nav a.m-hide{display:none}
  .m-only{display:grid!important}
  a.avatar.m-only{width:34px;height:34px;font-size:14px;text-decoration:none}
}

/* ---------- patrimoine (tableau de bord) ---------- */
.dash-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.dash-3>:last-child{grid-column:auto}
.idxrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.idx{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);text-decoration:none;font-size:12px;color:var(--mute)}
.idx:hover{border-color:rgba(233,185,73,.5)}
.idx b{font-family:var(--num);font-size:13px;color:var(--fg)}
.idx .spk{grid-column:1/-1;width:100%;height:20px}
.row .more{margin-right:14px}

/* ---------- immobilier et art ---------- */
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1100px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi.sm{padding:12px 14px 22px;gap:4px}
.kpi.sm .spark{height:20px}
.toolbar input[type=search]{flex:1 1 220px;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;font-size:14px;padding:8px 12px;border-radius:10px}
.toolbar input[type=search]:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.estate{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
@media (max-width:1180px){.estate{grid-template-columns:minmax(0,1fr)}}
.map{position:relative;z-index:0;isolation:isolate;height:min(62vh,560px);min-height:320px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#0E0709}
.map .empty{position:absolute;inset:0;display:grid;place-items:center}
.leaflet-container{background:#0E0709;font-family:var(--body)}
.leaflet-control-attribution{background:rgba(20,10,14,.8)!important;color:var(--mute)!important;font-size:10px}
.leaflet-control-attribution a{color:var(--mute)!important}
.leaflet-bar a{background:var(--panel2)!important;color:var(--fg)!important;border-color:var(--line)!important}
.leaflet-tooltip{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:8px;font-family:var(--body);font-size:13px;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.leaflet-tooltip b{font-family:var(--num)}
.leaflet-tooltip-top::before{border-top-color:var(--line)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--mute)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.lg-free{background:var(--gold)} .lg-mine{background:var(--up)} .lg-other{background:var(--down)}
.detail{position:sticky;top:16px}
@media (max-width:1180px){.detail{position:static}}
.detail .ph{aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--panel2);border:1px solid var(--line);display:grid;place-items:center;color:var(--mute)}
.detail .ph img{width:100%;height:100%;object-fit:cover;display:block}
.detail h3{margin:0;font-family:var(--display);font-weight:400;font-size:22px;line-height:1.1;overflow-wrap:anywhere}
.detail .meta{color:var(--mute);font-size:13px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.facts div{display:grid;gap:1px;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.facts span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.facts b{font-family:var(--num);font-size:15px;overflow-wrap:anywhere}
.owner{font-size:13px;color:var(--mute);padding:8px 10px;border-radius:10px;border:1px dashed var(--line)}
.owner b{color:var(--fg)}
.owner.mine{border-color:rgba(70,216,154,.5);color:var(--up)}
.owner.other{border-color:rgba(255,84,104,.5)}
.actbtn{width:100%}
.actbtn.sell{font-family:var(--body)}
.actbtn.armed{background:var(--down);border-color:var(--down);color:#2A0008}
.wlink{font-size:13px;color:var(--gold);text-decoration:none;font-weight:600}
.wlink:hover{text-decoration:underline}
.tbl.hover tbody tr{cursor:pointer}
.tbl.hover tbody tr:hover td{background:rgba(255,255,255,.03)}
.tbl tr.sel td{background:rgba(233,185,73,.08)}
.tbl td .sub{display:block;font-size:11px;color:var(--mute)}
.panel.wide{grid-column:1/-1}
.more-btn{justify-self:center;padding:8px 18px;font-size:13px;color:var(--mute)}
.artgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.art{display:grid;grid-template-rows:auto 1fr;border-radius:14px;overflow:hidden;background:var(--panel2);border:1px solid var(--line);min-width:0}
.art.mine{border-color:rgba(70,216,154,.6)}
.art.other{border-color:rgba(255,84,104,.45)}
.art .ph{position:relative;aspect-ratio:4/3;background:#120A0D;overflow:hidden}
.art .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.art:hover .ph img{transform:scale(1.04)}
.art .ph .own{position:absolute;left:8px;top:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:rgba(20,10,14,.85);border:1px solid var(--line)}
.art.mine .own{color:var(--up)} .art.other .own{color:var(--down)}
.art .bd{display:grid;gap:6px;padding:10px 12px 12px;align-content:start}
.art .t{font-weight:700;font-size:15px;line-height:1.2;overflow-wrap:anywhere}
.art .by{font-size:12px;color:var(--mute)}
.art .pr{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-family:var(--num)}
.art .pr b{font-size:16px}
.art .pr span{font-size:12px}
.art button{padding:8px;font-size:13px;font-weight:700}
.art .lnk{font-size:12px;color:var(--mute);text-decoration:none}
.art .lnk:hover{color:var(--gold)}

/* ---------- scènes multiples ---------- */
.tk-wrap{display:flex;align-items:center;gap:12px;min-width:0}
.tk-logo{width:48px;height:48px;border-radius:50%;flex:none;background:var(--panel2);border:1px solid var(--line);object-fit:cover}
.live-top .tk-logo{width:40px;height:40px}
.chip-logo{width:18px;height:18px;border-radius:50%;vertical-align:-3px;margin-right:6px;object-fit:cover}
.scene-chip{min-width:170px}
.scene-chip.ph-live{border-color:rgba(70,216,154,.45)}
.scene-chip.ph-launch{border-color:rgba(233,185,73,.6)}
.scene-chip.ph-soon .m{color:var(--mute)}
.scene-chip[aria-pressed="true"]{border-color:var(--gold);background:rgba(233,185,73,.1)}
.stamp.soon .big{color:var(--gold);font-family:var(--num);font-weight:700}

/* ---------- bourse ---------- */
.slogo{display:inline-grid;place-items:center;width:30px;height:30px;flex:none;border-radius:8px;background:#F6EBDD;color:#2A1700;font-family:var(--num);font-weight:700;font-size:11px;overflow:hidden;padding:3px}
.slogo img{width:100%;height:100%;object-fit:contain;display:block}
.slogo.lg{width:56px;height:56px;border-radius:12px;padding:5px;font-size:16px}
.srow{display:flex;align-items:center;gap:10px;min-width:0}
.srow > div{min-width:0}
.srow b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:30ch}
.tbl td.n .srow .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34ch}
.shead{display:flex;align-items:center;gap:12px;min-width:0}
.shead > div{min-width:0}
.sprice{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-family:var(--num)}
.sprice b{font-size:clamp(26px,3vw,34px)}
.sbig{width:100%;height:90px;border-radius:10px;background:#140A0E;border:1px solid var(--line)}
@media (max-width:900px){.nav a{font-size:10px}}

/* ---------- menu groupé : Play / Invest / You ---------- */
.nav-h{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);opacity:.75;padding:12px 12px 4px;font-weight:700}
@media (max-width:900px){.nav-h{display:none}}
@media (max-height:760px) and (min-width:901px){.nav a{padding:8px 12px}.nav-h{padding:8px 12px 2px}}
/* menu latéral plus long (Profile, Settings, How to play) : plus serré sur les écrans bas, et il défile au besoin */
@media (max-height:980px) and (min-width:901px){.nav a{padding:6px 12px}.nav-h{padding:6px 12px 2px}.sidebar{gap:12px}}
@media (min-width:901px){.sidebar .nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}

/* ---------- Launchpad : logos, dev, alertes ---------- */
span.tk-logo{display:grid;place-items:center;font-size:26px;line-height:1;overflow:hidden;background:var(--panel2)}
span.tk-logo img{width:100%;height:100%;object-fit:cover}
.live-top span.tk-logo{font-size:22px}
span.chip-logo{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:12px;vertical-align:-4px;margin-right:6px;overflow:hidden}
span.chip-logo img{width:100%;height:100%;object-fit:cover}
.scene-chip.player{border-style:dashed}
.devpanel .dev-name{font-family:var(--display);font-size:20px;line-height:1.1;overflow-wrap:anywhere}
.devpanel .p-head .badge{margin-left:0;font-size:10px;padding:3px 8px}
.feed div.warn{color:var(--gold)!important;font-weight:600}
.risk .bar span.warn{background:var(--down);animation:pulse .8s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){.risk .bar span.warn{animation:none}}

/* ---------- Crypto ---------- */
.cx-logo{width:30px;height:30px;border-radius:50%;flex:none;object-fit:cover;background:var(--panel2)}
.cx-logo.lg{width:56px;height:56px}
.chips.lev button{font-family:var(--num);font-weight:700;min-width:56px}
.chips.lev button[aria-pressed="true"]{background:rgba(233,185,73,.16)}
.note.warnnote{color:var(--gold)}
.h-sm{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600;margin-top:4px}
.cxpos{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.cxpos-top{display:flex;justify-content:space-between;gap:8px;font-family:var(--num)}
.cxpos .muted{font-size:12px}
.cxpos button{padding:7px;font-size:13px}
.prog.liq span{background:linear-gradient(90deg,var(--up),var(--gold),var(--down))}

/* ---------- Casino ---------- */
.gametabs button{font-size:15px;padding:9px 16px;font-weight:700}
.chip-btn{font-family:var(--num);font-weight:700;padding:5px 9px!important;border-radius:999px!important;font-size:12px!important}
.chip-btn[aria-pressed="true"]{background:var(--gold)!important;color:#2A1700!important;border-color:var(--gold)!important}
.game{gap:16px}
.game-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.game-bar span{color:var(--mute);font-size:14px;margin-right:auto}
.game-bar b{font-family:var(--num);color:var(--fg)}
.game-bar button{min-width:96px}
.game-msg{margin:0;font-size:15px;color:var(--mute);min-height:22px}
.game-msg.up{color:var(--up);font-weight:600} .game-msg.down{color:var(--down)}
.paytable{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 16px;font-size:14px}
.pay-row{display:flex;justify-content:space-between;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.025)}
.pay-row b{font-family:var(--num)}
.pay-row.hit{background:rgba(233,185,73,.18);color:var(--gold)}
/* roulette */
.roul{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.roul{grid-template-columns:minmax(0,1fr)}}
.wheel-wrap{display:grid;gap:12px;justify-items:center}
.wheel{--c:#2D1720;width:180px;height:180px;border-radius:50%;display:grid;place-items:center;font-family:var(--num);font-weight:700;font-size:56px;color:#fff;
  background:radial-gradient(circle,var(--c) 0 46%,#2A1700 47% 50%,transparent 51%),repeating-conic-gradient(#B3263A 0 9.73deg,#1E1A1C 9.73deg 19.46deg);border:6px solid #B98A2A;box-shadow:0 0 0 3px #2A1700,0 10px 30px rgba(0,0,0,.4)}
.wheel[data-c="red"]{--c:#B3263A} .wheel[data-c="black"]{--c:#1E1A1C} .wheel[data-c="green"]{--c:#1E7F4E}
.wheel.spinning{animation:spinw .6s linear infinite}
@keyframes spinw{to{transform:rotate(360deg)}}
.wheel.spinning span{animation:spinw .6s linear infinite reverse}
@media (prefers-reduced-motion:reduce){.wheel.spinning,.wheel.spinning span{animation:none}}
.rl-hist{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;max-width:220px}
.rl-hist span{font-family:var(--num);font-size:12px;font-weight:700;min-width:26px;text-align:center;padding:3px 4px;border-radius:6px;color:#fff}
.rl-hist .red{background:#B3263A} .rl-hist .black{background:#1E1A1C} .rl-hist .green{background:#1E7F4E}
.rl-hist span{border:1px solid rgba(255,255,255,.12)}
.table-wrap{display:grid;gap:10px;min-width:0;overflow-x:auto}
.rl-table{display:grid;grid-template-columns:44px repeat(12,minmax(34px,1fr));grid-template-rows:repeat(3,42px);gap:3px;min-width:520px}
.rl-n,.rl-o{position:relative;padding:0;border-radius:6px;font-family:var(--num);font-weight:700;font-size:14px;color:#fff;border:1px solid rgba(255,255,255,.1)}
.rl-n.red,.rl-o.red{background:#B3263A} .rl-n.black,.rl-o.black{background:#1E1A1C} .rl-n.green{background:#1E7F4E}
.rl-n:hover,.rl-o:hover{outline:2px solid var(--gold);outline-offset:-2px}
.rl-out{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;min-width:520px}
.rl-o{height:40px;background:var(--panel2);font-family:var(--body);font-size:13px}
.rl-o:nth-child(n+7){grid-column:span 2}
.stake{position:absolute;right:-4px;top:-6px;font-style:normal;font-family:var(--num);font-size:10px;font-weight:700;background:var(--gold);color:#2A1700;border-radius:999px;padding:1px 5px;box-shadow:0 2px 6px rgba(0,0,0,.5);z-index:1}
/* machine à sous */
.slots{display:grid;gap:16px;justify-items:center}
.reels{display:flex;gap:12px;padding:16px;border-radius:18px;background:linear-gradient(#2A1700,#140A0E);border:4px solid #B98A2A;box-shadow:inset 0 0 30px rgba(0,0,0,.6)}
.reel{width:min(25vw,120px);height:min(32vw,140px);display:grid;place-items:center;font-size:min(16vw,68px);border-radius:12px;background:linear-gradient(#FFF8EC,#E8DCCB);box-shadow:inset 0 6px 14px rgba(0,0,0,.25)}
.reel.spinning{filter:blur(1.2px)}
.slots .game-bar,.slots .game-msg{justify-content:center;text-align:center}
.slots .game-bar span{margin-right:0}
.slots .paytable{width:100%;max-width:640px}
/* cartes à jouer */
.hand{display:flex;flex-wrap:wrap;gap:8px;min-height:104px}
.pcard{position:relative;width:70px;height:98px;border-radius:9px;background:#FFF8EC;color:#1E1A1C;display:grid;place-items:center;align-content:center;gap:0;box-shadow:0 4px 12px rgba(0,0,0,.35);cursor:default;user-select:none;animation:deal .25s ease-out}
.pcard b{font-family:var(--num);font-size:24px;line-height:1}
.pcard span{font-size:26px;line-height:1}
.pcard.red{color:#B3263A}
.pcard.back{background:repeating-linear-gradient(45deg,#B3263A 0 6px,#8E1D2E 6px 12px);border:3px solid #FFF8EC}
@keyframes deal{from{transform:translateY(-12px);opacity:0}}
@media (prefers-reduced-motion:reduce){.pcard{animation:none}}
.bj{display:grid;gap:14px}
.bj-row{display:grid;gap:8px}
.bj-lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.bj-lbl b{font-family:var(--num);color:var(--fg);font-size:15px;margin-left:6px;letter-spacing:0}
.vp{display:grid;gap:14px}
.vp-hand{justify-content:center}
.vp-hand .pcard{cursor:pointer;width:84px;height:118px}
.vp-hand .pcard.held{outline:3px solid var(--gold);transform:translateY(-6px)}
.pcard em{position:absolute;bottom:-22px;left:0;right:0;text-align:center;font-style:normal;font-family:var(--num);font-size:11px;font-weight:700;color:var(--gold)}
.vp .game-bar,.vp .game-msg{justify-content:center;text-align:center}
.vp .game-bar span{margin-right:0}
.vp .paytable{max-width:640px;justify-self:center;width:100%}
@media (max-width:560px){.pcard{width:54px;height:76px}.pcard b{font-size:18px}.pcard span{font-size:20px}.vp-hand .pcard{width:58px;height:82px}}
.slots,.vp,.bj{grid-template-columns:minmax(0,1fr)}

/* ---------- jauge Focus / Greed ---------- */
.greed{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);cursor:help}
.greed-lbl{font-family:var(--num);font-size:11px;font-weight:700;letter-spacing:.1em;min-width:6.5ch}
.greed-lbl.g0{color:var(--up)} .greed-lbl.g1{color:#9FD8B8} .greed-lbl.g2{color:var(--gold)} .greed-lbl.g3{color:var(--down)}
.greed-bar{position:relative;width:110px;height:8px;border-radius:4px;background:linear-gradient(90deg,#1E7F4E,#46D89A 25%,#E9B949 60%,#FF5468)}
.greed-bar i{position:absolute;top:50%;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--fg);border:3px solid var(--bg);box-shadow:0 0 0 1px var(--fg);transition:left .25s linear}
body.greedy .greed{border-color:var(--down);box-shadow:0 0 14px rgba(255,84,104,.35)}
@media (max-width:560px){.greed-bar{width:60px}.greed{padding:5px 8px}}

/* ---------- marché entre joueurs, charges, enchères ---------- */
.actwrap{display:grid;gap:6px}
.list-row{display:flex;gap:4px;align-items:center;min-width:0}
.list-row .cur-sym{font-family:var(--num);font-size:12px;color:var(--mute)}
.price-in{flex:1 1 auto;min-width:0;width:100%;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;font-family:var(--num);font-size:13px;padding:7px 8px;border-radius:8px}
.list-row .go{flex:none;padding:7px 12px;font-size:13px}
button.ghost{background:transparent;color:var(--mute)}
button.small,.actbtn.small{padding:6px 8px;font-size:12px}
.syn-box{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:12px;border:1px dashed rgba(91,168,255,.55);background:rgba(91,168,255,.05)}
.syn-h{font-weight:700;font-size:14px}
.syn-prog{display:flex;flex-direction:column;gap:4px}
.syn-prog-t{font-size:12.5px;color:var(--mute)}
.syn-form select{width:auto}
.syngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.syn-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel2)}
.syn-card .ph{aspect-ratio:16/9;cursor:pointer}
.syn-card .bd{display:flex;flex-direction:column;gap:8px;padding:12px}
.syn-card .t{font-weight:700}
.syn-card .by{font-size:12.5px;color:var(--mute)}
.syn-card.owned{border-color:rgba(70,216,154,.4)}
.syn-card.failed,.syn-card.closed{opacity:.75}
.syn-mem{display:flex;flex-wrap:wrap;gap:4px}
.syn-mem span{font-size:11.5px;padding:2px 7px;border-radius:999px;border:1px solid var(--line);color:var(--mute)}
.syn-mem span.me{border-color:rgba(70,216,154,.6);color:var(--up)}
.listed-box,.auction-box{font-size:13px;padding:8px 10px;border-radius:10px;border:1px dashed rgba(233,185,73,.6);color:var(--gold)}
.auction-box{border-color:rgba(181,123,255,.7);color:var(--violet)}
.charges-box{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;font-size:13px;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}
.charges-box b{font-family:var(--num)}
.charges-box .muted{font-size:12px}
.charges-box.warn{border-color:var(--gold)} .charges-box.danger{border-color:var(--down);animation:blink 1s steps(2) infinite}
.ch-txt{min-width:0}
.ch-txt .muted{font-size:12px;margin-top:2px}
.bills{gap:8px}
.bills.warn{border-color:var(--gold)}
.bills-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.bills-row b{font-family:var(--num);font-size:18px}
.bills-next{font-family:var(--num);font-size:12px;color:var(--mute)}
.bills-next.warn{color:var(--gold)} .bills-next.danger{color:var(--down);font-weight:700}
.advisor{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;font-size:13px;padding:8px 10px;border-radius:10px;border:1px dashed var(--line);color:var(--mute)}
.advisor.on{border-style:solid;border-color:rgba(70,216,154,.5);color:var(--up)}
.advisor button{padding:7px 12px;font-size:13px}
.bills-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;font-size:13px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel2)}
.bills-line.warn{border-color:var(--gold);color:var(--gold)} .bills-line.danger{border-color:var(--down);color:var(--down)}
.auc-list{display:grid;gap:6px}
.auc-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid rgba(181,123,255,.4);cursor:pointer;font-size:13px}
.auc-row > div{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.auc-time{font-family:var(--num);font-weight:700;color:var(--violet)}
.auc-row .actbtn{width:auto}
.lg-auction{background:var(--violet)}
.card-acts{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.card-acts button{padding:4px 7px;font-size:11px;border-radius:7px}
.card-acts .list-row{flex:1 1 100%}
.card-acts .price-in{padding:4px 6px;font-size:11px}
.card-acts .list-row .go{padding:4px 8px;font-size:11px}
.listed-tag{font-family:var(--num);font-size:11px;color:var(--gold);font-weight:700}
.collection.market{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.mk-card{display:grid;gap:6px}
.mk-foot{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:12px}
.mk-foot b{font-family:var(--num);font-size:14px}
.mk-card .actbtn,.mk-card button{width:100%}

/* ---------- outils d'administration (profil) ---------- */
.admin-btn{border-style:dashed!important;border-color:rgba(70,216,154,.6)!important;color:var(--up)!important;cursor:pointer}
.admin-btn b{color:var(--up)!important}
.devtools{border-top:1px solid var(--line);padding-top:10px}
.devtools summary{cursor:pointer;font-weight:600;color:var(--mute);font-size:13px}
.adm-reset{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(255,90,90,.35)}
.adm-reset button.danger{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--down);background:rgba(255,80,80,.1);color:var(--down);font-weight:700;cursor:pointer}
.adm-reset button.danger:hover{background:rgba(255,80,80,.18)}
.devtools[open]{display:grid;gap:10px}
.devtools input[type=text]{width:100%}

/* ---------- thème Pixel (léger) : police pixel pour l'habillage, blocs en relief, ombres dures, animations par étapes ----------
   Le texte courant et les chiffres gardent des polices nettes pour rester lisibles. */
body.theme-pixel{--pix:"WikiCoin","Pixelify Sans","Bungee",sans-serif;--display:"WikiCoin","Pixelify Sans","Bungee",sans-serif}
body.theme-pixel .p-head h2,body.theme-pixel .k-lbl,body.theme-pixel .h-lg,body.theme-pixel .tb-title h1,body.theme-pixel .brand,
body.theme-pixel .nav a,body.theme-pixel .nav-h,
body.theme-pixel button,body.theme-pixel .badge,body.theme-pixel .phase,
body.theme-pixel .side .h,body.theme-pixel .bj-lbl,body.theme-pixel .tbl th,body.theme-pixel .greed-lbl,body.theme-pixel .stamp .big,
body.theme-pixel .tok .tk,body.theme-pixel .live-top .tk,body.theme-pixel .dev-name,body.theme-pixel .me-name,body.theme-pixel .help-sec summary h2,body.theme-pixel .pf-chip,body.theme-pixel .help-toc-l a{font-family:var(--pix);letter-spacing:.02em}
body.theme-pixel .p-head h2,body.theme-pixel .k-lbl,body.theme-pixel .side .h,body.theme-pixel .nav-h{letter-spacing:.08em;font-weight:600}
body.theme-pixel .tb-title h1,body.theme-pixel .h-lg,body.theme-pixel .tok .tk,body.theme-pixel .live-top .tk{font-weight:700}
/* coins presque carrés, sauf ce qui doit rester rond */
body.theme-pixel *{border-radius:2px!important}
body.theme-pixel :is(.avatar,.wheel,.mini-wheel,.tk-logo,.chip-logo,.cx-logo,.greed-bar i,.net .dot,.legend i,.medal,.slogo,.leaflet-marker-icon,.tk-logo img){border-radius:50%!important}
body.theme-pixel .chip-btn{border-radius:50%!important;min-width:40px;height:40px;padding:0!important;display:inline-grid;place-items:center}
/* blocs en relief avec ombre dure */
body.theme-pixel :is(.panel,.kpi,.term,.card,.bestcard,.facts div,.statgrid div,.cxpos,.idx,.pf-kick){
  border:2px solid #0F070A;box-shadow:inset 2px 2px 0 rgba(255,255,255,.05),inset -2px -2px 0 rgba(0,0,0,.28),4px 4px 0 rgba(0,0,0,.45)}
body.theme-pixel :is(button,select,input[type=text],input[type=search]){border-width:2px;border-color:#0F070A;box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(255,255,255,.08)}
body.theme-pixel button:not(:disabled):active{transform:translate(2px,2px);box-shadow:inset 2px 2px 0 rgba(0,0,0,.4)}
body.theme-pixel .go{box-shadow:inset -2px -2px 0 #9C6F17,inset 2px 2px 0 #FFE29A,3px 3px 0 rgba(0,0,0,.45)}
body.theme-pixel .buy{box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(70,216,154,.3)}
body.theme-pixel .sell{box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(255,84,104,.3)}
body.theme-pixel .chartwrap,body.theme-pixel .map,body.theme-pixel .sbig{border:2px solid #0F070A}
body.theme-pixel .prog,body.theme-pixel .risk .bar{border:2px solid #0F070A;height:10px}
/* la barre garde sa couleur sous les rayures pixel (le dégradé de base est remplacé par les rayures) */
body.theme-pixel .prog span{background-color:var(--gold)}
body.theme-pixel .pf-set.done .prog span{background-color:var(--up)}
body.theme-pixel .prog span,body.theme-pixel .risk .bar span{background-image:repeating-linear-gradient(90deg,transparent 0 6px,rgba(0,0,0,.25) 6px 8px)}
/* bureau : tapis tramé, fenêtres en blocs */
/* tampons et alertes qui clignotent par étapes */
body.theme-pixel .stamp.rug .big{animation:slam .3s steps(3),blink 1s steps(2) .3s 3}
@keyframes blink{50%{opacity:.15}}
/* images Wikipédia pixelisées (légèrement) : agrandies sans lissage + palette réduite */
img.pixelated{image-rendering:pixelated;filter:url(#pxPoster) saturate(1.08) contrast(1.04)}
.art:hover img.pixelated{transform:none}
/* pluie de pièces pixel sur les gros gains */
.coinrain{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}
.coinrain i{position:absolute;top:-24px;width:14px;height:14px;background:var(--gold);box-shadow:inset -3px -3px 0 #B98A2A,inset 3px 3px 0 #FFE29A,0 0 0 2px #2A1700;animation:coinfall 1.4s steps(14) forwards}
@keyframes coinfall{to{transform:translateY(calc(100vh + 40px)) rotate(180deg)}}
@media (prefers-reduced-motion:reduce){body.theme-pixel .stamp.rug .big{animation:none}}


/* tenir pour valider : la barre se remplit sous le doigt */
.hold{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.hold::after{content:"";position:absolute;inset:0;background:currentColor;opacity:.28;transform-origin:left center;transform:scaleX(0);pointer-events:none}
.hold.holding::after{animation:holdfill var(--hold-ms,800ms) linear forwards;animation-delay:var(--hold-delay,0ms)}
.hold.hint{animation:holdhint .45s ease}
.hold.hint::before{content:"Hold to confirm";position:absolute;inset:0;display:grid;place-items:center;background:inherit;background-color:var(--panel2);color:var(--fg);font-size:12px;animation:holdtip 1.2s ease forwards;pointer-events:none}
@keyframes holdfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes holdhint{20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}
@keyframes holdtip{0%,75%{opacity:1}100%{opacity:0}}

/* ---- boutique de cartes ---- */
.shop-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.shop-row{display:grid;grid-template-columns:56px minmax(180px,1fr) auto;grid-template-areas:"img info ck" "btns btns btns";gap:8px 12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.shop-row.out{opacity:.7}
.shop-img{grid-area:img;width:56px;height:56px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:rgba(0,0,0,.25);font-size:24px}
.shop-img img{width:100%;height:100%;object-fit:cover}
.shop-info{grid-area:info;min-width:0}
.shop-row>.ghost{grid-area:ck}
.shop-nm b{font-size:15px}
.shop-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--mute);margin-top:3px}
.shop-meta .hot{color:var(--gold)}.shop-meta .down{color:var(--down);font-weight:700}
.shop-btns{grid-area:btns;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.store-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 10px;border-radius:10px;text-align:left;font-size:12px}
.store-btn .st{font-weight:700;color:var(--fg)}
.store-btn b{font-family:var(--num);font-size:13px;color:var(--gold)}
.store-btn .sub{color:var(--mute);font-size:11px}
.store-btn.empty b{color:var(--mute);text-decoration:line-through}
.sealed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
article.sealed{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--panel2)}
article.sealed.box{border-color:rgba(233,185,73,.55)}
article.sealed .ph{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg,#3a1b24,#1a0d12);display:grid;place-items:center;overflow:hidden}
article.sealed .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75;filter:saturate(1.2)}
article.sealed.box .ph::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 8px,transparent 8px 16px);pointer-events:none}
.sealed-tag{position:absolute;left:8px;bottom:8px;font-family:var(--num);font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.65);color:var(--gold);letter-spacing:.05em}
.sealed-n{position:absolute;right:8px;top:8px;font-family:var(--num);font-weight:700;padding:2px 8px;border-radius:999px;background:var(--gold);color:#2a1a00}
article.sealed .bd{display:flex;flex-direction:column;gap:6px;padding:10px}
article.sealed .t{font-weight:700}
article.sealed .by{font-size:12px;color:var(--mute)}
.sealed-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sealed-acts button{padding:6px 10px;font-size:12px}
.cardx .slab{position:absolute;left:6px;top:6px;font-family:var(--num);font-size:11px;font-weight:700;padding:2px 6px;border-radius:5px;background:#F6EBDD;color:#1A0D12;box-shadow:0 1px 3px rgba(0,0,0,.5)}
.cardx .slab.gem{background:linear-gradient(90deg,#E9B949,#fff3c4,#E9B949);color:#2a1a00}
.cardx.graded{outline:2px solid rgba(246,235,221,.55);outline-offset:-4px}
.cardx.full{background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 35%,#1a0d12),#1a0d12 60%)}
.cardx.full .face{border:2px solid var(--tc)}
@media (max-width:640px){.shop-row{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"img info" "ck ck" "btns btns"}.shop-img{width:44px;height:44px}.shop-btns{grid-template-columns:1fr 1fr}}

/* ---- boutiques en ligne : fenêtre de navigateur ---- */
.store-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.store-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:14px;text-align:left;background:linear-gradient(135deg,var(--c1),color-mix(in srgb,var(--c1) 60%,#000));color:var(--ink);border:2px solid color-mix(in srgb,var(--c2) 60%,transparent);min-height:128px}
.store-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.st-logo{font-weight:900;font-size:20px;letter-spacing:.02em;color:var(--c2)}
.st-dom{font-family:var(--num);font-size:11px;opacity:.75}
.st-tag{font-size:13px;opacity:.9}
.st-meta{font-size:12px;opacity:.8;margin-top:auto}
.st-cart{position:absolute;right:10px;top:10px;font-family:var(--num);font-size:12px;font-weight:700;background:var(--c2);color:#111;padding:2px 8px;border-radius:999px}
.ship-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ship-list:empty{display:none}
.ship-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"ic t eta" "bar bar bar";gap:4px 10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px dashed rgba(91,168,255,.6);background:rgba(91,168,255,.06);font-size:13px}
.ship-row .truck{grid-area:ic;font-size:20px;animation:truck 1.2s ease-in-out infinite}
.ship-row .ship-eta{grid-area:eta;font-family:var(--num)}
.ship-row .prog{grid-area:bar}
@keyframes truck{50%{transform:translateX(3px)}}
body.br-open{overflow:hidden}
.browser{position:fixed;inset:0;z-index:9500;background:rgba(10,4,8,.6);display:grid;place-items:center;padding:24px}
.browser[hidden]{display:none}
.br-win{width:min(1100px,100%);height:min(820px,100%);display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:#f8fafc;color:#0f172a;box-shadow:0 30px 80px rgba(0,0,0,.6);border:1px solid #334155;font-family:"WikiCoin",system-ui,-apple-system,"Segoe UI",sans-serif}
.br-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#e2e8f0;border-bottom:1px solid #cbd5e1}
.br-dots{display:flex;gap:6px}.br-dots i{width:11px;height:11px;border-radius:50%;background:#f87171}.br-dots i:nth-child(2){background:#fbbf24}.br-dots i:nth-child(3){background:#34d399}
.br-url{flex:1;min-width:0;display:flex;gap:6px;align-items:center;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:5px 12px;font-size:13px;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-nav{background:transparent;border:0;color:#334155;font-size:16px;padding:4px 8px;border-radius:6px;box-shadow:none}
.br-nav:hover{background:#cbd5e1}
.br-page{flex:1;overflow:auto;background:#f8fafc}
.site-head{position:sticky;top:0;z-index:2;display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--c1);color:var(--ink)}
.site-logo{background:transparent;border:0;box-shadow:none;font-weight:900;font-size:22px;color:var(--c2);padding:0;font-family:inherit;letter-spacing:.02em}
.site-search{flex:1;min-width:0;border-radius:999px;border:0;padding:9px 14px;font-size:14px;background:#fff;color:#0f172a}
.site-cart{background:var(--c2);color:#111;border:0;border-radius:999px;padding:8px 14px;font-weight:700;font-family:inherit;box-shadow:none}
.site-banner{padding:8px 16px;font-size:13px;background:color-mix(in srgb,var(--c2) 35%,#fff);color:#1e293b}
.site-cats{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px 0}
.site-cats button{background:#fff;color:#334155;border:1px solid #cbd5e1;border-radius:999px;padding:5px 12px;font-size:13px;font-family:inherit;box-shadow:none}
.site-cats button.on{background:var(--c1);color:var(--ink);border-color:var(--c1)}
.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:14px 16px 24px}
.prod{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}
.prod.oos{opacity:.6}
.prod-img{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,var(--c1),#0f172a);overflow:hidden}
.prod-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85}
.prod-img.box::after{content:"";position:absolute;inset:10% 18%;border:3px solid rgba(255,255,255,.7);border-radius:6px;box-shadow:inset 0 0 0 999px rgba(0,0,0,.25)}
.prod-img.pack::after{content:"";position:absolute;inset:8% 32%;border:3px solid rgba(255,255,255,.75);border-radius:4px 4px 10px 10px;box-shadow:inset 0 0 0 999px rgba(0,0,0,.2)}
.prod-kind{position:absolute;left:8px;bottom:8px;z-index:1;font-size:10px;font-weight:800;letter-spacing:.06em;background:#0f172a;color:#fff;padding:3px 7px;border-radius:4px}
.prod-bd{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px;flex:1}
.prod-nm{font-weight:700;font-size:14px;line-height:1.25}
.prod-sub{font-size:12px;color:#64748b}
.prod-price{font-size:20px;font-weight:800;color:#0f172a;margin-top:4px}
.prod-stock{font-size:12px;font-weight:700}.prod-stock.ok{color:#15803d}.prod-stock.low{color:#c2410c}.prod-stock.out{color:#b91c1c}
.prod-lim{font-size:11px;color:#64748b}
.site-btn{margin-top:auto;background:var(--c1);color:var(--ink);border:0;border-radius:999px;padding:9px 14px;font-weight:700;font-family:inherit;box-shadow:none}
.site-btn:disabled{background:#cbd5e1;color:#64748b}
.site-btn.big{font-size:16px;padding:12px 20px;margin-top:10px}
.site-cart-page,.site-done{max-width:720px;margin:0 auto;padding:18px 16px 30px;display:flex;flex-direction:column;gap:10px}
.site-cart-page h3{margin:0;font-size:20px}
.cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e2e8f0;font-size:14px}
.cart-line .muted,.site-cart-page .muted,.site-done .muted{color:#64748b}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:28px;height:28px;padding:0;border-radius:50%;background:#fff;color:#0f172a;border:1px solid #cbd5e1;box-shadow:none;font-family:inherit}
.cart-sum{color:#475569;font-size:14px;text-align:right}
.cart-total{font-size:22px;font-weight:800;text-align:right}
.site-done .big{font-size:24px;font-weight:800}
.br-page .down{color:#b91c1c}
@media (max-width:640px){.browser{padding:0}.br-win{height:100%;border-radius:0}.site-head{flex-wrap:wrap}.site-logo{font-size:18px}.site-grid{grid-template-columns:1fr 1fr;gap:10px;padding:10px}.br-dots{display:none}}

body.theme-pixel .br-win button,body.theme-pixel .br-win input{font-family:"WikiCoin",system-ui,-apple-system,"Segoe UI",sans-serif;text-transform:none;letter-spacing:0}

/* ---- Up / Down (options binaires) ---- */
.opt-layout{display:grid;grid-template-columns:230px minmax(0,1fr) minmax(0,300px);gap:14px;align-items:start}
.opt-list{display:flex;flex-direction:column;gap:3px;max-height:640px;overflow:auto}
.opt-grp{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--mute);margin:8px 2px 2px;text-transform:uppercase}
.opt-asset{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nm px" "nm ch";gap:0 8px;padding:7px 10px;border-radius:10px;text-align:left;font-size:13px;background:transparent;border:1px solid transparent;box-shadow:none}
.opt-asset .nm{grid-area:nm;font-weight:600;align-self:center}
.opt-asset .px{grid-area:px;font-family:var(--num);text-align:right}
.opt-asset>span:nth-child(3){grid-area:ch;font-family:var(--num);font-size:11px;text-align:right}
.opt-asset .n{position:absolute;left:-4px;top:-4px;font-size:10px;font-weight:700;background:var(--gold);color:#2a1a00;border-radius:999px;padding:0 5px}
.opt-asset.on{background:rgba(233,185,73,.1);border-color:rgba(233,185,73,.5)}
.opt-asset:hover{background:rgba(246,235,221,.05)}
.opt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:8px}
.opt-name{font-family:var(--display);font-size:22px}
.opt-price{font-family:var(--num);font-size:26px;font-weight:700}
.opt-chart-wrap{position:relative;height:340px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.18);overflow:hidden}
.opt-chart-wrap canvas{width:100%;height:100%;display:block}
.opt-ticket{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.opt-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.opt-row>.k-lbl{width:78px}
.opt-stake{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--panel2)}
.opt-stake input{width:110px;border:0;background:transparent;font-family:var(--num);font-size:18px;padding:8px 0;color:var(--fg)}
.opt-chips{display:flex;flex-wrap:wrap;gap:5px}
.opt-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt-up,.opt-down{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px;font-size:20px;font-weight:800;border-radius:14px;border:0;color:#08140e;background:linear-gradient(180deg,#5ef0ae,#2fb879)}
.opt-down{color:#2a0008;background:linear-gradient(180deg,#ff7a8a,#d6334a)}
.opt-up small,.opt-down small{font-size:12px;font-weight:600;opacity:.85}
.opt-up:disabled,.opt-down:disabled{filter:grayscale(.8);opacity:.5}
.opt-up:not(:disabled):active,.opt-down:not(:disabled):active{transform:scale(.97)}
.opt-trades{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.opt-tr{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:baseline;padding:8px 10px;border-radius:10px;border:1px solid var(--line);font-size:12.5px;cursor:pointer;background:var(--panel2)}
.opt-tr .cd{font-family:var(--num);text-align:right}
.opt-tr .st{font-size:12px;font-weight:700;text-align:right}
.opt-tr.o-win{border-color:rgba(70,216,154,.6)}.opt-tr.o-win .st{color:var(--up)}
.opt-tr.o-loss{border-color:rgba(255,84,104,.6)}.opt-tr.o-loss .st{color:var(--down)}
.opt-tr.o-even .st{color:var(--gold)}
.opt-tr.done{cursor:default}.opt-tr.done.o-win>b:last-child{color:var(--up)}.opt-tr.done.o-loss>b:last-child{color:var(--down)}
.opt-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.opt-stats div{display:flex;flex-direction:column;padding:6px 8px;border-radius:8px;background:var(--panel2);font-size:12px}
.opt-stats b{font-family:var(--num);font-size:14px}
@media (max-width:1200px){.opt-layout{grid-template-columns:200px minmax(0,1fr)}.opt-side{grid-column:1/-1}}
@media (max-width:760px){.opt-layout{grid-template-columns:minmax(0,1fr)}.opt-list{flex-direction:row;overflow-x:auto;max-height:none}.opt-grp{display:none}.opt-asset{min-width:150px}.opt-chart-wrap{height:240px}}
.opt-side,.opt-assets,.opt-main{min-width:0}

.mcap-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:6px 0 10px}
.mcap-row:empty{display:none}
.mc-cell{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}
.mc-cell .k{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.mc-cell b{font-family:var(--num);font-size:16px}
@media (max-width:640px){.mcap-row{grid-template-columns:1fr 1fr}}

/* ---- vraies maisons (OpenStreetMap) ---- */
.addr-search{display:flex;gap:6px;margin:0 0 8px}
.addr-search input{flex:1;min-width:0}
.map-hint{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:500;max-width:calc(100% - 24px);padding:6px 12px;border-radius:999px;background:rgba(14,7,9,.85);border:1px solid var(--line);color:var(--fg);font-size:12.5px;pointer-events:none;text-align:center}
.map-hint.busy{border-color:var(--gold);color:var(--gold)}
.map-hint[hidden]{display:none}
.leaflet-tile.osm-dark,.osm-dark{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.6)}
.ph.home-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#2a1820,#140a0e);aspect-ratio:16/9}
.home-ph .hp-ic{font-size:56px}
.home-ph .hp-t{font-family:var(--num);font-size:13px;color:var(--gold)}

/* ---------- sneakers ---------- */
.k-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.k-grid.small{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.k-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px}
@media (max-width:900px){.k-two{grid-template-columns:1fr}}
.k-art{position:relative;aspect-ratio:16/10;background:radial-gradient(circle at 50% 60%,#3a2530,#1e1016 75%);overflow:hidden;display:grid;place-items:center}
.k-art .k-svg{width:82%;height:auto;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45))}
.k-art.photo{background:#fff}
.k-art.photo .k-svg{display:none}
.k-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px}
.k-sw{position:absolute;left:8px;bottom:8px;display:flex;gap:3px}
.k-sw i{width:14px;height:14px;border-radius:50%;border:2px solid rgba(0,0,0,.35);box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.k-type{position:absolute;top:8px;right:8px;font-family:var(--num);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:rgba(20,10,14,.82);color:var(--mute);border:1px solid var(--line)}
.k-type.ltd{color:var(--blue);border-color:rgba(91,168,255,.5)}
.k-type.hyper{color:var(--violet);border-color:rgba(181,123,255,.55)}
.k-type.grail{color:#2A1700;background:var(--gold);border-color:var(--gold)}
article.drop,article.k-pair,article.k-live{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--panel2);min-width:0}
article.drop.hyper{border-color:rgba(181,123,255,.45)} article.drop.grail{border-color:var(--gold);box-shadow:0 0 18px rgba(233,185,73,.18)}
article.drop.live{border-color:var(--up)}
article.k-pair.worn .k-art{filter:saturate(.7)}
.drop .bd,.k-pair .bd,.k-live .bd{padding:10px 12px 12px;display:grid;gap:5px;min-width:0}
.drop .t,.k-pair .t,.k-live .t{font-weight:700;line-height:1.2}
.drop .cw,.k-pair .cw{color:var(--mute);font-size:13px}
.k-facts{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;font-family:var(--num)}
.k-facts span:not([class]){color:var(--mute)}
.k-when{font-size:13px} .k-when b{font-family:var(--num)}
.k-sx{font-size:11px;color:var(--mute);font-family:var(--num)}
.k-odds{font-size:11px;color:var(--mute);font-family:var(--num)}
.k-act{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px}
.k-act .list-row{flex:1 1 100%} .k-act .price-in{width:0;flex:1 1 60px}
.k-act .actbtn{width:auto;flex:1 1 auto}
.k-in{font-size:12px;font-weight:600}
.kp-val{font-family:var(--num);font-size:15px} .kp-val b{font-size:17px}
.k-pair .spk{width:100%;height:20px}
.k-ship{font-size:12px;color:var(--gold)}
.k-live-panel{border-color:var(--up);box-shadow:0 0 0 1px rgba(70,216,154,.25),0 0 30px rgba(70,216,154,.08)}
.k-live-list{display:grid;gap:12px}
article.k-live{flex-direction:row}
article.k-live .k-art{flex:0 0 260px;aspect-ratio:auto}
@media (max-width:700px){article.k-live{flex-direction:column} article.k-live .k-art{flex:none;aspect-ratio:16/10}}
.k-bar{height:8px;border-radius:999px;background:var(--bg);overflow:hidden;border:1px solid var(--line)}
.k-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--down),var(--gold));transition:width .8s linear}
.k-res-list{display:grid;gap:6px}
.k-res{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"b n t" "b s t";column-gap:10px;align-items:center;padding:7px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line)}
.k-res b{grid-area:b;font-family:var(--display);font-size:16px;text-align:center}
.k-res > span:nth-child(2){grid-area:n;font-weight:600;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-res > span:nth-child(3){grid-area:s} .k-res > span:nth-child(4){grid-area:t}
.k-res.w b{color:var(--up)} .k-res.l b{color:var(--down)}
#page-kicks .toolbar input[type=text]{flex:1 1 200px}
/* boîte à chaussures, déballage, 360° */
.k-art.spin{cursor:ew-resize}
.k-360{position:absolute;left:8px;bottom:8px;font-family:var(--num);font-size:10px;font-weight:700;padding:2px 6px;border-radius:999px;background:rgba(20,10,14,.75);color:var(--fg);pointer-events:none}
.k-boxart{background:radial-gradient(circle at 50% 70%,#3a2530,#1e1016 75%);perspective:600px}
.shoebox{position:relative;width:64%;aspect-ratio:2.1/1;margin-top:8%}
.shoebox .body{position:absolute;inset:18% 0 0 0;background:var(--b1);border-radius:3px;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 -10px 18px rgba(0,0,0,.28),0 10px 16px rgba(0,0,0,.45)}
.shoebox .lid{position:absolute;left:-3%;right:-3%;top:0;height:30%;background:var(--b1);border-radius:3px;border:1px solid rgba(255,255,255,.2);z-index:2;display:grid;place-items:center;box-shadow:0 3px 0 rgba(0,0,0,.25);filter:brightness(1.08)}
.shoebox .lid span{font-family:var(--display);font-size:clamp(9px,1.3vw,13px);letter-spacing:.12em;color:var(--b2);text-transform:uppercase;white-space:nowrap}
article.k-pair.boxed{border-color:var(--gold);box-shadow:0 0 0 1px rgba(233,185,73,.25),0 0 22px rgba(233,185,73,.12)}
article.k-pair.boxed .go{margin-top:4px}
.ub-back{position:fixed;inset:0;z-index:9000;background:rgba(10,4,7,.86);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.ub-stage{position:relative;width:min(560px,100%);display:grid;justify-items:center;gap:14px}
.ub-stage .k-boxart{width:100%;aspect-ratio:16/10;border-radius:16px;background:transparent}
.ub-stage .shoebox{width:70%}
.k-boxart.shake .shoebox{animation:ubShake .8s ease-in-out}
.k-boxart.open .lid{animation:ubLid .55s cubic-bezier(.2,.8,.3,1) forwards}
.ub-shoe{position:absolute;top:0;left:50%;width:min(480px,92%);transform:translate(-50%,10%) scale(.6);opacity:0;pointer-events:none;filter:drop-shadow(0 16px 22px rgba(0,0,0,.55));background:#fff;border-radius:16px}
.ub-stage.out .ub-shoe{animation:ubOut .7s cubic-bezier(.2,.9,.3,1.2) forwards}
.ub-stage.out .k-boxart{opacity:0;transition:opacity .5s .3s}
.ub-info{display:grid;justify-items:center;gap:4px;text-align:center;opacity:0}
.ub-info .t{font-weight:700;font-size:18px}
.ub-stage.out .ub-info{animation:ubFade .5s .6s forwards}
@keyframes ubShake{0%,100%{transform:none}15%{transform:rotate(-3deg) translateY(-2px)}30%{transform:rotate(3deg)}45%{transform:rotate(-2deg) translateY(-3px)}60%{transform:rotate(2deg)}80%{transform:rotate(-1deg)}}
@keyframes ubLid{to{transform:translateY(-140%) rotate(-14deg);opacity:0}}
@keyframes ubOut{to{transform:translate(-50%,0) scale(1);opacity:1}}
@keyframes ubFade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.k-boxart.shake .shoebox,.k-boxart.open .lid,.ub-stage.out .ub-shoe,.ub-stage.out .ub-info{animation-duration:.01s}}
/* cartes épurées (la photo d'abord) + fiche de détails */
#page-kicks .k-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
#page-kicks .k-grid.small{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.kc .k-art{aspect-ratio:4/3}
.kc .k-art img{padding:4px}
.k-art.clickable{cursor:pointer}
.kc .k-art.clickable:hover img{transform:scale(1.04)}
.k-art img{transition:transform .25s ease}
.kc .bd{padding:10px 12px 12px;gap:7px}
.k-ttl{display:grid;gap:1px;min-width:0}
.k-model{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-cw{font-size:15px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.k-sub{font-size:12px;color:var(--mute)}
.k-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0}
.k-price{font-family:var(--num);font-weight:700;font-size:16px}
.k-heat,.k-pl{font-size:12px;font-family:var(--num);white-space:nowrap}
.kc .k-act{flex-wrap:nowrap}
.kc .k-act .go.sm,.kc .k-act .k-entered{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-more{margin-left:auto;padding:6px 10px;font-size:12px;color:var(--mute);background:transparent;flex:none}
.k-more:hover{color:var(--fg);border-color:var(--mute)}
.k-chip{position:absolute;left:8px;bottom:8px;font-family:var(--num);font-size:11px;padding:3px 8px;border-radius:999px;background:rgba(20,10,14,.85);color:var(--fg);pointer-events:none;border:1px solid var(--line)}
.k-chip.live{color:#05210f;background:var(--up);border-color:var(--up);font-weight:700}
.k-chip.done{color:var(--mute)} .k-chip.gold{color:var(--gold)}
.k-360{left:auto;right:8px}
.k-entered{background:rgba(70,216,154,.12);border-color:rgba(70,216,154,.45);color:var(--up);font-weight:600;padding:11px 16px}
.k-entered.sm{padding:7px 12px;font-size:13px}
.k-entered:hover{background:rgba(255,84,104,.12);border-color:rgba(255,84,104,.45);color:var(--down)}
.k-sheet-back{position:fixed;inset:0;z-index:8500;background:rgba(10,4,7,.8);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.k-sheet{position:relative;width:min(980px,100%);max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0}
.k-sheet > .k-art{aspect-ratio:1/1;border-radius:18px 0 0 18px}
.k-sheet > .k-art img{padding:18px}
.k-info{padding:22px 22px 20px;display:grid;gap:12px;align-content:start;min-width:0}
.k-info .k-cw{font-size:22px;-webkit-line-clamp:3}
.k-info .k-chip{position:static;justify-self:start;pointer-events:auto}
.k-info .kp-val b{font-size:24px}
.k-dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;margin:0;font-size:13px}
.k-dl dt{color:var(--mute);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding-top:2px}
.k-dl dd{margin:0;min-width:0}
.k-dl .spk{width:100%;height:28px}
.k-act.big{display:grid;gap:8px}
.k-act.big .actbtn,.k-act.big .go{width:100%}
.k-close{position:absolute;top:10px;right:10px;z-index:3;width:36px;height:36px;padding:0;border-radius:50%;background:rgba(20,10,14,.85)}
@media (max-width:760px){.k-sheet{grid-template-columns:1fr}.k-sheet > .k-art{border-radius:18px 18px 0 0;aspect-ratio:4/3}}
.k-act.big .list-row{display:flex;gap:6px}
.k-act.big .list-row .price-in{flex:1 1 auto;width:auto;min-width:0}
.k-act.big .list-row .go{width:auto;flex:none;padding:11px 22px}
/* sneakers : onglets, pastille de pointure, astuces */
.k-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;position:sticky;top:0;z-index:5;padding:6px 0;background:linear-gradient(var(--bg) 70%,transparent)}
.k-tabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.k-tabs button{border:0;background:transparent;padding:9px 18px;border-radius:10px;font-weight:700;color:var(--mute);display:inline-flex;align-items:center;gap:8px}
.k-tabs button[aria-selected="true"]{background:var(--gold);color:#2A1700}
.k-tabs button em{font-style:normal;font-family:var(--num);font-size:10px;padding:1px 7px;border-radius:999px;background:rgba(246,235,221,.1);color:var(--fg)}
.k-tabs button em:empty{display:none}
.k-tabs button em.hot{background:var(--down);color:#fff} .k-tabs button em.live{background:var(--up);color:#05210f}
.k-tabs button[aria-selected="true"] em{background:rgba(42,23,0,.18);color:#2A1700}
.k-view{display:grid;gap:16px}
.k-how{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 44px 12px 12px;border-radius:14px;background:linear-gradient(135deg,rgba(233,185,73,.1),rgba(181,123,255,.06));border:1px solid rgba(233,185,73,.3)}
.k-how > div{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--mute)}
.k-how strong{color:var(--fg)}
.k-how b{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#2A1700;font-family:var(--num);font-size:13px}
.k-how-x{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;border-radius:50%;background:transparent;color:var(--mute)}
@media (max-width:760px){.k-how{grid-template-columns:1fr}.k-tabs{flex:1}.k-tabs button{flex:1;justify-content:center;padding:9px 8px}}

/* ---------- rareté des sneakers : plus c'est rare, plus ça brille ---------- */
@property --kang{syntax:"<angle>";inherits:false;initial-value:0deg}
/* Limited : halo bleu */
.t-ltd{border-color:rgba(91,168,255,.65)!important;box-shadow:0 0 0 1px rgba(91,168,255,.25),0 0 16px rgba(91,168,255,.18)}
/* Hyper : contour violet-rose qui tourne, halo, reflet de temps en temps */
.t-hyper{border:2px solid transparent!important;background:linear-gradient(var(--panel2),var(--panel2)) padding-box,conic-gradient(from var(--kang),#b57bff,#ff5fd2,#6a5cff,#b57bff) border-box!important;
  box-shadow:0 0 22px rgba(181,123,255,.28);animation:kspin 6s linear infinite}
.t-hyper .k-art::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:linear-gradient(115deg,transparent 38%,rgba(181,123,255,.22) 47%,rgba(255,95,210,.22) 53%,transparent 62%);transform:translateX(-130%);animation:ksheen 5s ease-in-out infinite}
/* Grail : holographique or, halo qui pulse, reflet continu, étincelles */
.t-grail{border:2px solid transparent!important;
  background:linear-gradient(var(--panel2),var(--panel2)) padding-box,conic-gradient(from var(--kang),#f7d774,#fff6cf,#e9b949,#ff9fe0,#8be9fd,#b6ff9e,#f7d774) border-box!important;
  animation:kspin 3.5s linear infinite,kglow 2.4s ease-in-out infinite}
.t-grail .k-art::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;mix-blend-mode:multiply;
  background:linear-gradient(115deg,transparent 30%,rgba(255,215,64,.45) 42%,rgba(255,120,200,.4) 50%,rgba(80,220,255,.4) 58%,transparent 70%);transform:translateX(-130%);animation:ksheen 2.6s ease-in-out infinite}
.t-grail .k-art::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(circle,#fff 0 1.5px,transparent 2.5px) 12% 18%/40px 40px no-repeat,radial-gradient(circle,#ffe58a 0 2px,transparent 3px) 82% 24%/44px 44px no-repeat,
    radial-gradient(circle,#fff 0 1.5px,transparent 2.5px) 70% 78%/38px 38px no-repeat,radial-gradient(circle,#ffd1f2 0 1.5px,transparent 2.5px) 24% 70%/36px 36px no-repeat,
    radial-gradient(circle,#fff 0 1px,transparent 2px) 50% 12%/30px 30px no-repeat;
  filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 6px #ffd54a);animation:ktwinkle 1.8s ease-in-out infinite}
.t-grail .k-cw{background:linear-gradient(90deg,#ffe58a,#fff6cf,#e9b949,#ffe58a);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:kgoldtext 3s linear infinite}
.t-grail .k-type.grail,.k-tier.grail{background:linear-gradient(90deg,#e9b949,#fff1b3,#e9b949);background-size:200% 100%;color:#2A1700;border-color:#f7d774;animation:kgoldtext 2.5s linear infinite;box-shadow:0 0 10px rgba(247,215,116,.6)}
.t-hyper .k-type.hyper,.k-tier.hyper{background:linear-gradient(90deg,#b57bff,#ff5fd2);color:#fff;border-color:transparent}
/* ruban de rareté (placard, marché) */
.k-tier{position:absolute;top:8px;left:8px;z-index:4;font-family:var(--num);font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:rgba(20,10,14,.85);color:var(--mute)}
.k-tier.ltd{color:var(--blue);border-color:rgba(91,168,255,.55)}
/* la fiche de détails prend aussi l'éclat de sa rareté */
.k-sheet.t-hyper,.k-sheet.t-grail{background-clip:padding-box,border-box}
.k-sheet.t-grail{box-shadow:0 0 60px rgba(247,215,116,.35)}
/* drop en direct : idem */
article.k-live.t-grail,article.k-live.t-hyper{border-radius:12px}
@keyframes kspin{to{--kang:360deg}}
@keyframes kglow{0%,100%{box-shadow:0 0 14px rgba(247,215,116,.35),0 0 0 1px rgba(247,215,116,.25)}50%{box-shadow:0 0 34px rgba(247,215,116,.7),0 0 70px rgba(255,159,224,.25)}}
@keyframes ksheen{0%{transform:translateX(-130%)}55%,100%{transform:translateX(130%)}}
@keyframes ktwinkle{0%,100%{opacity:.25;transform:scale(.9)}50%{opacity:1;transform:scale(1.05)}}
@keyframes kgoldtext{to{background-position:200% 0}}
@media (prefers-reduced-motion:reduce){.t-hyper,.t-grail,.t-hyper .k-art::after,.t-grail .k-art::after,.t-grail .k-art::before,.t-grail .k-cw,.k-tier.grail{animation:none}}
.k-art .k-type,.k-art .k-chip,.k-art .k-360,.k-art .k-sw{z-index:4}
/* renforcement : fond de photo teinté selon la rareté (le blanc des photos devient transparent avec « multiply ») */
.t-ltd .k-art.photo,.t-hyper .k-art.photo,.t-grail .k-art.photo{isolation:isolate}
.t-ltd .k-art.photo img,.t-hyper .k-art.photo img,.t-grail .k-art.photo img{mix-blend-mode:multiply}
.t-ltd .k-art.photo{background:linear-gradient(160deg,#eef6ff,#d6e8ff)}
.t-hyper .k-art.photo{background:linear-gradient(135deg,#f3e8ff,#ffe1f5,#e6e0ff);background-size:200% 200%;animation:kholo 7s ease-in-out infinite}
.t-grail .k-art.photo{background:linear-gradient(120deg,#fff4c2,#ffd9f0,#d4f4ff,#e6ffd9,#fff4c2);background-size:300% 300%;animation:kholo 5s ease-in-out infinite}
.t-hyper{border-width:2px!important;box-shadow:0 0 26px rgba(181,123,255,.42)}
.t-grail{border-width:3px!important}
.t-grail .bd{background:linear-gradient(180deg,rgba(247,215,116,.14),transparent 70%)}
.t-hyper .bd{background:linear-gradient(180deg,rgba(181,123,255,.1),transparent 70%)}
.t-grail .k-art::before{background:radial-gradient(circle,#ffd54a 0 2.5px,transparent 3.5px) 12% 20%/40px 40px no-repeat,radial-gradient(circle,#ff9fe0 0 2.5px,transparent 3.5px) 84% 30%/44px 44px no-repeat,
    radial-gradient(circle,#ffd54a 0 2px,transparent 3px) 68% 80%/38px 38px no-repeat,radial-gradient(circle,#7fd8ff 0 2px,transparent 3px) 22% 74%/36px 36px no-repeat,
    radial-gradient(circle,#ffd54a 0 1.5px,transparent 2.5px) 50% 10%/30px 30px no-repeat,radial-gradient(circle,#fff 0 2px,transparent 3px) 40% 55%/30px 30px no-repeat;
  filter:drop-shadow(0 0 4px #ffd54a) drop-shadow(0 0 8px #ff9fe0)}
.t-grail .k-art::after{background:linear-gradient(115deg,transparent 28%,rgba(255,210,60,.55) 42%,rgba(255,110,200,.5) 50%,rgba(70,210,255,.5) 58%,transparent 72%)}
.t-hyper .k-art::after{mix-blend-mode:multiply;background:linear-gradient(115deg,transparent 35%,rgba(181,123,255,.4) 47%,rgba(255,95,210,.4) 53%,transparent 65%)}
@keyframes kholo{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes kglow{0%,100%{box-shadow:0 0 18px rgba(247,215,116,.5),0 0 0 1px rgba(247,215,116,.35)}50%{box-shadow:0 0 42px rgba(247,215,116,.9),0 0 80px rgba(255,159,224,.35)}}
@media (prefers-reduced-motion:reduce){.t-hyper .k-art.photo,.t-grail .k-art.photo{animation:none}}
/* victoires à payer */
.k-claim-panel{border-color:var(--gold);box-shadow:0 0 0 1px rgba(233,185,73,.3),0 0 34px rgba(233,185,73,.15);animation:kclaim 2s ease-in-out infinite}
.k-claims{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}
article.k-claim{display:grid;grid-template-columns:200px minmax(0,1fr);border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--panel2)}
article.k-claim .k-art{aspect-ratio:auto;min-height:160px}
article.k-claim .bd{padding:12px 14px;display:grid;gap:8px;align-content:start}
article.k-claim .actbtn{width:100%}
.k-claim-cd{font-size:14px} .k-claim-cd b{font-family:var(--num);color:var(--gold);font-size:16px}
.k-winners{font-size:12px;color:var(--mute);line-height:1.4}
@keyframes kclaim{0%,100%{box-shadow:0 0 0 1px rgba(233,185,73,.3),0 0 20px rgba(233,185,73,.1)}50%{box-shadow:0 0 0 1px rgba(233,185,73,.6),0 0 40px rgba(233,185,73,.28)}}
@media (max-width:560px){.k-claims{grid-template-columns:1fr}article.k-claim{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.k-claim-panel{animation:none}}

/* ---------- panneau d'activité (grands écrans) ---------- */
.rail{display:none}
@media (min-width:1640px){
  .shell{grid-template-columns:var(--side) minmax(0,1fr) 330px}
  .content{max-width:1600px}
  .rail{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-left:1px solid var(--line);background:rgba(20,10,14,.82);backdrop-filter:blur(6px);z-index:20;min-width:0}
}
@media (min-width:2100px){.shell{grid-template-columns:var(--side) minmax(0,1fr) 380px}}
.rail-head{display:grid;gap:3px;padding:24px 18px 14px;border-bottom:1px solid var(--line)}
.rail-head b{font-family:var(--display);font-size:18px;font-weight:400;color:var(--gold);letter-spacing:.02em}
.rail-head small{color:var(--mute);font-size:12px}
.rail-body{flex:1;overflow-y:auto;padding:6px 12px 24px;display:grid;gap:4px;align-content:start;scrollbar-width:thin}
.rail-sec{display:grid;gap:6px;padding:12px 0 6px}
.rail-sec h3{margin:0 6px 2px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.rail-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--fg);font:inherit}
button.rail-row{cursor:pointer;transition:border-color .15s,transform .15s}
button.rail-row:hover{border-color:rgba(233,185,73,.55);transform:translateX(-2px)}
.rail-ic{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:20px;background:var(--panel2);overflow:hidden}
.rail-ic.ph{background:#f4f1ec}
.rail-ic img{width:100%;height:100%;object-fit:contain}
.rail-bd{display:grid;gap:2px;min-width:0}
.rail-bd b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-bd small{font-size:11.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail-cd{font-family:var(--num);font-size:12px;font-weight:700;color:var(--fg);white-space:nowrap}
.rail-bar{height:4px;border-radius:4px;background:var(--panel2);overflow:hidden;margin-top:4px}
.rail-bar i{display:block;height:100%;width:2%;background:linear-gradient(90deg,var(--gold),var(--up));border-radius:4px;transition:width .3s linear}
.rail-sec.need .rail-row{border-color:rgba(233,185,73,.45)}
.rail-row.hot{border-color:var(--gold)!important;background:linear-gradient(90deg,rgba(233,185,73,.16),var(--panel) 70%);animation:glow 1.6s ease-in-out infinite}
.rail-row.hot .rail-cd{color:var(--gold)}
.rail-row.warn{border-color:var(--down)!important}
.rail-row.warn .rail-cd{color:var(--down)}
.rail-row.live{border-color:rgba(70,216,154,.55)}
.rail-sec.log .rail-row{grid-template-columns:minmax(0,1fr);padding:7px 10px;background:transparent;border-style:dashed}
.rail-sec.log .rail-ic{display:none}
.rail-sec.log .rail-bd b{white-space:normal;font-weight:500;font-size:12.5px;line-height:1.35;color:var(--fg)}
@media (prefers-reduced-motion:reduce){.rail-row.hot{animation:none}button.rail-row:hover{transform:none}}

/* ---------- ouvrir un paquet : le déchirer, retourner les cartes ---------- */
.tp-back{position:fixed;inset:0;z-index:80;background:rgba(8,3,6,.86);backdrop-filter:blur(4px);display:grid;place-items:center;overflow:auto;padding:24px 16px}
.tp-stage{display:grid;justify-items:center;gap:14px;width:min(980px,100%)}
.tp-pack{--p1:#7a5a2b;--p2:#3b2a12;position:relative;width:min(260px,70vw);aspect-ratio:5/8.4;border-radius:10px 10px 14px 14px;background:linear-gradient(160deg,var(--p1),var(--p2));box-shadow:0 30px 60px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.12);touch-action:none;user-select:none;cursor:grab;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s;overflow:visible}
.tp-pack::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 45%,transparent 60%);background-size:250% 100%;animation:tpshine 3s linear infinite;mix-blend-mode:screen}
@keyframes tpshine{from{background-position:120% 0}to{background-position:-120% 0}}
.tp-top{position:absolute;left:0;right:0;top:0;height:13%;border-radius:10px 10px 0 0;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.05));border-bottom:2px dashed rgba(255,255,255,.55);transition:transform .6s cubic-bezier(.3,.7,.3,1),opacity .6s;z-index:2}
.tp-crimp{position:absolute;inset:0 0 auto;height:10px;background:repeating-linear-gradient(90deg,rgba(0,0,0,.25) 0 4px,transparent 4px 8px);border-radius:10px 10px 0 0}
.tp-cut{position:absolute;bottom:-3px;left:0;width:0;height:5px;background:#fff;box-shadow:0 0 10px #fff,0 0 20px var(--gold);border-radius:3px}
.tp-top.off{transform:translate(70px,-160px) rotate(24deg);opacity:0}
.tp-body{position:absolute;inset:13% 0 0;display:grid;align-content:center;justify-items:center;gap:6px;padding:14px;text-align:center;color:#fff;overflow:hidden;border-radius:0 0 14px 14px}
.tp-body img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.32;mix-blend-mode:luminosity;pointer-events:none}
.tp-body>div{position:relative}
.tp-brand{font-size:9px;letter-spacing:.2em;opacity:.8}
.tp-name{font-family:var(--display);font-size:clamp(22px,4vw,30px);line-height:1.05;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.tp-theme{font-weight:700;font-size:15px;color:var(--gold);text-shadow:0 1px 4px rgba(0,0,0,.7)}
.tp-count{font-family:var(--num);font-size:12px;padding:3px 10px;border-radius:999px;background:rgba(0,0,0,.35)}
.tp-pack.open{transform:translateY(30px) scale(.96)}
.tp-pack.gone{transform:translateY(120vh) rotate(8deg);opacity:0;pointer-events:none;position:absolute}
.tp-hint{margin:0;color:var(--mute);font-size:14px;text-align:center}
.tp-stack{position:relative;width:150px;aspect-ratio:5/7;cursor:pointer}
.tp-stack:empty{display:none}
.tp-stack.wait::after{content:"…";position:absolute;inset:0;display:grid;place-items:center;font-size:40px;color:var(--mute)}
.tp-card-back{position:absolute;inset:0;border-radius:12px;background:repeating-linear-gradient(45deg,#2a1218 0 10px,#33161e 10px 20px);border:2px solid #E9B949;display:grid;place-items:center;transform:translate(calc(var(--i) * 1.5px),calc(var(--i) * -1.5px));box-shadow:0 6px 16px rgba(0,0,0,.5);animation:tpdeal .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 40ms)}
.tp-card-back span{font-family:var(--display);color:var(--gold);font-size:26px;opacity:.85}
.tp-card-back.glow-e{box-shadow:0 0 18px rgba(167,120,255,.7),0 6px 16px rgba(0,0,0,.5)}
.tp-card-back.glow-l{box-shadow:0 0 26px rgba(233,185,73,.95),0 0 60px rgba(233,185,73,.5);animation:tpdeal .4s both,tppulse 1s ease-in-out infinite}
@keyframes tpdeal{from{transform:translateY(80px) scale(.8);opacity:0}}
@keyframes tppulse{50%{box-shadow:0 0 40px rgba(233,185,73,1),0 0 90px rgba(233,185,73,.6)}}
.tp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,150px));gap:10px;justify-content:center;width:100%}
@media (max-width:760px){.tp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.tp-flip{animation:tpflip .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes tpflip{from{transform:perspective(600px) rotateY(90deg) translateY(-30px);opacity:.3}}
.tp-big{animation:tpflip .5s both,tpbig 1.4s ease-out .5s}
@keyframes tpbig{30%{transform:scale(1.12);box-shadow:0 0 50px rgba(233,185,73,.9)}}
.tp-bar{display:flex;gap:10px;justify-content:center}
@media (prefers-reduced-motion:reduce){.tp-pack,.tp-top,.tp-card-back,.tp-flip,.tp-big{animation:none!important;transition:none!important}.tp-pack::after{animation:none}}

/* ---------- protège-cartes ---------- */
.supplies{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:10px 12px;margin:4px 0 10px;border:1px dashed var(--line);border-radius:12px;background:var(--panel2)}
.supplies .sup-t{font-weight:700}
.supplies .sup-n{font-family:var(--num);font-size:13px;color:var(--fg)}
.supplies .note{flex-basis:100%;margin:2px 0 0}
/* sleeve : un film de plastique brillant ; toploader : un cadre rigide épais et transparent */
.cardx.sleeved{box-shadow:0 0 0 3px rgba(220,235,255,.28),0 0 0 4px rgba(255,255,255,.12)}
.cardx.sleeved::before,.cardx.toploaded::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;background:linear-gradient(125deg,rgba(255,255,255,.18) 0%,transparent 28%,transparent 70%,rgba(255,255,255,.1) 100%)}
.cardx.toploaded{box-shadow:0 0 0 7px rgba(225,238,255,.22),0 0 0 8px rgba(255,255,255,.35),0 8px 20px rgba(0,0,0,.4);margin:6px}

/* ---------- produits scellés : vraie boîte 3D et vrai paquet ---------- */
.prod-img.box::after,.prod-img.pack::after,article.sealed.box .ph::after{display:none}
.prod-img{background:radial-gradient(120% 90% at 50% 35%,#ffffff 0%,#ece8e2 70%,#dcd6ce 100%)!important;container-type:inline-size}
article.sealed .ph,.mk-card article.sealed .ph{background:radial-gradient(120% 90% at 50% 30%,#3a2028 0%,#1a0d12 75%)!important;container-type:inline-size}
.sx{--hue:30;position:absolute;inset:0;display:grid;place-items:center;perspective:700px;font-size:6.2cqw}
.sx-shadow{position:absolute;left:22%;right:22%;bottom:9%;height:7%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.45),transparent);filter:blur(2px);z-index:0}
/* la boîte : devant, couvercle, côté */
.bx-cube{--w:9.6em;--h:6.2em;--d:4.4em;position:relative;width:var(--w);height:var(--h);transform-style:preserve-3d;transform:translateY(.5em) rotateX(-16deg) rotateY(-28deg);z-index:1;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.prod:hover .bx-cube,article.sealed:hover .bx-cube{transform:translateY(.2em) rotateX(-18deg) rotateY(-18deg)}
.bx-f{position:absolute;display:grid;place-items:center;overflow:hidden;backface-visibility:hidden;color:#fff}
.bx-front{inset:0;transform:translateZ(calc(var(--d) / 2));border-radius:.18em;background:linear-gradient(160deg,hsl(var(--hue) 70% 42%),hsl(var(--hue) 75% 16%));box-shadow:inset 0 0 0 .08em rgba(255,255,255,.25)}
.bx-front img{position:absolute;inset:.45em .45em 1.7em;width:calc(100% - .9em);height:calc(100% - 2.15em);object-fit:cover;border-radius:.12em;opacity:.9;box-shadow:0 0 0 .06em rgba(255,255,255,.5)}
.bx-front::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,hsla(var(--hue),80%,8%,.85) 78%);pointer-events:none}
.bx-logo{position:absolute;top:.6em;left:.6em;z-index:2;font-family:var(--num);font-weight:700;font-size:.42em;letter-spacing:.14em;padding:.25em .6em;border-radius:.3em;background:rgba(0,0,0,.55);color:#f5d27a}
.bx-name{position:absolute;left:.4em;right:.4em;bottom:1.05em;z-index:2;font-family:var(--display);font-size:.95em;line-height:1;text-align:center;text-shadow:0 .08em .2em rgba(0,0,0,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bx-sub{position:absolute;left:0;right:0;bottom:.35em;z-index:2;text-align:center;font-family:var(--num);font-weight:700;font-size:.38em;letter-spacing:.12em;color:#f5d27a}
.bx-top{width:var(--w);height:var(--d);top:calc((var(--h) - var(--d)) / 2);transform:rotateX(90deg) translateZ(calc(var(--h) / 2));background:linear-gradient(90deg,hsl(var(--hue) 65% 50%),hsl(var(--hue) 70% 32%));border-radius:.18em;box-shadow:inset 0 0 0 .08em rgba(255,255,255,.3)}
.bx-top span{font-family:var(--display);font-size:.6em;opacity:.9;text-shadow:0 .05em .1em rgba(0,0,0,.5)}
.bx-side{width:var(--d);height:var(--h);left:calc((var(--w) - var(--d)) / 2);transform:rotateY(90deg) translateZ(calc(var(--w) / 2));background:linear-gradient(180deg,hsl(var(--hue) 65% 26%),hsl(var(--hue) 70% 11%));border-radius:.18em}
.bx-side span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--num);font-weight:700;font-size:.4em;letter-spacing:.14em;color:#f5d27a}
/* reflet métallisé qui passe sur le carton */
.bx-shine{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 45%,transparent 58%);background-size:260% 100%;animation:bxshine 4.5s ease-in-out infinite;mix-blend-mode:screen}
@keyframes bxshine{0%,55%{background-position:130% 0}100%{background-position:-130% 0}}
/* le paquet : emballage scellé, bords crantés */
.pk{position:relative;z-index:1;width:4.6em;height:7.2em;border-radius:.2em;overflow:hidden;color:#fff;display:grid;align-content:center;justify-items:center;gap:.15em;text-align:center;background:linear-gradient(165deg,hsl(var(--hue) 72% 46%),hsl(var(--hue) 78% 15%));box-shadow:0 .5em 1em rgba(0,0,0,.35),inset 0 0 0 .06em rgba(255,255,255,.25);transform:rotate(-5deg);transition:transform .4s}
.prod:hover .pk,article.sealed:hover .pk{transform:rotate(0) translateY(-.15em)}
.pk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38;mix-blend-mode:luminosity}
.pk>span{position:relative;z-index:2}
.pk-crimp{position:absolute!important;left:0;right:0;height:.45em;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 .12em,rgba(0,0,0,.25) .12em .24em)}
.pk-crimp.t{top:0}.pk-crimp.b{bottom:0}
.pk-logo{font-family:var(--num);font-weight:700;font-size:.4em;letter-spacing:.2em;color:#f5d27a}
.pk-name{font-family:var(--display);font-size:.72em;line-height:1.05;padding:0 .3em;text-shadow:0 .06em .15em rgba(0,0,0,.7)}
.pk-theme{font-weight:700;font-size:.42em;color:#f5d27a;padding:0 .3em}
.pk-n{font-family:var(--num);font-size:.36em;padding:.15em .5em;border-radius:1em;background:rgba(0,0,0,.4)}
article.sealed .ph .sealed-n{z-index:4}
@media (prefers-reduced-motion:reduce){.bx-shine{animation:none}.bx-cube,.pk{transition:none}}
.prod-img .sx{font-size:7cqw}
/* boîte couchée : grand couvercle illustré vu d'en haut, devant et côté minces */
.bx-cube{--w:9.4em;--h:2.2em;--d:6.4em;transform:translateY(1.4em) rotateX(-42deg) rotateY(-22deg)}
.prod:hover .bx-cube,article.sealed:hover .bx-cube{transform:translateY(1.2em) rotateX(-48deg) rotateY(-14deg)}
.bx-front{display:grid;align-content:center;justify-items:center;gap:.1em;background:linear-gradient(180deg,hsl(var(--hue) 70% 34%),hsl(var(--hue) 75% 14%))}
.bx-front::after{display:none}
.bx-band{font-family:var(--display);font-size:.62em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:94%;text-shadow:0 .05em .12em rgba(0,0,0,.7)}
.bx-front .bx-sub{position:static;font-size:.34em}
.bx-top{display:block;background:linear-gradient(160deg,hsl(var(--hue) 70% 44%),hsl(var(--hue) 75% 17%));box-shadow:inset 0 0 0 .08em rgba(255,255,255,.3)}
.bx-top img{position:absolute;inset:.4em .4em 1.5em;width:calc(100% - .8em);height:calc(100% - 1.9em);object-fit:cover;border-radius:.12em;opacity:.92;box-shadow:0 0 0 .06em rgba(255,255,255,.5)}
.bx-top::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,hsla(var(--hue),80%,8%,.85) 82%);pointer-events:none}
.bx-top .bx-logo{position:absolute;top:.55em;left:.55em;z-index:2;font-size:.4em}
.bx-top .bx-name{position:absolute;left:.4em;right:.4em;bottom:.45em;z-index:2;font-size:.95em}
.bx-side{background:linear-gradient(180deg,hsl(var(--hue) 65% 24%),hsl(var(--hue) 70% 10%))}
.bx-side span{writing-mode:horizontal-tb;transform:none;font-size:.32em}
.sx-shadow{bottom:12%;left:18%;right:18%}
.bx-cube{transform:translateY(-.3em) rotateX(-42deg) rotateY(-22deg)}
.prod:hover .bx-cube,article.sealed:hover .bx-cube{transform:translateY(-.5em) rotateX(-48deg) rotateY(-14deg)}
.sx-box .sx-shadow{bottom:8%}

/* ---------- versions numérotées : Gold /25 et 1 of 1 ---------- */
.cardx.gold{--tc:#f5d27a;background:linear-gradient(150deg,#5a4210,#2a1c05 55%,#6b4f12);border-color:#f5d27a!important;box-shadow:0 0 0 2px #f5d27a,0 0 22px rgba(245,210,122,.55)}
.cardx.gold .top span:last-child{color:#fff3c4;background:rgba(0,0,0,.45);padding:0 .4em;border-radius:.4em}
.cardx.one{--tc:#fff;background:linear-gradient(150deg,#0b0b0f,#17171f 60%,#0b0b0f);border-color:transparent!important;isolation:isolate}
.cardx.one::before{content:"";position:absolute;inset:-3px;border-radius:inherit;z-index:-1;background:conic-gradient(from var(--kang,0deg),#ff4d6d,#ffd166,#06d6a0,#4cc9f0,#b5179e,#ff4d6d);animation:kspin 3s linear infinite}
.cardx.one .top span:last-child{color:#000;background:#fff;padding:0 .4em;border-radius:.4em;font-weight:800}
.tp-card-back.glow-x{border-color:#fff;box-shadow:0 0 30px rgba(255,255,255,.9),0 0 70px rgba(255,120,220,.6),0 0 110px rgba(80,200,255,.5);animation:tpdeal .4s both,tppulse 0.7s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.cardx.one::before{animation:none}}
/* 1 of 1 : fond noir, bordure arc-en-ciel qui tourne (dessinée en bordure, pas par-dessus la carte) */
.cardx.one{border:3px solid transparent!important;background:linear-gradient(150deg,#0b0b0f,#191924 60%,#0b0b0f) padding-box,conic-gradient(from var(--kang,0deg),#ff4d6d,#ffd166,#06d6a0,#4cc9f0,#b5179e,#ff4d6d) border-box!important;animation:kspin 3s linear infinite;box-shadow:0 0 26px rgba(255,120,220,.45)}
.cardx.one::before{display:none}
.cardx.one .nm,.cardx.one .val b{color:#fff}
/* collection : la photo garde sa place même avec plusieurs boutons */
.collection .cardx{aspect-ratio:auto}
.collection .cardx .face{min-height:150px}

/* ---------- logos sur les boîtes et les paquets ---------- */
.bx-plate{position:absolute;z-index:2;left:50%;top:44%;transform:translate(-50%,-50%);width:3.2em;height:3.2em;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 .1em .35em rgba(0,0,0,.5),0 0 0 .08em rgba(255,255,255,.6)}
.bx-plate img{position:static!important;width:78%!important;height:78%!important;object-fit:contain!important;opacity:1!important;box-shadow:none!important;border-radius:0!important;inset:auto!important}
.bx-plates{position:absolute;z-index:2;left:.5em;right:.5em;top:1.15em;bottom:1.65em;display:grid;gap:.25em;place-items:center;grid-template-columns:repeat(3,1fr)}
.bx-plates.n2{grid-template-columns:repeat(2,1fr)}.bx-plates.n4{grid-template-columns:repeat(2,1fr)}
.bx-plate.sm{position:static;transform:none;width:1.55em;height:1.55em}
.pk-plate{position:relative;z-index:2;width:2.6em;height:2.6em;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 .08em .3em rgba(0,0,0,.5);margin:.1em 0}
.pk-plate img{position:static!important;width:80%!important;height:80%!important;object-fit:contain!important;opacity:1!important;mix-blend-mode:normal!important}
.prod-theme{font-size:12px;color:#6b4e16;background:#fff6dd;border:1px solid #f0d58f;border-radius:8px;padding:4px 8px;margin:4px 0}
.tp-plate{position:relative;width:88px;height:88px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.5);margin-bottom:6px}
.tp-body .tp-plate img{position:static;width:78%;height:78%;object-fit:contain;opacity:1;mix-blend-mode:normal}

/* ---------- collection + fournitures à droite (glisser une carte sur une sleeve) ---------- */
.col-wrap{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px;align-items:start}
@media (max-width:900px){.col-wrap{grid-template-columns:minmax(0,1fr)}.sup-dock{position:static!important;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.sup-dock .dock-t,.sup-dock>button,.sup-dock .note{grid-column:1/-1}}
.sup-dock{position:sticky;top:14px;display:grid;gap:10px;padding:12px;border-radius:14px;border:1px dashed var(--line);background:var(--panel2)}
.dock-t{font-weight:700}
.dock-pack{display:grid;gap:6px;justify-items:center;padding:10px 8px;border-radius:12px;border:2px dashed transparent;transition:border-color .15s,background .15s,transform .15s}
.dock-art{position:relative;width:110px;height:80px;border-radius:8px;display:grid;align-content:center;justify-items:center;gap:2px;color:#13304a;text-align:center;
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(205,225,245,.85));box-shadow:0 6px 14px rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.7);overflow:hidden}
.dock-art::before{content:"";position:absolute;inset:6px 10px;border:2px solid rgba(80,140,200,.35);border-radius:4px}
.dock-art::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.7) 48%,transparent 60%);background-size:250% 100%;animation:bxshine 4s ease-in-out infinite}
.dock-pack.top .dock-art{background:linear-gradient(160deg,#f6fbff,#bcd4ea);box-shadow:0 6px 14px rgba(0,0,0,.35),inset 0 0 0 5px rgba(255,255,255,.85)}
.dock-brand{font-family:var(--num);font-weight:700;font-size:9px;letter-spacing:.18em;color:#a37b16;position:relative}
.dock-nm{font-family:var(--display);font-size:14px;position:relative}
.dock-left{font-family:var(--num);font-size:11px;font-weight:700;position:relative;padding:1px 7px;border-radius:10px;background:#13304a;color:#fff}
.dock-pack.empty .dock-art{filter:grayscale(1) opacity(.55)}
.dock-hint{font-size:11px;color:var(--mute);text-align:center}
body.dragging-card .dock-pack:not(.empty){border-color:rgba(233,185,73,.55);background:rgba(233,185,73,.06)}
.dock-pack.over{border-color:var(--gold)!important;background:rgba(233,185,73,.16)!important;transform:scale(1.04)}
.collection .cardx[draggable=true]{cursor:grab}
@media (prefers-reduced-motion:reduce){.dock-art::after{animation:none}}

/* ---------- révélation : effets selon la rareté ---------- */
.tp-flip.fx1{animation:tpflip .45s cubic-bezier(.2,.8,.2,1) both,fxblue .9s ease-out .25s}
@keyframes fxblue{0%{box-shadow:0 0 0 0 rgba(90,160,255,.9)}100%{box-shadow:0 0 0 18px rgba(90,160,255,0)}}
.tp-flip.fx2{animation:tpflip .5s cubic-bezier(.2,.8,.2,1) both,fxviolet 1.2s ease-out .3s;z-index:2}
@keyframes fxviolet{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(170,110,255,.95),0 0 0 0 rgba(170,110,255,.6)}30%{transform:scale(1.12);box-shadow:0 0 30px 6px rgba(170,110,255,.9),0 0 0 14px rgba(170,110,255,.35)}100%{transform:scale(1);box-shadow:0 0 18px rgba(170,110,255,.5),0 0 0 34px rgba(170,110,255,0)}}
.tp-flip.fx3{animation:tpflip3 .7s cubic-bezier(.2,.8,.2,1) both,fxgold 2.2s ease-out .6s;z-index:3}
@keyframes tpflip3{0%{transform:perspective(600px) rotateY(180deg) scale(1.6);opacity:0}60%{transform:perspective(600px) rotateY(-10deg) scale(1.35);opacity:1}100%{transform:none}}
@keyframes fxgold{0%{box-shadow:0 0 40px 10px rgba(255,215,110,.95)}50%{box-shadow:0 0 70px 18px rgba(255,215,110,.7)}100%{box-shadow:0 0 26px 4px rgba(255,215,110,.55)}}
/* suspense : écran plus sombre, le dos tremble et chauffe */
.tp-back{transition:background .6s}
.tp-back.tp-suspense{background:rgba(2,0,2,.96)}
.tp-card-back.tp-charge{animation:tpcharge 1.5s ease-in both!important}
@keyframes tpcharge{0%{transform:none;box-shadow:0 0 10px rgba(255,215,110,.4)}20%{transform:translateX(-2px) rotate(-1deg)}30%{transform:translateX(3px) rotate(1deg)}40%{transform:translateX(-3px) rotate(-1.5deg)}50%{transform:translateX(4px) rotate(1.5deg) scale(1.03)}60%{transform:translateX(-5px) rotate(-2deg) scale(1.06)}70%{transform:translateX(5px) rotate(2deg) scale(1.09)}80%{transform:translateX(-6px) rotate(-2.5deg) scale(1.12)}90%{transform:translateX(6px) rotate(2.5deg) scale(1.15)}100%{transform:scale(1.2);box-shadow:0 0 60px 20px rgba(255,215,110,1),0 0 120px 40px rgba(255,170,60,.7)}}
/* le flash et les rayons de la grosse carte */
.tp-back.tp-flash::after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,240,190,.95),rgba(255,200,90,.35) 35%,transparent 70%);animation:tpflash 1s ease-out forwards;z-index:5}
@keyframes tpflash{from{opacity:1}to{opacity:0}}
.tp-rays{position:fixed;left:50%;top:50%;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;pointer-events:none;z-index:0;opacity:0;
  background:repeating-conic-gradient(from 0deg,rgba(255,215,110,.28) 0deg 6deg,transparent 6deg 18deg);mask-image:radial-gradient(circle,#000 0,transparent 55%);-webkit-mask-image:radial-gradient(circle,#000 0,transparent 55%);animation:tprays 2.4s ease-out forwards}
.tp-rays.rainbow{background:repeating-conic-gradient(from 0deg,rgba(255,77,109,.3) 0deg 5deg,rgba(255,209,102,.3) 5deg 10deg,rgba(6,214,160,.3) 10deg 15deg,rgba(76,201,240,.3) 15deg 20deg,transparent 20deg 30deg)}
@keyframes tprays{0%{opacity:0;transform:rotate(0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:rotate(60deg) scale(1.1)}}
.tp-stage{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.tp-flip.fx1,.tp-flip.fx2,.tp-flip.fx3,.tp-card-back.tp-charge{animation:none!important}.tp-rays,.tp-back.tp-flash::after{display:none}}

/* ---------- cartes : images plus grandes (la rareté se lit à la couleur du cadre) ---------- */
.collection .cardx .face{min-height:190px}
.tp-grid{grid-template-columns:repeat(5,minmax(0,200px))}
.tp-grid .cardx .face{min-height:230px}
.tp-grid .cardx .meta:last-of-type{display:none}
@media (max-width:760px){.tp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-grid .cardx .face{min-height:170px}}
.tp-stage{width:min(1100px,100%)}
/* les logos du couvercle gardent leur taille (la règle « .bx-top span » réduisait aussi leurs conteneurs) */
.bx-top .bx-plates,.bx-top .bx-plate,.bx-top .bx-plates .bx-plate{font-size:1em}
.bx-top .bx-plates{top:1.1em;bottom:1.7em}
.bx-top .bx-plate.sm{width:1.7em;height:1.7em}
.tp-grid .cardx{aspect-ratio:auto}
.tp-plate{border-radius:50%!important;overflow:hidden}

/* ---------- cartes en carton : papier crème opaque, grain, photo bordée de blanc, cadre de la couleur de la rareté ---------- */
.cardx.paper{--paper:#f1eadc;color:#2a1f1a;border:3px solid var(--tc);
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .32  0 0 0 0 .25  0 0 0 0 .17  0 0 0 .11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),
    linear-gradient(165deg,#f6f0e4 0%,var(--paper) 55%,#e6dccb 100%);
  box-shadow:inset 0 0 0 4px var(--paper),inset 0 0 0 5px color-mix(in srgb,var(--tc) 55%,transparent),0 4px 12px rgba(0,0,0,.35)}
.cardx.paper.t-C{--tc:#9c8a76}
.cardx.paper .top{color:color-mix(in srgb,var(--tc) 80%,#000)}
.cardx.paper .face{background:#fff;border:5px solid #fff;border-radius:6px;box-shadow:0 0 0 1px rgba(0,0,0,.12),0 2px 5px rgba(0,0,0,.18);opacity:1;color:color-mix(in srgb,var(--tc) 80%,#000)}
.cardx.paper .face img{border-radius:2px}
.cardx.paper .nm{color:#21170f}
.cardx.paper .meta{color:#6e6050}
.cardx.paper .val{color:#5b4c3e}
.cardx.paper .val b{color:#21170f}
.cardx.paper button{background:#2b1d22;color:#f3e9da;border-color:rgba(0,0,0,.35)}
.cardx.paper .listed-tag{color:#4b3a2c}
/* holo : le carton garde son reflet arc-en-ciel */
.cardx.paper.holo::after{mix-blend-mode:multiply;opacity:.55}
/* ---------- usure : coins blanchis, rayure, pli, taches de café ---------- */
.cardx .wear{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;overflow:hidden}
.cardx .wear>span{position:absolute;inset:0}
.w-corners{background:radial-gradient(circle at 0 0,rgba(255,255,255,.9) 0 3px,rgba(255,255,255,.35) 7px,transparent 12px),radial-gradient(circle at 100% 0,rgba(255,255,255,.85) 0 2px,rgba(255,255,255,.3) 6px,transparent 11px),radial-gradient(circle at 0 100%,rgba(255,255,255,.8) 0 2px,rgba(255,255,255,.3) 6px,transparent 10px),radial-gradient(circle at 100% 100%,rgba(255,255,255,.9) 0 3px,rgba(255,255,255,.35) 8px,transparent 13px)}
.w-corners.heavy{filter:contrast(1.2);transform:scale(1.02);background:radial-gradient(circle at 0 0,rgba(255,255,255,.95) 0 6px,rgba(255,255,255,.4) 12px,transparent 18px),radial-gradient(circle at 100% 0,rgba(255,255,255,.9) 0 5px,rgba(255,255,255,.35) 10px,transparent 16px),radial-gradient(circle at 0 100%,rgba(255,255,255,.9) 0 5px,rgba(255,255,255,.35) 10px,transparent 16px),radial-gradient(circle at 100% 100%,rgba(255,255,255,.95) 0 6px,rgba(255,255,255,.4) 12px,transparent 18px)}
.w-scuff{background:linear-gradient(var(--a),transparent calc(var(--p) - 1px),rgba(255,255,255,.55) var(--p),transparent calc(var(--p) + 1.5px));mask-image:linear-gradient(90deg,transparent 15%,#000 35%,#000 65%,transparent 85%);-webkit-mask-image:linear-gradient(90deg,transparent 15%,#000 35%,#000 65%,transparent 85%)}
.w-crease{background:linear-gradient(var(--a),transparent calc(50% - 1.5px),rgba(0,0,0,.28) calc(50% - .5px),rgba(255,255,255,.55) calc(50% + .5px),transparent calc(50% + 2px))}
.w-coffee{background:radial-gradient(circle var(--s) at var(--x) var(--y),rgba(150,95,40,.12) 0 calc(var(--s) * .55),rgba(120,70,25,.42) calc(var(--s) * .58),rgba(120,70,25,.18) calc(var(--s) * .64),transparent calc(var(--s) * .7));mix-blend-mode:multiply}
.w-coffee.big{background:radial-gradient(circle var(--s) at var(--x) var(--y),rgba(140,85,35,.2) 0 calc(var(--s) * .5),rgba(110,62,20,.5) calc(var(--s) * .55),rgba(110,62,20,.2) calc(var(--s) * .62),transparent calc(var(--s) * .68)),radial-gradient(circle calc(var(--s) * .25) at calc(var(--x) + 18%) calc(var(--y) - 12%),rgba(120,70,25,.3) 0 40%,transparent 70%);mix-blend-mode:multiply}

/* ---------- volet Activity : fermé par défaut, ouvert avec le bouton 🔔 de l'en-tête ---------- */
@media (min-width:1640px){.shell{grid-template-columns:var(--side) minmax(0,1fr)}}
@media (min-width:2100px){.shell{grid-template-columns:var(--side) minmax(0,1fr)}}
.rail{display:flex!important;flex-direction:column;position:fixed!important;top:0;right:0;height:100vh;width:min(380px,94vw);z-index:70;
  background:rgba(20,10,14,.97);backdrop-filter:blur(8px);border-left:1px solid var(--line);box-shadow:-24px 0 50px rgba(0,0,0,.5);
  transform:translateX(105%);visibility:hidden;transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s .32s}
.rail.open{transform:none;visibility:visible;transition:transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s}
.rail-head{display:flex!important;align-items:flex-start;justify-content:space-between;gap:10px}
.rail-head>div{display:grid;gap:3px}
.rail-x{width:32px;height:32px;font-size:14px}
.act-btn{position:relative;font-size:16px}
.act-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-style:normal;font-family:var(--num);font-size:10px;font-weight:700;line-height:18px;text-align:center;background:var(--panel2);color:var(--fg);border:1px solid var(--line)}
.act-badge:empty{display:none}
.act-badge.hot{background:var(--gold);color:#2A1700;border-color:var(--gold);animation:glow 1.6s ease-in-out infinite}
/* ---------- en-tête toujours visible (collé en haut quand on défile) ---------- */
.topbar{position:sticky;top:0;z-index:40;padding:10px 0;background:rgba(26,13,18,.93);backdrop-filter:blur(8px);
  box-shadow:0 0 0 100vmax rgba(26,13,18,.93),0 8px 18px rgba(0,0,0,.25);clip-path:inset(0 -100vmax -20px)}
body.theme-pixel .topbar{background:#1A0D12;box-shadow:0 0 0 100vmax #1A0D12,0 4px 0 #0F070A}
@media (prefers-reduced-motion:reduce){.rail,.rail.open{transition:none}.act-badge.hot{animation:none}}
.topbar{clip-path:inset(0 -100vmax -20px clamp(-32px,-2.4vw,-16px))}

/* ---------- vrai format de carte (2,5 × 3,5 po = 5:7) ; les infos de jeu et les boutons sous la carte ---------- */
.collection .cardx,.tp-grid .cardx,.cardx{aspect-ratio:5/7!important;grid-template-rows:auto minmax(0,1fr) auto}
.collection .cardx .face,.tp-grid .cardx .face{min-height:0}
.cardx .top{min-height:12px}
.cardx .cx-body{display:grid;gap:1px;min-width:0}
.cardx .nm{font-size:13px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cardx .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-slot{display:grid;gap:6px;align-content:start;min-width:0}
.cx-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;padding:0 2px;font-size:12px}
.cx-info .val{font-family:var(--num);font-size:12px;color:var(--mute)}
.cx-info .val b{color:var(--fg)}
.cx-stats{font-size:11px;color:var(--mute)}
.card-slot .card-acts{display:flex;flex-wrap:wrap;gap:4px}
.card-slot .card-acts button{padding:4px 8px;font-size:11px;border-radius:7px}
.tp-grid .card-slot{animation:none}
.tp-grid .card-slot.tp-flip{animation:tpflip .45s cubic-bezier(.2,.8,.2,1) both}
.tp-grid .cardx.fx1,.tp-grid .cardx.fx2,.tp-grid .cardx.fx3{animation-delay:.25s}
.tp-grid .cardx.fx1{animation:fxblue .9s ease-out .25s}
.tp-grid .cardx.fx2{animation:fxviolet 1.2s ease-out .3s}
.tp-grid .cardx.fx3{animation:fxgold 2.2s ease-out .5s}
.tp-grid .card-slot:has(.fx3){animation:tpflip3 .7s cubic-bezier(.2,.8,.2,1) both;z-index:3}
.tp-grid .cx-stats{display:none}

/* ---------- inspecter une carte en 3D ---------- */
.cardx.inspectable{cursor:zoom-in}
.ins-back{position:fixed;inset:0;z-index:90;background:rgba(6,2,4,.9);backdrop-filter:blur(6px);display:grid;grid-template-rows:1fr auto auto;justify-items:center;align-items:center;gap:10px;padding:20px 16px}
.ins-stage{width:100%;height:100%;display:grid;place-items:center;perspective:1400px;touch-action:none;cursor:grab;user-select:none}
.ins-stage:active{cursor:grabbing}
.ins-card{position:relative;width:min(340px,70vw);aspect-ratio:5/7;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ins-card.dragging{transition:none}
.ins-card>.cardx,.ins-rear{position:absolute!important;inset:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;margin:0}
.ins-card>.cardx{cursor:inherit;font-size:16px;box-shadow:0 30px 60px rgba(0,0,0,.6)}
.ins-card>.cardx .nm{font-size:20px}
.ins-card>.cardx .meta{font-size:13px}
.ins-card>.cardx .top{font-size:13px}
.ins-glare{position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;mix-blend-mode:soft-light;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.75),rgba(255,255,255,0) 55%);transition:opacity .2s}
.ins-card>.cardx.holo .ins-glare{mix-blend-mode:color-dodge;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.6),rgba(120,220,255,.25) 30%,rgba(255,120,220,.15) 50%,transparent 70%)}
/* le dos : carton, bande de couleur, statistiques */
.ins-rear{transform:rotateY(180deg);border-radius:14px;padding:18px 16px;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:6px;color:#2a1f1a;--tc:#9c8a76;
  border:4px solid var(--tc);box-shadow:0 30px 60px rgba(0,0,0,.6),inset 0 0 0 4px #efe7d8;
  background:linear-gradient(180deg,var(--tc) 0 54px,transparent 54px),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .32  0 0 0 0 .25  0 0 0 0 .17  0 0 0 .11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"),linear-gradient(165deg,#f6f0e4,#e8dfcd)}
.ins-rear.t-R{--tc:var(--blue)}.ins-rear.t-E{--tc:var(--violet)}.ins-rear.t-L{--tc:var(--gold)}
.ins-brand{font-family:var(--num);font-weight:700;font-size:10px;letter-spacing:.2em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.ins-nm{font-family:var(--display);font-size:24px;line-height:1.05;margin-top:12px}
.ins-tier{font-family:var(--num);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--tc) 75%,#000)}
.ins-stats{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:6px 0 0;align-content:start;font-size:13px}
.ins-stats dt{color:#76675a}
.ins-stats dd{margin:0;font-family:var(--num);font-weight:700;text-align:right;color:#21170f}
.ins-foot{font-size:10px;color:#8a7b6c;text-align:center}
.ins-hint{margin:0;font-size:13px;color:var(--mute)}
.ins-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
@media (prefers-reduced-motion:reduce){.ins-card{transition:none}}
.tp-grid .cardx .meta{display:block}

/* ---------- dos de carte : le design de la série ---------- */
.ins-rear{--hue:30;padding:14px;display:grid;grid-template-rows:auto 1fr auto;gap:10px;color:#2a1f1a;border:4px solid var(--tc);
  background:radial-gradient(circle at 50% 0,hsla(var(--hue),80%,70%,.35),transparent 60%),
    repeating-linear-gradient(45deg,hsla(var(--hue),70%,60%,.12) 0 10px,transparent 10px 20px),
    repeating-linear-gradient(-45deg,hsla(var(--hue),70%,20%,.18) 0 10px,transparent 10px 20px),
    linear-gradient(165deg,hsl(var(--hue) 65% 34%),hsl(var(--hue) 75% 13%))!important}
.ins-rh{display:grid;justify-items:center;gap:4px;text-align:center;color:#fff}
.ins-plate{width:74px;height:74px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.45),0 0 0 3px hsla(var(--hue),70%,75%,.6)}
.ins-plate img{width:76%;height:76%;object-fit:contain}
.ins-set{font-family:var(--display);font-size:22px;line-height:1.05;text-shadow:0 2px 6px rgba(0,0,0,.6)}
.ins-src{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#f5d27a}
.ins-panel{align-self:start;border-radius:10px;padding:10px 12px;background:rgba(244,238,226,.95);box-shadow:inset 0 0 0 2px var(--tc),0 4px 12px rgba(0,0,0,.35)}
.ins-panel .ins-nm{font-family:var(--display);font-size:19px;line-height:1.05;margin:0}
.ins-panel .ins-stats{font-size:12px;gap:3px 10px}
.ins-emblem{justify-self:center;font-family:var(--display);font-size:18px;letter-spacing:.08em;color:#f5d27a;padding:4px 14px;border-radius:999px;border:2px solid rgba(245,210,122,.7);background:rgba(0,0,0,.3)}

/* ---------- inspecteur : informations sous la carte ---------- */
.ins-back{grid-template-rows:minmax(0,1fr) auto auto auto;overflow:auto}
.ins-card{width:min(300px,62vw,calc((100vh - 400px) * 5 / 7))}
.ins-info{width:min(640px,100%);display:grid;gap:8px;padding:12px 14px;border-radius:14px;background:rgba(36,18,24,.92);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.ins-chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
@media (max-width:620px){.ins-chips{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ins-chip{display:grid;gap:2px;padding:6px 8px;border-radius:9px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.ins-chip span{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ins-chip b{font-family:var(--num);font-size:15px;color:var(--fg)}
.ins-chip b.up{color:var(--up)} .ins-chip b.down{color:var(--down)}
.ins-spark{display:grid;gap:2px}
.ins-spark:empty{display:none}
.ins-sp-l{font-size:10px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase}
.ins-spark svg{width:100%;height:46px;display:block}
.ins-spark .sp-line{fill:none;stroke:var(--gold);stroke-width:1.6;vector-effect:non-scaling-stroke}
.ins-spark .sp-area{fill:rgba(233,185,73,.14)}
.ins-wiki{font-size:13px;line-height:1.45;color:var(--fg)}
.ins-wiki p{margin:2px 0 4px;color:#e6d6c6}
.ins-wiki a{color:var(--gold);font-size:12px}
.ins-desc{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.ins-why{font-size:11px;color:var(--mute)}
/* le jeu choisit la face visible selon l angle : pas de backface-visibility (le thème Pixel aplatit la 3D et cachait le dos) */
.ins-card>.cardx,.ins-rear{backface-visibility:visible!important;-webkit-backface-visibility:visible!important}

/* ---------- défauts d'impression ---------- */
.cardx.pf-off .face{transform:translate(var(--ox,0),var(--oy,0))}
.cardx.pf-color .face img{filter:hue-rotate(18deg) saturate(1.35) contrast(1.05)}
.p-line{background:linear-gradient(180deg,transparent calc(var(--y) - 1px),var(--c) var(--y),transparent calc(var(--y) + 1.5px));mask-image:linear-gradient(90deg,transparent 6%,#000 12%,#000 88%,transparent 94%);-webkit-mask-image:linear-gradient(90deg,transparent 6%,#000 12%,#000 88%,transparent 94%)}
.p-ink{background:radial-gradient(circle var(--s) at var(--x) var(--y),rgba(20,10,30,.75) 0 50%,rgba(20,10,30,.25) 70%,transparent 100%)}
.p-smear{background:radial-gradient(ellipse 60px 14px at var(--x) var(--y),rgba(40,20,60,.35),transparent 70%);transform:rotate(var(--a));transform-origin:var(--x) var(--y)}
.ins-defects{font-size:12px;color:#f0b37a}

/* ---------- ouverture d'un paquet : animations ---------- */
.tp-pack-wrap{display:grid;place-items:center;animation:tpdrop .75s cubic-bezier(.2,1.3,.4,1) both,tpfloat 3.2s ease-in-out .8s infinite}
.tp-pack-wrap.gone{animation:none;height:0}
@keyframes tpdrop{0%{transform:translateY(-70vh) rotate(-14deg) scale(.8);opacity:0}60%{opacity:1}80%{transform:translateY(8px) rotate(2deg) scale(1.02)}100%{transform:none}}
@keyframes tpfloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
.tp-pack{transition:transform .18s ease-out,opacity .4s}
.tp-pack::after{background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.32) 45%,transparent 60%);background-size:260% 100%;background-position:var(--shx,50%) 0;animation:none}
.tp-pack.tearing{animation:tpjitter .12s linear infinite}
@keyframes tpjitter{0%,100%{translate:0 0}25%{translate:-1px 0}75%{translate:1px 0}}
.tp-top{transition:transform .08s linear}
.tp-top.off{transition:transform .7s cubic-bezier(.3,.7,.3,1),opacity .7s;transform:translate(110px,-220px) rotate(38deg)!important;opacity:0}
.tp-pack.gone{transition:transform .6s cubic-bezier(.5,0,.8,.4),opacity .5s}
/* éclats d'aluminium */
.tp-shred{position:fixed;width:7px;height:4px;border-radius:1px;pointer-events:none;z-index:6;box-shadow:0 0 4px rgba(255,255,255,.6);animation:tpshred .9s cubic-bezier(.2,.7,.4,1) forwards}
@keyframes tpshred{to{transform:translate(var(--dx),calc(var(--dy) + 120px)) rotate(var(--r));opacity:0}}
/* gerbe de lumière à l'ouverture */
.tp-burst{position:fixed;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;pointer-events:none;z-index:5;background:radial-gradient(circle,rgba(255,250,220,1),rgba(255,215,110,.7) 35%,transparent 70%);animation:tpburst 1.1s ease-out forwards}
@keyframes tpburst{0%{transform:scale(1);opacity:1}100%{transform:scale(26);opacity:0}}
/* les cartes montent du paquet */
.tp-card-back{animation:tprise .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 45ms)}
@keyframes tprise{from{transform:translateY(140px) scale(.85);opacity:0}}
.tp-card-back.glow-l{animation:tprise .55s both,tppulse 1s ease-in-out infinite}
.tp-card-back.glow-x{animation:tprise .55s both,tppulse .7s ease-in-out infinite}
.tp-stack:hover .tp-card-back:last-child{transform:translate(calc(var(--i) * 1.5px),calc(var(--i) * -1.5px - 6px)) rotate(-2deg)}
.tp-grid .card-slot:has(.fx3),.tp-grid .card-slot.tp-flip{animation:none}
/* fin : total qui défile, meilleure carte */
.tp-hint.tp-total{font-family:var(--num);font-size:20px;font-weight:700;color:var(--gold)}
.cardx.tp-best{box-shadow:0 0 0 3px var(--gold),0 0 26px rgba(233,185,73,.7)!important;animation:tpbest 1.6s ease-in-out infinite}
@keyframes tpbest{50%{box-shadow:0 0 0 3px var(--gold),0 0 40px rgba(233,185,73,.95)}}
@media (prefers-reduced-motion:reduce){.tp-pack-wrap,.tp-pack.tearing,.cardx.tp-best,.tp-card-back{animation:none!important}}

/* ---------- panneaux repliables (suivi des stocks) ---------- */
details.fold>summary{list-style:none;cursor:pointer;user-select:none}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary h2::before{content:"▸ ";color:var(--gold);display:inline-block;transition:transform .2s}
details.fold[open]>summary h2::before{content:"▾ "}
details.fold:not([open]){padding-bottom:14px}
details.fold:not([open])>summary{margin-bottom:0}
details.fold .fold-cta{color:var(--gold);font-weight:600}
details.fold[open] .fold-cta{display:none}
details.fold>summary:hover h2{color:var(--gold)}

/* ================= casino : mise à jour ================= */
/* mise en page : jeux à gauche, jackpot et gros gains à droite */
.cs-top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.chip-tray{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line)}
.cs-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
@media (max-width:1180px){.cs-layout{grid-template-columns:minmax(0,1fr)}}
.cs-main{display:grid;gap:16px;min-width:0}
.cs-side{display:grid;gap:16px;position:sticky;top:76px}
.cs-jp{text-align:center;display:grid;gap:6px;background:radial-gradient(ellipse at 50% 0,rgba(233,185,73,.25),transparent 70%),var(--panel);border-color:rgba(233,185,73,.45)}
.cs-jp-l{font-size:11px;letter-spacing:.18em;font-weight:700;color:var(--gold)}
.cs-jp-v{font-family:var(--num);font-weight:800;font-size:32px;color:var(--gold);text-shadow:0 0 18px rgba(233,185,73,.55);animation:jpglow 2.4s ease-in-out infinite}
@keyframes jpglow{50%{text-shadow:0 0 30px rgba(233,185,73,.9)}}
.cs-jp-s{font-size:12px;color:var(--mute)}
.cs-feed{display:grid;gap:6px;max-height:420px;overflow:auto}
.cs-win{display:grid;grid-template-columns:24px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:7px 9px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:13px}
.cs-win .cs-win-ic{grid-row:1/3;font-size:18px}
.cs-win small{grid-column:2/4;font-size:11px}
.cs-win.jp{border-color:var(--gold);background:linear-gradient(90deg,rgba(233,185,73,.18),var(--panel2))}
.cs-win-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* tapis de jeu : feutre vert, rebord en bois doré */
.panel.game.felt{position:relative;border:10px solid #4a2814;border-radius:22px;padding:22px;color:#f3efe6;
  background:radial-gradient(ellipse at 50% 35%,#21804f 0%,#155f39 55%,#0d4128 100%);
  box-shadow:inset 0 0 0 2px #c9a14a,inset 0 0 60px rgba(0,0,0,.45),0 14px 30px rgba(0,0,0,.45)}
.panel.game.felt::before{content:"";position:absolute;inset:0;border-radius:12px;pointer-events:none;opacity:.25;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.felt .game-msg{color:#d9e8dd}
.felt .game-bar span{color:#cfe3d5}
.felt .game-bar b{color:#fff}
.felt .pay-row{background:rgba(0,0,0,.22)}
.felt .pay-row.hit{background:rgba(233,185,73,.3);color:#ffe29a;box-shadow:0 0 0 1px var(--gold)}
/* jetons de poker : bord à bandes, une couleur par valeur */
.chip-btn{--cc:#c0392b;position:relative;width:46px;height:46px;min-width:0!important;padding:0!important;border-radius:50%!important;display:inline-grid!important;place-items:center;border:0!important;color:#fff!important;cursor:pointer;
  background:radial-gradient(circle,var(--cc) 0 52%,#fff 53% 56%,var(--cc) 57% 100%)!important;box-shadow:0 3px 0 rgba(0,0,0,.45),inset 0 0 0 3px rgba(0,0,0,.15)!important;transition:transform .12s}
.chip-btn::before{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(#fff 0 12deg,transparent 12deg 45deg);-webkit-mask:radial-gradient(circle,transparent 0 70%,#000 71%);mask:radial-gradient(circle,transparent 0 70%,#000 71%);opacity:.9}
.chip-btn span{position:relative;font-family:var(--num);font-size:11px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.chip-btn[data-v="5"]{--cc:#c0392b}.chip-btn[data-v="10"]{--cc:#2468c9}.chip-btn[data-v="25"]{--cc:#1f8a4c}.chip-btn[data-v="50"]{--cc:#d97a14}.chip-btn[data-v="100"]{--cc:#1b1b1f}.chip-btn[data-v="500"]{--cc:#7b2fbf}
.chip-btn:hover{transform:translateY(-2px)}
.chip-btn[aria-pressed="true"]{transform:translateY(-5px);box-shadow:0 7px 0 rgba(0,0,0,.4),0 0 0 3px var(--gold),0 0 16px rgba(233,185,73,.7)!important;color:#fff!important}
body.theme-pixel .chip-btn{border-radius:50%!important;min-width:0;width:46px;height:46px}
/* roulette : la roue, la bille, le moyeu */
.roul{grid-template-columns:280px minmax(0,1fr);gap:24px}
@media (max-width:860px){.roul{grid-template-columns:minmax(0,1fr)}.wheel-col{justify-self:center}}
.wheel-col{display:grid;gap:14px;justify-items:center}
.rw-wrap{--rw:260px;position:relative;width:var(--rw);height:var(--rw);border-radius:50%;background:radial-gradient(circle,#3a2010 60%,#6b3e1c 61%,#2a160a 72%,#c9a14a 73%,#7a5420 76%,#2a160a 77%);box-shadow:0 14px 30px rgba(0,0,0,.55),inset 0 0 20px rgba(0,0,0,.6)}
.rw{position:absolute;inset:12%;border-radius:50%;box-shadow:inset 0 0 0 3px #c9a14a,inset 0 0 18px rgba(0,0,0,.5);will-change:transform}
.rw::after{content:"";position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,#5a3418,#2a160a 70%);box-shadow:0 0 0 3px #c9a14a,inset 0 0 12px rgba(0,0,0,.6)}
.rw-n{position:absolute;left:50%;top:50%;font-family:var(--num);font-size:10px;font-weight:800;color:#fff;transform:translate(-50%,-50%) rotate(var(--a)) translateY(calc(var(--rw) * -0.33));text-shadow:0 1px 1px rgba(0,0,0,.7);z-index:1}
.rw-ball-track{position:absolute;inset:0;pointer-events:none;z-index:3}
.rw-ball{position:absolute;left:50%;top:50%;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d8d8d8 45%,#8a8a8a 100%);box-shadow:0 2px 4px rgba(0,0,0,.6);will-change:transform}
.rw-hub{position:absolute;left:50%;top:50%;width:30%;height:30%;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;z-index:2;background:radial-gradient(circle at 40% 35%,#f5d27a,#b98a2a 60%,#6b4a12);box-shadow:0 3px 8px rgba(0,0,0,.6)}
.rw-hub span{font-family:var(--num);font-weight:800;font-size:26px;color:#2a1700}
.rw-hub[data-c="red"] span{color:#8e1d2e}.rw-hub[data-c="green"] span{color:#0d5a33}
.rl-hist{max-width:280px}
.rl-hist span:first-child{transform:scale(1.25);box-shadow:0 0 0 2px var(--gold)}
/* tapis de roulette */
.felt .rl-n,.felt .rl-o{border:1px solid rgba(255,255,255,.55);border-radius:4px}
.felt .rl-o{background:transparent;color:#fff;font-weight:700}
.felt .rl-o.red{background:#b3263a}.felt .rl-o.black{background:#151015}
.felt .rl-n.green{background:#1e7f4e}
.rl-n.rl-win,.rl-o.rl-win{animation:rlwin .5s ease-in-out 6 alternate;z-index:2}
@keyframes rlwin{to{box-shadow:0 0 0 3px #ffe29a,0 0 22px rgba(255,226,154,.95);transform:scale(1.06)}}
/* les mises : une pile de jetons posée sur la case */
.stake{--cc:#c0392b;right:50%!important;top:50%!important;transform:translate(50%,-50%);width:26px;height:26px;padding:0!important;display:grid;place-items:center;font-size:9px!important;color:#fff!important;z-index:2;
  background:radial-gradient(circle,var(--cc) 0 50%,#fff 51% 55%,var(--cc) 56%)!important;border-radius:50%!important;box-shadow:0 2px 0 rgba(0,0,0,.5),0 4px 0 rgba(0,0,0,.25)!important;text-shadow:0 1px 1px rgba(0,0,0,.7)}
.stake[data-v="10"]{--cc:#2468c9}.stake[data-v="25"]{--cc:#1f8a4c}.stake[data-v="50"]{--cc:#d97a14}.stake[data-v="100"]{--cc:#1b1b1f}.stake[data-v="500"]{--cc:#7b2fbf}
.stake.drop{animation:chipdrop .25s cubic-bezier(.3,1.6,.5,1)}
@keyframes chipdrop{from{transform:translate(50%,-130%) scale(1.2);opacity:.4}}
/* machine à sous : caisse lumineuse, rouleaux qui défilent */
.slot-machine{position:relative;display:grid;gap:14px;justify-items:center;padding:18px 22px 20px;border-radius:26px;background:linear-gradient(180deg,#8e1d2e,#4a0f18);box-shadow:0 0 0 4px #c9a14a,0 14px 34px rgba(0,0,0,.6),inset 0 2px 0 rgba(255,255,255,.2)}
.slot-machine::before{content:"";position:absolute;inset:-9px;border-radius:32px;pointer-events:none;border:6px dotted #ffe29a;animation:lights 1.2s steps(2) infinite;opacity:.9}
@keyframes lights{50%{border-color:#ff5468}}
.slot-machine.win::before{animation-duration:.25s}
.slot-machine.jackpot::before{animation-duration:.12s}
.slot-machine.jackpot{box-shadow:0 0 0 4px #ffe29a,0 0 60px rgba(255,226,154,.9),0 14px 34px rgba(0,0,0,.6);animation:jpshake .4s ease-in-out 4}
@keyframes jpshake{25%{transform:rotate(-1deg)}75%{transform:rotate(1deg)}}
.sm-jp{display:grid;justify-items:center;padding:6px 18px;border-radius:12px;background:#120608;box-shadow:inset 0 0 0 2px #c9a14a}
.sm-jp span{font-size:10px;letter-spacing:.2em;color:#f5d27a;font-weight:700}
.sm-jp b{font-family:var(--num);font-size:26px;color:#ff5468;text-shadow:0 0 10px rgba(255,84,104,.8);letter-spacing:.04em}
.reels{position:relative;gap:10px;padding:12px;border-radius:14px;background:#120608;border:3px solid #c9a14a}
.reel{position:relative;width:min(24vw,118px);height:min(36vw,170px);overflow:hidden;display:block;border-radius:10px;background:linear-gradient(#d9cfbf,#fff8ec 30%,#fff8ec 70%,#d9cfbf);box-shadow:inset 0 10px 14px rgba(0,0,0,.35),inset 0 -10px 14px rgba(0,0,0,.35)}
.reel .strip{display:grid;grid-auto-rows:calc(min(36vw,170px) / 3);transform:translateY(0)}
.reel .strip span{display:grid;place-items:center;font-size:min(10vw,48px);line-height:1}
.reel.spinning .strip{animation:reelspin .28s linear infinite;filter:blur(2px)}
@keyframes reelspin{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.reel.stop .strip{animation:reelstop .35s cubic-bezier(.3,1.5,.5,1)}
@keyframes reelstop{from{transform:translateY(-18%)}}
.payline{position:absolute;left:6px;right:6px;top:50%;height:2px;background:rgba(255,84,104,.65);box-shadow:0 0 8px rgba(255,84,104,.8);pointer-events:none}
.slot-machine.tease .reel:nth-child(3){box-shadow:inset 0 10px 14px rgba(0,0,0,.35),0 0 0 3px #ffe29a,0 0 24px rgba(255,226,154,.9);animation:tease .3s ease-in-out infinite alternate}
@keyframes tease{to{transform:scale(1.03)}}
.slot-machine .game-bar span{color:#f5d27a}
/* cartes à jouer en carton : coins, couleur au centre, dos à motif ; glissent du sabot et se retournent */
.felt .hand{min-height:130px;gap:10px}
.pcard{width:84px;height:118px;border-radius:8px;display:block;color:#1e1a1c;padding:0;
  background:linear-gradient(165deg,#fffdf7,#f1eadc);box-shadow:0 6px 14px rgba(0,0,0,.45),inset 0 0 0 1px rgba(0,0,0,.12)}
.pcard.red{color:#b3263a}
.pc-c{position:absolute;display:grid;justify-items:center;line-height:.95}
.pc-c b{font-family:var(--num);font-size:17px;font-weight:800}
.pc-c i{font-style:normal;font-size:15px}
.pc-c.tl{left:6px;top:5px}.pc-c.br{right:6px;bottom:5px;transform:rotate(180deg)}
.pc-s{position:absolute;inset:0;display:grid;place-items:center;font-size:40px;line-height:1}
.pc-s.face{font-family:var(--display);font-size:28px;letter-spacing:-.02em}
.pcard.back{background:repeating-linear-gradient(45deg,#8e1d2e 0 7px,#6d1523 7px 14px);border:5px solid #fffdf7}
.pcard.back::after{content:"WT";position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:16px;color:#f5d27a;opacity:.85}
.pcard.deal{animation:carddeal .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes carddeal{from{transform:translate(260px,-160px) rotate(25deg);opacity:0}}
.pcard.flip{animation:cardflip .5s ease-in-out both}
@keyframes cardflip{0%{transform:rotateY(90deg) scale(1.05)}100%{transform:none}}
.bj{position:relative}
.bj-shoe{position:absolute;right:6px;top:4px;width:62px;height:84px;border-radius:8px;background:linear-gradient(160deg,#3a2010,#1a0d06);box-shadow:inset 0 0 0 2px #c9a14a,0 6px 12px rgba(0,0,0,.5)}
.bj-shoe::after{content:"";position:absolute;inset:10px 8px;border-radius:5px;background:repeating-linear-gradient(45deg,#8e1d2e 0 6px,#6d1523 6px 12px)}
.felt .bj-lbl{color:#cfe3d5}.felt .bj-lbl b{color:#fff}
.hand.won .pcard{box-shadow:0 0 0 3px var(--gold),0 0 18px rgba(233,185,73,.7)}
.hand.lost .pcard{filter:saturate(.7) brightness(.85)}
.vp-hand .pcard{width:96px;height:134px}
.vp-hand .pcard.held{outline:none;transform:translateY(-12px);box-shadow:0 0 0 3px var(--gold),0 14px 22px rgba(0,0,0,.5)}
.vp-hand .pcard.won{box-shadow:0 0 0 3px var(--gold),0 0 20px rgba(233,185,73,.8)}
.pcard em{bottom:-24px;color:#ffe29a}
@media (prefers-reduced-motion:reduce){.pcard.deal,.pcard.flip,.reel.spinning .strip,.reel.stop .strip,.slot-machine::before,.slot-machine.jackpot,.cs-jp-v,.rl-n.rl-win,.rl-o.rl-win,.stake.drop{animation:none!important}}

/* ================= machine à sous réaliste + Moon Rush ================= */
/* rouleaux (classe renommée : « strip » servait déjà aux rangées de statistiques) */
.reel .reel-strip{display:grid;grid-template-columns:1fr;grid-auto-rows:calc(min(36vw,170px) / 3);transform:translateY(0)}
.reel .reel-strip span{display:grid;place-items:center;font-size:min(10vw,50px);line-height:1;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}
.reel.spinning .reel-strip{animation:reelspin .26s linear infinite;filter:blur(2.5px)}
.reel.stop .reel-strip{animation:reelstop .4s cubic-bezier(.3,1.6,.5,1)}
/* la caisse : marquise lumineuse, fenêtre chromée, compteurs, boutons, bac à pièces, manette */
.slot-cab{position:relative;display:grid;gap:12px;justify-items:center;width:min(560px,100%);padding:16px 22px 22px;margin-right:46px;border-radius:30px 30px 16px 16px;
  background:linear-gradient(90deg,#3b0a12 0%,#8e1d2e 18%,#b3263a 50%,#8e1d2e 82%,#3b0a12 100%);
  box-shadow:0 0 0 5px #c9a14a,0 0 0 9px #4a2814,0 20px 40px rgba(0,0,0,.6),inset 0 3px 0 rgba(255,255,255,.25)}
.sc-marquee{position:relative;display:grid;justify-items:center;width:100%;padding:10px 12px 8px;border-radius:20px 20px 10px 10px;background:linear-gradient(#1a0508,#3b0a12);box-shadow:inset 0 0 0 3px #c9a14a}
.sc-marquee::before{content:"";position:absolute;inset:-7px;border-radius:24px 24px 14px 14px;border:5px dotted #ffe29a;animation:lights 1.1s steps(2) infinite}
.sc-title{font-family:var(--display);font-size:34px;letter-spacing:.06em;color:#ffe29a;text-shadow:0 0 12px rgba(255,200,80,.9),0 3px 0 #8e1d2e}
.sc-marquee small{font-size:10px;letter-spacing:.3em;color:#f5d27a}
.slot-cab .sm-jp b{font-size:24px}
.sc-window{position:relative;padding:10px;border-radius:16px;background:linear-gradient(145deg,#f3f3f3,#8d8d8d 45%,#e6e6e6 55%,#7a7a7a);box-shadow:inset 0 2px 4px rgba(255,255,255,.7),0 6px 14px rgba(0,0,0,.5)}
.sc-window .reels{border:0;background:#0b0305;border-radius:10px}
.pl-arrow{position:absolute;top:50%;width:0;height:0;border:9px solid transparent;transform:translateY(-50%);z-index:2}
.pl-arrow.l{left:-4px;border-left-color:#ff5468;filter:drop-shadow(0 0 4px #ff5468)}
.pl-arrow.r{right:-4px;border-right-color:#ff5468;filter:drop-shadow(0 0 4px #ff5468)}
.sc-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
.sc-meter{display:grid;justify-items:center;padding:6px 8px;border-radius:8px;background:#0b0305;box-shadow:inset 0 0 0 2px #5a1520}
.sc-meter span{font-size:9px;letter-spacing:.22em;color:#f5d27a;font-weight:700}
.sc-meter b{font-family:var(--num);font-size:18px;color:#ffb347;text-shadow:0 0 8px rgba(255,160,60,.7)}
.sc-meter.win b{color:#5dff9a;text-shadow:0 0 8px rgba(93,255,154,.7)}
.sc-buttons{display:grid;grid-template-columns:repeat(3,auto) 1fr;gap:8px;width:100%;align-items:center}
.sc-buttons button{font-family:var(--num);font-weight:800;font-size:12px;padding:10px 12px;border-radius:10px;color:#2a1700;border:0;cursor:pointer;
  background:linear-gradient(#ffe29a,#c9a14a);box-shadow:0 4px 0 #7a5420,inset 0 1px 0 rgba(255,255,255,.7)}
.sc-buttons button:active{transform:translateY(3px);box-shadow:0 1px 0 #7a5420}
.sc-buttons button:disabled{opacity:.45;cursor:default}
.sc-buttons .sc-spin{justify-self:end;width:96px;height:56px;border-radius:50%;font-size:16px;color:#fff;background:radial-gradient(circle at 40% 35%,#ff7a8a,#d42a44 55%,#7d0f20);box-shadow:0 5px 0 #4a0710,0 0 18px rgba(255,84,104,.6),inset 0 2px 0 rgba(255,255,255,.4)}
.sc-buttons .sc-spin:active{box-shadow:0 2px 0 #4a0710}
.sc-tray{width:70%;height:22px;border-radius:0 0 18px 18px;background:linear-gradient(#0b0305,#3b0a12);box-shadow:inset 0 6px 8px rgba(0,0,0,.7),0 0 0 2px #c9a14a}
.sc-lever{position:absolute;right:-50px;top:42%;width:40px;height:150px;padding:0;border:0;background:transparent;cursor:pointer}
.sc-lever::before{content:"";position:absolute;left:0;bottom:0;width:22px;height:44px;border-radius:6px;background:linear-gradient(90deg,#6b6b6b,#e8e8e8,#6b6b6b);box-shadow:0 3px 6px rgba(0,0,0,.5)}
.sc-lever .stick{position:absolute;left:8px;bottom:30px;width:7px;height:105px;border-radius:4px;background:linear-gradient(90deg,#7a7a7a,#f1f1f1,#7a7a7a);transform-origin:50% 100%}
.sc-lever .knob{position:absolute;left:-2px;bottom:122px;width:27px;height:27px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff8a99,#d42a44 55%,#6d0d1b);box-shadow:0 3px 6px rgba(0,0,0,.5)}
.sc-lever.pulled .stick{animation:leverstick .55s ease-in-out}
.sc-lever.pulled .knob{animation:leverknob .55s ease-in-out}
@keyframes leverstick{45%{transform:scaleY(-.15)}}
@keyframes leverknob{45%{transform:translateY(104px)}}
.sc-lever:hover .knob{filter:brightness(1.15)}
.slot-cab.win .sc-marquee::before{animation-duration:.22s}
.slot-cab.jackpot .sc-marquee::before{animation-duration:.1s}
.slot-cab.jackpot{animation:jpshake .4s ease-in-out 4;box-shadow:0 0 0 5px #ffe29a,0 0 0 9px #4a2814,0 0 70px rgba(255,226,154,.9)}
.slot-cab.tease .reel:nth-child(3){box-shadow:0 0 0 3px #ffe29a,0 0 24px rgba(255,226,154,.9);animation:tease .3s ease-in-out infinite alternate}
@media (max-width:620px){.slot-cab{margin-right:0}.sc-lever{display:none}.sc-title{font-size:26px}}
/* jeton posé sur une mise extérieure : dans le coin, pour ne pas cacher le mot */
.rl-o .stake{right:4px!important;top:50%!important;transform:translate(0,-50%)}
/* ---------- Moon Rush ---------- */
.cl-felt{background:radial-gradient(ellipse at 50% 20%,#2b1a5c 0%,#160d36 55%,#0b0620 100%)!important;box-shadow:inset 0 0 0 2px #c9a14a,inset 0 0 70px rgba(0,0,0,.5),0 14px 30px rgba(0,0,0,.45)!important}
.cl-felt::after{content:"";position:absolute;inset:0;border-radius:12px;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 1.5px) 0 0/43px 43px,radial-gradient(circle,rgba(255,255,255,.5) 0 1px,transparent 1.5px) 21px 17px/61px 61px;opacity:.35}
.cl{position:relative;z-index:1;display:grid;gap:14px;justify-items:center}
.cl-cab{display:grid;gap:12px;justify-items:center;width:min(640px,100%);padding:16px;border-radius:24px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));box-shadow:0 0 0 3px #c9a14a,0 0 40px rgba(140,100,255,.35)}
.cl-head{display:grid;justify-items:center;gap:2px;text-align:center}
.cl-head b{font-family:var(--display);font-size:32px;letter-spacing:.08em;background:linear-gradient(#fff6c8,#ffd24a 50%,#ff9e2c);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 10px rgba(255,200,80,.6))}
.cl-head span{font-size:12px;color:#c9c2ff}
.cl-stage{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;width:100%;align-items:start}
@media (max-width:620px){.cl-stage{grid-template-columns:minmax(0,1fr)}}
.cl-grid{position:relative;width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;background:rgba(10,5,30,.65);box-shadow:inset 0 0 0 2px rgba(201,161,74,.6),inset 0 0 30px rgba(0,0,0,.6)}
.cl-cell{position:absolute;width:20%;height:20%;display:grid;place-items:center;transition:top .42s cubic-bezier(.3,1.25,.5,1)}
.cl-cell span{font-size:clamp(26px,5.4vw,46px);line-height:1;filter:drop-shadow(0 3px 3px rgba(0,0,0,.5));transition:transform .2s}
.cl-cell::before{content:"";position:absolute;inset:6%;border-radius:14px;background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.cl-cell.drop{animation:cldrop .5s cubic-bezier(.3,1.3,.5,1) both}
@keyframes cldrop{from{transform:translateY(-560%)}}
.cl-cell.out{animation:clout .3s ease-in forwards}
@keyframes clout{to{transform:translateY(560%);opacity:0}}
.cl-cell.hit::before{background:radial-gradient(circle,rgba(255,226,154,.55),rgba(255,180,60,.15) 70%);box-shadow:0 0 0 2px #ffe29a,0 0 18px rgba(255,210,100,.9)}
.cl-cell.hit span{animation:clhit .35s ease-in-out infinite alternate}
@keyframes clhit{to{transform:scale(1.18) rotate(-6deg)}}
.cl-cell.pop span{animation:clpop .32s ease-in forwards}
.cl-cell.pop::before{animation:clburst .32s ease-out forwards}
@keyframes clpop{to{transform:scale(1.8);opacity:0;filter:blur(2px) brightness(2)}}
@keyframes clburst{to{transform:scale(1.6);opacity:0}}
.cl-side{display:grid;gap:10px}
.cl-mult,.cl-win{display:grid;justify-items:center;padding:8px;border-radius:12px;background:rgba(10,5,30,.7);box-shadow:inset 0 0 0 2px rgba(201,161,74,.6)}
.cl-mult span,.cl-win span{font-size:9px;letter-spacing:.22em;color:#c9c2ff;font-weight:700}
.cl-mult b{font-family:var(--num);font-size:34px;color:#ffd24a;text-shadow:0 0 14px rgba(255,200,80,.8)}
.cl-mult.bump{animation:clbump .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes clbump{30%{transform:scale(1.35)}}
.cl-win b{font-family:var(--num);font-size:20px;color:#5dff9a;text-shadow:0 0 10px rgba(93,255,154,.6)}
.cl-steps{display:grid;gap:4px;max-height:200px;overflow:hidden}
.cl-step{display:flex;justify-content:space-between;gap:6px;font-size:12px;padding:4px 7px;border-radius:7px;background:rgba(255,255,255,.06);color:#e9e4ff;animation:clstep .3s ease-out}
.cl-step b{font-family:var(--num);color:#5dff9a}
@keyframes clstep{from{transform:translateX(16px);opacity:0}}
.cl-cab.win{box-shadow:0 0 0 3px #ffe29a,0 0 50px rgba(255,210,100,.6)}
.cl-cab.big{box-shadow:0 0 0 4px #ffe29a,0 0 80px rgba(255,210,100,.9);animation:jpshake .4s ease-in-out 3}
.cl-felt .game-msg{color:#d6d0ff}
.cl-pay{display:grid;gap:3px;width:min(640px,100%);font-size:13px}
.cl-pay-row{display:grid;grid-template-columns:70px repeat(6,minmax(0,1fr));gap:4px;align-items:center;padding:4px 8px;border-radius:8px;background:rgba(255,255,255,.05);color:#e9e4ff}
.cl-pay-row span{font-size:20px}
.cl-pay-row b{font-family:var(--num);font-size:12px;text-align:right}
.cl-pay-row.head{background:transparent;color:#c9c2ff;font-size:11px}
.cl-pay-row.head span{font-size:11px}
@media (prefers-reduced-motion:reduce){.cl-cell,.cl-cell.drop,.cl-cell.out,.cl-cell.hit span,.cl-cell.pop span,.cl-mult.bump,.cl-cab.big,.sc-lever.pulled .stick,.sc-lever.pulled .knob,.sc-marquee::before{animation:none!important;transition:none!important}}

/* manette qu'on attrape et qu'on descend : --p de 0 (en haut) à 1 (tout en bas) */
.sc-lever{--p:0;touch-action:none;cursor:grab;width:60px;right:-60px}
.sc-lever.grab{cursor:grabbing}
.sc-lever .stick{transform:scaleY(calc(1 - var(--p) * 1.15))}
.sc-lever .knob{transform:translateY(calc(var(--p) * 104px)) scale(calc(1 + var(--p) * .12))}
.sc-lever.spring .stick,.sc-lever.spring .knob{transition:transform .45s cubic-bezier(.3,1.7,.5,1)}
.sc-lever.grab .knob{filter:brightness(1.2);box-shadow:0 0 0 3px rgba(255,226,154,.6),0 3px 6px rgba(0,0,0,.5)}
.sc-lever::after{content:"";position:absolute;left:4px;top:-6px;width:20px;height:150px;border-radius:10px;background:linear-gradient(rgba(255,84,104,0),rgba(255,84,104,.25) 70%,rgba(93,255,154,.35) 75%,rgba(255,84,104,0));opacity:0;transition:opacity .2s;pointer-events:none}
.sc-lever.grab::after{opacity:1}

/* ================= tenir dans un écran 1920 × 1080 (zone visible ~950 px), et grandir sur les écrans plus grands ================= */
/* casino : statistiques plus compactes */
#page-casino .strip .kpi{padding:10px 14px}
#page-casino .strip .k-sub{display:none}
/* machine classique : la machine à gauche, le message et la table des gains à droite */
.slots{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"cab msg" "cab pay";align-items:start;justify-items:stretch;column-gap:28px;row-gap:12px}
.slots .slot-cab{grid-area:cab}
.slots .game-msg{grid-area:msg;text-align:left;justify-content:flex-start}
.slots .paytable{grid-area:pay;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-width:none}
.slot-cab{width:500px;gap:9px;padding:12px 18px 16px}
.sc-marquee{padding:6px 12px 5px}
.sc-title{font-size:26px}
.slot-cab .sm-jp{padding:3px 14px}
.slot-cab .sm-jp b{font-size:20px}
.reel{height:132px;width:112px}
.reel .reel-strip{grid-auto-rows:44px}
.reel .reel-strip span{font-size:36px}
.sc-meter{padding:4px 8px}
.sc-meter b{font-size:16px}
.sc-buttons .sc-spin{height:48px}
.sc-tray{height:14px}
.sc-lever{top:36%}
/* Moon Rush : la grille à gauche (taille selon la hauteur de l'écran), les compteurs et le bouton à droite, la table dessous à droite */
.cl{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"cab msg" "cab pay";align-items:start;justify-items:stretch;column-gap:28px;row-gap:12px}
.cl-cab{grid-area:cab;width:auto;padding:12px;gap:8px}
.cl .game-msg{grid-area:msg;text-align:left}
.cl-pay{grid-area:pay;width:100%}
.cl-head b{font-size:24px}
.cl-stage{grid-template-columns:auto 140px}
:root{--z:1}
.cl-grid{width:clamp(280px,calc(100vh / var(--z) - 560px),520px)}
.cl-cell span{font-size:clamp(22px,calc((100vh / var(--z) - 560px) / 11),44px)}
.cl-cab .game-bar{justify-content:center}
@media (max-width:1180px){.slots,.cl{grid-template-columns:minmax(0,1fr);grid-template-areas:"cab" "msg" "pay";justify-items:center}}
/* écrans plus grands que 1920 : tout grandit en proportion (même mise en page, rien de plus petit) */
.sc-lever,body.theme-pixel .sc-lever{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;outline-offset:4px}

/* ================= casino : Plinko, Crash, VIP, auto-spin ================= */
.gametabs .mp{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--up);border:1px solid rgba(70,216,154,.5);border-radius:6px;padding:1px 4px;margin-left:4px;vertical-align:middle}
.auto-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:13px}
.auto-bar select{padding:4px 6px}
.auto-chk{display:flex;align-items:center;gap:5px;color:var(--mute)}
.auto-bar button{padding:6px 12px;font-weight:700}
/* VIP */
.cs-vip{display:grid;gap:8px}
.vip-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}
.vip-badge{font-family:var(--num);font-weight:800;font-size:13px;letter-spacing:.14em;padding:4px 10px;border-radius:8px;color:#1a0d12}
.vip-badge.v0{background:linear-gradient(135deg,#d58b4f,#8a4e22)}.vip-badge.v1{background:linear-gradient(135deg,#f2f2f2,#9aa0a6)}.vip-badge.v2{background:linear-gradient(135deg,#ffe29a,#c9a14a)}
.vip-badge.v3{background:linear-gradient(135deg,#e6f3ff,#8fb3d9)}.vip-badge.v4{background:linear-gradient(135deg,#c9f1ff,#7b6cff,#ff7ad9);color:#fff;box-shadow:0 0 14px rgba(140,120,255,.7)}
.vip-bar{height:8px;border-radius:5px;background:var(--panel2);overflow:hidden}
.vip-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),#ffe29a);border-radius:5px}
.vip-next{font-size:12px;color:var(--mute)}
.vip-rb{display:flex;align-items:center;gap:8px;font-size:13px}
.vip-rb b{font-family:var(--num);color:var(--up);margin-right:auto}
.cs-vip .note{margin:0;font-size:11px}
/* Plinko */
.pk-felt{background:radial-gradient(ellipse at 50% 15%,#1d2a5a 0%,#101838 60%,#090d22 100%)!important}
.plk{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
@media (max-width:1180px){.plk{grid-template-columns:minmax(0,1fr)}}
.pk-board{position:relative;width:100%;max-width:680px;justify-self:center}
.pk-board canvas{display:block;width:100%;height:clamp(320px,calc(100vh / var(--z,1) - 420px),620px);aspect-ratio:auto}
.pk-side{display:grid;gap:12px}
.pk-head b{display:block;font-family:var(--display);font-size:28px;letter-spacing:.06em;color:#ffd24a;text-shadow:0 0 12px rgba(255,200,80,.5)}
.pk-head span{font-size:13px;color:#c8d2ff}
.pk-risk button[aria-pressed="true"]{background:var(--gold)!important;color:#2a1700!important;border-color:var(--gold)!important}
.plk .game-msg{color:#dbe2ff}
.pk-last{display:flex;flex-wrap:wrap;gap:4px}
.pk-last span{font-family:var(--num);font-size:11px;font-weight:800;color:#1a0d12;padding:3px 6px;border-radius:6px}
.plk .game-bar span{color:#c8d2ff}
/* Crash */
.cr-felt{background:radial-gradient(ellipse at 30% 100%,#3a1640 0%,#1a0c26 55%,#0b0614 100%)!important}
.cr{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
@media (max-width:1180px){.cr{grid-template-columns:minmax(0,1fr)}}
.cr-screen{position:relative;border-radius:16px;overflow:hidden;background:rgba(5,2,10,.65);box-shadow:inset 0 0 0 2px rgba(201,161,74,.5)}
.cr-screen canvas{display:block;width:100%;height:clamp(300px,calc(100vh / var(--z,1) - 430px),560px)}
.cr-big{position:absolute;left:0;right:0;top:22%;text-align:center;font-family:var(--num);font-weight:800;font-size:clamp(48px,6vw,84px);color:#fff;text-shadow:0 0 24px rgba(255,210,74,.6);pointer-events:none}
.cr-big.run{color:#ffd24a}.cr-big.crashed{color:#ff5468;text-shadow:0 0 30px rgba(255,84,104,.8);animation:jpshake .35s ease-in-out 2}.cr-big.out{color:#5dff9a;text-shadow:0 0 24px rgba(93,255,154,.6)}
.cr-sub{position:absolute;left:0;right:0;top:calc(22% + clamp(56px,7vw,96px));text-align:center;font-size:14px;letter-spacing:.06em;color:#e3d9ff;pointer-events:none}
.cr-bar{position:absolute;left:20%;right:20%;top:calc(22% + clamp(84px,9vw,128px));height:5px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.cr-bar i{display:block;height:100%;background:var(--gold);transition:width .1s linear}
.cr-hist{position:absolute;left:10px;right:10px;top:10px;display:flex;gap:5px;overflow:hidden}
.cr-hist span{flex:none;font-family:var(--num);font-size:11px;font-weight:800;padding:3px 7px;border-radius:7px;background:rgba(255,255,255,.08);color:#ccc}
.cr-hist .low{color:#ff8a99}.cr-hist .ok{color:#5dff9a}.cr-hist .hot{color:#1a0d12;background:#ffd24a}
.cr-side{display:grid;gap:10px}
.cr-head b{display:block;font-family:var(--display);font-size:28px;letter-spacing:.08em;color:#ffd24a}
.cr-head span{font-size:13px;color:#d6caff}
.cr .game-bar span{color:#d6caff}
.cr-auto{display:grid;gap:4px;font-size:12px;color:#d6caff}
.cr-auto input{width:100%}
.cr-btn{width:100%;height:58px;font-size:18px!important}
.cr-btn.cash{background:linear-gradient(#5dff9a,#1f9e5a)!important;color:#05210f!important;box-shadow:0 0 22px rgba(93,255,154,.6);animation:crpulse .6s ease-in-out infinite alternate}
@keyframes crpulse{to{transform:scale(1.03)}}
.cr-btn.ghost{background:transparent!important;color:var(--fg)!important;border:1px solid var(--line)!important}
.cr .game-msg{color:#e3d9ff}
.cr-players{display:grid;gap:4px;padding:10px;border-radius:12px;background:rgba(0,0,0,.25);max-height:280px;overflow:auto}
.cr-ph{display:flex;justify-content:space-between;font-size:12px;color:#d6caff;margin-bottom:2px}
.cr-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:12px;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.05);color:#eee}
.cr-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-row b{font-family:var(--num)}
.cr-row.me{box-shadow:inset 0 0 0 1px var(--gold)}
.cr-row.out b{color:#5dff9a}.cr-row.lost{opacity:.6}.cr-row.lost b{color:#ff5468}
@media (prefers-reduced-motion:reduce){.cr-btn.cash,.cr-big.crashed{animation:none}}

/* roulette : résultat sur le tapis (sans contour) */
.rl-n.rl-win,.rl-o.rl-win{animation:none!important;transform:none!important;box-shadow:none!important}
.rl-result [data-k]:not(.rl-win){filter:brightness(.45) saturate(.6);transition:filter .35s}
.rl-result [data-k].rl-win{filter:brightness(1.35) saturate(1.15);transition:filter .25s;z-index:2}
.rl-result [data-k].rl-win::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 62%);background-size:260% 100%;animation:rlsweep 1.1s ease-in-out 3}
@keyframes rlsweep{from{background-position:130% 0}to{background-position:-130% 0}}
.rl-dolly{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;z-index:3;pointer-events:none;
  background:radial-gradient(circle at 38% 32%,#fff6cf,#f2c84b 45%,#a8761c 100%);box-shadow:0 3px 0 #6b4a12,0 6px 10px rgba(0,0,0,.55),0 0 0 2px rgba(255,255,255,.35);animation:dollydrop .5s cubic-bezier(.3,1.6,.5,1) both}
@keyframes dollydrop{from{transform:translateY(-60px) scale(1.4);opacity:0}}
.rl-n:has(.rl-dolly){overflow:visible}
.rl-pay{position:absolute;left:50%;top:0;transform:translate(-50%,-10%);font-style:normal;font-family:var(--num);font-size:13px;font-weight:800;color:#5dff9a;white-space:nowrap;text-shadow:0 0 8px rgba(0,0,0,.9),0 0 12px rgba(93,255,154,.7);pointer-events:none;z-index:4;animation:rlpay 1.8s ease-out .35s both}
@keyframes rlpay{0%{opacity:0;transform:translate(-50%,10%) scale(.8)}20%{opacity:1;transform:translate(-50%,-60%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-220%) scale(1)}}
.rl-result [data-k].rl-win .stake{box-shadow:0 0 0 2px #5dff9a,0 0 14px rgba(93,255,154,.8),0 2px 0 rgba(0,0,0,.5)!important}
@media (prefers-reduced-motion:reduce){.rl-dolly,.rl-pay,.rl-result [data-k].rl-win::after{animation:none}}

/* Launchpad : tout le terminal dans l'écran (graphique selon la hauteur), listes de droite à hauteur fixe */
#cv{height:clamp(220px,calc(100vh / var(--z,1) - 680px),520px)}
#page-trade .mult{font-size:clamp(44px,5vw,64px)}
#page-trade .term{gap:10px;padding:14px 16px}
#page-trade .pnl{padding:6px 12px}
#page-trade .pnl .v{font-size:clamp(24px,3vw,32px)}
.lp-holders .list{max-height:230px;overflow:auto}
.lp-trades .feed{max-height:250px;overflow:auto}
#page-trade aside{position:sticky;top:84px;max-height:calc(100vh / var(--z,1) - 96px);overflow:auto;scrollbar-width:thin}

/* tableau de bord : tout dans l'écran (graphique du lancement selon la hauteur, listes à hauteur fixe) */
#page-accueil .kpi{padding-top:14px;padding-bottom:14px}
#page-accueil .chartwrap.mini canvas{aspect-ratio:auto;height:clamp(140px,calc(100vh / var(--z,1) - 790px),320px)}
#dUpcoming{max-height:118px;overflow:auto}
#dPositions{max-height:190px;overflow:auto}
#page-accueil .dash-row .panel{max-height:calc(100vh / var(--z,1) - 520px);min-height:300px;overflow:auto;scrollbar-width:thin}
#page-accueil .dash-3 .panel{max-height:max(180px,calc(100vh / var(--z,1) - 765px));overflow:auto;scrollbar-width:thin}

/* ---------- cartable : un classeur par série (couverture, deux pages de 9 pochettes) ---------- */
.bd-btn{margin-left:10px;vertical-align:middle;font-family:var(--body,inherit);font-size:13px;font-weight:600;padding:4px 10px;border-radius:8px;letter-spacing:0}
.bd-back{position:fixed;inset:0;z-index:85;background:rgba(6,2,4,.88);backdrop-filter:blur(5px);display:grid;place-items:center;padding:14px}
.bd-wrap{--bh:min(calc(100vh / var(--z,1) - 150px),calc((100vw / var(--z,1) - 80px) * .68));display:grid;gap:10px;justify-items:center}
.bd-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;width:100%;justify-content:center}
.bd-title{font-family:var(--display);font-size:20px;color:var(--gold)}
.bd-sel{max-width:340px}
.bd-prog{display:flex;align-items:center;gap:8px;font-family:var(--num);font-size:13px}.bd-prog .prog{width:140px}
.bd-wait{height:var(--bh);display:grid;place-items:center;color:var(--mute)}
.bd-book{display:flex;height:var(--bh);padding:12px;border-radius:16px;background:linear-gradient(180deg,#4a2230,#2b121b);box-shadow:0 24px 60px rgba(0,0,0,.6),inset 0 0 0 2px rgba(255,255,255,.04)}
.bd-page{position:relative;height:100%;aspect-ratio:.74;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:9px;padding:14px 14px 22px;background:linear-gradient(180deg,#1d1418,#161014);border-radius:8px}
.bd-page.left{border-radius:8px 3px 3px 8px}.bd-page.right{border-radius:3px 8px 8px 3px}
.bd-spine{width:16px;background:linear-gradient(90deg,#120a0e,#3a1a25 45%,#3a1a25 55%,#120a0e)}
.bd-pno{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-family:var(--num);font-size:10px;color:var(--mute)}
.bd-pocket{position:relative;display:grid;place-items:center;min-height:0;border-radius:7px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02) 40%,rgba(255,255,255,.05));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.bd-pocket::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.07) 45%,transparent 60%)}
.bd-pocket.blank{background:none;box-shadow:none}
.bd-pocket:not(.miss):not(.blank){cursor:pointer}
.bd-pocket:not(.miss):not(.blank):hover{box-shadow:inset 0 0 0 1px var(--gold)}
.bd-pocket .cardx{height:calc(100% - 8px);width:auto;max-width:calc(100% - 8px);padding:5px;gap:3px;border-radius:8px}
.bd-pocket .cardx .top{font-size:8px;min-height:8px}
.bd-pocket .cardx .face{border-radius:5px;font-size:22px}
.bd-pocket .cardx .face .num{font-size:11px}
.bd-pocket .cardx .nm{font-size:10px}
.bd-pocket .cardx .meta{font-size:8px}
.bd-pocket .cardx .cx-stats,.bd-pocket .cardx .val,.bd-pocket .cardx .card-acts,.bd-pocket .cardx .slab{display:none}
.bd-no{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);z-index:3;font-family:var(--num);font-size:10px;padding:0 4px;border-radius:4px;background:rgba(0,0,0,.6);color:var(--fg)}
.bd-dup{position:absolute;right:2px;top:2px;z-index:3;font-family:var(--num);font-size:11px;font-weight:700;padding:1px 6px;border-radius:9px;background:var(--gold);color:#2a1a00}
.bd-pocket.miss{--tc:var(--mute);align-content:center;gap:3px;padding:6px;text-align:center;border:1px dashed rgba(255,255,255,.1)}
.bd-pocket.miss.t-R{--tc:var(--blue)}.bd-pocket.miss.t-E{--tc:var(--violet)}.bd-pocket.miss.t-L{--tc:var(--gold)}
.bd-num{font-family:var(--display);font-size:26px;color:var(--tc);opacity:.55}
.bd-nm{font-size:11px;color:var(--mute);opacity:.75;line-height:1.15;overflow-wrap:anywhere}
.bd-role{font-size:9px;color:var(--mute);opacity:.5}
.bd-pick{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);width:270px;display:grid;gap:4px;padding:10px;border-radius:10px;background:var(--panel2);border:1px solid var(--gold);box-shadow:0 12px 30px rgba(0,0,0,.6);cursor:default}
.bd-pick-h{font-size:12px;color:var(--mute);margin-bottom:2px}
.bd-opt{display:grid;grid-template-columns:1fr auto auto;gap:2px 8px;align-items:center;text-align:left;padding:6px 8px;border-radius:7px;font-size:12px}
.bd-opt .bd-v{grid-column:1/-1;font-weight:600}
.bd-opt b{font-family:var(--num)}
.bd-opt.on{border-color:var(--gold);background:rgba(233,185,73,.12)}
.bd-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.bd-pages{font-family:var(--num);font-size:12px;color:var(--mute)}
.bd-book.flip-next .bd-page{animation:bdNext .28s ease-out}
.bd-book.flip-prev .bd-page{animation:bdPrev .28s ease-out}
@keyframes bdNext{from{opacity:.2;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes bdPrev{from{opacity:.2;transform:translateX(-24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.bd-book .bd-page{animation:none!important}}

/* rapport de population sur le site du vendeur */
.site-link{align-self:flex-start;background:none;border:0;box-shadow:none;padding:2px 0;font-family:inherit;font-size:12px;font-weight:600;color:#2563eb;text-decoration:underline;cursor:pointer}
.site-link:hover{color:#1d4ed8}
.site-pop-page{padding:14px 16px 28px;display:flex;flex-direction:column;gap:8px}
.site-pop-page h3{margin:0;font-size:20px}
.site-note{margin:0;font-size:13px;color:#475569}
.site-pop-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fff}
.site-pop{width:100%;border-collapse:collapse;font-size:13px;color:#0f172a}
.site-pop th{position:sticky;top:0;background:#f1f5f9;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#475569;padding:7px 8px;border-bottom:1px solid #e2e8f0}
.site-pop td{padding:6px 8px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.site-pop .r{text-align:right;font-variant-numeric:tabular-nums}
.site-pop td.n b{display:block;font-weight:600}.site-pop td.n .sub{font-size:11px;color:#64748b}
.site-pop td.num{color:#94a3b8}
.site-pop td.muted{color:#94a3b8}.site-pop td.own{color:#15803d;font-weight:700}.site-pop td.gone{color:#b91c1c}.site-pop td.strong{font-weight:700}
.site-pop tr.have{background:#f0fdf4}
.pop-tier{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:#e2e8f0;color:#334155}
.pop-tier.t-R{background:#dbeafe;color:#1d4ed8}.pop-tier.t-E{background:#ede9fe;color:#6d28d9}.pop-tier.t-L{background:#fef3c7;color:#92400e}

/* ---------- ligues privées ---------- */
.lg-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.lg-wrap .lg-now,#lgCreate{grid-column:1/-1}
.lg-now{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.lg-now h3{margin:0;font-size:20px}.lg-now p{margin:4px 0 0;color:var(--mute);font-size:14px}
.lg-list{display:grid;gap:10px}
.lg-item{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel2);display:grid;gap:8px}
.lg-item.cur{border-color:var(--gold)}
.lg-item .top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.lg-item .top b{font-size:16px}
.lg-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--mute)}
.lg-meta span{padding:2px 8px;border:1px solid var(--line);border-radius:999px}
.lg-acts{display:flex;flex-wrap:wrap;gap:8px}
.lg-acts button,.lg-acts .go{padding:7px 12px;font-size:13px}
.lg-invite{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.lg-invite code{font-family:var(--num);font-size:15px;color:var(--gold);letter-spacing:.12em;background:var(--bg);padding:4px 10px;border-radius:8px;border:1px solid var(--line)}
.lg-members{display:flex;flex-wrap:wrap;gap:6px}
.lg-members span{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 4px 3px 10px;border:1px solid var(--line);border-radius:999px}
.lg-members button{padding:1px 7px;font-size:11px;border-radius:999px}
.lg-res{width:100%;border-collapse:collapse;font-size:13px}
.lg-res td{padding:4px 8px 4px 0;border-bottom:1px solid var(--line)}
.lg-res td:last-child{text-align:right;font-family:var(--num)}
.lg-res tr.me td{color:var(--gold);font-weight:700}
.lg-joinrow{display:flex;gap:8px}
.lg-joinrow input{text-transform:uppercase;letter-spacing:.12em;font-family:var(--num)}
.lg-intro{margin:0;font-size:14px}
.lg-days button{display:grid;gap:2px;min-width:86px}
.lg-days button small{font-family:var(--num);font-size:11px;color:var(--mute)}
.lg-range{display:flex;align-items:center;gap:12px}.lg-range input{flex:1;accent-color:var(--gold)}.lg-range b{font-family:var(--num);min-width:28px}
.lg-games{display:flex;flex-wrap:wrap;gap:8px}
.lg-games label{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;font-size:13px;cursor:pointer;background:var(--panel2)}
.lg-games label:has(input:checked){border-color:var(--gold);background:rgba(233,185,73,.1)}
.lg-games input{accent-color:var(--gold)}
.lg-total{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.lg-total b{display:block;font-family:var(--num);font-size:26px;color:var(--gold)}
.lg-troph{display:grid;gap:6px}
.lg-troph div{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:6px 0;border-bottom:1px solid var(--line)}
.lg-troph i{font-style:normal;font-size:18px;margin-right:6px}
.lg-empty{color:var(--mute);font-size:14px}
.lg-prev{border:1px dashed var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:8px}
.lg-err{color:var(--down);font-size:14px}
.pill.lgpill{text-decoration:none;color:var(--fg);border-color:rgba(233,185,73,.5);background:rgba(233,185,73,.08)}
.pill.lgpill b{color:var(--gold);font-weight:700}
.pay-bg{position:fixed;inset:0;z-index:200;background:rgba(8,3,5,.72);display:grid;place-items:center;padding:16px}
.pay-bg[hidden]{display:none}
.pay-box{width:min(420px,100%);background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.pay-box h2{margin:0;font-size:20px}
.pay-box input[type=text]{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;padding:10px 12px;border-radius:10px;font-family:var(--num)}
.pay-test{justify-self:start;font-size:11px;font-weight:700;letter-spacing:.12em;color:#2A1700;background:var(--gold);padding:3px 9px;border-radius:999px}
.pay-line{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--panel2);border-radius:10px}
.pay-line b{font-family:var(--num);color:var(--gold)}
.pay-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay-hint{margin:0;font-size:12px}
.pay-err{margin:0;color:var(--down);font-size:13px;min-height:1em}
.pay-err:empty{display:none}
.pay-btns{display:flex;justify-content:flex-end;gap:8px}
.pay-btns button{padding:10px 16px}
@media (max-width:860px){.lg-wrap{grid-template-columns:minmax(0,1fr)}}

/* ---------- illustrations rares (Variation, Iconic) : étiquette sur l'image, feuille d'or pour l'Iconic ---------- */
.cardx .face .ilb{position:absolute;left:4px;bottom:4px;max-width:calc(100% - 8px);z-index:1;display:flex;gap:5px;align-items:baseline;padding:2px 6px;border-radius:4px;font-family:var(--num);font-size:9px;line-height:1.3;letter-spacing:.08em;white-space:nowrap;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.45)}
.cardx .face .ilb b{font-weight:800;flex:none}
.cardx .face .ilb span{font-family:var(--body);font-size:10px;font-weight:700;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cardx .face .ilb.var{background:#2d1f45;color:#efe4ff;border:1px solid #b57bff}
.cardx .face .ilb.ico{color:#2a1a00;border:1px solid #fff3c4;background:linear-gradient(100deg,#a8761c 0%,#f3d27a 28%,#fff8dc 42%,#e3b34a 58%,#9a6a14 100%);background-size:230% 100%;animation:ilfoil 3.6s linear infinite}
.cardx .face .ilb.ico b{text-shadow:0 1px 0 rgba(255,255,255,.45)}
.cardx.il-var .face .num,.cardx.il-ico .face .num{bottom:auto;top:4px}
.cardx.il-var .face{box-shadow:inset 0 0 0 2px rgba(181,123,255,.85)}
.cardx.paper.il-var .face{border-color:#efe4ff}
.cardx.il-ico:not(.sleeved):not(.toploaded):not(.gold):not(.one){box-shadow:0 0 0 2px #e9b949,0 0 18px rgba(233,185,73,.55)}
.cardx.paper.il-ico .face{border-color:#f6dc8f}
.cardx.il-ico .face::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(115deg,transparent 32%,rgba(255,240,190,.38) 46%,rgba(255,255,255,.22) 50%,transparent 62%);background-size:260% 260%;animation:holo 4.2s linear infinite;mix-blend-mode:screen}
@keyframes ilfoil{from{background-position:130% 0}to{background-position:-130% 0}}
.ins-rear.il-ico{box-shadow:0 0 0 2px #e9b949,0 0 22px rgba(233,185,73,.5)}
.tp-rays.foil{background:repeating-conic-gradient(from 0deg,rgba(255,226,140,.42) 0deg 4deg,rgba(255,255,255,.22) 4deg 7deg,transparent 7deg 16deg)}
.bd-opt .bd-il{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:700}
.bd-opt .bd-il.var{background:#2d1f45;color:#efe4ff}
.bd-opt .bd-il.ico{background:linear-gradient(90deg,#c9962a,#fff1b8,#c9962a);color:#2a1a00}
.site-pop tr.il-row td{border-bottom-style:dashed;font-size:12px}
.site-pop tr.il-row td.n b{font-weight:600;font-size:12px;color:#5b21b6}
.site-pop tr.il-row.ico td.n b{color:#a16207}
@media (prefers-reduced-motion:reduce){.cardx .face .ilb.ico,.cardx.il-ico .face::after{animation:none}}

/* ---------- comptes : connexion, pastille du compte, bandeau invité ---------- */
.pill.signin{color:var(--gold);border-color:rgba(233,185,73,.55);background:rgba(233,185,73,.08);font-weight:700}
.pill.signin:hover{background:rgba(233,185,73,.16)}
#topAvatar[hidden]{display:none!important}
.acct{position:relative;display:grid}
.acct-btn{padding:0;border:0;background:none;border-radius:50%;display:grid}
.acct-btn:hover .avatar{box-shadow:0 0 0 3px rgba(233,185,73,.25)}
.acct .avatar{width:34px;height:34px;font-size:14px}
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.acct-menu{position:fixed;left:16px;top:64px;z-index:90;width:max-content;min-width:220px;max-width:min(300px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:6px;display:grid;gap:2px;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.acct-who{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;min-width:0}
.acct-who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-who small{color:var(--mute);font-size:12px}
.acct-menu a,.acct-menu button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--fg);text-decoration:none;font-family:var(--body)!important;font-size:14px;font-weight:600;letter-spacing:0;box-shadow:none!important;transform:none!important}
.acct-menu a:hover,.acct-menu button:hover{background:rgba(246,235,221,.06)}
.guest-bar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:10px 10px 10px 16px;border:1px dashed rgba(233,185,73,.45);border-radius:12px;background:rgba(233,185,73,.06);font-size:14px;color:var(--mute)}
.guest-bar p{margin:0;flex:1 1 320px;min-width:0}
.guest-bar .iconbtn{width:30px;height:30px;flex:none;background:none;border:0;box-shadow:none}
.linkbtn{background:none!important;border:0!important;box-shadow:none!important;padding:0;color:var(--gold);font:inherit;font-family:var(--body)!important;font-size:13px;letter-spacing:0;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.linkbtn:hover{color:#F2C85E}
.guest-note{margin:0;font-size:13px;color:var(--mute);padding:10px 14px;border:1px dashed var(--line);border-radius:12px}
.guest-note .linkbtn{font-size:13px}
.intro-auth{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:14px}
.intro-auth button{padding:11px 14px;font-weight:700}
.intro-auth .intro-reg{border-color:var(--gold);color:var(--gold);background:rgba(233,185,73,.08)}
.intro-auth small{grid-column:1/-1;text-align:center}
.auth-box{position:relative;max-height:calc(100vh - 32px);overflow:auto;gap:14px}
.auth-box h2{padding-right:40px}
.auth-x{position:absolute;top:10px;right:10px;width:32px;height:32px;background:none;border:0;box-shadow:none!important}
.auth-why{margin:0;padding:10px 12px;border-radius:10px;background:rgba(233,185,73,.1);border:1px solid rgba(233,185,73,.35);font-size:14px}
.auth-tabs{gap:6px;flex-wrap:nowrap}
.auth-tabs button{flex:1;padding:9px 10px;font-size:14px}
.auth-form{display:grid;gap:12px}
.auth-box input[type=email],.auth-box input[type=password]{width:100%;min-width:0;background:var(--bg);border:1px solid var(--line);color:var(--fg);font:inherit;padding:10px 12px;border-radius:10px}
.auth-box input[type=email]:focus-visible,.auth-box input[type=password]:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.auth-hint{margin-top:-6px;font-size:12px}
.auth-ok{margin:0;color:var(--up);font-size:13px}
.auth-ok:empty{display:none}
.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 14px}
.auth-or{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-discord{display:flex;align-items:center;justify-content:center;gap:10px;background:#5865F2;border-color:#5865F2;color:#fff;font-weight:700;padding:11px 16px}
.auth-discord:not(:disabled):hover{background:#4752C4}
.auth-discord svg{width:20px;height:20px;flex:none}
.auth-foot{text-align:center}
.acct-box{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.acct-lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600}
.acct-row{display:flex;align-items:center;gap:12px;min-width:0}
.acct-row div{display:grid;min-width:0}
.acct-row b{overflow-wrap:anywhere}
.acct-row small{color:var(--mute);font-size:12px}
.acct-box .row button{padding:8px 12px;font-size:13px}
.lg-cta .row button{padding:9px 14px}
body.theme-pixel :is(.auth-box input[type=email],.auth-box input[type=password]){border-width:2px;border-color:#0F070A;box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(255,255,255,.08)}
body.theme-pixel .auth-discord{box-shadow:inset -2px -2px 0 #3540A8,inset 2px 2px 0 #8E97FF,3px 3px 0 rgba(0,0,0,.45)}
body.theme-pixel .acct-btn{box-shadow:none}
@media (max-width:560px){.guest-bar{font-size:13px;padding:10px 8px 10px 12px}.guest-bar p{flex-basis:100%}.pill.signin{padding:7px 11px}}

/* ---------- modération : banni / expulsé, ligue suspendue ---------- */
.blocked{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:18px;background:var(--bg);overflow:auto}
.blocked .card{width:min(520px,100%);text-align:center;justify-items:center}
.blocked h1{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(24px,6vw,32px);color:var(--down)}
.blocked p{margin:0;overflow-wrap:anywhere}
.blocked #blockedMsg{font-size:16px}
body.is-blocked .shell,body.is-blocked .toast{display:none!important}
.guest-bar.warn{border-color:rgba(255,84,104,.55);background:rgba(255,84,104,.08);color:var(--fg)}

/* thème Pixel : les sneakers en gros pixels (petite image StockX agrandie sans lissage, voir kickPix dans app.js) */
body.theme-pixel .k-art img{image-rendering:pixelated;image-rendering:crisp-edges}

/* bourse : 3 tuiles (plus de taux de change : tout est en WikiCoins) */
#page-bourse .strip{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){#page-bourse .strip{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* immobilier : maisons annoncées ou non, offres, quartiers, regroupements, empires, activité en direct (voir « maisons à vendre » dans app.js) */
.lg-unlisted{background:transparent;border:1.5px solid #9C8F86}
.legend i.lg-bubble{width:auto;height:auto;min-width:16px;padding:0 4px;border-radius:999px;background:var(--gold);color:#14110F;font:700 9.5px/14px system-ui,sans-serif;text-align:center;font-style:normal;box-shadow:0 0 0 1.5px #14110F}
.leaflet-tooltip .tt-sale{color:var(--gold);font-weight:700}
.leaflet-tooltip .tt-dim{color:var(--mute);font-size:12px}
.owner.free{border-color:rgba(233,185,73,.55);color:var(--gold)}
.owner.unlisted{border-style:dotted}
.map-ctl{display:grid;gap:6px;justify-items:end}
.map-tgs{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.map-tg{font:600 12px/1 var(--body);color:var(--mute);background:rgba(14,7,9,.86);border:1px solid var(--line);border-radius:999px;padding:7px 11px;cursor:pointer}
.map-tg[aria-pressed="true"]{color:var(--fg);border-color:var(--gold);background:rgba(36,18,24,.94)}
.map-tg:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.map-trend-lg{display:flex;align-items:center;gap:6px;font-size:11.5px;padding:5px 9px;border-radius:999px;background:rgba(14,7,9,.86);border:1px solid var(--line)}
.map-trend-lg .tl-bar{display:inline-block;width:64px;height:7px;border-radius:4px;background:linear-gradient(90deg,rgba(242,100,95,.85),rgba(242,100,95,.12) 45%,rgba(60,203,139,.12) 55%,rgba(60,203,139,.85))}
.map-owners{display:grid;gap:4px;margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(14,7,9,.4);font-size:13px}
.map-owners .mo-h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:2px}
.map-owners .mo-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:8px}
.map-owners .mo-sw{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1.5px #14110F}
.map-owners .mo-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-decoration:none}
.map-owners .mo-name:hover{text-decoration:underline}
.map-owners b{font-family:var(--num);font-weight:600}
.map-ticker{display:flex;align-items:center;gap:7px;min-width:0;margin:8px 0 4px;font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:opacity .6s}
.map-ticker.old{opacity:.5}
.map-ticker .mt-dot{flex:none;width:8px;height:8px;border-radius:50%;animation:mtPulse 1.5s ease-out 2}
@keyframes mtPulse{0%{box-shadow:0 0 0 0 rgba(233,185,73,.6)}100%{box-shadow:0 0 0 8px rgba(233,185,73,0)}}
.hood{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;margin:8px 0}
.hood .hood-t b{font-family:var(--num)}
.hood svg{width:110px;height:28px;flex:none}
.offer-box{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(233,185,73,.35);border-radius:12px;background:rgba(233,185,73,.05)}
.offer-box .offer-h{font-weight:600}
.offer-box .offer-amt b{font-family:var(--num);font-size:17px;color:var(--gold)}
.offer-rng{width:100%;accent-color:var(--gold)}
.offer-meter{height:6px;border-radius:4px;background:rgba(246,235,221,.08);overflow:hidden}
.offer-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--down),var(--gold),var(--up));transition:width .15s}
.offer-ch{font-size:12.5px;color:var(--mute)}
.offer-box .note{margin:0}
@media (prefers-reduced-motion:reduce){.map-ticker .mt-dot{animation:none}}

/* ---------- sneakers : la pointure comme attribut de rareté (pastille, hot size, histogramme du stock, bouton Cop) ---------- */
.k-sz{display:inline-flex;align-items:baseline;gap:6px;justify-self:start;align-self:start;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-family:var(--num);line-height:1.5;white-space:nowrap}
.k-sz b{font-size:14px;color:var(--fg)} .k-sz small{font-size:11px;color:var(--mute)}
.k-sz.hot{border-color:var(--gold);background:linear-gradient(90deg,rgba(233,185,73,.22),rgba(255,84,104,.16));box-shadow:0 0 10px rgba(233,185,73,.28)}
.k-sz.hot small{color:var(--gold);font-weight:700}
.k-sz.big{padding:4px 12px} .k-sz.big b{font-size:20px} .k-sz.big small{font-size:12px}
.k-szrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.k-rare{font-size:12.5px;color:var(--mute)} .k-rare.ultra{color:var(--gold);font-weight:700}
.k-hist{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:3px;align-items:end;height:52px;margin-top:2px}
.k-hcol{display:grid;grid-template-rows:1fr auto;height:100%;min-width:0;text-align:center}
.k-hcol i{align-self:end;display:block;width:100%;border-radius:3px 3px 0 0;background:var(--up);opacity:.75;transition:height .8s linear}
.k-hcol.hot i{background:var(--gold);opacity:1}
.k-hcol.out i{background:var(--line);opacity:1}
.k-hcol small{font-family:var(--num);font-size:9px;color:var(--mute);overflow:hidden;white-space:nowrap}
.k-hcol.out small{text-decoration:line-through}
.k-cop{font-size:16px;padding:12px 18px;justify-self:start;min-width:220px}
@media (max-width:560px){.k-cop{justify-self:stretch;min-width:0}.k-hcol small{font-size:8px}}
.ub-rare{font-size:13px;color:var(--mute)}
.ub-rare.special{color:var(--gold);font-weight:700;font-size:15px}
.ub-stage.hot .k-boxart{filter:drop-shadow(0 0 22px rgba(233,185,73,.6))}
.ub-stage.hot .ub-shoe{box-shadow:0 0 0 3px var(--gold),0 0 46px rgba(233,185,73,.55)}
body.theme-pixel .k-sz,body.theme-pixel .k-hcol i{border-radius:0}
body.theme-pixel .k-sz{box-shadow:2px 2px 0 rgba(0,0,0,.45)}
body.theme-pixel .k-sz.hot{box-shadow:2px 2px 0 rgba(0,0,0,.45),0 0 0 1px var(--gold)}

/* ---------- saisons de la partie publique : pastille, bandeau de pause, fenêtre de fin, Hall of fame, vitrine ; propositions de compte ---------- */
.pill.seasonpill{text-decoration:none;color:var(--fg);border-color:rgba(233,185,73,.45);background:rgba(233,185,73,.06)}
.pill.seasonpill b{color:var(--gold);font-weight:700}
.pill.seasonpill:hover{background:rgba(233,185,73,.14)}
.seasonpill .sp-short{display:none}
@media (max-width:1100px){.seasonpill .sp-long{display:none}.seasonpill .sp-short{display:inline}}
@media (max-width:560px){.pill.seasonpill{padding:6px 9px}.pill.seasonpill b{margin-left:2px}}
.guest-bar.season-bar{border-style:solid;border-color:rgba(233,185,73,.6);background:rgba(233,185,73,.1);color:var(--fg)}
.guest-bar.season-bar .go{flex:none}
.season-box{position:relative;width:min(480px,100%);text-align:center;max-height:calc(100vh - 32px);overflow:auto}
.season-flag{font-size:44px;line-height:1}
.season-box h2{font-size:22px}
.season-lead{margin:0;font-size:15px;line-height:1.5}
.season-got{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.season-pod{display:grid;gap:6px;text-align:left;border-top:1px solid var(--line);padding-top:10px}
.season-pod div{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:14px}
.season-pod div>a,.season-pod div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.season-pod i{font-style:normal;font-size:20px}
.season-pod small{font-family:var(--num);color:var(--mute)}
.season-box .pay-btns{justify-content:center;flex-wrap:wrap}
.season-box .note{margin:0}
/* Hall of fame */
.hof{display:grid;gap:16px}
.hof-now{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;border-color:rgba(233,185,73,.45)}
.hof-now h2{margin:2px 0 0;font-size:22px}
.hof-now p{margin:4px 0 0}
.hof-kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.hof-now-me{display:grid;gap:4px;justify-items:end;text-align:right}
.hof-empty{color:var(--mute)}
.hof-me{margin:0;font-size:14px;color:var(--mute)}
.hof-me.gold{color:var(--gold);font-weight:700}
.hof-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.hof-top{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.hof-top li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px;min-width:0}
.hof-top li .n{display:flex;gap:8px;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hof-top li i{font-style:normal;min-width:26px;color:var(--mute);font-family:var(--num);font-size:12px}
.hof-top li.pod i{font-size:18px}
.hof-top li.pod{font-weight:700}
.hof-top b{font-family:var(--num);font-size:13px;white-space:nowrap}
.hof-titles{display:grid;gap:8px}
.hof-titles div{display:grid;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:14px;min-width:0}
.hof-titles div>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hof-ti{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:.03em}
.hof-titles small{color:var(--mute);font-family:var(--num)}
@media (max-width:700px){.hof-grid{grid-template-columns:minmax(0,1fr)}.hof-now-me{justify-items:start;text-align:left}}
/* profil : vitrine de toutes les saisons */
.pf-show-note{margin:0 0 6px}
.pf-show-card{display:grid;gap:4px;align-content:start;min-width:0}
.pf-season{justify-self:start;font-family:var(--num);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:rgba(233,185,73,.08);color:var(--gold);border:1px solid rgba(233,185,73,.5)}
#pShow .pf-kicks{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}
#pShow{display:grid;gap:10px}
#pShow>.go{justify-self:start}
#pSeasonTro:not(:empty){margin-bottom:6px}
/* invité : proposition de créer un compte */
.nudge{position:fixed;right:20px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:150;width:min(380px,calc(100% - 32px));background:var(--panel);border:1px solid var(--gold);border-radius:14px;padding:16px 16px 14px;display:grid;gap:8px;box-shadow:0 18px 50px rgba(0,0,0,.55);animation:nudgeIn .35s ease-out}
.nudge[hidden]{display:none}
.nudge-t{font-size:18px;padding-right:30px}
.nudge p{margin:0;font-size:14px;line-height:1.45}
.nudge .nudge-s{color:var(--mute);font-size:13px}
.nudge-x{position:absolute;top:8px;right:8px;width:30px;height:30px;background:none;border:0;box-shadow:none!important}
.nudge-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.nudge-btns button{padding:9px 14px}
@keyframes nudgeIn{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:900px){.nudge{right:16px;bottom:calc(92px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:reduce){.nudge{animation:none}}
body.theme-pixel .nudge,body.theme-pixel .season-box{border-width:2px;box-shadow:4px 4px 0 rgba(0,0,0,.55)}
body.theme-pixel .nudge{animation:nudgeIn .35s steps(4)}
body.theme-pixel .nudge-t,body.theme-pixel .season-box h2,body.theme-pixel .hof-now h2,body.theme-pixel .hof-kicker,body.theme-pixel .hof-ti{font-family:var(--pix);letter-spacing:.02em}
body.theme-pixel .hof-titles div{border-width:2px;border-color:#0F070A;box-shadow:2px 2px 0 rgba(0,0,0,.4)}
/* badges des saisons (classements, profil) : un écusson par saison ; bordure or / argent / bronze, Top 10 / Top 100 ou le rang */
.sea-badges{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:2px 2px 8px;margin:0 0 4px;min-width:0;max-width:100%;scrollbar-width:thin}
.sea-badges:empty{display:none}
.sea-badge{--rim:var(--line);--rimc:var(--mute);flex:none;scroll-snap-align:start;display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--fg);text-decoration:none;min-width:0;max-width:220px;transition:border-color .15s,background .15s}
a.sea-badge:hover{border-color:var(--mute)}
.sea-badge.sel{border-color:var(--gold);background:rgba(233,185,73,.12);box-shadow:0 0 0 1px var(--gold) inset}
.sb-em{flex:none;width:46px;height:52px;padding:3px;background:var(--rim);clip-path:polygon(50% 0,100% 16%,100% 62%,50% 100%,0 62%,0 16%);display:grid}
.sb-in{clip-path:polygon(50% 0,100% 16%,100% 62%,50% 100%,0 62%,0 16%);background:linear-gradient(180deg,var(--panel2),var(--bg));display:grid;place-content:center;justify-items:center;gap:1px;padding-bottom:6px}
.sb-in b{font-family:var(--num);font-size:14px;line-height:1;color:var(--fg)}
.sb-in i{font-style:normal;font-size:12px;line-height:1}
.sb-in .sb-live{font-family:var(--num);font-size:8px;font-weight:700;color:var(--up);letter-spacing:.06em}
.sb-in .sb-mark{font-family:var(--num);font-size:8px;font-weight:700;color:var(--rimc);letter-spacing:.02em;white-space:nowrap}
.sb-t{display:grid;gap:1px;min-width:0}
.sb-name{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-t small{font-family:var(--num);font-size:11px;color:var(--mute);white-space:nowrap}
.sea-badge.live{--rim:var(--up)}
.sea-badge.live .sb-t small{color:var(--up)}
.sea-badge.r-gold{--rim:linear-gradient(160deg,#FFE7A1,#E9B949 45%,#9C6F17)}
.sea-badge.r-silver{--rim:linear-gradient(160deg,#F4F6FA,#BFC6D1 45%,#7A8392)}
.sea-badge.r-bronze{--rim:linear-gradient(160deg,#F2C094,#C98A4B 45%,#7D4A1F)}
.sea-badge.r-top10{--rim:#B57BFF;--rimc:#CFA8FF}
.sea-badge.r-top100{--rim:#5BA8FF;--rimc:#9CCBFF}
.sea-badge.r-ranked{--rim:#6b4552}
.sea-badges.sm{margin:0 0 8px}
.sea-badges.sm .sea-badge{padding:4px 10px 4px 4px;gap:8px}
.sea-badges.sm .sb-em{width:38px;height:43px}
.sea-badges.sm .sb-name{font-size:13px}
.hof-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 20px}
.hof-head h2{margin:2px 0 0;font-size:22px}
.hof-head p{margin:4px 0 0}
.hof-season{display:grid;gap:12px}
.hof-now-me .gold{color:var(--gold)}
.hof-share{justify-content:flex-start}
#hofBody{margin-bottom:16px}
body.theme-pixel .sea-badge{border-width:2px;border-color:#0F070A;box-shadow:3px 3px 0 rgba(0,0,0,.45)}
body.theme-pixel .sea-badge.sel{border-color:var(--gold);box-shadow:3px 3px 0 rgba(0,0,0,.45),inset 0 0 0 1px var(--gold)}
body.theme-pixel .sb-em,body.theme-pixel .sb-in{clip-path:polygon(20% 0,80% 0,80% 8%,100% 8%,100% 62%,88% 62%,88% 74%,74% 74%,74% 86%,60% 86%,60% 100%,40% 100%,40% 86%,26% 86%,26% 74%,12% 74%,12% 62%,0 62%,0 8%,20% 8%)}
body.theme-pixel .sea-badge.r-gold{--rim:#E9B949} body.theme-pixel .sea-badge.r-silver{--rim:#C8CDD6} body.theme-pixel .sea-badge.r-bronze{--rim:#C98A4B}
body.theme-pixel .sb-name,body.theme-pixel .hof-head h2{font-family:var(--pix);letter-spacing:.02em}

/* ---------- sneakers : chances de « hot size » sur les cartes du calendrier et dans la fiche ---------- */
.k-hotp{font-family:var(--num);font-size:12px;font-weight:700;color:var(--gold);white-space:nowrap;cursor:help}
.k-hotp.gone{color:var(--mute);font-weight:400}
.k-hotdd{display:grid;gap:4px}
.k-hotdd .k-hist{height:40px;max-width:320px}

/* ---------- fil des belles prises et grats 🔥 (server/grats.js, app.js) ---------- */
:root{--fire:#FF8A3D;--fire2:#FFD166}
.drops-dash{margin:16px 0}
.drops-dash .p-head .more.linkbtn{text-decoration:none;color:var(--gold);font-weight:600;display:inline-flex;align-items:center;gap:6px}
.drops{display:grid;gap:2px}
.drops-dash .drops{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));column-gap:18px}
.drop{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--line);min-width:0}
.drop:last-child{border-bottom:0}
.drop.rare .drop-vis{box-shadow:0 0 0 2px var(--gold),0 0 14px rgba(233,185,73,.45)}
.drop.blaze{background:linear-gradient(90deg,rgba(255,138,61,.09),transparent 70%)}
.drop-t{min-width:0}
.drop-l{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.drop-l a,.drop-l b{font-weight:700}
.drop-s{font-size:12px;color:var(--mute);margin-top:2px;overflow-wrap:anywhere}
/* petite image : face de carte, paire, pièce, jeton, bâtiment, médaille */
.drop-vis{position:relative;width:52px;height:52px;border-radius:10px;display:grid;place-items:center;background:var(--panel2);overflow:hidden;flex:none}
.dv-card{--tc:#9A8B80;position:relative;width:36px;aspect-ratio:5/7;border-radius:4px;border:2px solid var(--tc);background:#F3EAD8;overflow:hidden;display:grid;place-items:center}
.dv-card img{width:100%;height:100%;object-fit:cover}
.dv-card.t-L{--tc:var(--gold)} .dv-card.t-E{--tc:var(--violet)} .dv-card.t-R{--tc:var(--blue)}
.dv-card.v-full{border-color:#F6EBDD} .dv-card.v-gold{--tc:#E9B949;box-shadow:0 0 6px rgba(233,185,73,.8)}
.dv-card.v-one{border-image:linear-gradient(135deg,#ff5468,#e9b949,#46d89a,#5ba8ff,#b57bff) 1}
.dv-card.il-ico{box-shadow:0 0 8px rgba(233,185,73,.9)}
.dv-num{font-family:var(--display);color:#3a2328;font-size:13px}
.dv-bd{position:absolute;left:0;right:0;bottom:0;font-size:7px;line-height:1.5;font-weight:800;text-align:center;letter-spacing:.04em;background:rgba(20,10,14,.82);color:var(--gold);white-space:nowrap;overflow:hidden}
.drop-vis .k-art.mini{width:52px;height:52px;aspect-ratio:auto;border-radius:0}
.drop-vis .k-art.mini img{padding:3px}
.drop-vis .k-art.mini .k-sw{display:none}
.dv-size{position:absolute;left:2px;right:2px;bottom:2px;z-index:5;font-size:9px;font-weight:800;text-align:center;border-radius:4px;background:rgba(20,10,14,.85);color:var(--fg);line-height:1.5}
.dv-size.hot{background:linear-gradient(90deg,#c2410c,#ff8a3d);color:#fff}
.dv-coin{font-family:"WikiCoin";font-size:34px;line-height:1}
.dv-ic{font-size:26px;line-height:1}
.dv-ic.big{font-size:30px}
.k-casino .dv-ic{position:absolute;right:2px;bottom:1px;font-size:15px}
.drop-vis.k-estate img{width:100%;height:100%;object-fit:cover}
.drop-vis .dv-tk{width:40px;height:40px;display:grid;place-items:center;font-family:var(--display);font-size:11px;color:#fff}
.drop-vis .dv-tk img{width:100%;height:100%;border-radius:50%;object-fit:cover}
/* le bouton 🔥 : flammes · joueurs */
.fire{display:flex;align-items:center;gap:6px;flex:none}
.fire-b{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;font-weight:700;font-size:13px;color:var(--fg);background:var(--panel2);border:1px solid var(--line);cursor:pointer;transition:background .15s,border-color .15s}
.fire-b:hover:not(:disabled){border-color:var(--fire);background:rgba(255,138,61,.12)}
.fire-b:disabled{cursor:default;opacity:.85}
.fire-b .fl{display:inline-flex;font-size:15px;line-height:1;filter:grayscale(.65) opacity(.8);transition:filter .2s}
.fire-b .fl i{font-style:normal;display:inline-block}
.fire-b .fl i+i{margin-left:-7px}
.fire.given .fire-b{border-color:var(--fire);background:rgba(255,138,61,.16)}
.fire.given .fl,.fire.warm .fl,.fire.blaze .fl{filter:none}
.fire.maxed .fire-b{background:linear-gradient(90deg,rgba(255,138,61,.28),rgba(255,209,102,.18));box-shadow:0 0 10px rgba(255,138,61,.35)}
.fire-n{font-family:var(--num);font-variant-numeric:tabular-nums}
.fire.blaze .fire-b{border-color:var(--fire2);box-shadow:0 0 14px rgba(255,138,61,.45)}
.fire.blaze .fl i,.fire.warm .fl i{animation:flick 1.1s ease-in-out infinite alternate;transform-origin:50% 90%}
.fire.blaze .fl i:nth-child(2),.fire.warm .fl i:nth-child(2){animation-delay:-.4s;transform:translateY(-3px)}
.fire.blaze .fl i:nth-child(3){animation-delay:-.75s}
@keyframes flick{0%{transform:scale(1) rotate(-4deg)}50%{transform:scale(1.12) rotate(3deg) translateY(-1px)}100%{transform:scale(.96) rotate(-2deg)}}
.fire-b.pop .fl{animation:firePop .45s ease-out}
@keyframes firePop{0%{transform:scale(1)}35%{transform:scale(1.55) rotate(-10deg)}70%{transform:scale(.92)}100%{transform:scale(1)}}
.fire-who{background:none;border:0;padding:2px 0;font-size:12px;color:var(--mute);cursor:pointer;white-space:nowrap;box-shadow:none!important}
.fire-who:hover:not(:disabled){color:var(--fg);text-decoration:underline}
.fire-who:disabled{cursor:default}
.fire-who:empty{display:none}
/* petites flammes qui montent du bouton, sur un calque fixe */
.fire-burst{position:fixed;width:0;height:0;pointer-events:none;z-index:220}
.fire-burst i{position:absolute;left:-9px;top:-10px;font-style:normal;font-size:18px;opacity:0;animation:burst .9s ease-out forwards}
@keyframes burst{0%{opacity:1;transform:translate(0,0) scale(.4)}60%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(var(--s))}}
/* mur de flammes : ses prises reçoivent des grats */
.fwall{position:fixed;inset:0;pointer-events:none;z-index:215;overflow:hidden}
.fwall::before{content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:linear-gradient(0deg,rgba(255,110,40,.42),rgba(255,180,60,.12) 55%,transparent);animation:wallGlow 2.8s ease-out forwards}
.fwall.big::before{height:60%}
.fwall i{position:absolute;bottom:-60px;font-style:normal;font-size:calc(30px * var(--s,1));opacity:0;animation:wallRise 1.8s ease-in forwards;filter:drop-shadow(0 0 8px rgba(255,138,61,.7))}
@keyframes wallRise{0%{opacity:0;transform:translateY(0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translateY(-75vh) scale(1.1) rotate(8deg)}}
@keyframes wallGlow{0%{opacity:0}20%{opacity:1}100%{opacity:0}}
/* qui a donné des flammes */
.grats-who{position:fixed;z-index:230;background:var(--panel);border:1px solid var(--fire);border-radius:12px;padding:10px 12px;box-shadow:0 14px 40px rgba(0,0,0,.55);max-height:280px;overflow:auto;font-size:13px}
.gw-h{display:block;margin-bottom:6px;color:var(--fire2)}
.gw-l{display:grid;gap:4px}
.gw-r{display:flex;justify-content:space-between;gap:10px}
.gw-r .plink{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gw-n{font-family:var(--num);color:var(--fire);white-space:nowrap}
.gw-guests{margin-top:2px;padding-top:6px;border-top:1px solid var(--line);color:var(--mute)}
/* page des classements : tout le fil */
.drops-full{margin-top:16px}
.drops-note{margin:0 0 10px}
.drops-filter{margin-bottom:8px}
.drops-more{margin-top:10px}
/* une prise très rare d'un autre joueur : annonce avec 🔥 */
.drop-toast{position:fixed;left:50%;top:calc(76px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:145;width:min(440px,calc(100% - 32px));background:var(--panel);border:2px solid var(--gold);border-radius:14px;padding:12px 14px;box-shadow:0 18px 50px rgba(0,0,0,.6),0 0 24px rgba(233,185,73,.25);animation:dtIn .35s ease-out;display:grid;gap:8px}
@keyframes dtIn{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}
.dt-x{position:absolute;top:6px;right:6px;width:28px;height:28px;background:none;border:0;box-shadow:none!important}
.dt-row{border:0;padding:0 28px 0 0}
.dt-row{grid-template-columns:52px minmax(0,1fr)}
.dt-h{display:block;font-size:12px;letter-spacing:.08em;color:var(--gold)}
.dt-f{display:flex;justify-content:flex-end}
/* profil : « Most grats » et 🔥 sur les cartes et les paires */
.gstrips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,200px);gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:2px 2px 8px}
.gstrips>*{scroll-snap-align:start}
.gstrips .empty{grid-column:1/-1;grid-auto-columns:auto}
.gstrip{display:grid;gap:6px;justify-items:start;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);min-width:0}
.gstrip.warm{border-color:rgba(255,138,61,.5)}
.gstrip.blaze{border-color:var(--fire);box-shadow:0 0 16px rgba(255,138,61,.3);background:linear-gradient(180deg,rgba(255,138,61,.12),var(--panel2) 60%)}
.gs-t{font-size:13px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.gs-s{font-size:12px;color:var(--mute)}
.fire-tag{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(255,138,61,.16);border:1px solid var(--fire);color:var(--fg);white-space:nowrap}
.fire-tag.blaze{background:linear-gradient(90deg,#c2410c,#ff8a3d);color:#fff;box-shadow:0 0 10px rgba(255,138,61,.5)}
.card-fire{position:relative}
.card-fire{display:grid;gap:6px;align-content:start}
.pf-kick-t .fire-tag{justify-self:start}
.pf-chip.fire{color:var(--fire);border-color:rgba(255,138,61,.5)}
@media (max-width:560px){
  .drop{grid-template-columns:44px minmax(0,1fr);gap:10px}
  .drop-vis{width:44px;height:44px}
  .drop-vis .k-art.mini{width:44px;height:44px}
  .dv-card{width:30px}
  .drop .fire{grid-column:2;justify-self:start}
  .dt-row{grid-template-columns:44px minmax(0,1fr)}
}
/* Pixel : animations par étapes, flammes nettes */
body.theme-pixel .fire-b,body.theme-pixel .fire-tag{font-family:var(--pix)}
body.theme-pixel .fire-b{border-width:2px;border-color:#0F070A}
body.theme-pixel .fire.given .fire-b{border-color:var(--fire)}
body.theme-pixel .fire-burst i{animation-timing-function:steps(6)}
body.theme-pixel .fwall i{animation-timing-function:steps(12)}
body.theme-pixel .fire.blaze .fl i,body.theme-pixel .fire.warm .fl i{animation-timing-function:steps(2)}
body.theme-pixel .fire-b.pop .fl{animation-timing-function:steps(4)}
body.theme-pixel .drop-vis,body.theme-pixel .gstrip{border:2px solid #0F070A}
body.theme-pixel .drop-toast{box-shadow:6px 6px 0 rgba(0,0,0,.5)}
body.theme-pixel .dv-card,body.theme-pixel .dv-size{border-radius:0!important}
@media (prefers-reduced-motion:reduce){
  .fire-burst,.fwall i{display:none}
  .fwall::before{animation:wallGlow 1.6s linear forwards}
  .fire.blaze .fl i,.fire.warm .fl i,.fire-b.pop .fl,.drop-toast{animation:none}
}
/* ---------- profil d'un invité (le sien, comptes actifs) : bandeau et éléments verrouillés ---------- */
.pf-guest{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:16px;padding:14px 16px;border:1px solid var(--gold);border-radius:14px;background:linear-gradient(90deg,rgba(233,185,73,.12),var(--panel) 60%);box-shadow:0 10px 30px rgba(0,0,0,.3)}
body.pf-guest-on #guestBar{display:none!important} /* un seul bandeau : celui du profil */
.pf-guest-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(233,185,73,.16);color:var(--gold)}
.pf-guest-t{display:grid;gap:3px;min-width:0}
.pf-guest-t b{font-size:15px;line-height:1.35}
.pf-guest-t span{font-size:13px;color:var(--mute)}
.pf-guest-t span b{font-size:13px;color:var(--fg)}
.pf-guest .go{white-space:nowrap}
#pShare.locked{background:var(--panel2);color:var(--mute);border:1px dashed var(--line);box-shadow:none;display:inline-flex;align-items:center;gap:6px}
#pShare.locked:hover{color:var(--fg);border-color:var(--gold)}
#pShare .lock-ic{width:15px;height:15px}
.pf-lock{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:100%;margin:4px 0;padding:14px;text-align:left;border:1px dashed var(--line);border-radius:12px;background:repeating-linear-gradient(135deg,rgba(246,235,221,.025) 0 10px,transparent 10px 20px),var(--panel2);color:var(--fg);cursor:pointer;font:inherit;box-shadow:none}
.pf-lock:hover,.pf-lock:focus-visible{border-color:var(--gold);background:repeating-linear-gradient(135deg,rgba(233,185,73,.05) 0 10px,transparent 10px 20px),var(--panel2)}
.pf-lock-ghost{grid-column:1/-1;display:flex;gap:8px}
.pf-lock-ghost i{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:rgba(246,235,221,.05);font-style:normal;font-size:22px;filter:grayscale(1) opacity(.35)}
.pf-lock.k-collection .pf-lock-ghost i{width:38px;height:53px;border-radius:5px}
.pf-lock-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(233,185,73,.14);color:var(--gold)}
.pf-lock-ic .ic{width:18px;height:18px}
.pf-lock-t{display:grid;gap:2px;min-width:0}
.pf-lock-t b{font-size:14px}
.pf-lock-t span{font-size:12.5px;color:var(--mute);line-height:1.4}
.pf-lock-t .pf-lock-cta{color:var(--gold);font-weight:700;margin-top:2px}
@media (max-width:560px){
  .pf-guest{grid-template-columns:auto minmax(0,1fr);padding:12px}
  .pf-guest .go{grid-column:1/-1;width:100%}
  .pf-lock-ghost i{width:36px;height:36px;font-size:18px}
  .pf-lock.k-collection .pf-lock-ghost i{width:30px;height:42px}
}
body.theme-pixel .pf-guest{box-shadow:6px 6px 0 rgba(0,0,0,.45);border-width:2px}
body.theme-pixel .pf-guest-t b,body.theme-pixel .pf-lock-t b,body.theme-pixel .pf-lock-cta{font-family:var(--pix);letter-spacing:.02em}
body.theme-pixel .pf-lock,body.theme-pixel #pShare.locked{border:2px dashed #5a3340}
body.theme-pixel .pf-lock:hover{border-color:var(--gold)}
/* ---------- Noice! 👌 : le « j'aime » d'un profil (server/noices.js) ---------- */
.noice-b{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;font-weight:700;font-size:14px;color:var(--fg);background:var(--panel2);border:1px solid var(--line);cursor:pointer;transition:background .15s,border-color .15s,transform .1s}
.noice-b .nc-ic{font-size:16px;line-height:1;filter:grayscale(.5)}
.noice-b .nc-n{font-family:var(--num);color:var(--mute);margin-left:2px}
.noice-b:hover:not(:disabled){border-color:#7ee0b8;background:rgba(70,216,154,.1)}
.noice-b.on{border-color:var(--up);background:rgba(70,216,154,.16);box-shadow:0 0 12px rgba(70,216,154,.25)}
.noice-b.on .nc-ic{filter:none}
.noice-b.on .nc-n{color:var(--up)}
.noice-b.self{cursor:pointer}
.noice-b.self .nc-ic{filter:none}
.noice-b.self b{font-family:var(--num)}
.noice-b:disabled{cursor:default;opacity:.85}
.noice-b:not(.self):active{transform:scale(.95)}
.gw-h.nc{color:var(--up)}
body.theme-pixel .noice-b{font-family:var(--pix);border-width:2px;border-color:#0F070A}
body.theme-pixel .noice-b.on{border-color:var(--up)}
/* ---------- Clean! 🤩 : petite rangée sous chaque objet du profil (de la place pour un autre bouton) ---------- */
.react-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:24px}
.clean-b{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;color:var(--fg);background:var(--panel2);border:1px solid var(--line);cursor:pointer;line-height:1.5;box-shadow:none}
.clean-b .cl-ic{font-size:13px;filter:grayscale(.6)}
.clean-b b{font-family:var(--num);color:var(--mute);margin-left:2px}
.clean-b:hover{border-color:var(--violet);background:rgba(181,123,255,.1)}
.clean-b.on{border-color:var(--violet);background:rgba(181,123,255,.18)}
.clean-b.on .cl-ic{filter:none}
.clean-b.on b{color:var(--violet)}
.clean-c{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(181,123,255,.12);border:1px solid rgba(181,123,255,.4)}
.clean-c b{font-family:var(--num)}
.pf-estate-it{display:grid;gap:2px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.pf-estate-it>.li{border-bottom:0}
.pf-estate-it>.react-row{padding:0 12px}
body.theme-pixel .clean-b,body.theme-pixel .clean-c{font-family:var(--pix)}
body.theme-pixel .clean-b{border-width:2px;border-color:#0F070A}
body.theme-pixel .clean-b.on{border-color:var(--violet)}
/* ---------- Offres « 👀 I want », boîte de réception et « 🔒 Not for sale » (server/offers.js) ---------- */
.inbox-btn{text-decoration:none;color:var(--mute);background:var(--panel2);border:1px solid var(--line)} /* (un lien : même allure que les boutons ronds de la barre) */
body.theme-pixel .inbox-btn{border-width:2px;border-color:#0F070A;box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(255,255,255,.08)}
.inbox-btn .ic{width:20px;height:20px}
.inbox-btn:hover{color:var(--fg)}
.want-b{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;color:#2A1700;background:var(--gold);border:1px solid var(--gold);cursor:pointer;box-shadow:none;white-space:nowrap}
.want-b:hover{background:#F2C85E}
.want-b.on{color:var(--gold);background:rgba(233,185,73,.12)}
.want-b.big{padding:9px 14px;font-size:14px;border-radius:10px;justify-content:center}
.nfs-tag{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;color:var(--mute);background:var(--panel2);border:1px dashed var(--line);white-space:nowrap}
.nfs-tag.big{padding:8px 12px;font-size:13px;border-radius:10px;justify-content:center}
.nfs-b{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;color:var(--mute);background:transparent;border:1px dashed var(--line);box-shadow:none;white-space:nowrap}
.nfs-b:hover{color:var(--fg);border-color:var(--mute)}
.nfs-b.on{color:var(--fg);border-style:solid;border-color:#8a6a72;background:rgba(255,255,255,.06)}
.card-acts .nfs-b{padding:4px 7px;font-size:11px;border-radius:7px}
.k-act .nfs-b,.actwrap .nfs-b{justify-self:start;align-self:center}
.react-row .want-b,.react-row .nfs-b,.react-row .nfs-tag{margin-left:auto}
/* petite image d'un objet (fenêtre d'offre, boîte de réception) */
.ofr-th{width:48px;height:48px;flex:0 0 48px;border-radius:8px;overflow:hidden;background:var(--panel2);border:2px solid var(--line);display:grid;place-items:center;font-size:22px}
.ofr-th img{width:100%;height:100%;object-fit:cover;display:block}
.ofr-th.th-card{width:40px;flex-basis:40px;height:56px;border-radius:5px}
.ofr-th.th-card img{object-position:50% 20%}
.ofr-th.t-L{border-color:var(--gold)} .ofr-th.t-E{border-color:var(--violet)} .ofr-th.t-R{border-color:var(--blue)}
.ofr-th.th-kicks{width:64px;flex-basis:64px;height:40px;border-radius:6px}
.ofr-th .k-art{width:100%;height:100%;aspect-ratio:auto}
.ofr-th .k-art .k-sw{display:none}
.ofr-th.big{width:72px;height:72px;flex-basis:72px}
.ofr-th.th-card.big{width:60px;flex-basis:60px;height:84px}
.ofr-th.th-kicks.big{width:96px;flex-basis:96px;height:60px}
/* fenêtre « Make your offer » */
.ofr-box{position:relative;width:min(460px,100%);max-height:calc(100vh - 32px);overflow:auto;gap:12px}
.ofr-box h2{padding-right:40px}
.ofr-item{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.ofr-it-t{display:grid;gap:2px;min-width:0;font-size:13px}
.ofr-it-t>b:first-child{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ofr-it-t b{font-family:var(--num)}
.ofr-it-t>b:first-child{font-family:var(--body)}
.ofr-lbl{font-size:12px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.ofr-amt{display:grid;gap:8px}
.ofr-in{display:flex;align-items:center;gap:6px}
.ofr-in .cur-sym{font-family:var(--num);color:var(--mute)}
.ofr-in .price-in{font-size:18px;padding:9px 10px;flex:1 1 auto}
.ofr-pct{font-family:var(--num);font-size:12px;white-space:nowrap;min-width:92px;text-align:right}
.ofr-pct.up{color:var(--up)} .ofr-pct.down{color:var(--down)}
.ofr-rng{width:100%;accent-color:var(--gold)}
.ofr-q button{padding:4px 9px;font-size:12px}
.ofr-msgs{display:flex;flex-wrap:wrap;gap:6px}
.ofr-m{padding:5px 10px;font-size:13px;border-radius:999px;color:var(--fg);background:var(--panel2);line-height:1.3;box-shadow:none}
.ofr-m.emo{font-size:16px;padding:3px 9px}
.ofr-m[aria-pressed="true"]{border-color:var(--gold);background:rgba(233,185,73,.16);color:var(--fg)}
.ofr-warn:empty{display:none}
/* boîte de réception */
.ib{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:16px;align-items:start}
.ib-head{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:13px;color:var(--mute)}
.ib-head b{font-family:var(--num);color:var(--fg)}
.ib-other{color:var(--gold);text-decoration:none;font-weight:700}
.ib-other:hover{text-decoration:underline}
.ib-guest{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ib-guest p{margin:0;flex:1 1 240px}
.ib-empty{grid-column:1/-1}
.ib-list{gap:6px;padding:12px}
.ib-row{display:flex;gap:10px;align-items:center;padding:8px 8px 8px 14px;border-radius:10px;text-decoration:none;color:inherit;border:1px solid transparent;position:relative}
.ib-row:hover{background:var(--panel2)}
.ib-row.sel{border-color:var(--gold);background:rgba(233,185,73,.07)}
.ib-row-t{display:grid;gap:1px;min-width:0;flex:1 1 auto}
.ib-row-t b{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ib-row.unread .ib-row-t b{color:var(--gold)}
.ib-row-s{font-size:12px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ib-row-r{display:grid;justify-items:end;gap:1px;flex:0 0 auto}
.ib-row-r b{font-family:var(--num);font-size:13px}
.ib-row-r small{font-size:11px;color:var(--mute)}
.ib-dot{position:absolute;top:50%;left:3px;margin-top:-4px;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px rgba(233,185,73,.7)}
.ib-st{font-style:normal;font-weight:700}
.ib-st.move{color:var(--gold)} .ib-st.wait{color:var(--mute)} .ib-st.deal{color:var(--up)} .ib-st.done{color:var(--mute)}
.ib-st.big{display:inline-block;justify-self:start;font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid currentColor;margin-top:2px}
.ib-thread{gap:12px}
.ib-none{min-height:160px;place-items:center}
.ib-back{display:none;color:var(--mute);text-decoration:none;font-size:13px}
.ib-top{display:flex;gap:12px;align-items:center}
.ib-top-t{display:grid;gap:2px;min-width:0;font-size:13px}
.ib-lbl{font-size:16px}
.ib-top-t b{font-family:var(--num)} .ib-top-t .ib-lbl{font-family:var(--body)}
.ib-amts{display:flex;flex-wrap:wrap;gap:8px}
.ib-amt{display:grid;gap:0;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);min-width:96px}
.ib-amt small{font-size:11px;color:var(--mute)}
.ib-amt b{font-family:var(--num);font-size:16px}
.ib-amt.old b{color:var(--mute);text-decoration:line-through}
.ib-amt.ctr{border-color:var(--gold)} .ib-amt.ctr b{color:var(--gold)}
.ib-amt.deal{border-color:var(--up)} .ib-amt.deal b{color:var(--up)}
.ib-log{display:grid;gap:8px;max-height:46vh;overflow:auto;padding:4px 2px}
.ib-msg{display:grid;gap:2px;max-width:82%}
.ib-msg.me{justify-self:end;justify-items:end}
.ib-msg.them{justify-self:start}
.ib-msg.sys{justify-self:center;justify-items:center;max-width:100%}
.ib-bub{display:grid;gap:2px;padding:7px 11px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);font-size:14px}
.ib-msg.me .ib-bub{background:rgba(233,185,73,.14);border-color:rgba(233,185,73,.45);border-bottom-right-radius:4px}
.ib-msg.them .ib-bub{border-bottom-left-radius:4px}
.ib-msg.sys .ib-bub{background:transparent;border-style:dashed;font-size:12px;color:var(--mute)}
.ib-act{font-weight:700}
.ib-say{font-size:14px}
.ib-say.emo{font-size:24px;line-height:1.1}
.ib-at{font-size:11px;color:var(--mute)}
.ib-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ib-acts button{padding:9px 14px}
.ib-form{display:grid;gap:8px}
.ib-send{justify-self:start;padding:7px 14px}
.ib-closed{padding:8px 0 0}
@media (max-width:760px){
  .ib{grid-template-columns:minmax(0,1fr)}
  .ib:not(.has-sel) .ib-thread{display:none}
  .ib.has-sel .ib-list{display:none}
  .ib-back{display:inline-block}
  .ib-log{max-height:none}
  .ib-msg{max-width:92%}
}
@media (max-width:560px){ .ofr-pct{min-width:0} .ofr-in .price-in{font-size:16px} }
body.theme-pixel .want-b,body.theme-pixel .nfs-b,body.theme-pixel .nfs-tag,body.theme-pixel .ofr-m,body.theme-pixel .ib-st,body.theme-pixel .ofr-lbl{font-family:var(--pix)}
body.theme-pixel .want-b{border-width:2px;border-color:#0F070A;box-shadow:2px 2px 0 rgba(0,0,0,.45)}
body.theme-pixel .want-b.on{border-color:var(--gold)}
body.theme-pixel .nfs-b,body.theme-pixel .nfs-tag{border-width:2px}
body.theme-pixel .ofr-th,body.theme-pixel .ib-bub,body.theme-pixel .ib-amt,body.theme-pixel .ofr-item{border-radius:0;border-width:2px}
body.theme-pixel .ib-bub{box-shadow:3px 3px 0 rgba(0,0,0,.4)}
body.theme-pixel .ib-row{border-radius:0}
body.theme-pixel .ib-dot{border-radius:0}
@media (prefers-reduced-motion:reduce){.ib-dot{box-shadow:none}}
.ib-acts .actbtn{width:auto;flex:1 1 180px}
@media (max-width:560px){.ofr-in{flex-wrap:wrap}.ofr-in .price-in{flex:1 1 0;min-width:0}.ofr-pct{flex:1 1 100%;text-align:left}}

/* barre du haut collée : sa couleur de fond ne déborde plus que de 4 px dessous (avant 20 px : elle rognait la bordure du bandeau juste en dessous) */
.topbar{clip-path:inset(0 -100vmax -4px clamp(-32px,-2.4vw,-16px))}

/* ---------- tour de bienvenue (une fois, après la première arrivée) : 3 cartes à glisser ---------- */
.wt-bg{z-index:210}
.wt-box{width:min(460px,100%);padding:16px 0;gap:10px;position:relative;overflow:hidden;max-height:calc(100dvh - 32px);grid-template-rows:minmax(0,1fr) auto auto}
.wt-skip{position:absolute;top:14px;right:16px;z-index:2;text-decoration:none!important;color:var(--mute)!important}
.wt-skip:hover{color:var(--fg)!important}
.wt-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;outline:none;min-height:0}
.wt-track::-webkit-scrollbar{display:none}
.wt-card{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always;padding:26px 20px 4px;display:grid;gap:12px;align-content:center;min-width:0;overflow-y:auto}
.wt-art{justify-self:center;display:grid;place-items:center;width:84px;height:84px;border-radius:22px;background:radial-gradient(circle at 35% 30%,rgba(233,185,73,.3),rgba(233,185,73,.06) 70%);border:1px solid rgba(233,185,73,.35);font-size:40px;line-height:1}
.wt-card h2{margin:0;text-align:center;font-family:var(--display);font-weight:400;font-size:clamp(19px,5vw,23px);line-height:1.25;color:var(--fg);text-wrap:balance}
.wt-card h2 b{color:var(--gold);font-weight:700;white-space:nowrap;font-family:var(--num);font-size:.92em}
.wt-card p{margin:0;text-align:center;color:var(--mute);font-size:14px;text-wrap:pretty}
.wt-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.wt-facts div{display:grid;gap:2px;justify-items:center;align-content:start;text-align:center;padding:9px 6px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);font-size:11px;color:var(--mute)}
.wt-facts b{font-family:var(--num);font-size:15px;color:var(--fg)}
.wt-ways{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wt-way{display:grid;gap:4px;align-content:start;padding:11px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.wt-way .wt-ic{display:flex;gap:4px;color:var(--gold)}
.wt-way b{font-size:14px}
.wt-way small{color:var(--mute);font-size:12px;line-height:1.35}
.wt-way .wt-go{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.wt-way .wt-go button{padding:6px 10px;font-size:12px}
.wt-count{justify-self:center;font-family:var(--num);font-size:22px;color:var(--gold);padding:8px 16px;border-radius:12px;background:rgba(233,185,73,.08);border:1px solid rgba(233,185,73,.35)}
.wt-cta{display:grid;gap:8px;padding:12px;border-radius:12px;border:1px dashed rgba(233,185,73,.45);background:rgba(233,185,73,.06)}
.wt-cta p{color:var(--fg)}
.wt-cta .go{justify-self:center}
.wt-dots{display:flex;justify-content:center;gap:8px}
.wt-dots button{width:9px;height:9px;padding:0;border-radius:5px;border:0;background:rgba(184,157,149,.4);transition:width .2s,background .2s}
.wt-dots button[aria-selected=true]{background:var(--gold);width:22px}
.wt-nav{display:flex;justify-content:space-between;gap:8px;padding:0 18px}
.wt-nav button{min-width:96px}
.wt-nav button[hidden]{display:inline-flex!important;visibility:hidden}
@media (max-width:420px){.wt-card{padding:24px 14px 4px}.wt-nav{padding:0 14px}.wt-facts b{font-size:13px}.wt-way{padding:9px}}
@media (prefers-reduced-motion:reduce){.wt-track{scroll-behavior:auto}.wt-dots button{transition:none}}
body.theme-pixel .wt-way,body.theme-pixel .wt-facts div,body.theme-pixel .wt-art,body.theme-pixel .wt-count{border:2px solid #0F070A;box-shadow:inset 2px 2px 0 rgba(255,255,255,.05),inset -2px -2px 0 rgba(0,0,0,.28)}
body.theme-pixel .wt-card h2,body.theme-pixel .wt-way b,body.theme-pixel .wt-count{font-family:var(--pix)}
body.theme-pixel .wt-dots button{transition:none}

/* ---------- « 🎯 First steps » : la liste du tableau de bord ---------- */
.fsteps{gap:8px;padding:12px 16px;border-color:rgba(233,185,73,.4);background:linear-gradient(90deg,rgba(233,185,73,.09),transparent 60%),var(--panel)}
.fs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.fs-head h2{margin:0;font-size:15px;font-family:var(--display);font-weight:400;color:var(--fg)}
.fs-count{font-family:var(--num);font-size:13px;color:var(--gold);font-weight:700}
.fs-prog{flex:1 1 80px;min-width:60px;max-width:220px}
.fs-off{margin-left:auto;font-size:12px!important;color:var(--mute)!important}
.fs-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:8px}
.fs-step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic t go" "ic s go";align-items:center;gap:1px 10px;padding:9px 10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);min-width:0}
.fs-step .fs-ic{grid-area:ic;font-size:22px;line-height:1;width:30px;text-align:center}
.fs-step .fs-t{grid-area:t;font-weight:600;font-size:14px;line-height:1.25;min-width:0}
.fs-step .fs-s{grid-area:s;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--mute);min-width:0}
.fs-rw{color:var(--gold);font-family:var(--num);font-weight:700}
.fs-step .linkbtn{font-size:12px;color:var(--mute);text-decoration:none}
.fs-step .linkbtn:hover{color:var(--fg)}
.fs-step .go{grid-area:go;padding:7px 14px;font-size:13px}
.fsteps.fs-done{border-color:var(--up);background:linear-gradient(90deg,rgba(70,216,154,.12),transparent 70%),var(--panel)}
.fs-cheer{font-weight:600;font-size:14px}
.fs-cheer b{color:var(--up)}
.fs-step.fs-new{animation:fsIn .35s ease both}
@keyframes fsIn{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.fs-step.fs-new{animation:none}}
body.theme-pixel .fs-step{border:2px solid #0F070A}
body.theme-pixel .fs-step.fs-new{animation-timing-function:steps(3)}
body.theme-pixel .fs-head h2,body.theme-pixel .fs-count{font-family:var(--pix)}
@media (max-width:600px){.fs-step:nth-child(n+3){display:none}.fs-head{gap:6px 10px}.fs-off{margin-left:0;order:5;flex-basis:100%;text-align:left}.fs-prog{max-width:none}}

/* réglages : les étapes, avec « Bring back » pour une étape passée */
.set-steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.set-steps li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--panel2);border:1px solid var(--line);font-size:14px;min-width:0}
.set-steps li > span{flex:1;min-width:0}
.set-steps li small{color:var(--mute);font-size:12px;white-space:nowrap}
.set-steps li.done small{color:var(--up)}
.set-steps li button{padding:5px 10px;font-size:12px}

/* « How to play » en haut de chaque jeu */
.tb-h1row{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.howto-open{font:600 12px var(--body);padding:4px 10px;border-radius:999px;border:1px solid rgba(233,185,73,.5);background:rgba(233,185,73,.08);color:var(--gold);cursor:pointer;white-space:nowrap}
.howto-open:hover{background:rgba(233,185,73,.16)}
.howto{gap:10px;padding:12px 16px;border-color:rgba(233,185,73,.35);background:linear-gradient(90deg,rgba(233,185,73,.07),transparent 65%),var(--panel)}
.howto-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.howto-head h2{margin:0;font-size:15px;flex:1 1 auto;min-width:0}
.howto-x{background:none!important;border:0!important;box-shadow:none!important;color:var(--mute)!important;font:13px var(--body)!important;letter-spacing:0!important;text-transform:none!important;cursor:pointer;padding:2px 0!important;white-space:nowrap}
.howto-x:hover{color:var(--fg)}
.howto-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.howto-steps li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.14);font-size:13.5px;line-height:1.45;color:var(--fg)}
.howto-i{font-size:20px;line-height:1.1;flex:none}
.howto-n{color:var(--gold)}
@media (max-width:640px){.howto-steps{grid-template-columns:1fr}.howto-open{font-size:11px;padding:3px 8px}}

/* profil d'un invité : invitation à créer un compte (ce que le jeu en ligne ajoute) */
.pf-invite{gap:18px;padding:22px 24px;border-color:rgba(233,185,73,.45);background:radial-gradient(120% 140% at 0 0,rgba(233,185,73,.12),transparent 55%),var(--panel)}
.pfi-top{display:flex;gap:16px;align-items:center}
.pfi-top h2{margin:0 0 4px;font-family:var(--display);font-weight:400;font-size:clamp(20px,2.4vw,26px);color:var(--fg)}
.pfi-top p{margin:0;color:var(--mute)}
.pfi-ic{flex:none;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:rgba(233,185,73,.14);border:1px solid rgba(233,185,73,.4)}
.pfi-perks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.pfi-perks li{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.16)}
.pfi-pi{font-size:24px;line-height:1;flex:none}
.pfi-perks b{display:block;color:var(--fg);margin-bottom:3px}
.pfi-perks span{color:var(--mute);font-size:13.5px;line-height:1.45}
.pfi-cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pfi-risk{flex:1 1 100%;margin:2px 0 0;color:var(--mute);font-size:13px}
.pfi-risk b{color:var(--gold)}

/* ---------- closed beta (server/beta.js) : l'écran d'accueil devient un mur ---------- */
/* le pseudo et « Start playing » disparaissent ; le fond est opaque (rien du jeu derrière) */
body.beta-wall{overflow:hidden}
body.beta-wall .intro{background:var(--bg)}
body.beta-wall .intro-name,body.beta-wall #nameIn,body.beta-wall #joinBtn,body.beta-wall #introAuth{display:none!important}
.intro-beta{display:grid;gap:10px;text-align:center;padding:16px 16px 14px;border:1px solid rgba(233,185,73,.45);border-radius:14px;background:rgba(233,185,73,.06)}
.ib-tag{margin:0}
.ib-tag span{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#2A1700;background:var(--gold);padding:3px 10px;border-radius:999px}
.ib-title{margin:0;font-size:19px;line-height:1.25;color:var(--fg)}
.ib-lead{margin:0 auto;color:var(--mute);font-size:14px;max-width:42ch;text-wrap:pretty;overflow-wrap:anywhere}
.ib-lead b{color:var(--fg)}
.ib-form{display:grid;grid-template-columns:1fr auto;gap:8px}
.ib-form input{width:100%;min-width:0;padding:13px 14px;font-size:16px;background:rgba(0,0,0,.28)}
.ib-form .go{padding:12px 18px;font-size:15px;white-space:nowrap}
.ib-msg{margin:0;font-size:14px;font-weight:600;color:var(--ok,#46D89A)}
.ib-msg:empty{display:none}
.ib-msg.err{color:var(--bad,#FF5468)}
.ib-alt{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;justify-content:center;font-size:14px}
.ib-alt button{padding:9px 18px;font-weight:700;border-color:var(--gold);color:var(--gold);background:transparent}
@media (max-width:420px){.ib-form{grid-template-columns:1fr}.ib-form .go{width:100%}}
body.theme-pixel .ib-tag span,body.theme-pixel .ib-title{font-family:var(--pix)}

/* ---------- thèmes (réglages, server/themes.js) : une carte par thème avec un petit aperçu ---------- */
.th-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:10px;margin:2px 0 6px}
.th-card{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto;gap:6px 12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18)}
.th-card.on{border-color:var(--gold);background:rgba(233,185,73,.07)}
.th-card .th-prev{grid-row:1/3}
.th-txt{display:grid;gap:2px;min-width:0}
.th-txt b{font-size:15px}
.th-txt small{color:var(--mute);font-size:12.5px;line-height:1.35}
.th-card button{justify-self:start;padding:6px 14px;font-size:13px}
.th-card.locked .th-prev{filter:grayscale(.55) brightness(.8)}
.th-note{margin:0 0 10px}
.th-prev{width:64px;height:56px;display:grid;align-content:center;justify-items:center;gap:6px;overflow:hidden}
.th-prev b{line-height:1}
.th-prev span{display:flex;gap:4px}
.th-prev i{display:block;height:8px}
/* Smooth : arrondis, dégradé, police nette */
.th-prev-smooth{border-radius:12px;background:radial-gradient(90% 80% at 30% 0%,rgba(233,185,73,.35),transparent 70%),#2D1720;border:1px solid var(--line)}
.th-prev-smooth b{font-family:"Barlow",system-ui,sans-serif;font-weight:700;font-size:20px;color:var(--fg)}
.th-prev-smooth i{width:18px;border-radius:999px;background:var(--gold)}
.th-prev-smooth i+i{background:#46D89A}
/* Pixel : coins carrés, ombres dures, police pixel */
.th-prev-pixel{border-radius:0!important;background:#2D1720;border:2px solid #0F070A;box-shadow:inset -2px -2px 0 rgba(0,0,0,.35),inset 2px 2px 0 rgba(255,255,255,.08),3px 3px 0 rgba(0,0,0,.45)}
.th-prev-pixel b{font-family:"Pixelify Sans",ui-monospace,monospace;font-weight:700;font-size:20px;color:var(--gold)}
.th-prev-pixel i{width:16px;border-radius:0!important;background:var(--gold);box-shadow:2px 2px 0 #0F070A}
.th-prev-pixel i+i{background:#46D89A}
