:root{
  --ink:#140B1F; --panel:rgba(33,20,48,.95); --panel-solid:#211430; --panel2:#2B1B3D; --line:#3D2951;
  --text:#F5ECF7; --muted:#A994B9; --coral:#FF4F79; --coral2:#FF8A5C;
  --gold:#FFC247; --mint:#5FE0B7; --deep:#0F0817;
  --era:#FF4F79; --era-rgb:255,79,121;
  color-scheme:dark;
  --display:'Bungee',Impact,'Arial Black',sans-serif;
  --shade:'Bungee Shade','Bungee',Impact,sans-serif;
  --body:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--ink);color:var(--text)}
body{font-family:var(--body);font-size:15px;line-height:1.45;overflow:hidden}
[hidden]{display:none!important}
button{font:inherit;color:inherit}
button:focus-visible,.stage:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ic{width:20px;height:20px;flex:none}

.bg{position:fixed;inset:0;width:100%;height:100%;z-index:0}
.vignette{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,transparent 40%,rgba(8,4,12,.75) 100%)}
.fx{position:fixed;inset:0;width:100%;height:100%;z-index:40;pointer-events:none}

/* ---------- Glitch ---------- */
.glitch{position:relative}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}
.glitch::before{color:#4FD8FF;transform:translate(-2px,0);clip-path:inset(0 0 55% 0);animation:gl1 3.2s infinite steps(1);mix-blend-mode:screen;opacity:.8}
.glitch::after{color:#FF4F79;transform:translate(2px,0);clip-path:inset(55% 0 0 0);animation:gl2 2.7s infinite steps(1);mix-blend-mode:screen;opacity:.8}
@keyframes gl1{0%,86%,100%{transform:translate(-2px,0)}88%{transform:translate(-8px,-2px)}92%{transform:translate(6px,1px)}96%{transform:translate(-3px,2px)}}
@keyframes gl2{0%,80%,100%{transform:translate(2px,0)}83%{transform:translate(9px,2px)}90%{transform:translate(-7px,-1px)}}

/* ---------- Connexion ---------- */
.auth{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:24px 16px;overflow:auto}
.auth-card{width:min(460px,100%);display:grid;gap:18px;text-align:center}
.logo-stack{display:grid;justify-items:center;line-height:.85;user-select:none}
.logo-a{font-family:var(--display);font-size:clamp(44px,9vw,84px);color:var(--coral);text-shadow:0 0 40px rgba(255,79,121,.55),0 0 90px rgba(255,79,121,.25)}
.logo-b{font-family:var(--shade);font-size:clamp(40px,8vw,74px);color:var(--gold);text-shadow:0 0 36px rgba(255,194,71,.4);margin-top:4px}
.tagline{margin:0 auto;color:var(--muted);max-width:44ch;font-size:14.5px}
.auth-tabs{margin:4px auto 0;width:100%}
.auth-tabs button{flex:1;padding:10px 12px;font-size:13px}
.auth-form{display:grid;gap:8px;text-align:left}
.auth-form label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-top:4px}
.auth-form input:not([type=checkbox]){width:100%;background:rgba(15,8,23,.85);border:1px solid var(--line);border-radius:12px;padding:13px 14px;font:700 17px var(--mono);color:var(--text)}
.auth-form input:focus{border-color:var(--coral)}
.check{display:flex!important;align-items:center;gap:10px;text-transform:none!important;letter-spacing:0!important;font-size:14px!important;color:var(--text)!important;font-weight:400!important;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--coral)}
.btn-hero{margin-top:8px;border:0;border-radius:14px;padding:15px 20px;font-family:var(--display);font-size:20px;letter-spacing:.02em;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,var(--coral),#FF7A59 60%,var(--gold));box-shadow:0 10px 30px rgba(255,79,121,.35),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .1s,box-shadow .2s,filter .2s}
.btn-hero:hover{transform:translateY(-1px);box-shadow:0 14px 40px rgba(255,79,121,.5)}
.btn-hero:active{transform:translateY(1px)}
.btn-hero:disabled{filter:grayscale(.6);opacity:.7;cursor:wait}
.auth-msg{min-height:1.4em;margin:0;font-size:14px;color:var(--coral);text-align:center}
.auth-msg.ok{color:var(--mint)}
.auth-note{margin:0;font-size:12.5px;color:var(--muted)}
.resume{display:grid;gap:10px;justify-items:center}
.resume p{margin:0;font-size:17px}
.resume .btn-hero{width:100%}

/* ---------- Structure du jeu ---------- */
.game{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 20px;border-bottom:1px solid rgba(61,41,81,.7);background:linear-gradient(180deg,rgba(20,11,31,.95),rgba(20,11,31,.7))}
.bar-logo{font-family:var(--display);font-size:20px;line-height:.9;color:var(--era);text-shadow:0 0 18px rgba(var(--era-rgb),.55);display:grid}
.bar-logo span{color:var(--gold);font-size:15px}
.era-chip{display:grid;padding:6px 12px;border-radius:10px;border:1px solid rgba(var(--era-rgb),.5);background:rgba(var(--era-rgb),.1)}
.era-chip span{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--era);font-weight:700}
.era-chip b{font-family:var(--display);font-weight:400;font-size:14px}
.kpis{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:flex-end;margin-right:auto}
.kpi{display:flex;flex-direction:column;min-width:0}
.lab{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:19px;white-space:nowrap}
.num.big{font-size:30px;color:var(--era);line-height:1.05;text-shadow:0 0 20px rgba(var(--era-rgb),.4)}
.unit{font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.player{display:flex;align-items:center;gap:10px}
.av{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-family:var(--display);font-size:18px;color:var(--ink);background:linear-gradient(135deg,var(--era),var(--gold))}
.pinfo{display:grid;line-height:1.2}
.pinfo b{font-size:14px}
.pinfo small{font-size:11.5px;color:var(--gold)}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);display:grid;place-items:center;cursor:pointer;color:var(--muted)}
.icon-btn:hover{color:var(--text);border-color:var(--muted)}

.ticker{overflow:hidden;white-space:nowrap;font-family:var(--mono);font-size:12px;color:var(--muted);padding-block:7px;border-bottom:1px solid rgba(61,41,81,.6);background:rgba(15,8,23,.6)}
.ticker .track{display:inline-block;animation:tick 110s linear infinite;padding-left:20px}
.ticker .track span{margin-right:56px}
.ticker .track b{color:var(--gold);margin-right:8px}
.ticker .track b.friend{color:var(--era)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(330px,1fr) minmax(0,1.08fr) 320px;gap:18px;padding:16px 20px}
.col{min-width:0;contain:layout style;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:14px;padding-right:4px;padding-bottom:24px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
@media (max-width:1200px){
  body{overflow:auto}
  .game{height:auto;min-height:100%}
  .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .col{overflow:visible}
  .col-right{grid-column:1/-1}
}
@media (max-width:820px){.grid{grid-template-columns:minmax(0,1fr);padding:12px 16px}.bar{padding:12px 16px}}

/* ---------- Scène ---------- */
.stage{position:relative;width:100%;aspect-ratio:5/4;flex:none;border-radius:20px;overflow:hidden;background:var(--deep);border:1px solid rgba(var(--era-rgb),.35);
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 20px 60px rgba(0,0,0,.45),0 0 50px rgba(var(--era-rgb),.12);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hint{position:absolute;left:50%;top:44%;z-index:1;transform:translate(-50%,-50%);font-family:var(--display);font-size:20px;color:var(--text);pointer-events:none;text-shadow:0 2px 12px rgba(0,0,0,.7);animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translate(-50%,-62%)}}
.buffs{position:absolute;left:10px;top:10px;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:5px;pointer-events:none;max-width:36%}
.buff{font-family:var(--mono);font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:#FFD23F;color:#1B1029;border:2px solid #1B1029;box-shadow:0 2px 0 #1B1029;white-space:nowrap}
.buff.bad{background:#FF4F79;color:#fff}
/* Combo : flamme qui grandit et change de couleur par palier, texte contouré lisible sur tous les fonds */
.combo{position:absolute;right:8px;top:6px;z-index:3;pointer-events:none;display:flex;align-items:flex-start;line-height:1;
  --f1:#FF4F79;--f2:#FF9F1C;--f3:#FFD23F;--fs:.8}
.combo .flame{flex:none;margin:calc(8px - 14px * (var(--fs) - .8)) -8px 0 0;width:calc(40px * var(--fs));height:calc(52px * var(--fs));overflow:visible;
  transform-origin:50% 100%;animation:flick .16s ease-in-out infinite alternate;will-change:transform}
.combo .f1{stop-color:var(--f1)} .combo .f2{stop-color:var(--f2)} .combo .f3{stop-color:var(--f3)}
.combo .fi{fill:#FFF6C9;opacity:.9}
.combo-txt{position:relative;display:grid;justify-items:end;gap:3px;padding:6px 4px 0 0}
.combo b{font-family:var(--display);font-weight:400;font-size:34px;color:#FFD23F;-webkit-text-stroke:7px #1B1029;paint-order:stroke fill;
  text-shadow:0 4px 0 #1B1029;letter-spacing:.02em}
.combo span{font-family:var(--mono);font-size:11px;font-weight:800;color:#fff;background:#1B1029;padding:3px 8px;border-radius:999px;letter-spacing:.08em}
.combo em{font-style:normal;font-family:var(--display);font-size:13px;color:#fff;-webkit-text-stroke:5px #1B1029;paint-order:stroke fill}
.combo em:empty{display:none}
.combo.t1{--fs:1}
.combo.t2{--fs:1.2;--f1:#FF2E63;--f2:#FF6A00;--f3:#FFE14D}
.combo.t2 b{color:#FF9F1C}
.combo.t3{--fs:1.4;--f1:#3A5BFF;--f2:#4FD8FF;--f3:#E8FDFF}
.combo.t3 b{color:#8FEAFF}
.combo.t4{--fs:1.6;--f1:#C77DFF;--f2:#FF7EB6;--f3:#FFF1A8}
.combo.t4 b{color:#FF7EB6}
.combo.t4 .flame{animation-duration:.1s}
@keyframes flick{from{transform:scale(1,1) skewX(-3deg)}to{transform:scale(1.06,.92) skewX(4deg)}}
@keyframes pop{from{transform:scale(1.35)}}
.golden{position:absolute;width:56px;height:56px;border-radius:15px;border:0;background:linear-gradient(135deg,#FFE08A,var(--gold));color:var(--ink);cursor:pointer;
  box-shadow:0 0 0 6px rgba(255,194,71,.2),0 0 40px rgba(255,194,71,.85);animation:ring .9s ease-in-out infinite,gin .35s cubic-bezier(.2,1.6,.4,1);display:grid;place-items:center;padding:0;z-index:2}
.golden .ic{width:28px;height:28px}
.golden::after{content:attr(data-n);position:absolute;top:-8px;right:-8px;background:var(--coral);color:#fff;font-family:var(--mono);font-size:11px;font-weight:700;border-radius:999px;min-width:21px;height:21px;display:grid;place-items:center;padding:0 5px;box-shadow:0 2px 8px rgba(0,0,0,.4)}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}}
@keyframes gin{from{transform:scale(0)}}
.veil{position:absolute;inset:0;background:rgba(15,8,23,.74);display:grid;place-items:center;text-align:center;padding:24px;cursor:default}
.veil strong{display:block;font-family:var(--display);font-weight:400;font-size:24px;color:var(--mint);margin-bottom:6px}
.veil p{margin:0;max-width:34ch}
.shake{animation:shake .32s linear}
@keyframes shake{10%{transform:translate(-5px,3px)}25%{transform:translate(6px,-4px)}40%{transform:translate(-4px,-3px)}55%{transform:translate(4px,4px)}70%{transform:translate(-3px,1px)}85%{transform:translate(2px,-2px)}}

/* ---------- Panneaux ---------- */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.panel h3{font-family:var(--display);font-weight:400;font-size:16px;margin:0 0 6px}
.d2-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.d2-head .num{font-size:18px}
.meter{position:relative;height:12px;border-radius:999px;background:var(--deep);border:1px solid var(--line)}
.meter i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--coral),var(--gold) 45%,var(--mint));transition:width .2s linear;box-shadow:0 0 12px rgba(95,224,183,.35)}
.meter b{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--text);opacity:.85}
.small{font-size:13px;color:var(--muted);margin:10px 0 12px}
.small b{color:var(--text);font-weight:600}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:13px;margin-bottom:10px}
.row .num{font-size:16px;color:var(--mint)}
.row.sub{margin-top:-6px}
.row.sub .num{font-size:13px;color:var(--muted)}
.detox h3{color:var(--mint)}
.detox p{margin:0 0 10px;font-size:13px;color:var(--muted)}

.btn{border-radius:11px;padding:10px 14px;font-weight:600;font-size:14px;cursor:pointer;border:1px solid var(--line);background:var(--panel2);transition:transform .08s,background .15s,filter .15s}
.btn:hover{filter:brightness(1.15)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.btn.plane{border-color:rgba(95,224,183,.5);color:var(--mint);background:rgba(95,224,183,.08);display:inline-flex;gap:8px;align-items:center}
.btn.plane.on{background:var(--mint);color:var(--ink)}
.btn.mint{background:var(--mint);color:var(--ink);border-color:var(--mint)}
.btn.warn,.btn.coral{background:var(--coral);border-color:var(--coral);color:#fff}

/* ---------- Onglets / boutique ---------- */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;background:linear-gradient(180deg,var(--ink) 70%,transparent);padding-bottom:0}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-family:var(--display);font-size:14px;color:var(--muted);cursor:pointer}
.tabs button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--era)}
.tabs small{font-family:var(--mono);font-size:10.5px;color:var(--gold)}
.tabs small.hot{color:var(--mint)}
.tabpane{display:flex;flex-direction:column;gap:10px}
.shop-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.shop-head h2{font-family:var(--display);font-weight:400;font-size:17px;margin:0}
.shop-head h2 small{font-family:var(--mono);font-size:11px;color:var(--gold);margin-left:6px}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:rgba(15,8,23,.5)}
.seg button{background:transparent;border:0;padding:6px 11px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--coral);color:#fff}

.ups{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.up{position:relative;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px 10px 44px;cursor:pointer;display:flex;flex-direction:column;gap:2px;transition:border-color .15s,transform .1s}
.up .ic{position:absolute;left:12px;top:12px;width:22px;height:22px;color:var(--gold)}
.up .n{font-weight:800;font-size:13.5px;line-height:1.25}
.up .d{font-size:12px;color:var(--muted);line-height:1.3}
.up .c{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--gold);margin-top:3px}
.up.ok{border-color:rgba(255,194,71,.65);background:linear-gradient(180deg,rgba(255,194,71,.1),var(--panel));box-shadow:0 0 18px rgba(255,194,71,.08)}
.up.ok:hover{transform:translateY(-1px)}
.up:not(.ok){opacity:.55;cursor:not-allowed}

/* ---------- Sagesses ---------- */
.sag-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 24px}
.sag-top .num{font-size:30px;color:var(--mint);line-height:1.05;text-shadow:0 0 20px rgba(95,224,183,.35)}
.sag-top .small{flex:1 1 260px;margin:0}
.up.sg .ic,.up.sg .c{color:var(--mint)}
.up.sg.ok{border-color:rgba(95,224,183,.6);background:linear-gradient(180deg,rgba(95,224,183,.1),var(--panel));box-shadow:0 0 18px rgba(95,224,183,.08)}
.up.sg.owned{opacity:1;cursor:default;border-color:rgba(95,224,183,.35);background:rgba(95,224,183,.06)}
.up.sg.owned .n::after{content:' ✓';color:var(--mint)}
.empty{grid-column:1/-1;color:var(--muted);font-size:13px;border:1px dashed var(--line);border-radius:12px;padding:12px;list-style:none}

.gens{display:grid;gap:8px}
.gen{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .1s}
.gen .gi{height:52px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);display:grid;place-items:center;color:var(--era)}
.gen .gi .ic{width:28px;height:28px}
.gen .n{font-weight:800;font-size:15px;line-height:1.2}
.gen .d{display:block;font-size:12.5px;color:var(--muted);line-height:1.3;margin-top:1px}
.gen .meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:5px;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.gen .meta .c{color:var(--gold);font-weight:700}
.gen .own{font-family:var(--display);font-size:26px;color:var(--muted);min-width:2ch;text-align:right}
.gen .ms{position:absolute;left:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--era),var(--gold));opacity:.8}
.gen.ok{border-color:rgba(var(--era-rgb),.6);background:linear-gradient(90deg,rgba(var(--era-rgb),.12),var(--panel) 70%)}
.gen.ok:hover{transform:translateX(2px)}
.gen.ok .own{color:var(--text)}
.gen:not(.ok){cursor:not-allowed}
.gen:not(.ok) .n,.gen:not(.ok) .d{opacity:.7}
.gen.locked .gi{color:var(--muted)}
.gen.locked .n{letter-spacing:.2em}
.gen.bump{animation:bump .25s ease-out}
@keyframes bump{40%{transform:scale(1.02)}}

.achs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ach{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.ach .ai{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--panel2);color:var(--muted)}
.ach .n{font-weight:800;font-size:13px;line-height:1.2}
.ach .d{font-size:11.5px;color:var(--muted);line-height:1.3}
.ach.got{border-color:rgba(255,194,71,.55);background:linear-gradient(135deg,rgba(255,194,71,.12),var(--panel))}
.ach.got .ai{background:linear-gradient(135deg,var(--gold),var(--coral2));color:var(--ink)}
.ach:not(.got) .n{color:var(--muted)}

.stats{width:100%;border-collapse:collapse;font-size:13.5px}
.stats td{padding:8px 4px;border-bottom:1px solid rgba(61,41,81,.6)}
.stats td:last-child{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:700}
.stats tr.h td{font-family:var(--display);font-size:14px;color:var(--era);padding-top:18px;border-bottom-color:var(--line)}
.linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;cursor:pointer;font-size:12.5px;padding:6px 0;justify-self:start;align-self:flex-start}
.linkbtn.arm{color:var(--coral);font-weight:700}

/* ---------- Classement ---------- */
.board-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.board-head h3{margin:0;color:var(--gold)}
.netst{font-family:var(--mono);font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px}
.netst::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted)}
.netst.ok::before{background:var(--mint);box-shadow:0 0 8px var(--mint)}
.netst.err::before{background:var(--coral)}
.board-panel .seg{margin-bottom:10px}
.board-panel .seg button{flex:1}
.board{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pl{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:9px 10px;border-radius:12px;background:rgba(43,27,61,.8);border:1px solid transparent;transition:transform .3s}
.pl.me{border-color:rgba(255,194,71,.6);background:linear-gradient(90deg,rgba(255,194,71,.12),rgba(43,27,61,.8))}
.pl .rk{font-family:var(--display);font-size:19px;color:var(--muted);text-align:center}
.pl.r1 .rk{color:var(--gold);text-shadow:0 0 12px rgba(255,194,71,.6)}
.pl.r2 .rk{color:#D8D2E6}
.pl.r3 .rk{color:#E0A070}
.pl .who{min-width:0}
.pl .nm{font-weight:800;font-size:14px;display:flex;align-items:center;gap:6px;min-width:0}
.pl .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl .nm i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--line)}
.pl .nm i.on{background:var(--mint);box-shadow:0 0 6px var(--mint)}
.pl .nm em{flex:none;font-style:normal;font-family:var(--mono);font-size:10px;color:var(--mint);font-weight:700}
.pl .sub{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl .sub .era{font-family:var(--mono);font-weight:700}
.pl .val{font-family:var(--mono);font-weight:700;font-size:13px;text-align:right}
.pl .pbar{grid-column:2/-1;height:3px;border-radius:2px;background:var(--deep);overflow:hidden}
.pl .pbar span{display:block;height:100%;background:linear-gradient(90deg,var(--era),var(--gold))}
.feed-h{color:var(--era)}
.feed{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px}
.feed li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline}
.feed li time{font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.feed li b{color:var(--gold)}

/* ---------- Modales ---------- */
.modal{position:fixed;inset:0;z-index:30;background:rgba(10,5,15,.84);display:grid;place-items:center;padding:16px;animation:fade .2s}
@keyframes fade{from{opacity:0}}
.card{width:min(480px,100%);background:linear-gradient(180deg,#2A1A3C,#1C1128);border:1px solid rgba(var(--era-rgb),.5);border-radius:20px;padding:24px;display:grid;gap:12px;
  box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 60px rgba(var(--era-rgb),.2);animation:cardin .35s cubic-bezier(.2,1.3,.4,1)}
@keyframes cardin{from{transform:translateY(20px) scale(.95);opacity:0}}
.card h2{font-family:var(--display);font-weight:400;font-size:24px;margin:0;line-height:1.1;text-wrap:balance}
.card p{margin:0;color:#D9CCE3}
.ev-top{display:flex;align-items:center;gap:10px}
.ev-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(var(--era-rgb),.18);color:var(--era)}
.ev-ic .ic{width:24px;height:24px}
.ev-choices{display:grid;gap:8px;margin-top:6px}
.choice{text-align:left;display:grid;gap:3px;padding:13px 15px;border-radius:14px;border:1px solid var(--line);background:var(--panel2);cursor:pointer;transition:border-color .15s,transform .1s}
.choice:hover{border-color:var(--era);transform:translateX(3px)}
.choice b{font-size:15px}
.choice small{font-family:var(--mono);font-size:11.5px;color:var(--gold)}
.st-row{display:flex;flex-wrap:wrap;gap:8px}
.st-ver{margin:0;font-family:var(--mono);font-size:11.5px}
.sv-card,.gd-card{width:min(620px,100%);max-height:calc(100vh - 32px);overflow-y:auto}
.sv-sec{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.sv-h{font-family:var(--display);font-weight:400;font-size:15px;margin:0}
.sv-card .small{margin:0}
.sv-lab{font-size:13px;color:var(--muted)}
.sv-card textarea,.sv-card input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#120A1B;color:var(--text);font:12px var(--mono);resize:vertical}
.sv-card textarea{word-break:break-all}
.sv-card textarea:focus,.sv-card input:focus{outline:2px solid var(--gold);outline-offset:1px}
.gd-list{margin:0;padding-left:22px;display:grid;gap:9px;color:#D9CCE3;font-size:14px;line-height:1.4}
.gd-list b{color:var(--text)}
.gd-list li::marker{font-family:var(--display);color:var(--era)}
#authImport{margin-top:4px}
.settings-card label.range{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;font-size:14px}
.settings-card input[type=range]{accent-color:var(--coral)}

.titlecard{position:fixed;inset:0;z-index:35;display:grid;place-items:center;text-align:center;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(var(--era-rgb),.25),rgba(8,4,12,.94) 70%);animation:tc 4.6s ease-in-out forwards}
@keyframes tc{0%{opacity:0}10%,78%{opacity:1}100%{opacity:0}}
.tc-inner{display:grid;gap:12px;padding:16px}
.tc-num{font-family:var(--mono);font-weight:700;letter-spacing:.5em;font-size:14px;color:var(--era);animation:tcin 1s .2s both}
.tc-name{font-family:var(--display);font-size:clamp(40px,8vw,96px);line-height:1;color:var(--text);text-shadow:0 0 40px rgba(var(--era-rgb),.8);animation:tcin 1.1s .5s both}
.tc-line{color:#D9CCE3;font-size:17px;max-width:40ch;margin:0 auto;animation:tcin 1s 1.1s both}
@keyframes tcin{from{opacity:0;transform:translateY(14px);letter-spacing:.2em}}

/* ---------- Trophées et toasts ---------- */
.trophies{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:45;display:grid;gap:8px;pointer-events:none;width:min(380px,calc(100vw - 32px))}
.trophy{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;align-items:center;padding:10px 14px;border-radius:16px;
  background:linear-gradient(135deg,#3A2450,#231533);border:1px solid rgba(255,194,71,.7);box-shadow:0 12px 40px rgba(0,0,0,.5),0 0 30px rgba(255,194,71,.25);animation:tin2 .5s cubic-bezier(.2,1.4,.4,1),tout .4s 4.2s forwards}
.trophy .ti{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--coral2));color:var(--ink)}
.trophy .ti .ic{width:26px;height:26px}
.trophy small{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--gold);font-weight:700}
.trophy b{display:block;font-size:15px}
.trophy span{font-size:12px;color:var(--muted)}
@keyframes tin2{from{transform:translateY(-30px);opacity:0}}
@keyframes tout{to{transform:translateY(-20px);opacity:0}}
.toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:45;max-width:min(360px,calc(100vw - 32px));pointer-events:none}
.toast{background:rgba(43,27,61,.96);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:10px 12px;font-size:13.5px;box-shadow:0 8px 24px rgba(0,0,0,.45);animation:tin .25s ease-out}
.toast b{color:var(--gold)}
.toast.mint{border-left-color:var(--mint)} .toast.mint b{color:var(--mint)}
.toast.coral{border-left-color:var(--coral)} .toast.coral b{color:var(--coral)}
@keyframes tin{from{opacity:0;transform:translateY(8px)}}

body.lite .glitch::before,body.lite .glitch::after{display:none}
@media (prefers-reduced-motion:reduce){
  .ticker .track,.hint,.golden,.toast,.trophy,.glitch::before,.glitch::after,.titlecard,.card,.modal{animation:none}
}

/* ---------- Emotes & easter eggs ---------- */
.emote-btn{position:absolute;left:10px;bottom:10px;z-index:3;width:44px;height:44px;border-radius:14px;border:3px solid #1B1029;background:#fff;cursor:pointer;padding:3px;box-shadow:0 4px 0 #1B1029;transition:transform .1s}
.emote-btn:hover{transform:translateY(-2px)}
.emote-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #1B1029}
.emote-btn svg,.emote-pal svg,.emote-show svg,.meme-face svg{width:100%;height:100%;display:block}
/* ---------- Méga-Presse (bouton rond en bas à droite de la scène) ---------- */
.mg-btn{position:absolute;right:10px;bottom:10px;z-index:3;width:54px;height:54px;border-radius:50%;border:3px solid #1B1029;background:#2B1B3D;cursor:pointer;padding:0;box-shadow:0 4px 0 #1B1029}
.mg-in{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.mg-liq{position:absolute;left:0;right:0;bottom:0;height:0;background:linear-gradient(0deg,#FF4F79,#FF9F1C 60%,#FFD23F);transition:height .15s linear}
.mg-pct{position:relative;display:grid;place-items:center;height:100%;font:800 11px var(--mono);color:#fff;text-shadow:0 1px 0 #1B1029,0 0 4px #1B1029}
.mg-lab{position:absolute;right:-6px;bottom:calc(100% + 6px);white-space:nowrap;pointer-events:none;font-family:var(--display);font-size:13px;color:#FFD23F;
  -webkit-text-stroke:4px #1B1029;paint-order:stroke fill;opacity:0;transform:scale(.6);transform-origin:right bottom;transition:opacity .2s,transform .2s}
.mg-btn.ready{background:#FFD23F;animation:mgpulse .45s ease-in-out infinite alternate}
.mg-btn.ready .mg-pct{font:400 15px var(--display)}
.mg-btn.ready .mg-lab{opacity:1;transform:scale(1)}
.mg-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #1B1029}
@keyframes mgpulse{to{transform:scale(1.12)}}
body.lite .mg-btn.ready{animation:none}
.emote-pal{position:absolute;left:10px;bottom:62px;z-index:4;display:grid;grid-template-columns:repeat(4,56px);gap:6px;padding:8px;border-radius:16px;background:#fff;border:3px solid #1B1029;box-shadow:0 8px 0 #1B1029,0 16px 40px rgba(0,0,0,.4);animation:cardin .25s cubic-bezier(.2,1.5,.4,1)}
.emote-pal button{width:56px;height:56px;border:0;border-radius:12px;background:#F3EEF8;cursor:pointer;padding:4px;transition:transform .1s,background .1s}
.emote-pal button:hover{transform:scale(1.12) rotate(-4deg);background:#FFE9A8}
.emote-show{position:absolute;inset:0;pointer-events:none;z-index:3}
.bubble{position:absolute;width:128px;display:grid;justify-items:center;gap:2px;animation:bub 2.8s cubic-bezier(.2,1.5,.4,1) forwards}
.bubble .face{width:110px;height:110px;background:#fff;border:4px solid #1B1029;border-radius:26px;padding:6px;box-shadow:0 6px 0 #1B1029}
.bubble b{font-family:var(--display);font-weight:400;font-size:13px;color:#fff;text-shadow:0 2px 0 #1B1029,0 0 6px #1B1029;white-space:nowrap}
@keyframes bub{0%{transform:scale(0) rotate(-20deg)}12%{transform:scale(1.15) rotate(4deg)}20%,80%{transform:scale(1) rotate(0)}100%{transform:scale(.6) translateY(-30px);opacity:0}}
.rain{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(40,60,110,.55),rgba(20,30,60,.4)),repeating-linear-gradient(100deg,transparent 0 14px,rgba(200,220,255,.5) 14px 15px);background-size:100% 100%,120px 120px;animation:rainfall .35s linear infinite}
@keyframes rainfall{to{background-position:0 0,-20px 120px}}
.meme{position:fixed;left:24px;bottom:24px;z-index:46;display:grid;justify-items:center;gap:8px;pointer-events:none;animation:memein 3.2s cubic-bezier(.2,1.4,.4,1) forwards}
.meme.cross{left:-240px;bottom:30%;animation:memecross 2.6s linear forwards}
.meme.peek{left:auto;right:24px;animation:memepeek 3.4s cubic-bezier(.2,1.4,.4,1) forwards}
.meme-face{width:200px;height:200px;background:#fff;border:5px solid #1B1029;border-radius:36px;padding:10px;box-shadow:0 10px 0 #1B1029,0 30px 60px rgba(0,0,0,.5)}
.meme-cap{font-family:var(--display);font-weight:400;font-size:24px;color:#FFD23F;text-shadow:0 3px 0 #1B1029,0 0 10px #1B1029,2px 0 0 #1B1029,-2px 0 0 #1B1029;text-align:center;max-width:320px}
@keyframes memein{0%{transform:translateY(140%) rotate(-10deg)}15%{transform:translateY(-6%) rotate(3deg)}22%,85%{transform:translateY(0) rotate(0)}100%{transform:translateY(140%)}}
@keyframes memepeek{0%{transform:translateX(140%) rotate(20deg)}15%{transform:translateX(-4%) rotate(-6deg)}22%,85%{transform:translateX(0) rotate(-3deg)}100%{transform:translateX(140%)}}
@keyframes memecross{0%{transform:translateX(0) rotate(-8deg)}25%{transform:translateX(35vw) rotate(8deg) scale(1.2)}50%{transform:translateX(70vw) rotate(-8deg) scale(1.3)}100%{transform:translateX(calc(100vw + 300px)) rotate(8deg)}}

/* ---------- Niveau ---------- */
.av-wrap{position:relative}
.lvl-badge{position:absolute;right:-7px;bottom:-6px;min-width:22px;height:20px;padding:0 5px;border-radius:999px;background:#4FD8FF;color:#1B1029;border:2px solid #1B1029;font:700 11px var(--mono);display:grid;place-items:center}
.xp{display:block;width:120px;height:5px;border-radius:3px;background:var(--deep);margin-top:3px;overflow:hidden}
.xp i{display:block;height:100%;background:linear-gradient(90deg,#4FD8FF,#5FE0B7);transition:width .25s}
.banner{position:fixed;left:50%;top:32%;transform:translate(-50%,-50%);z-index:47;display:grid;justify-items:center;pointer-events:none;animation:bann 2.4s cubic-bezier(.2,1.4,.4,1) forwards;text-align:center}
.banner span{font-family:var(--display);font-size:22px;color:#fff;text-shadow:0 3px 0 #1B1029,0 0 12px #1B1029;letter-spacing:.1em}
.banner b{font-family:var(--display);font-weight:400;font-size:120px;line-height:1;color:#4FD8FF;text-shadow:0 6px 0 #1B1029,0 0 40px rgba(79,216,255,.9),4px 0 0 #1B1029,-4px 0 0 #1B1029}
.banner #bannerSub{font-size:16px;color:#FFD23F;letter-spacing:0}
@keyframes bann{0%{transform:translate(-50%,-50%) scale(0) rotate(-10deg);opacity:0}15%{transform:translate(-50%,-50%) scale(1.25) rotate(3deg);opacity:1}25%,80%{transform:translate(-50%,-50%) scale(1)}100%{transform:translate(-50%,-80%) scale(.8);opacity:0}}
.flash{position:fixed;inset:0;z-index:44;pointer-events:none;opacity:0}
@keyframes flash{0%{opacity:.55}100%{opacity:0}}

/* ---------- Coffres ---------- */
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.slot{aspect-ratio:1/1;border-radius:14px;display:grid;place-items:center;position:relative;padding:6px}
.slot.vide{border:2px dashed var(--line);color:var(--muted);font-size:11px;font-family:var(--mono)}
.slot.vide span{position:static;transform:none;background:none;border:0;color:var(--muted);font-family:var(--mono);font-size:10px}
.slot.full{border:3px solid #1B1029;cursor:pointer;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.35),rgba(255,255,255,.06));box-shadow:0 4px 0 #1B1029;animation:slotbob 1.6s ease-in-out infinite;transition:transform .1s}
.slot.full.c-wood{background-color:rgba(181,119,59,.35)}.slot.full.c-gold{background-color:rgba(255,194,71,.35)}
.slot.full.c-magic{background-color:rgba(199,125,255,.4)}.slot.full.c-legend{background-color:rgba(92,255,225,.35)}
.slot.full:hover{transform:scale(1.06)}
.slot svg{width:100%;height:auto}
.slot span{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);font-family:var(--display);font-size:10px;color:#fff;background:#FF4F79;border:2px solid #1B1029;border-radius:8px;padding:1px 6px}
@keyframes slotbob{50%{transform:translateY(-3px)}}

.chest-modal{position:fixed;inset:0;z-index:48;display:grid;grid-template-rows:auto 1fr auto auto auto;justify-items:center;align-items:center;gap:10px;padding:28px 16px;
  background:radial-gradient(ellipse at 50% 45%,rgba(var(--ray,255,194,71),.35),rgba(10,5,16,.96) 65%);cursor:pointer;user-select:none;overflow:hidden}
.cm-rays{position:absolute;left:50%;top:45%;width:180vmax;height:180vmax;transform:translate(-50%,-50%);pointer-events:none;
  background:repeating-conic-gradient(rgba(var(--ray,255,194,71),.22) 0 10deg,transparent 10deg 20deg);animation:spin 14s linear infinite;
  -webkit-mask:radial-gradient(circle,#000 0,transparent 55%);mask:radial-gradient(circle,#000 0,transparent 55%)}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.chest-modal.rar-legendary .cm-rays,.chest-modal.rar-champion .cm-rays{animation-duration:4s;background:repeating-conic-gradient(rgba(var(--ray),.45) 0 8deg,transparent 8deg 16deg)}
.cm-title{position:relative;font-family:var(--display);font-size:30px;color:#fff;text-shadow:0 4px 0 #1B1029}
.cm-stage{position:relative;display:grid;place-items:center;min-height:320px}
.cm-chest{width:220px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5))}
.cm-chest.shaking{animation:cshake .9s ease-in-out infinite}
.cm-chest.opened{animation:copen .4s cubic-bezier(.2,1.6,.4,1)}
@keyframes cshake{0%,60%,100%{transform:rotate(0)}65%{transform:rotate(-7deg) scale(1.04)}72%{transform:rotate(6deg)}80%{transform:rotate(-4deg)}88%{transform:rotate(3deg)}}
@keyframes copen{from{transform:scale(.7)}}
.cm-reveal{display:grid;justify-items:center;gap:10px;animation:cardin2 .55s cubic-bezier(.2,1.4,.4,1)}
@keyframes cardin2{0%{transform:perspective(800px) rotateY(90deg) scale(.4) translateY(80px);opacity:0}60%{transform:perspective(800px) rotateY(-12deg) scale(1.08)}100%{transform:none;opacity:1}}
.cm-tag{font-family:var(--display);font-weight:400;font-size:22px;color:#fff;text-shadow:0 3px 0 #1B1029}
.cm-tag.new{color:#FFD23F;animation:pulse .6s ease-in-out infinite alternate}
.cm-tag.up{color:#5FE0B7}
@keyframes pulse{to{transform:scale(1.12)}}
.cm-line{margin:0;color:#D9CCE3;font-style:italic;max-width:32ch;text-align:center}
.cm-count{position:relative;font-family:var(--mono);font-size:13px;color:#D9CCE3}
.cm-hint{position:relative;font-family:var(--display);font-size:15px;color:#fff;opacity:.8;animation:bob2 1.2s ease-in-out infinite}
@keyframes bob2{50%{transform:translateY(-4px)}}
.cm-summary{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:760px}
.cm-summary .ccard{width:120px}
.chest-modal #cmClose{position:relative;min-width:220px}

/* ---------- Cartes ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.ccard{--rc:#8FB8FF;position:relative;border-radius:14px;background:linear-gradient(180deg,#34224A,#1E1330);border:3px solid var(--rc);padding:6px 6px 8px;display:grid;gap:4px;text-align:center;box-shadow:0 4px 0 #1B1029,0 0 16px rgba(0,0,0,.3)}
.ccard.r-rare{--rc:#FF9F1C}.ccard.r-epic{--rc:#C77DFF}.ccard.r-legendary{--rc:#5CFFE1}.ccard.r-champion{--rc:#FFD23F}
.ccard.r-legendary,.ccard.r-champion{box-shadow:0 4px 0 #1B1029,0 0 22px var(--rc)}
.ccard.r-legendary::before,.ccard.r-champion::before{content:"";position:absolute;inset:-3px;border-radius:14px;padding:3px;background:linear-gradient(120deg,#FF4F79,#FFD23F,#5FE0B7,#4FD8FF,#C77DFF,#FF4F79);background-size:300% 100%;animation:rainbow 3s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
@keyframes rainbow{to{background-position:300% 0}}
.cc-art{aspect-ratio:4/5;border-radius:9px;overflow:hidden;background:#fff;border:2px solid #1B1029}
.cc-art img,.cc-art svg{width:100%;height:100%;object-fit:cover;display:block}
.cc-lvl{position:absolute;top:10px;left:10px;font:700 10px var(--mono);background:#1B1029;color:#fff;border-radius:6px;padding:2px 5px}
.cc-name{font-weight:800;font-size:12.5px;line-height:1.15}
.cc-rar{font:700 10px var(--mono);color:var(--rc)}
.cc-bar{height:5px;border-radius:3px;background:#120A1B;overflow:hidden}
.cc-bar i{display:block;height:100%;background:var(--rc)}
.ccard.locked{border-color:var(--line);box-shadow:none;opacity:.6}
.ccard.locked::before{display:none}
.ccard.locked .cc-rar{color:var(--muted)}
.ccard[data-big]{width:min(250px,70vw);padding:10px 10px 12px;border-width:5px}
.ccard[data-big] .cc-name{font-family:var(--display);font-weight:400;font-size:20px}
.ccard[data-big] .cc-rar{font-size:13px}
.ccard[data-big] .cc-lvl{font-size:13px}
/* ---------- Collections et fusion (onglet Cartes) ---------- */
.cs-h{font-family:var(--display);font-weight:400;font-size:15px;margin:6px 0 0;color:var(--text)}
.cs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.cs-set{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.cs-set.done{border-color:rgba(255,210,63,.6);background:linear-gradient(135deg,rgba(255,210,63,.12),var(--panel))}
.cs-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cs-head b{font-weight:800;font-size:13.5px}
.cs-head span{font:700 11px var(--mono);color:var(--muted);white-space:nowrap}
.cs-set.done .cs-head span{color:#FFD23F}
.cs-bar{height:5px;border-radius:3px;background:#120A1B;overflow:hidden}
.cs-bar i{display:block;height:100%;background:linear-gradient(90deg,#C77DFF,#FFD23F)}
.cs-cards{display:flex;flex-wrap:wrap;gap:4px}
.cs-mini{width:26px;height:32px;border-radius:5px;overflow:hidden;border:2px solid #1B1029;background:#fff}
.cs-mini img,.cs-mini svg{width:100%;height:100%;object-fit:cover;display:block}
.cs-mini.off{background:#1E1330;border-color:var(--line);border-style:dashed}
.fu-note{margin:0}
.fu-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.fu-btn{--rc:#FF9F1C;display:grid;gap:2px;text-align:left;padding:9px 12px;border-radius:12px;border:2px solid var(--rc);background:linear-gradient(135deg,rgba(0,0,0,.1),var(--panel2));color:inherit;font:inherit;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 3px 0 #1B1029}
.fu-btn small{font:700 11px var(--mono);color:var(--rc)}
.fu-btn.r-epic{--rc:#C77DFF}.fu-btn.r-legendary{--rc:#5CFFE1}.fu-btn.r-champion{--rc:#FFD23F}
.fu-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.fu-btn:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 #1B1029}
.fu-ring{position:relative;width:min(420px,92vw);height:380px}
.fu-slot{position:absolute;left:50%;top:50%;width:84px;margin:-60px 0 0 -42px}
.fu-slot .ccard{width:84px}
.fu-slot .cc-rar{font-size:9px}
.emote-btn img,.emote-pal img,.bubble .face img,.meme-face img{width:100%;height:100%;object-fit:cover;border-radius:10px;display:block}

/* ---------- Fièvre ---------- */
.fever{display:grid;gap:5px;padding:2px 2px 0}
.fever-lab{font-family:var(--display);font-size:15px;color:#FF9F1C;letter-spacing:.06em;transform-origin:left center;-webkit-text-stroke:5px #1B1029;paint-order:stroke fill;text-shadow:0 2px 0 #1B1029}
.fever-track{height:14px;border-radius:999px;background:var(--deep);border:2px solid #1B1029;overflow:hidden;box-shadow:inset 0 2px 4px rgba(0,0,0,.5)}
.fever-track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#FF4F79,#FF9F1C,#FFD23F);transition:width .12s linear}
.fever.hot .fever-lab{color:#FFD23F;animation:pulse .35s ease-in-out infinite alternate}
.fever.hot .fever-track i{background:linear-gradient(90deg,#FF4F79,#FFD23F,#5FE0B7,#4FD8FF,#C77DFF,#FF4F79);background-size:300% 100%;animation:rainbow 1s linear infinite}
body.fever-on .stage{border-color:#FFD23F}
body.fever-on .stage::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;box-shadow:inset 0 0 0 4px #FFD23F,inset 0 0 60px rgba(255,79,121,.6);animation:fglow .35s ease-in-out infinite alternate;will-change:opacity}
@keyframes fglow{from{opacity:.3}to{opacity:1}}
@keyframes feverglow{from{box-shadow:0 0 0 4px #FF4F79,0 0 40px #FF4F79,0 0 80px rgba(255,210,63,.6)}to{box-shadow:0 0 0 4px #FFD23F,0 0 60px #FFD23F,0 0 110px rgba(199,125,255,.7)}}
body.fever-on .bar-logo,body.fever-on .num.big{animation:pulse .25s ease-in-out infinite alternate}

/* ---------- Pass Dopamine ---------- */
.ps-bar{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;width:100%;padding:7px 12px;border-radius:12px;border:2px solid #1B1029;
  background:linear-gradient(90deg,#3A1F55,#2B1B3D);cursor:pointer;color:#fff;text-align:left;box-shadow:0 3px 0 #1B1029}
.ps-bar-lab{font-family:var(--display);font-size:12px;letter-spacing:.04em;color:#C77DFF;white-space:nowrap}
.ps-bar-lab b{font-weight:400;color:#fff}
.ps-bar-track{height:8px;border-radius:999px;background:var(--deep);overflow:hidden}
.ps-bar-track i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#C77DFF,#4FD8FF);transition:width .2s linear}
.ps-dot{position:absolute;top:-9px;right:-7px;font:700 11px var(--mono);background:#FF4F79;color:#fff;border:2px solid #1B1029;border-radius:999px;padding:1px 7px}
.ps-bar.ready{border-color:#FFD23F}
.ps-bar.ready .ps-dot{animation:pulse .5s ease-in-out infinite alternate}
.ps-card{width:min(760px,100%);max-height:calc(100vh - 32px);overflow-y:auto}
.ps-card .cas-top h2{background:linear-gradient(90deg,#C77DFF,#4FD8FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.ps-prog{height:10px;border-radius:999px;background:var(--deep);border:2px solid #1B1029;overflow:hidden}
.ps-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#C77DFF,#4FD8FF)}
.ps-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ps-tile{position:relative;display:grid;justify-items:center;align-content:start;gap:3px;padding:8px 4px 7px;border-radius:12px;border:2px solid var(--line);background:var(--panel2);color:inherit;font:inherit;cursor:default;text-align:center}
.ps-tile small{font:700 10px var(--mono);color:var(--muted)}
.ps-art{width:100%;max-width:52px;aspect-ratio:1/1;display:grid;place-items:center}
.ps-art svg{width:100%}
.ps-art b{font-family:var(--display);font-weight:400;font-size:17px;line-height:1;color:#4FD8FF;-webkit-text-stroke:4px #1B1029;paint-order:stroke fill}
.ps-art .ps-prod{color:#FF4F79}.ps-art .ps-hype{color:#FF9F1C;font-size:14px}.ps-art .ps-time{color:#5FE0B7}.ps-art .ps-mega{color:#FFD23F;font-size:13px}.ps-art .ps-ticket{color:#FFF1A8}
.ps-lab{font-size:10.5px;line-height:1.2;color:#D9CCE3;min-height:2.4em}
.ps-tile em{font:700 9.5px var(--mono);font-style:normal;color:var(--muted)}
.ps-tile.big{border-color:rgba(92,255,225,.45)}
.ps-tile.locked{opacity:.5}
.ps-tile.done{opacity:.55;border-color:rgba(95,224,183,.4)}
.ps-tile.done em{color:var(--mint)}
.ps-tile.ready{cursor:pointer;border-color:#FFD23F;background:linear-gradient(180deg,rgba(255,210,63,.22),var(--panel2));animation:psglow .6s ease-in-out infinite alternate}
@keyframes psglow{to{transform:scale(1.04)}}
.ps-tile.ready em{color:#FFD23F}
body.lite .ps-tile.ready{animation:none}
#psAll:disabled{filter:grayscale(.8);opacity:.6;cursor:default}
@media (max-width:620px){.ps-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Roue ---------- */
.wheel-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-size:13px;color:#1B1029;background:linear-gradient(135deg,#FFD23F,#FF9F1C);border:3px solid #1B1029;border-radius:12px;padding:5px 12px;cursor:pointer;box-shadow:0 3px 0 #1B1029}
.wheel-btn b{font-family:var(--mono);font-size:11px;background:#FF4F79;color:#fff;border-radius:999px;padding:1px 7px;border:2px solid #1B1029}
.wheel-btn.ready{animation:wiggle 1.4s ease-in-out infinite}
@keyframes wiggle{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-6deg) scale(1.06)}85%{transform:rotate(5deg) scale(1.06)}}
.chests .board-head{margin-bottom:12px}
.wheel-card{width:min(460px,100%);justify-items:center;text-align:center}
.wheel-wrap{position:relative;width:min(360px,78vw);aspect-ratio:1/1}
.wheel-wrap canvas{position:relative;width:100%;height:100%;display:block}
.wheel-wrap::before{content:"";position:absolute;inset:3%;border-radius:50%;box-shadow:0 14px 28px rgba(0,0,0,.55)}
.wheel-pin{position:absolute;left:50%;top:-10px;width:34px;height:44px;transform:translateX(-50%);transform-origin:50% 20%;
  background:#fff;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 3px 0 #1B1029)}
.wheel-pin::after{content:"";position:absolute;inset:4px 6px 12px;background:#FF4F79;clip-path:polygon(0 0,100% 0,50% 100%)}
.wheel-pin.flick{animation:flick .12s ease-out}
@keyframes flick{40%{transform:translateX(-50%) rotate(-22deg)}}
.wheel-res{min-height:1.6em;margin:0;font-family:var(--display);font-size:20px;text-shadow:0 2px 0 #1B1029}
.wheel-card .ev-choices{width:100%}

/* ---------- Quêtes ---------- */
.quests-panel h3{color:#5FE0B7}
.quests{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.quest{padding:10px 12px;border-radius:12px;background:rgba(43,27,61,.85);border:1px solid var(--line);display:grid;gap:6px}
.quest.fresh{animation:qin .45s cubic-bezier(.2,1.5,.4,1)}
@keyframes qin{from{transform:translateX(40px) scale(.9);opacity:0}}
.quest .qh{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:700}
.quest .qp{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.qbar{height:8px;border-radius:999px;background:var(--deep);overflow:hidden}
.qbar i{display:block;height:100%;background:linear-gradient(90deg,#4FD8FF,#5FE0B7);transition:width .25s}
.quest .qr{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;color:var(--muted)}
.quest .qr b{color:#FFD23F}
.quest.done{border-color:#5FE0B7;background:linear-gradient(135deg,rgba(95,224,183,.18),rgba(43,27,61,.85));box-shadow:0 0 18px rgba(95,224,183,.25)}
.quest.done .qbar i{background:linear-gradient(90deg,#5FE0B7,#FFD23F)}
.qclaim{font-family:var(--display);font-size:12px;color:#1B1029;background:#5FE0B7;border:2px solid #1B1029;border-radius:9px;padding:4px 10px;cursor:pointer;box-shadow:0 3px 0 #1B1029;animation:pulse .5s ease-in-out infinite alternate}

/* ---------- Cadeau quotidien ---------- */
.daily-card{width:min(640px,100%);text-align:center;justify-items:center}
.ddays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%}
.dday{display:grid;gap:4px;justify-items:center;padding:8px 4px;border-radius:12px;background:var(--panel2);border:2px solid var(--line);font-size:11px}
.dday small{font-family:var(--mono);color:var(--muted)}
.dday .dart{width:100%;max-width:56px;aspect-ratio:1/1;display:grid;place-items:center}
.dday .dart svg{width:100%}
.dday .dspin{font-family:var(--display);font-size:20px;color:#4FD8FF}
.dday.past{opacity:.45}
.dday.today{border-color:#FFD23F;background:linear-gradient(180deg,rgba(255,210,63,.25),var(--panel2));box-shadow:0 0 20px rgba(255,210,63,.4);transform:scale(1.08);animation:pulse .6s ease-in-out infinite alternate}
@media (max-width:560px){.ddays{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- Salle de jeux ---------- */
.arcade h3{color:#FFD23F}
.arcade .board-head{margin-bottom:12px}
.arcade .linkbtn{padding:0;font-size:11.5px}
.arcade-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.arc-btn{position:relative;display:grid;justify-items:center;gap:6px;padding:10px 6px 9px;border-radius:14px;border:3px solid #1B1029;cursor:pointer;font-family:var(--display);font-size:12px;color:#fff;text-shadow:0 2px 0 #1B1029;box-shadow:0 4px 0 #1B1029;transition:transform .1s}
.arc-btn:hover{transform:translateY(-2px)}
.arc-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #1B1029}
.a-wheel{background:linear-gradient(160deg,#FF9F1C,#FF4F79)}
.a-slot{background:linear-gradient(160deg,#C77DFF,#7B6CFF)}
.a-scratch{background:linear-gradient(160deg,#5FE0B7,#2FBF71)}
.arc-btn > b{position:absolute;top:-9px;right:-7px;font:700 11px var(--mono);background:#FF4F79;color:#fff;border:2px solid #1B1029;border-radius:999px;padding:1px 7px;text-shadow:none}
.arc-btn.ready{animation:wiggle 1.4s ease-in-out infinite}
.arc-ic{width:40px;height:40px;border-radius:50%;border:3px solid #1B1029;display:grid;place-items:center;font-family:var(--display);color:#1B1029;text-shadow:none}
.wheel-ic{background:conic-gradient(#FF4F79 0 45deg,#FFD23F 0 90deg,#5FE0B7 0 135deg,#4FD8FF 0 180deg,#C77DFF 0 225deg,#FF9F1C 0 270deg,#2FBF71 0 315deg,#FFF6CC 0);animation:spin2 6s linear infinite}
@keyframes spin2{to{transform:rotate(360deg)}}
.slot-ic{border-radius:10px;background:#FFF6CC;font-size:12px;color:#E63946}
.ticket-ic{border-radius:8px;background:repeating-linear-gradient(135deg,#E3E8EF 0 6px,#AAB5C4 6px 12px);font-size:18px}

/* ---------- Machines à sous (slots.js) ---------- */
.slot-card{width:min(560px,100%);justify-items:center;text-align:center}
.slot-card .btn-hero,.slot-card .btn{width:100%}
.slot-res{min-height:1.5em;margin:0;font-family:var(--display);font-size:18px;color:#D9CCE3}
.slot-res.good{color:#FFD23F;text-shadow:0 2px 0 #1B1029;font-size:22px}
.bets{margin:0 auto}
.sl-lobby{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;width:100%;max-height:min(62vh,560px);overflow:auto;padding:2px}
.sl-pick{display:grid;justify-items:center;gap:2px;padding:10px 6px;border-radius:14px;border:3px solid #1B1029;cursor:pointer;color:#fff;
  background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:0 4px 0 #1B1029;text-shadow:0 2px 0 rgba(0,0,0,.55)}
.sl-pick:hover{transform:translateY(-2px)}
.sl-pick b{font-family:var(--display);font-weight:400;font-size:16px;line-height:1.1}
.sl-pick small{font:700 10px var(--mono);opacity:.95}
.sl-pico{font-size:34px;line-height:1.1}
.sl-pick.locked{filter:grayscale(1) brightness(.55);cursor:not-allowed}
.sl-game{display:grid;gap:10px;width:100%;justify-items:center}
.slot-machine{position:relative;width:100%;padding:12px;border-radius:22px;background:linear-gradient(180deg,var(--c2,#E63946),var(--c1,#9E1B2B));border:4px solid #1B1029;box-shadow:0 8px 0 #1B1029,inset 0 3px 0 rgba(255,255,255,.3)}
.slot-machine::before{content:"";position:absolute;inset:4px;border-radius:18px;border:4px dotted #FFF6B0;pointer-events:none;opacity:.9}
.slot-machine.win::before{animation:blink .18s steps(2) infinite}
.slot-machine.jack{animation:feverglow .3s ease-in-out infinite alternate}
@keyframes blink{50%{opacity:.15}}
.sl-win{position:relative;border-radius:12px;background:#1B1029;padding:6px}
.sl-reels{--rh:255px;display:grid;gap:6px}
.sl-reels.r3{grid-template-columns:repeat(3,1fr)}
.sl-reels.r5{--rh:225px;grid-template-columns:repeat(5,1fr);gap:4px}
.sl-reel{height:var(--rh);overflow:hidden;border-radius:9px;background:linear-gradient(180deg,#bbb,#fff 30%,#fff 70%,#bbb);position:relative}
.sl-reel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.4),transparent 28%,transparent 72%,rgba(0,0,0,.4));pointer-events:none}
.sl-strip{will-change:transform}
.sl-sym{height:calc(var(--rh) / 3);display:grid;place-items:center;font-size:calc(var(--rh) / 3 * .58);line-height:1}
.sl-reels.r3 .sl-sym{font-size:calc(var(--rh) / 3 * .66)}
.sl-lines{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);pointer-events:none;overflow:visible}
.sl-lines polyline{fill:none;stroke:#FFD23F;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.9;animation:blink .3s steps(2) 6}
.sl-win:not(:has(.sl-reels.r5))::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;margin-top:-1.5px;background:rgba(255,210,63,.6);pointer-events:none}
.sl-acts{display:grid;grid-template-columns:2fr 1fr;gap:8px;width:100%}
.paytable{width:100%;text-align:left;font-size:13px}
.paytable summary{cursor:pointer;color:var(--muted);font-family:var(--mono);font-size:12px}
#slPay table{width:100%;border-collapse:collapse;margin-top:6px}
#slPay td{padding:3px 6px;border-bottom:1px solid var(--line)}
#slPay td:first-child{font-size:18px;letter-spacing:1px}
#slPay td:last-child{font-family:var(--mono);color:#FFD23F;text-align:right}
@media (max-width:820px),(max-height:520px) and (pointer:coarse){
  .sl-reels{--rh:200px}.sl-reels.r5{--rh:170px}
  .sl-lobby{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Tickets à gratter (tickets.js) ---------- */
.scratch-card{width:min(640px,100%);text-align:center}
.tk-head{display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.tk-free{font:700 12px var(--mono);color:#5FE0B7}
.tk-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:8px}
.tk-shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:min(60vh,560px);overflow:auto;padding:2px}
.tk-lock{grid-column:1/-1;margin:0;color:var(--muted);font:700 12px var(--mono)}
.tk-pick{position:relative;display:grid;justify-items:center;gap:2px;padding:10px 6px 8px;border-radius:12px;border:3px solid #1B1029;cursor:pointer;color:#fff;
  background:linear-gradient(160deg,var(--c1),var(--c2));box-shadow:0 4px 0 #1B1029;text-shadow:0 2px 0 rgba(0,0,0,.55)}
.tk-pick:hover{transform:translateY(-2px)}
.tk-pick.poor{filter:saturate(.35) brightness(.7)}
.tk-pick b{font-family:var(--display);font-weight:400;font-size:15px;line-height:1.1}
.tk-pick em{position:absolute;top:4px;right:6px;font:700 9px var(--mono);font-style:normal;opacity:.8}
.tk-pick small{font:700 12px var(--mono);color:#FFF6B0}
.tk-pick i{font:600 9px var(--mono);font-style:normal;opacity:.95}
.tk-pico{font-size:30px;line-height:1.1}
.tk-game{display:grid;gap:8px;justify-items:center}
.tk-ticket{width:100%;max-height:min(66vh,760px);overflow:auto;border-radius:16px;border:4px solid #1B1029;padding:10px;color:#1B1029;
  background:linear-gradient(170deg,var(--c2),#fff 45%,var(--c2));box-shadow:0 6px 0 #1B1029;text-align:left}
.tk-ticket.s-or{border-color:#8D6E00}.tk-ticket.s-di,.tk-ticket.s-ul{border-color:#311B92}
.tk-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:6px 10px;border-radius:10px;color:#fff;background:var(--c1);text-shadow:0 2px 0 rgba(0,0,0,.4)}
.tk-top b{font-family:var(--display);font-weight:400;font-size:20px}
.tk-top small{font:700 10px var(--mono);opacity:.85}
.tk-ticket .tk-rule{margin:6px 2px;font-size:12px;line-height:1.35;color:#1B1029}
.tk-play{display:grid;gap:8px}
.tk-play.many{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.tk-zone{display:grid;gap:3px;justify-items:center}
.tk-zone h4{margin:0;font:700 11px var(--mono);color:var(--c1);justify-self:start}
.tk-scr{position:relative;width:100%;max-width:calc(var(--cols) * 74px)}
.tk-scr.sky{max-width:none}
.tk-foil{position:absolute;inset:0;width:100%;height:100%;border-radius:10px;cursor:crosshair;touch-action:none}
.tk-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:4px;width:100%}
.tk-grid.lines{row-gap:7px}
.tk-grid.big{gap:2px}
.tk-grid.big .tk-c{border-radius:4px;border-width:1px}
.tk-grid.big .tk-e{font-size:clamp(9px,2.1vw,20px)}
.tk-grid.big .tk-e small{display:none}
.tk-tabs button{font-size:11px}
.tk-colh{font:700 9px var(--mono);text-align:center;color:var(--c1)}
.tk-c{position:relative;aspect-ratio:1/1;display:grid;place-items:center;border-radius:9px;background:#fff;border:2px solid rgba(27,16,41,.35);min-width:0;overflow:hidden;transition:opacity .3s}
.tk-c.hit{border-color:#FFB300;box-shadow:0 0 0 2px #FFD23F,0 0 14px #FFD23F;animation:pulse .45s ease-in-out infinite alternate;z-index:1}
.tk-c.dim{opacity:.55}
.tk-c.mark{background:#FFF59D}
.tk-c.gild{background:#FFE082}
.tk-c.path{background:#C8E6C9}
.tk-c.closed{filter:grayscale(1);opacity:.35}
.tk-badge{position:absolute;top:1px;left:3px;font:700 9px var(--mono);font-style:normal;color:#5D4037}
.tk-e{display:grid;place-items:center;width:100%;height:100%;font-size:clamp(16px,4.6vw,30px);line-height:1}
.tk-e small{font:700 8px var(--mono);margin-top:-2px;color:#1B1029}
.tk-e.c-g{background:#C8E6C9}.tk-e.c-b{background:#BBDEFB}.tk-e.c-r{background:#FFCDD2}.tk-e.c-v{background:#E1BEE7}.tk-e.c-w{background:#FAFAFA}
.tk-e.c-y{background:#FFF9C4}.tk-e.c-k{background:linear-gradient(135deg,#D7A26A,#8C5A2B)}.tk-e.c-s{background:linear-gradient(135deg,#ECEFF1,#90A4AE)}
.tk-e.c-o{background:linear-gradient(135deg,#FFF3C4,#FFB300 55%,#FFE082)}
.tk-e.c-R{background:linear-gradient(135deg,#7C4DFF,#FFD700);color:#fff}
.tk-e.c-n{background:#F5F5F5}
.tk-amt{font:800 clamp(10px,2.6vw,14px) var(--mono);color:#1B5E20;text-align:center;word-break:break-all;padding:1px}
.tk-amt.off{color:#B71C1C;font-size:20px}
.tk-num{font:800 clamp(14px,3.6vw,22px) var(--mono);color:#1A237E}
.tk-num.c-o{color:#B8860B;text-shadow:0 0 6px #FFD54F}
.tk-die{font-size:clamp(28px,7vw,44px);line-height:1;color:#1B1029}
.tk-card{display:grid;place-items:center;font:800 clamp(14px,3.6vw,22px) var(--mono);color:#1B1029;line-height:1}
.tk-card i{font-style:normal;font-size:1.1em}
.tk-card.s-h,.tk-card.s-d{color:#C62828}
.tk-mul{font:800 clamp(14px,3.6vw,22px) var(--mono);color:#6A1B9A}
.tk-lbl{font:800 9px var(--mono);color:#B71C1C;text-align:center}
.tk-floor{width:30%;height:30%;border-radius:50%;background:#B0BEC5}
.k-maze{gap:2px}
.k-maze .tk-c:first-child{outline:3px solid #2E7D32}
.k-maze .tk-c:last-child{outline:3px solid #C62828}
.k-ring .tk-c{border-radius:50%}
.tk-sky{position:relative;width:100%;aspect-ratio:100/72;border-radius:10px;background:radial-gradient(circle at 30% 30%,#311B92,#0D0221)}
.tk-sky svg{position:absolute;inset:0;width:100%;height:100%}
.tk-sky line{stroke:rgba(255,255,255,.35);stroke-width:.5;stroke-dasharray:1.5 1}
.tk-sky line.on{stroke:#FFD23F;stroke-width:.9;stroke-dasharray:none}
.tk-pt{position:absolute;width:clamp(18px,var(--ps,9%),46px);transform:translate(-50%,-50%)}
.tk-cn{position:absolute;transform:translateX(-30%);font:700 8px var(--mono);font-style:normal;color:#D1C4E9;white-space:nowrap;pointer-events:none}
.tk-foot{margin-top:6px;font:700 10px var(--mono);text-align:center;color:#1B1029;opacity:.8}
.tk-acts{display:flex;gap:8px;width:100%}
.tk-acts>*{flex:1}.tk-acts>.btn-hero{flex:2}
.scratch-card>.btn,.tk-game>.btn{width:100%}

/* ---------- Duels ---------- */
.duel-btn{flex:none;margin-left:auto;font-family:var(--display);font-size:10px;color:#fff;background:#FF4F79;border:2px solid #1B1029;border-radius:7px;padding:1px 6px;cursor:pointer;box-shadow:0 2px 0 #1B1029}
.duel-btn:hover{background:#FF7A95}
.duels{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.duel{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;font-size:12.5px}
.duel.in{background:linear-gradient(135deg,rgba(255,79,121,.25),rgba(43,27,61,.85));border:1px solid #FF4F79}
.duel.out{background:rgba(43,27,61,.85);border:1px dashed var(--line);color:var(--muted)}
.duel em{font-style:normal;font-family:var(--mono);font-size:10.5px}
.race-card{width:min(440px,100%);justify-items:center;text-align:center}
.race-count{font-family:var(--display);font-size:64px;line-height:1;color:#FFD23F;text-shadow:0 5px 0 #1B1029}
.race-track{width:100%;height:12px;border-radius:999px;background:var(--deep);overflow:hidden;border:2px solid #1B1029}
.race-track i{display:block;height:100%;background:linear-gradient(90deg,#FF4F79,#FFD23F);transition:width .1s linear}
.race-btn{width:190px;height:190px;border-radius:50%;border:5px solid #1B1029;background:radial-gradient(circle at 35% 30%,#FF7A95,#FF4F79 60%,#C81E4A);box-shadow:0 10px 0 #1B1029,0 0 40px rgba(255,79,121,.6);cursor:pointer;display:grid;place-items:center;overflow:hidden;position:relative;touch-action:manipulation;user-select:none}
.race-btn img,.race-btn svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.race-btn b{position:relative;font-family:var(--display);font-weight:400;font-size:30px;color:#fff;text-shadow:0 3px 0 #1B1029}
.race-btn:disabled{filter:grayscale(.7);cursor:default}
.race-btn:not(:disabled):active{transform:translateY(6px);box-shadow:0 4px 0 #1B1029}
.race-res{min-height:1.4em;margin:0}
.race-res b{font-family:var(--display);font-weight:400;color:#FFD23F}

/* ---------- Pluie de dopamine ---------- */
.rain-layer{position:fixed;inset:0;z-index:43;pointer-events:none;overflow:hidden}
.drop{position:absolute;top:-100px;pointer-events:auto;border-radius:50%;border:3px solid #1B1029;padding:0;cursor:pointer;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#FFF6B0,#FFD23F 45%,#E6A100);box-shadow:0 0 18px rgba(255,210,63,.8);animation-name:fall;animation-timing-function:linear;animation-fill-mode:forwards}
.drop span{font-family:var(--display);font-size:10px;color:#1B1029}
.meme-drop{border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 0 22px rgba(255,79,121,.9)}
.meme-drop img,.meme-drop svg{width:100%;height:100%;object-fit:cover;display:block}
@keyframes fall{to{transform:translateY(calc(100vh + 140px)) rotate(220deg)}}
.drop-float{position:fixed;z-index:44;pointer-events:none;font:700 18px var(--mono);color:#FFD23F;text-shadow:0 2px 0 #1B1029;transform:translate(-50%,-50%);animation:dfloat .9s ease-out forwards}
@keyframes dfloat{to{transform:translate(-50%,-180%);opacity:0}}

/* ---------- Casino ---------- */
.arcade-btns{grid-template-columns:repeat(2,1fr)}
.arc-btn{grid-template-columns:auto 1fr;justify-items:start;align-items:center;text-align:left;padding:8px 10px;gap:8px;font-size:12.5px}
.a-casino{background:linear-gradient(160deg,#2FBF71,#1A7F46)}
.casino-ic{background:radial-gradient(circle,#fff 0 45%,#E63946 46%);border-style:dashed;font-size:11px;color:#1B1029}
.casino-card{width:min(580px,100%);gap:10px}
.cas-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cas-top h2{background:linear-gradient(90deg,#FFD23F,#FF4F79,#C77DFF);-webkit-background-clip:text;background-clip:text;color:transparent}
.cas-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cas-tabs button{font-family:var(--display);font-size:13px;padding:9px 4px;border-radius:12px;border:3px solid #1B1029;background:var(--panel2);color:var(--muted);cursor:pointer;box-shadow:0 3px 0 #1B1029}
.cas-tabs button[aria-selected="true"]{background:linear-gradient(160deg,#FFD23F,#FF9F1C);color:#1B1029}
.cas-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.cas-bar .seg button.allin{color:#FF4F79}
.cas-bar .seg button.allin[aria-pressed="true"]{background:#FF4F79;color:#fff;animation:pulse .5s ease-in-out infinite alternate}
.cas-bank{margin-left:auto;font-size:12.5px;color:var(--muted)}
.cas-bank b{font-family:var(--mono);color:#FFD23F}
.cas-game{display:grid;gap:10px}
.cas-game .btn-hero{width:100%}
.crash-wrap{position:relative;height:260px;border-radius:16px;overflow:hidden;border:3px solid #1B1029}
.crash-wrap canvas{width:100%;height:100%;display:block}
.crash-mult{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);font-family:var(--display);font-size:54px;color:#fff;text-shadow:0 4px 0 #1B1029,0 0 20px rgba(95,224,183,.6);pointer-events:none}
.crash-mult.hot{color:#FFD23F;text-shadow:0 4px 0 #1B1029,0 0 30px rgba(255,210,63,.9)}
.crash-mult.boom{color:#FF4F79;text-shadow:0 4px 0 #1B1029,0 0 30px rgba(255,79,121,.9)}
#crashBtn.cash{background:linear-gradient(135deg,#5FE0B7,#2FBF71);animation:pulse .35s ease-in-out infinite alternate}
.crash-hist{display:flex;flex-wrap:wrap;gap:5px}
.crash-hist span{font:700 11px var(--mono);padding:2px 7px;border-radius:999px;background:var(--panel2)}
.crash-hist .lo{color:#FF4F79}.crash-hist .mid{color:#5FE0B7}.crash-hist .hi{color:#FFD23F}
.plinko-wrap{height:380px;border-radius:16px;overflow:hidden;border:3px solid #1B1029}
.plinko-wrap canvas{width:100%;height:100%;display:block}
.mines-opts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mines-opts small{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:#FFD23F}
.mines-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(340px,100%);margin:0 auto}
.tile{aspect-ratio:1/1;border-radius:12px;border:3px solid #1B1029;background:linear-gradient(160deg,#4A3560,#2B1B3D);box-shadow:0 4px 0 #1B1029;cursor:pointer;padding:0;overflow:hidden;transition:transform .1s}
.tile.live:hover{transform:translateY(-2px);background:linear-gradient(160deg,#5E4478,#3A2450)}
.tile:disabled{cursor:default}
.tile.gem{background:#fff;animation:copen .3s cubic-bezier(.2,1.6,.4,1)}
.tile.gem img,.tile.gem svg{width:100%;height:100%;object-fit:cover;display:block}
.tile.bomb{background:#FF4F79;display:grid;place-items:center;animation:copen .3s cubic-bezier(.2,1.6,.4,1)}
.bomb-ic{width:60%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#666,#111);position:relative;border:2px solid #1B1029}
.bomb-ic::after{content:"";position:absolute;right:-4px;top:-6px;width:8px;height:10px;border-radius:3px;background:#FFD23F;box-shadow:0 0 8px #FF9F1C}
.coin-wrap{perspective:900px;display:grid;place-items:center;height:220px}
.coin{width:170px;height:170px;position:relative;transform-style:preserve-3d}
.coin-face{position:absolute;inset:0;border-radius:50%;border:6px solid #1B1029;overflow:hidden;backface-visibility:hidden;display:grid;place-items:end center;box-shadow:inset 0 0 0 6px #FFD23F,0 8px 0 #1B1029}
.coin-face img,.coin-face svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.coin-face b{position:relative;margin-bottom:14px;font-family:var(--display);font-weight:400;font-size:18px;color:#fff;text-shadow:0 2px 0 #1B1029,0 0 6px #1B1029}
.coin-face.tails{transform:rotateY(180deg)}
.coin-pick{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.coin-pick .btn{font-family:var(--display);font-size:15px;padding:12px}
.coin-streak{margin:0;text-align:center;color:#D9CCE3;font-size:13px}

/* ---------- Casino, deuxième salle ---------- */
.cas-tabs{grid-template-columns:repeat(5,1fr)}
.cas-tabs button{font-size:12px;padding:8px 2px}
.casino-card{width:min(640px,100%);max-height:calc(100vh - 32px);overflow-y:auto}
/* Cartes à jouer */
.pcard{position:relative;width:74px;height:104px;border-radius:9px;background:linear-gradient(160deg,#FFFFFF,#F1ECF6);border:3px solid #1B1029;box-shadow:0 5px 0 #1B1029;color:#16161C;font-family:var(--display);flex:none}
.pcard.red{color:#C8102E}
.pcard .tl,.pcard .br{position:absolute;display:grid;justify-items:center;line-height:.95;font-size:16px}
.pcard .tl{left:6px;top:5px}.pcard .br{right:6px;bottom:5px;transform:rotate(180deg)}
.pcard i{font-style:normal;font-size:13px}
.pcard .mid{position:absolute;inset:0;display:grid;place-items:center;font-size:38px}
.pcard .mid.face{font-size:34px;background:radial-gradient(circle,rgba(255,210,63,.35) 0 38%,transparent 40%)}
.pcard.back{background:repeating-linear-gradient(45deg,#FF4F79 0 8px,#C8102E 8px 16px);box-shadow:0 5px 0 #1B1029,inset 0 0 0 5px #fff}
.pcard.deal{animation:deal .35s cubic-bezier(.2,1.3,.4,1)}
@keyframes deal{from{transform:translate(120px,-80px) rotate(25deg);opacity:0}}
.pcard.held{transform:translateY(-10px);box-shadow:0 5px 0 #1B1029,0 0 0 3px #FFD23F,0 0 20px #FFD23F}
.pcard em{position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);font-style:normal;font-size:10px;color:#FFD23F;white-space:nowrap}
/* Tapis vert commun */
.felt{border-radius:22px;border:4px solid #1B1029;background:radial-gradient(ellipse at 50% 30%,#1E9E57,#0B5A31 75%);box-shadow:inset 0 0 0 6px #C8912A,inset 0 0 40px rgba(0,0,0,.45),0 8px 0 #1B1029;padding:16px}
/* Roulette */
.rou-top{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;position:relative}
.rou-wheel{position:relative;width:min(300px,70vw);aspect-ratio:1/1}
.rou-wheel canvas{position:relative;width:100%;height:100%;display:block}
.rou-wheel::before{content:"";position:absolute;inset:2%;border-radius:50%;box-shadow:0 14px 24px rgba(0,0,0,.55)}
.rou-result{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);width:74px;height:74px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:32px;color:#fff;border:4px solid #FFD86B;box-shadow:0 0 30px rgba(255,216,107,.8);transition:transform .35s cubic-bezier(.2,1.6,.4,1)}
.rou-result.show{transform:translate(-50%,-50%) scale(1)}
.rou-result.red{background:#C8102E}.rou-result.black{background:#16161C}.rou-result.green{background:#1E9E57}
.rou-hist{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:22px}
.rou-hist span{font:700 11px var(--mono);color:#fff;border-radius:6px;padding:2px 6px}
.rou-hist .red{background:#C8102E}.rou-hist .black{background:#16161C;border:1px solid #444}.rou-hist .green{background:#1E9E57}
.rou-table{display:grid;grid-template-columns:30px repeat(12,minmax(0,1fr));grid-template-rows:repeat(3,30px) 28px 28px;gap:3px;padding:10px}
.rc{border:2px solid rgba(255,255,255,.75);border-radius:6px;color:#fff;font:700 12px var(--mono);cursor:pointer;padding:0;position:relative;background:transparent}
.rc.red{background:#C8102E}.rc.black{background:#16161C}.rc.green{background:#1E9E57}
.rc.out{font-size:10.5px;font-family:var(--display);font-weight:400}
.rc:hover{filter:brightness(1.25)}
.rc.sel::after{content:"";position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fff 0 35%,#FFD23F 36% 60%,#fff 61% 70%,#E6A100 71%);border:2px solid #1B1029;box-shadow:0 3px 6px rgba(0,0,0,.5)}
.dia{display:inline-block;width:16px;height:16px;transform:rotate(45deg);border:2px solid #fff}
.dia.red{background:#C8102E}.dia.black{background:#16161C}
.rou-info{margin:0;text-align:center;font-size:13px;color:#D9CCE3}
.rou-info b{color:#FFD23F}
/* Blackjack */
.bj-row{display:grid;gap:8px;justify-items:center;min-height:146px}
.bj-lab{font-family:var(--display);font-size:13px;color:#FFF6CC;text-shadow:0 2px 0 #1B1029}
.bj-lab b{display:inline-block;min-width:30px;margin-left:6px;padding:1px 8px;border-radius:999px;background:#1B1029;color:#FFD23F;font-family:var(--mono)}
.hand{display:flex;justify-content:center;gap:-10px;min-height:108px}
.hand .pcard + .pcard{margin-left:-22px}
.bj-sep{text-align:center;font-family:var(--display);font-size:11px;letter-spacing:.2em;color:rgba(255,246,204,.6);margin:4px 0}
.bj-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bj-actions #bjDeal{grid-column:1/-1}
.bj-actions .btn{font-family:var(--display);font-size:14px;padding:12px 6px}
/* Vidéo poker */
.pk-hand{display:flex;justify-content:center;gap:8px;padding:10px 0 26px;min-height:150px}
.pk-hand .pcard{width:82px;height:116px;cursor:pointer}
.pk-hint{margin:0;text-align:center;font-size:12.5px;color:#FFF6CC}
.pk-pay{width:100%;border-collapse:collapse;font-size:12.5px}
.pk-pay td{padding:4px 8px;border-bottom:1px solid rgba(61,41,81,.6)}
.pk-pay td:last-child{text-align:right;font-family:var(--mono);color:#FFD23F}
.pk-pay tr.hit td{background:#FFD23F;color:#1B1029;font-weight:800;animation:pulse .4s ease-in-out infinite alternate}
/* La Tour */
.tw-wrap{border-radius:20px;border:4px solid #1B1029;padding:12px;background:repeating-linear-gradient(0deg,#3A2450 0 22px,#33203F 22px 24px),#3A2450;box-shadow:0 8px 0 #1B1029}
.tw-crown{text-align:center;font-family:var(--display);color:#FFD23F;text-shadow:0 3px 0 #1B1029;margin-bottom:8px}
.tw-rows{display:flex;flex-direction:column-reverse;gap:6px}
.tw-row{display:grid;grid-template-columns:62px repeat(3,1fr);gap:6px;align-items:center;opacity:.55;transition:opacity .2s}
.tw-row.cur,.tw-row.done{opacity:1}
.tw-row.cur .tw{box-shadow:0 3px 0 #1B1029,0 0 14px rgba(255,210,63,.55)}
.tw-m{font:700 11.5px var(--mono);color:#FFD23F;text-align:right}
.tw{height:38px;border-radius:10px;border:3px solid #1B1029;background:linear-gradient(160deg,#6B4A8A,#4A3560);box-shadow:0 3px 0 #1B1029;padding:0;overflow:hidden;cursor:default;display:grid;place-items:center}
.tw.live{cursor:pointer;background:linear-gradient(160deg,#FFD23F,#FF9F1C);animation:pulse .6s ease-in-out infinite alternate}
.tw.live:hover{filter:brightness(1.15)}
.tw.gem{background:#fff}
.tw.gem img,.tw.gem svg{width:100%;height:100%;object-fit:cover}
.tw.bomb{background:#FF4F79}
.tw.bomb .bomb-ic{width:26px}
.tw.dim{opacity:.5}
/* Dés */
.dice-num{font-family:var(--display);font-size:64px;text-align:center;color:#fff;text-shadow:0 5px 0 #1B1029;line-height:1.1}
.dice-num.rolling{color:#D9CCE3}
.dice-num.win{color:#5FE0B7;text-shadow:0 5px 0 #1B1029,0 0 30px rgba(95,224,183,.8)}
.dice-num.lose{color:#FF4F79}
.dice-bar{--t:70%;position:relative;height:22px;border-radius:999px;border:3px solid #1B1029;background:linear-gradient(90deg,#5FE0B7 0 var(--t),#FF4F79 var(--t) 100%);box-shadow:0 4px 0 #1B1029}
.dice-mark{position:absolute;top:-12px;width:6px;height:40px;margin-left:-3px;border-radius:3px;background:#fff;border:2px solid #1B1029;left:50%;transition:left .35s cubic-bezier(.2,1.4,.4,1)}
.dice-slider{width:100%;accent-color:#FFD23F}
.dice-info{margin:0;text-align:center;font-size:13px;color:#D9CCE3}
.dice-info b{color:#FFD23F}
.dice-actions{display:grid;grid-template-columns:2fr 1fr;gap:8px}
.dice-actions .btn{font-family:var(--display)}
@media (max-width:560px){.rou-table{grid-template-rows:repeat(3,26px) 26px 26px}.rc{font-size:10px}.pk-hand .pcard{width:58px;height:84px}.pcard{width:62px;height:88px}}

/* ---------- Écran de chargement ---------- */
.loader{position:fixed;inset:0;z-index:100;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(ellipse at 50% 40%,#2A1439,#140B1F 70%);transition:opacity .45s ease}
.loader.done{opacity:0;pointer-events:none}
.ld-logo{font-family:var(--display);font-size:clamp(34px,6vw,60px);line-height:.9;color:#FF4F79;text-align:center;text-shadow:0 0 30px rgba(255,79,121,.5);display:grid}
.ld-logo span{color:#FFD23F}
.ld-bar{width:min(320px,70vw);height:14px;border-radius:999px;border:3px solid #1B1029;background:#0F0817;overflow:hidden;box-shadow:0 4px 0 #1B1029}
.ld-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#FF4F79,#FFD23F,#5FE0B7);transition:width .25s ease}
.ld-txt{margin:0;font-family:var(--mono);font-size:12.5px;color:#A994B9}
.bg{image-rendering:auto}
.ticker .track{will-change:transform}

/* ---------- Performance : zones « étanches » pour la mise en page ----------
   Un changement de texte à l'intérieur n'oblige plus le navigateur à recalculer toute la page. */
@media (min-width:1201px){ .col{contain:strict} }
.kpis .num{display:block;contain:strict;height:1.3em;width:8.5ch;overflow:hidden}
.kpis .num.big{height:1.12em;width:10ch}

/* ---------- Bourse ---------- */
.a-bourse{background:linear-gradient(160deg,#4FD8FF,#2B6CFF)}
.bourse-ic{background:#EFFFF8;color:#1A9E62;font-size:18px}
.a-swap{background:linear-gradient(160deg,#FF7EB6,#C77DFF)}
.swap-ic{background:#FFF1F8;color:#C23A7A;font-size:20px}
.bourse-card{width:min(760px,100%);max-height:calc(100vh - 32px);overflow-y:auto;gap:10px}
.bourse-card .cas-top h2{background:linear-gradient(90deg,#5FE0B7,#4FD8FF,#FFD23F);-webkit-background-clip:text;background-clip:text;color:transparent}
.bx-news{margin:0;padding:8px 12px;border-radius:12px;background:#120A1E;border:2px solid #1B1029;font:700 12.5px var(--mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bx-news.is-up{color:#5FE0B7;border-color:#5FE0B7}
.bx-news.is-down{color:#FF4F79;border-color:#FF4F79}
.bx-main{display:grid;grid-template-columns:200px minmax(0,1fr);gap:10px}
.bx-list{display:grid;gap:6px;align-content:start}
.bx-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;align-items:center;text-align:left;padding:7px 10px;border-radius:12px;cursor:pointer;
  background:var(--panel2);border:2px solid #1B1029;box-shadow:0 3px 0 #1B1029;color:var(--text);border-left:6px solid var(--c)}
.bx-row b{font-family:var(--display);font-weight:400;font-size:14px;color:var(--c)}
.bx-row small{grid-column:1;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bx-row .bx-p{grid-row:1;grid-column:2;text-align:right;font:700 13px var(--mono)}
.bx-row .bx-c{grid-column:2;text-align:right;font:700 11px var(--mono)}
.bx-row[aria-pressed="true"]{background:#3A2552;outline:3px solid var(--c);outline-offset:-1px}
.is-up{color:#5FE0B7}.is-down{color:#FF4F79}
.bx-chart-wrap{display:grid;grid-template-rows:auto 1fr;gap:6px;min-width:0}
.bx-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bx-head span:first-child{font-family:var(--display);font-size:13px;color:var(--muted)}
.bx-head b{font-family:var(--display);font-weight:400;font-size:28px;color:#fff;-webkit-text-stroke:5px #1B1029;paint-order:stroke fill}
.bx-chg{font:800 13px var(--mono)}
#bxChart{width:100%;height:230px;display:block;border-radius:14px;border:3px solid #1B1029;box-shadow:0 5px 0 #1B1029;background:#120A1E}
.bx-go{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bx-go .btn-hero{width:100%;font-size:17px}
.bx-up{background:linear-gradient(160deg,#5FE0B7,#1A9E62)!important}
.bx-down{background:linear-gradient(160deg,#FF7A8F,#D62B55)!important}
.bx-pos{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.bx-pos li{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--panel2);border:2px solid #1B1029;border-left:6px solid var(--c)}
.bx-pos li.empty{display:block;color:var(--muted);font-size:13px;border-left-width:2px}
.bx-tag{font-family:var(--display);font-size:13px}
.bx-amt{font:700 12px var(--mono);color:var(--muted)}
.bx-pl{font:800 13px var(--mono);text-align:right}
.bx-close{padding:6px 10px;font-size:12px;font-weight:800}
.bx-close.hot{background:#FFD23F;color:#1B1029;border-color:#1B1029;animation:pulse .5s ease-in-out infinite alternate}
@media (max-width:640px){.bx-main{grid-template-columns:1fr}.bx-list{grid-template-columns:repeat(3,minmax(0,1fr))}.bx-row small{display:none}.bx-pos li{grid-template-columns:1fr auto;}}

/* ---------- Échanges de cartes ---------- */
.swap-card{width:min(720px,100%);max-height:calc(100vh - 32px);overflow-y:auto;gap:10px}
.swap-card .cas-top h2{background:linear-gradient(90deg,#FF7EB6,#C77DFF,#4FD8FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.sw-h{margin:6px 0 0;font-family:var(--display);font-weight:400;font-size:15px;color:#FFD23F}
.sw-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sw-list li.empty{color:var(--muted);font-size:13px}
.sw-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:10px;border-radius:14px;background:var(--panel2);border:2px solid #1B1029;box-shadow:0 3px 0 #1B1029}
.sw-offer small{grid-column:1/-1;color:#FF4F79}
.sw-who{grid-column:1/-1;font-size:13px}
.sw-deal{display:flex;align-items:center;gap:8px}
.sw-deal i{font-style:normal;font-family:var(--display);font-size:22px;color:#FFD23F}
.sw-act{display:flex;gap:6px}
.sw-act .btn-hero{padding:8px 14px;font-size:13px}
.sw-card{position:relative;display:grid;justify-items:center;gap:3px;width:78px}
.sw-card img,.sw-card svg{width:66px;height:82px;object-fit:cover;border-radius:9px;border:3px solid var(--rc);box-shadow:0 3px 0 #1B1029;background:#1B1029}
.sw-card b{font-size:10.5px;line-height:1.1;text-align:center;max-width:78px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sw-card.miss img{filter:grayscale(1);opacity:.6}
.sw-friends{display:flex;flex-wrap:wrap;gap:6px}
.sw-friend{display:grid;padding:6px 12px;border-radius:12px;border:2px solid #1B1029;background:var(--panel2);color:var(--text);font-weight:700;cursor:pointer;box-shadow:0 3px 0 #1B1029;text-align:left}
.sw-friend small{font-weight:400;color:var(--muted);font-size:11px}
.sw-friend[aria-pressed="true"]{background:#C77DFF;color:#1B1029}
.sw-friend[aria-pressed="true"] small{color:#1B1029}
.sw-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sw-cols .lab{display:block;margin-bottom:6px}
.sw-picks{display:flex;flex-wrap:wrap;gap:6px;max-height:250px;overflow-y:auto;padding:2px}
.sw-pick{position:relative;padding:4px;border-radius:12px;border:2px solid transparent;background:transparent;color:var(--text);cursor:pointer}
.sw-pick[aria-pressed="true"]{border-color:#FFD23F;background:rgba(255,210,63,.15)}
.sw-pick em{position:absolute;top:-4px;right:-4px;font:800 10px var(--mono);font-style:normal;background:#FF4F79;color:#fff;border:2px solid #1B1029;border-radius:999px;padding:1px 5px}
.sw-pick em.new{background:#5FE0B7;color:#1B1029}
.swap-card > .btn-hero{width:100%}
@media (max-width:640px){.sw-cols{grid-template-columns:1fr}}

/* ---------- Stimulations ---------- */
.st-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.st-item{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:2px 10px;padding:12px;border-radius:16px;
  background:var(--panel2);border:3px solid #1B1029;box-shadow:0 4px 0 #1B1029}
.st-item .st-ic{grid-row:1/4;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:28px;background:#FFF1F8;border:3px solid #1B1029}
.st-item b{font-family:var(--display);font-weight:400;font-size:14px;line-height:1.15}
.st-item small{color:var(--muted);font-size:12px;line-height:1.3}
.st-buy{justify-self:start;margin-top:6px;padding:6px 12px;border-radius:10px;border:3px solid #1B1029;background:linear-gradient(160deg,#FF7EB6,#C77DFF);color:#fff;
  font:800 12px var(--mono);text-shadow:0 1px 0 #1B1029;box-shadow:0 3px 0 #1B1029;cursor:pointer;transition:transform .08s}
.st-buy:hover{transform:translateY(-2px)}
.st-buy:active{transform:translateY(2px);box-shadow:0 1px 0 #1B1029}
.st-buy:disabled{background:#3A2A4E;color:var(--muted);cursor:not-allowed;transform:none}
.st-own{justify-self:start;margin-top:6px;font:800 11px var(--mono);font-style:normal;color:#1B1029;background:#5FE0B7;border:2px solid #1B1029;border-radius:999px;padding:2px 9px}
.st-got{background:linear-gradient(160deg,#2C1F45,#3B2560)}
.st-lock{opacity:.55}
.st-lock .st-ic{background:#3A2A4E;color:var(--muted);font-family:var(--display)}

.st-wall .board-head{margin-bottom:8px}
.st-live{display:flex;align-items:center;gap:6px;font:800 11px var(--mono);color:#FF4F79}
.st-live i,.st-chat-head i{width:8px;height:8px;border-radius:50%;background:#FF1744;animation:pulse .6s ease-in-out infinite alternate}
.st-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.st-tile{position:relative;min-width:0;border-radius:14px;border:3px solid #1B1029;overflow:hidden;background:#0E0A14;box-shadow:0 4px 0 #1B1029;contain:layout paint}
.st-tile.tall{aspect-ratio:9/16}
.st-tile.sq{aspect-ratio:1}
.st-tile.wide{grid-column:1/-1}
.st-tile canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.st-pop{position:absolute;z-index:2;pointer-events:none;font-family:var(--display);font-size:15px;color:#FFD23F;-webkit-text-stroke:4px #1B1029;paint-order:stroke fill;white-space:nowrap}
.st-chat{display:flex;flex-direction:column;background:#18121F}
.st-chat-head{display:flex;align-items:center;gap:6px;padding:6px 8px;font:800 10px var(--mono);color:#fff;background:#9146FF;flex:none}
.st-chat ul{list-style:none;margin:0;padding:6px 7px;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;flex:1;min-height:0;overflow:hidden;font-size:11.5px;line-height:1.3;color:#EDE6F5}
.st-chat li{overflow-wrap:anywhere;animation:stchat .25s ease-out}
.st-chat li b{font-weight:800}
.st-chat li.hype{font-weight:800;color:#FFD23F}
@keyframes stchat{from{transform:translateY(8px);opacity:0}}
.st-barsbox{background:#F4F1EA}
.st-bars{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-evenly;padding:8px}
.st-bar{display:grid;grid-template-columns:1fr auto;gap:3px 6px;align-items:center}
.st-bl{grid-column:1/-1;font:700 10.5px var(--mono);color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-bt{height:12px;border-radius:999px;background:#D8D2C6;border:2px solid #1B1029;overflow:hidden}
.st-bt i{display:block;height:100%;background:linear-gradient(90deg,#5FE0B7,#4FD8FF);transform:scaleX(0);transform-origin:left center;transition:transform .1s linear;will-change:transform}
.st-bp{font:800 10px var(--mono);color:#1B1029;min-width:34px;text-align:right}
.st-bar.done .st-bt i{background:#2FBF71}
.st-bar.done .st-bp{color:#2FBF71;font-size:14px}
.st-subs{display:grid;justify-items:center;gap:4px;padding:10px 8px;background:linear-gradient(160deg,#1B1029,#2E1847)}
.st-sublab{font:800 10px var(--mono);color:#FF4F79;letter-spacing:.12em}
.st-subn{display:flex;gap:2px;height:34px}
.st-dg{width:22px;height:34px;overflow:hidden;border-radius:6px;background:#0E0A14;border:2px solid #3D2951}
.st-dg > span{display:flex;flex-direction:column;height:1000%;transition:transform .45s cubic-bezier(.2,1.4,.4,1)}
.st-dg i{height:10%;display:grid;place-items:center;font:400 22px var(--display);font-style:normal;color:#fff}
.st-submsg{font-family:var(--display);font-weight:400;font-size:14px;color:#FFD23F;opacity:0;min-height:1.2em}

.st-rgb{position:fixed;inset:0;z-index:26;pointer-events:none}
.st-rgb i{position:absolute;overflow:hidden;opacity:.9}
.st-rgb i::before{content:"";position:absolute;background:linear-gradient(90deg,#FF1744,#FF9100,#FFEA00,#00E676,#00B0FF,#D500F9,#FF1744,#FF9100,#FFEA00,#00E676,#00B0FF,#D500F9,#FF1744);will-change:transform}
.st-rgb i:nth-child(1),.st-rgb i:nth-child(3){left:0;right:0;height:4px}
.st-rgb i:nth-child(1){top:0}.st-rgb i:nth-child(3){bottom:0}
.st-rgb i:nth-child(1)::before,.st-rgb i:nth-child(3)::before{top:0;bottom:0;left:0;width:200%;animation:strgbx 3s linear infinite}
.st-rgb i:nth-child(3)::before{animation-direction:reverse}
.st-rgb i:nth-child(2),.st-rgb i:nth-child(4){top:0;bottom:0;width:4px}
.st-rgb i:nth-child(2){right:0}.st-rgb i:nth-child(4){left:0}
.st-rgb i:nth-child(2)::before,.st-rgb i:nth-child(4)::before{left:0;right:0;top:0;height:200%;background:linear-gradient(180deg,#FF1744,#FF9100,#FFEA00,#00E676,#00B0FF,#D500F9,#FF1744,#FF9100,#FFEA00,#00E676,#00B0FF,#D500F9,#FF1744);animation:strgby 3s linear infinite}
.st-rgb i:nth-child(4)::before{animation-direction:reverse}
@keyframes strgbx{to{transform:translateX(-50%)}}
@keyframes strgby{to{transform:translateY(-50%)}}
.st-dvd{position:fixed;left:0;top:0;z-index:26;width:130px;color:#FF4F79;pointer-events:none;will-change:transform}
.st-dvd svg{display:block;width:100%;height:auto}
.st-notifs{position:fixed;top:76px;right:12px;z-index:27;width:min(300px,86vw);display:grid;gap:8px;pointer-events:none}
.st-notif{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:rgba(250,248,255,.97);color:#1B1029;
  border:3px solid #1B1029;box-shadow:0 5px 0 #1B1029}
.st-nic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:20px;background:#EDE4FF}
.st-nt{display:grid;grid-template-columns:1fr auto;gap:1px 6px;font-size:12.5px;line-height:1.25}
.st-nt b{font-weight:800}
.st-nt small{color:#7A6C8C;font-size:10.5px}
.st-nt span{grid-column:1/-1}
.st-meme{position:fixed;z-index:27;width:min(230px,42vw);pointer-events:none;transform-origin:50% 50%}
.st-meme img,.st-meme svg{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;border:6px solid #fff;box-shadow:0 10px 0 #1B1029,0 0 0 3px #1B1029}
.st-meme b{position:absolute;left:6px;right:6px;top:10px;text-align:center;font-family:var(--display);font-weight:400;font-size:clamp(14px,2.2vw,19px);line-height:1.05;color:#fff;-webkit-text-stroke:5px #000;paint-order:stroke fill}
.st-owl{position:fixed;left:12px;bottom:12px;z-index:27;display:flex;align-items:flex-end;gap:8px;pointer-events:none;max-width:min(360px,90vw)}
.st-owl svg{width:86px;height:86px;flex:none}
.st-owl p{margin:0 0 40px;padding:10px 12px;border-radius:14px 14px 14px 2px;background:#fff;color:#1B1029;font-weight:700;font-size:13px;border:3px solid #1B1029;box-shadow:0 4px 0 #1B1029}
.st-grass{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:linear-gradient(180deg,#8FD3FF 0%,#C9EEFF 55%,#7BC96F 55%,#4E9F3D 100%);overflow:hidden}
.st-sun{position:absolute;top:8%;right:12%;width:110px;height:110px;border-radius:50%;background:#FFE66D;box-shadow:0 0 80px 30px rgba(255,230,109,.6)}
.st-field{position:absolute;left:0;right:0;bottom:0;height:45%;background:repeating-linear-gradient(100deg,transparent 0 10px,rgba(30,90,30,.35) 10px 12px),repeating-linear-gradient(80deg,transparent 0 14px,rgba(200,255,150,.25) 14px 15px)}
.st-gtxt{position:relative;display:grid;justify-items:center;gap:12px;padding:24px 28px;text-align:center;border-radius:22px;background:rgba(255,255,255,.75);color:#1E3A1E;max-width:min(520px,88vw)}
.st-gtxt b{font-family:var(--display);font-weight:400;font-size:clamp(22px,4vw,34px)}
.st-gtxt span{font-size:16px}
body.lite .st-rgb i::before{animation:none}
.st-chat-head .st-vw{margin-left:auto;white-space:nowrap}

/* ---------- Téléphone et tablette tactile ----------
 * Une colonne à la fois (Jouer / Améliorer / Potes & live), barre de navigation en bas,
 * en-tête compact, marges pour l'encoche et la barre d'accueil de l'iPhone. */
html,body{overscroll-behavior:none}
button,.stage,.arc-btn,.tabs button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.mnav{display:none}
.install-box{display:grid;gap:6px;padding:12px;border-radius:14px;background:rgba(95,224,183,.08);border:2px dashed rgba(95,224,183,.5)}
.install-box p{margin:0;font-size:13px;color:var(--muted)}
@media (max-width:820px),(max-height:520px) and (pointer:coarse){
  body{overflow:hidden;font-size:14.5px}
  .game{height:100vh;height:100dvh;min-height:0}
  .bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;
    padding:calc(6px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 6px calc(12px + env(safe-area-inset-left))}
  .bar-logo,.era-chip,.pinfo,.kpis .unit{display:none}
  .kpis{gap:0 14px;margin:0;align-items:baseline;flex-wrap:nowrap;min-width:0}
  .kpi:nth-child(n+3){display:none}
  .kpi .lab{font-size:9.5px}
  .num{font-size:15px}
  .num.big{font-size:24px}
  .player{gap:6px}
  .icon-btn,.av{width:34px;height:34px}
  .ticker{font-size:11px;padding-block:4px}
  .grid{display:block;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    padding:10px calc(12px + env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}
  .col{display:none;overflow:visible;padding:0;contain:none;gap:12px}
  body[data-view="play"] .col-left,body[data-view="shop"] .col-mid,body[data-view="live"] .col-right{display:flex}
  .stage{width:min(100%,calc((100dvh - 200px) * 1.25));align-self:center;border-radius:16px}
  .tabs{overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:0 12px;top:-10px}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{flex:none;padding:10px 11px;font-size:12.5px}
  .gens,.ups{gap:8px}
  .arcade-btns{grid-template-columns:repeat(3,minmax(0,1fr))}
  .arc-btn{grid-template-columns:1fr;justify-items:center;text-align:center;padding:8px 4px;font-size:11px}
  .mnav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;position:fixed;left:0;right:0;bottom:0;z-index:28;
    padding:6px calc(10px + env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));
    background:rgba(20,11,31,.97);border-top:3px solid #1B1029;box-shadow:0 -8px 24px rgba(0,0,0,.45)}
  .mnav button{position:relative;display:grid;justify-items:center;gap:1px;padding:6px 4px 5px;border:0;border-radius:14px;background:none;
    color:var(--muted);font-family:var(--display);font-size:11px;letter-spacing:.02em;cursor:pointer;transition:transform .1s,background .15s}
  .mnav button span{font-size:22px;line-height:1.1}
  .mnav button:active{transform:scale(.92)}
  .mnav button[aria-pressed="true"]{color:#fff;background:linear-gradient(160deg,rgba(var(--era-rgb),.4),rgba(var(--era-rgb),.12));box-shadow:inset 0 0 0 2px rgba(var(--era-rgb),.6)}
  .modal{padding:calc(8px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom))}
  .modal .card{max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:18px 14px}
  .toasts{left:10px;right:10px;bottom:calc(84px + env(safe-area-inset-bottom));max-width:none}
  .trophies{top:calc(8px + env(safe-area-inset-top))}
  .st-owl{bottom:calc(84px + env(safe-area-inset-bottom))}
  .st-owl svg{width:64px;height:64px}
  .st-notifs{top:calc(60px + env(safe-area-inset-top));right:10px}
  .st-meme{width:min(260px,58vw)}
  .st-dvd{width:96px}
  .st-list{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:380px){
  .num.big{font-size:20px}
  .kpi:nth-child(2){display:none}
  .mnav button{font-size:10px}
}
/* vraies vidéos dans le mur (fichiers locaux de app/videos) */
.st-tile.w169{grid-column:1/-1;aspect-ratio:16/9}
.st-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;background:#000}
.st-tile.st-vid canvas{display:none}
.st-tile.st-vid::after{content:"";position:absolute;inset:0;z-index:1}
.st-off{position:absolute;inset:0;display:grid;place-items:center;padding:12px;text-align:center;font:700 12px var(--mono);color:var(--muted)}
.st-vid .st-off{display:none}
.st-tile.wide2{grid-column:1/-1;aspect-ratio:3/2}

/* téléphone à l'horizontale : navigation en rail sur le côté, la presse prend toute la hauteur */
@media (max-height:520px) and (orientation:landscape) and (pointer:coarse){
  .ticker{display:none}
  .bar{padding-right:calc(96px + env(safe-area-inset-right))}
  .grid{padding:8px calc(96px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left))}
  .stage{width:min(100%,calc((100dvh - 80px) * 1.25))}
  .mnav{left:auto;top:0;bottom:0;width:calc(84px + env(safe-area-inset-right));grid-template-columns:1fr;grid-auto-rows:min-content;align-content:center;
    padding:8px calc(6px + env(safe-area-inset-right)) 8px 6px;border-top:0;border-left:3px solid #1B1029;box-shadow:-8px 0 24px rgba(0,0,0,.45)}
  .mnav button{font-size:10px;padding:8px 2px}
  .toasts{bottom:calc(10px + env(safe-area-inset-bottom));right:96px;left:auto;max-width:min(360px,60vw)}
  .st-owl{bottom:calc(10px + env(safe-area-inset-bottom))}
  .st-notifs{right:96px}
}
/* chaque tuile est isolée : ce qui change dedans ne fait jamais recalculer le reste de la page */
.st-tile.tall,.st-tile.w169,.st-tile.wide2{contain:strict}

/* ===== Classement Amis / Monde, ajout d'amis, scores douteux, difficulté (v1.8) ===== */
.netst.wait::before{background:var(--gold)}
.lb-scope{margin-bottom:6px !important}
.lb-info{margin:0 0 8px;font:700 11px var(--mono);color:var(--muted)}
.board{max-height:560px;overflow-y:auto;overscroll-behavior:contain;contain:content;padding-right:2px}
.fr-btn{flex:none;margin-left:auto;font-size:15px;line-height:1;color:var(--gold);background:transparent;border:0;padding:2px 3px;cursor:pointer}
.fr-btn:hover{transform:scale(1.2)}
.fr-btn.on{text-shadow:0 0 8px rgba(255,194,71,.7)}
.fr-btn + .duel-btn{margin-left:2px}
.pl .nm em.dif{color:inherit;font-size:12px}
.pl.sus{opacity:.55;background:rgba(43,27,61,.45);border-style:dashed;border-color:rgba(255,79,121,.5)}
.pl.sus .rk{color:var(--coral);font-size:16px}
.pl.sus .val{text-decoration:line-through}
.pl .sus-why{color:var(--coral);font-weight:700}
.pl.gap{margin-top:14px;position:relative}
.pl.gap::before{content:"⋯";position:absolute;top:-15px;left:50%;color:var(--muted);font-size:12px}
.lb-add{display:flex;gap:8px;margin-top:10px}
.lb-add input{flex:1;min-width:0;background:rgba(15,8,23,.85);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font:700 14px var(--mono);color:var(--text)}
.lb-add input:focus{border-color:var(--gold);outline:none}
.lb-add .btn{flex:none;padding:8px 14px}
#frMsg{margin:6px 0 0;min-height:0}
.dif-sel{width:100%;background:rgba(15,8,23,.85);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:700 14px var(--mono);color:var(--text)}
.dif-sel option{background:#1B1029;color:#fff}
.dif-row{display:grid;gap:6px;margin:10px 0;font-size:12px;color:var(--muted)}
.dif-row .dif-sel{padding:8px 10px;font-size:13px;border-radius:10px}
.st-tile.sq{contain:strict}

/* Plus ou Moins (casino) */
.hl-felt{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px}
.hl-card .pcard{transform:scale(1.5);margin:18px 0}
.hl-hist{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;min-height:20px}
.hl-hist .pcard{transform:scale(.62);margin:-12px -8px}
.hl-acts{display:flex;gap:10px;margin:10px 0}
.hl-acts .btn{flex:1;display:grid;gap:2px;font-family:var(--display);font-size:15px;padding:10px}
.hl-acts .btn small{font:700 11px var(--mono);opacity:.85}
.hl-up{background:#1E7A55;color:#fff}
.hl-down{background:#A8264A;color:#fff}
/* ===== Saisons, défi du jour, week-end, clans, profils (v1.9, social.js) ===== */
.so-chips{display:flex;gap:8px;margin:8px 0 2px;flex-wrap:wrap}
.so-chip{flex:1;min-width:0;font:700 12px var(--mono);color:#fff;background:rgba(43,27,61,.9);border:2px solid #1B1029;border-radius:999px;padding:6px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 0 #1B1029}
.so-chip.ev{background:linear-gradient(90deg,#FF4F79,#FF9F1C);animation:soPulse 1.6s ease-in-out infinite}
@keyframes soPulse{50%{transform:scale(1.03)}}
.so-panel .board-head h3{font-family:var(--display);letter-spacing:1px;background:linear-gradient(90deg,#FFD23F,#FF7EB6);-webkit-background-clip:text;background-clip:text;color:transparent}
.so-me{margin:0 0 10px;font:700 12px var(--mono);color:var(--muted)}
.so-me b{color:var(--gold)}
.so-card{border:2px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:10px;background:rgba(43,27,61,.55)}
.so-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font:700 11px var(--mono);color:var(--muted)}
.so-h b{font-family:var(--display);font-size:14px;color:#fff;letter-spacing:.5px}
.so-t{margin:6px 0;font-weight:800;font-size:14px}
.so-card small{display:block;font:700 11px var(--mono);color:var(--muted);margin-top:6px}
.so-card small b{color:var(--mint)}
.so-bar{position:relative;height:12px;border-radius:7px;background:var(--deep);border:2px solid #1B1029;overflow:hidden}
.so-bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#5FE0B7,#4FD8FF);transition:width .4s ease-out}
.so-daily.done{border-color:var(--mint);background:rgba(95,224,183,.12)}
.so-event.on{border-color:#FF9F1C;background:linear-gradient(135deg,rgba(255,79,121,.22),rgba(255,159,28,.18))}
.so-event.on .so-h b{color:#FFD23F}
.so-bar.boss{height:16px}
.so-bar.boss i{background:linear-gradient(90deg,#FF4F79,#C2185B)}
.so-tk{position:absolute;top:0;bottom:0;width:2px;background:rgba(255,255,255,.6)}
.so-clan .lb-add{margin-top:6px}
#clanMsg{margin:6px 0 0}
.pl .nm em.md{color:inherit;font-size:11px}
.pl[data-pk]{cursor:pointer}
.pl[data-pk]:hover{border-color:rgba(255,255,255,.18)}
.board-panel #sortby button{padding:6px 4px;font-size:11px}
.so-join{font:700 10px var(--mono) !important;color:#1B1029 !important;background:var(--mint) !important;border:2px solid #1B1029 !important;border-radius:7px;padding:1px 6px !important}
/* profil */
.pf-card{max-width:440px}
.pf-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.pf-av{flex:none;width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font:400 30px var(--display);color:#1B1029;background:var(--c);border:3px solid #1B1029;box-shadow:0 4px 0 #1B1029}
.pf-head h2{margin:0;font-size:22px}
.pf-head p{margin:2px 0;font-size:12px;color:var(--muted)}
.pf-tags{font-weight:700;color:var(--text) !important}
.pf-on{color:var(--mint) !important;font-family:var(--mono)}
.pf-sus{margin:0 0 10px;padding:8px 10px;border-radius:10px;background:rgba(255,79,121,.15);color:var(--coral);font-weight:700;font-size:12px}
.pf-stats{width:100%;border-collapse:collapse;font-size:13px}
.pf-stats td{padding:5px 2px;border-bottom:1px solid var(--line)}
.pf-stats td:last-child{text-align:right;font-family:var(--mono);font-weight:700}
.pf-acts{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pf-acts > *{flex:1}
.pf-close{margin-top:10px;width:100%}
.so-h b{white-space:nowrap}
.so-h span{font-size:10px;text-align:right}

/* ===== Coach des premières minutes (coach.js) ===== */
.coach{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;gap:12px;align-items:center;width:min(520px,calc(100vw - 32px));padding:12px 14px;border-radius:16px;background:#2B1B3D;border:3px solid #FFD23F;box-shadow:0 6px 0 #1B1029,0 12px 30px rgba(0,0,0,.45);pointer-events:auto}
.coach-ic{flex:none;font-size:30px;line-height:1}
.coach-body{min-width:0}
.coach-body p{margin:0;font-weight:800;font-size:14px;line-height:1.35}
.coach-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font:700 11px var(--mono);color:var(--muted)}
.coach-foot b{color:#FFD23F}
.coach-glow{outline:3px solid #FFD23F;outline-offset:3px;animation:coachGlow 1s ease-in-out infinite}
@keyframes coachGlow{50%{outline-color:rgba(255,210,63,.15)}}
@media (max-width:820px),(max-height:520px) and (pointer:coarse){.coach{bottom:calc(96px + env(safe-area-inset-bottom))}}
/* ===== Jauge de mise (mise.js) ===== */
.mz-box{flex:1 1 260px;min-width:0}
.mz{display:grid;gap:6px;padding:8px 10px;border-radius:12px;background:rgba(15,8,23,.6);border:2px solid var(--line)}
.mz.hot{border-color:#FF9F1C}
.mz.allin{border-color:#FF4F79;animation:pulse .5s ease-in-out infinite alternate}
.mz-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mz-amt{font:700 16px var(--mono);color:var(--gold)}
.mz-pct{font:700 11px var(--mono);color:var(--muted)}
.mz-range{width:100%;accent-color:#FFD23F;height:22px;cursor:pointer}
.mz-btns{display:flex;gap:4px;flex-wrap:wrap}
.mz-btns button{flex:1;min-width:0;font:700 11px var(--mono);color:var(--text);background:rgba(43,27,61,.9);border:1px solid var(--line);border-radius:8px;padding:5px 2px;cursor:pointer}
.mz-btns button:hover{border-color:#FFD23F}
.mz-btns button.allin{color:#FF4F79}
/* ===== Ouverture façon pack (cards.js) ===== */
.cm-reveal{position:relative}
.pk-flip{position:relative;transform-style:preserve-3d;perspective:900px;margin:0 auto;width:fit-content}
.pk-back,.pk-front{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pk-front{transform:rotateY(180deg)}
.pk-back{position:absolute;inset:0;z-index:1;display:grid;place-items:center;border-radius:18px;border:4px solid var(--rc);
  background:repeating-linear-gradient(45deg,#2B1B3D 0 12px,#3A2453 12px 24px);box-shadow:0 0 28px var(--rc),inset 0 0 30px rgba(0,0,0,.5);animation:pkglow .45s ease-in-out infinite alternate}
.pk-back span{font-size:64px;filter:grayscale(.2)}
@keyframes pkglow{from{box-shadow:0 0 12px var(--rc)}to{box-shadow:0 0 46px var(--rc),0 0 90px var(--rc)}}
.pk-after{opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}
.pk-after.on{opacity:1;transform:none}
.pk-rays{position:absolute;left:50%;top:40%;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;opacity:0;
  background:repeating-conic-gradient(var(--rc) 0 8deg,transparent 8deg 22deg);-webkit-mask:radial-gradient(circle,#000 20%,transparent 68%);mask:radial-gradient(circle,#000 20%,transparent 68%)}
.pk-r2 .pk-rays{opacity:.25;animation:pkspin 6s linear infinite}
.pk-r3 .pk-rays,.pk-r4 .pk-rays{opacity:.5;animation:pkspin 3.5s linear infinite}
@keyframes pkspin{to{transform:rotate(360deg)}}

/* ===== Casino réaliste : tapis, rebord en bois, jetons, croupier ===== */
#casinoModal .casino-card{background:radial-gradient(ellipse at 50% 30%,#1F7A45 0%,#125A31 55%,#0B3D21 100%);
  border:10px solid #5B3A1E;outline:3px solid #C9A227;outline-offset:-13px;box-shadow:0 0 0 3px #1B1029,0 24px 60px rgba(0,0,0,.6),inset 0 0 80px rgba(0,0,0,.45)}
#casinoModal .casino-card::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:.18;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 2px,transparent 2px 5px)}
#casinoModal .cas-top h2{font-family:Georgia,'Times New Roman',serif;font-style:italic;letter-spacing:1px;background:linear-gradient(180deg,#FFF3B0,#C9A227 60%,#8C6A10);-webkit-background-clip:text;background-clip:text;text-shadow:none}
#casinoModal .cas-tabs button{background:linear-gradient(180deg,#3B2A12,#24180A);color:#E9D9A6;border-color:#C9A227;box-shadow:0 3px 0 #120B04}
#casinoModal .cas-tabs button[aria-selected="true"]{background:linear-gradient(180deg,#FFE082,#C9A227);color:#2B1B08}
#casinoModal .mz{background:rgba(0,0,0,.35);border-color:#C9A227}
#casinoModal .cas-bank{color:#E9D9A6}
.cas-dealer{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:rgba(0,0,0,.45);border:2px solid #C9A227;color:#FFF3B0;font:italic 14px Georgia,serif}
.cas-dl-ic{font-size:24px}
.mz-chips{position:relative;display:inline-block;width:34px;height:34px;margin-left:auto}
.chip{position:absolute;left:0;bottom:calc(var(--i) * 3px);width:32px;height:10px;border-radius:50%;border:2px solid #1B1029;
  background:repeating-conic-gradient(var(--cc) 0 30deg,#fff 30deg 45deg);box-shadow:0 1px 0 rgba(0,0,0,.4)}
.chip.c0{--cc:#ECEFF1}.chip.c1{--cc:#E53935}.chip.c2{--cc:#2E7D32}.chip.c3{--cc:#212121}.chip.c4{--cc:#7B1FA2}.chip.c5{--cc:#FFB300}
#g-blackjack,#g-poker,#g-hilo{position:relative;border-radius:120px 120px 18px 18px;padding:14px 10px 10px;border:3px solid #C9A227;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.08),transparent 60%)}
#g-poker::before{content:"VIDÉO POKER · JACKS OR BETTER";display:block;text-align:center;font:700 10px var(--mono);letter-spacing:1px;color:#E9D9A6;opacity:.75;margin-bottom:6px}
#g-roulette .rou-table{background:#0E5A2E;border:3px solid #C9A227;border-radius:10px}

/* ===== Table des potes (table.js) ===== */
.tb-tab{grid-column:1/-1;background:linear-gradient(180deg,#FFE082,#C9A227)!important;color:#2B1B08!important}
.tb-felt{display:grid;gap:10px;padding:14px;border-radius:120px 120px 20px 20px;border:4px solid #C9A227;background:radial-gradient(ellipse at 50% 20%,#23894E,#0E5A2E 70%)}
.tb-head{display:flex;justify-content:space-between;align-items:center;color:#FFF3B0;font:italic 15px Georgia,serif}
.tb-head span{font:700 13px var(--mono);color:#FFE082}
.tb-mid{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.tb-ball{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:34px;color:#fff;background:#3B2A12;border:4px solid #FFD86B;box-shadow:0 0 24px rgba(255,216,107,.6)}
.tb-ball.spin{animation:pulse .2s ease-in-out infinite alternate}
.tb-ball.red{background:#C8102E}.tb-ball.black{background:#16161C}.tb-ball.green{background:#1E9E57}
.tb-seats{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:150px;overflow:auto}
.tb-seats li{display:flex;gap:8px;align-items:baseline;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.35);color:#F5F0DC;font-size:13px}
.tb-seats li.me{border:2px solid #FFD23F}.tb-seats li.win{background:rgba(95,224,183,.3)}.tb-seats li.lose{opacity:.6}
.tb-seats li em{margin-left:auto;font:700 12px var(--mono);font-style:normal;color:#FFE082}.tb-seats li i{font:700 12px var(--mono);font-style:normal;color:#5FE0B7}
.tb-seats li.empty{justify-content:center;font-style:italic;opacity:.8}
.tb-hist{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;min-height:22px}
.tb-hist span{font:700 11px var(--mono);color:#fff;border-radius:6px;padding:2px 6px}
.tb-hist .red{background:#C8102E}.tb-hist .black{background:#16161C}.tb-hist .green{background:#1E9E57}
.tb-bets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.tb-b{display:grid;gap:2px;padding:8px 4px;border-radius:10px;border:2px solid #C9A227;background:#0E5A2E;color:#FFF3B0;font:700 12px var(--mono);cursor:pointer}
.tb-b small{color:#FFE082}.tb-b.red{background:#8E0D20}.tb-b.black{background:#16161C}.tb-b.zero{background:#1E9E57}
.tb-b:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:520px){.tb-bets{grid-template-columns:repeat(3,minmax(0,1fr))}.tb-mid{grid-template-columns:1fr;justify-items:center}}
