/* ===========================================================================
   Crimzie — LA SAUCE · styles machine à sous (DA hero). Base : legal.css
   =========================================================================== */
:root{ --crimzie-blue:59,134,255; --gold:255,196,84; }

/* ---------- FOND DÉDIÉ SLOT (ambiance casino chaude, sans lune) ---------- */
#spaceCanvas{display:none !important}
.scene-bg{background:
  radial-gradient(130% 90% at 50% -12%,rgba(150,38,22,.55),transparent 52%),
  radial-gradient(110% 80% at 50% 118%,rgba(70,44,96,.4),transparent 60%),
  radial-gradient(90% 60% at 15% 40%,rgba(40,60,110,.22),transparent 60%),
  linear-gradient(180deg,#0b0507,#060406 55%,#0a0608) !important}
.scene-tint{background:repeating-linear-gradient(115deg,rgba(255,255,255,.015) 0 2px,transparent 2px 5px) !important;opacity:.5}
.scene-aura{background:radial-gradient(46% 38% at 50% 26%,rgba(var(--red-soft),.18),transparent 70%) !important;
  animation:slAura 9s ease-in-out infinite}
@keyframes slAura{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.1)}}
body.no-shake .scene-aura{animation:none}

.site-header nav{display:flex;align-items:center;gap:clamp(12px,1.6vw,24px)}
.hnav{display:flex;align-items:center;gap:clamp(12px,1.6vw,26px)}
.hnav a{font-family:var(--font-ui);font-size:.8rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:rgba(241,241,241,.7);text-decoration:none;white-space:nowrap;transition:color .2s}
.hnav a:hover,.hnav a.is-active{color:#fff}
@media(max-width:860px){.hnav{display:none}}
main.sl{width:min(1080px,calc(100% - 40px));margin:0 auto;padding:clamp(18px,3vh,34px) 0 22px}
@media(max-width:860px){
  .balance-side{top:88px !important;right:50% !important;transform:translateX(50%)}
  main.sl{padding-top:82px}
}

/* ---------- HERO compact ---------- */
.sl-hero{text-align:center;padding:clamp(8px,2vh,20px) 0 clamp(10px,2vh,18px)}
.sl-hero h1{margin:0 0 8px;font-family:var(--font-display);font-size:clamp(2rem,4.6vw,3.4rem);font-weight:800;
  line-height:.94;text-transform:uppercase;letter-spacing:-.02em;color:#fff;text-shadow:0 14px 44px rgba(0,0,0,.6)}
.sl-hero h1 .dot{color:var(--red)}
.sl-hero .lead{margin:0;color:rgba(241,241,241,.7);font-size:.98rem;font-weight:500}
.sl-hero .lead b{color:#fff}

/* ---------- HYPE METER ---------- */
.hype-bar{display:flex;align-items:center;gap:14px;margin:clamp(10px,2vh,18px) 0;
  padding:12px 18px;border:1px solid var(--glass-brd);border-radius:var(--r-pill);
  background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  box-shadow:inset 0 1px 0 var(--glass-hi),0 12px 30px rgba(0,0,0,.35)}
.hype-k{font-family:var(--font-display);font-size:.72rem;font-weight:800;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(241,241,241,.7);flex:0 0 auto}
.hype-track{position:relative;flex:1;height:12px;border-radius:8px;overflow:hidden;
  background:rgba(8,9,13,.6);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.hype-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:8px;
  background:linear-gradient(90deg,rgb(var(--red-soft)),#ff7a45 60%,rgb(var(--gold)));
  box-shadow:0 0 18px rgba(var(--red-soft),.6);transition:width .5s cubic-bezier(.16,.84,.24,1)}
.hype-ticks{position:absolute;inset:0;display:flex;pointer-events:none}
.hype-ticks span{flex:1;border-right:1px solid rgba(8,9,13,.7)}
.hype-ticks span:last-child{border:0}
.hype-lvl{font-family:var(--font-display);font-size:1.05rem;font-weight:800;color:#fff;flex:0 0 auto;
  min-width:52px;text-align:right;font-variant-numeric:tabular-nums}
.hype-lvl small{color:rgba(241,241,241,.5);font-size:.62rem;font-weight:700;letter-spacing:.12em}

/* ---------- MACHINE (cabinet façon vraie machine à sous) ---------- */
.cabinet{position:relative;margin-top:clamp(8px,1.5vh,16px)}
/* fronton lumineux */
.marquee{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:14px;
  margin:0 auto -10px;width:min(560px,92%);padding:12px 26px 16px;
  border-radius:18px 18px 6px 6px;
  background:linear-gradient(180deg,rgba(58,26,18,.96),rgba(24,12,12,.96));
  border:1px solid rgba(var(--gold),.42);border-bottom:0;
  box-shadow:0 -8px 30px rgba(var(--red-soft),.25),inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -14px 26px rgba(0,0,0,.55)}
.marquee .mq-name{font-family:var(--font-display);font-size:clamp(.9rem,1.8vw,1.15rem);font-weight:800;
  letter-spacing:.24em;text-transform:uppercase;color:rgb(var(--gold));
  text-shadow:0 0 18px rgba(var(--gold),.6),0 2px 0 rgba(0,0,0,.6)}
.marquee .mq-bulbs{position:absolute;inset:auto 0 6px;display:flex;justify-content:center;gap:9px;pointer-events:none}
.marquee .mq-bulbs i{width:5px;height:5px;border-radius:50%;background:rgba(var(--gold),.9);
  box-shadow:0 0 8px rgba(var(--gold),.9);animation:bulb 1.4s ease-in-out infinite}
.marquee .mq-bulbs i:nth-child(2n){animation-delay:.2s}
.marquee .mq-bulbs i:nth-child(3n){animation-delay:.45s}
@keyframes bulb{0%,100%{opacity:.28;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
body.no-shake .marquee .mq-bulbs i{animation:none;opacity:.7}

.machine{position:relative;border-radius:22px;overflow:hidden;
  padding:clamp(12px,1.8vw,20px);
  background:
    linear-gradient(180deg,rgba(28,18,14,.9),rgba(12,9,10,.96)),
    radial-gradient(120% 90% at 50% -10%,rgba(120,40,24,.35),transparent 60%);
  border:1px solid rgba(var(--gold),.35);
  box-shadow:
    0 40px 90px rgba(0,0,0,.6),
    0 0 0 2px rgba(0,0,0,.6),
    0 0 0 6px rgba(var(--gold),.14),
    inset 0 2px 0 rgba(255,255,255,.12),
    inset 0 -20px 50px rgba(0,0,0,.6);}
/* liseré laiton intérieur */
.machine::before{content:"";position:absolute;inset:8px;border-radius:16px;pointer-events:none;z-index:0;
  border:1px solid rgba(var(--gold),.28);
  box-shadow:inset 0 0 40px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.08)}
.machine.shake{animation:mShake .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes mShake{10%,90%{transform:translate3d(-1px,0,0)}30%,70%{transform:translate3d(3px,0,0)}50%{transform:translate3d(-4px,0,0)}}
body.no-shake .machine.shake{animation:none}

/* la fenêtre des rouleaux */
.grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,1fr);
  gap:clamp(4px,.6vw,7px);padding:clamp(6px,1vw,12px);border-radius:12px;
  background:linear-gradient(180deg,#05060a,#0a0c12);
  box-shadow:inset 0 0 0 1px rgba(var(--gold),.16),inset 0 10px 30px rgba(0,0,0,.8),
    inset 0 -10px 30px rgba(0,0,0,.6);
  transition:filter .35s ease}
/* particules orbitales dans le cabinet */
.orb-dust{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.5}
.orb-dust i{position:absolute;width:3px;height:3px;border-radius:50%;
  background:rgba(var(--gold),.8);box-shadow:0 0 8px rgba(var(--gold),.7);
  animation:dustRise linear infinite}
@keyframes dustRise{0%{transform:translateY(20px) scale(.6);opacity:0}
  15%{opacity:.9}85%{opacity:.7}100%{transform:translateY(-120px) scale(1);opacity:0}}
body.no-shake .orb-dust{display:none}

/* mode anticipation : la grille s'assombrit, la tension monte */
.machine.anticip .grid{filter:brightness(.62) saturate(.85)}
.machine.anticip::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:radial-gradient(60% 50% at 50% 50%,rgba(var(--gold),.14),transparent 70%);
  animation:anticipGlow .7s ease-in-out infinite}
@keyframes anticipGlow{0%,100%{opacity:.4}50%{opacity:1}}

/* un rouleau = fenêtre à défilement vertical */
.reel{position:relative;overflow:hidden;border-radius:8px;
  background:linear-gradient(180deg,rgba(16,14,20,.7),rgba(8,8,12,.85));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),
    inset 0 18px 26px -14px rgba(0,0,0,.9),inset 0 -18px 26px -14px rgba(0,0,0,.9)}
.reel.reel-stop{animation:reelStop .22s cubic-bezier(.2,.9,.3,1)}
@keyframes reelStop{0%{transform:translateY(-3px)}60%{transform:translateY(2px)}100%{transform:none}}
/* dégradé haut/bas pour l'effet "derrière la vitre" */
.reel::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;border-radius:inherit;
  background:linear-gradient(180deg,rgba(4,4,7,.55),transparent 16%,transparent 84%,rgba(4,4,7,.55))}

.reel-final{position:relative;z-index:2;display:grid;grid-template-rows:repeat(5,1fr);gap:clamp(4px,.6vw,7px)}
.reel-strip{position:absolute;left:0;right:0;top:0;z-index:3;display:none;flex-direction:column;
  gap:clamp(4px,.6vw,7px);padding:0;will-change:transform}
.reel-strip.show{display:flex}
.reel-strip.blur{filter:blur(1.4px)}

.cell{position:relative;aspect-ratio:1;border-radius:9px;display:grid;place-items:center;overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(160deg,rgba(26,22,30,.92),rgba(12,11,16,.95));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 0 20px rgba(0,0,0,.55)}
/* plaques par rang de symbole : les hauts paiements se voient d'un coup d'œil */
.cell.t-mid{border-color:rgba(190,130,70,.28);
  background:linear-gradient(160deg,rgba(48,34,24,.9),rgba(16,12,14,.95));
  box-shadow:inset 0 1px 0 rgba(255,210,150,.12),inset 0 0 22px rgba(0,0,0,.55)}
.cell.t-high{border-color:rgba(var(--gold),.4);
  background:linear-gradient(160deg,rgba(70,50,20,.92),rgba(20,15,10,.96));
  box-shadow:inset 0 1px 0 rgba(255,225,160,.22),inset 0 0 26px rgba(0,0,0,.6),
    inset 0 0 30px rgba(var(--gold),.12)}
.cell.t-high::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.14),transparent 42%)}
.strip-cell{width:100%}
.cell .glyph{font-family:var(--font-display);font-weight:800;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1;
  display:grid;place-items:center;width:100%;height:100%;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.5))}
.cell .glyph svg{width:76%;height:76%;display:block;overflow:visible}
.reel-final .cell .glyph{animation:symFloat 3.6s ease-in-out infinite}
@keyframes symFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
body.no-shake .reel-final .cell .glyph{animation:none}
.cell.landed .glyph{animation:landPop .3s cubic-bezier(.16,1.3,.4,1) both}
@keyframes landPop{0%{transform:translateY(-8px) scale(.86);opacity:.4}100%{transform:none;opacity:1}}
.cell.win{border-color:rgba(var(--gold),.75);
  background:linear-gradient(160deg,rgba(60,44,20,.6),rgba(20,16,10,.85));
  box-shadow:0 0 26px rgba(var(--gold),.45),inset 0 0 22px rgba(var(--gold),.22);animation:winFrame .7s ease-in-out infinite}
@keyframes winFrame{0%,100%{box-shadow:0 0 22px rgba(var(--gold),.4),inset 0 0 18px rgba(var(--gold),.18)}50%{box-shadow:0 0 40px rgba(var(--gold),.75),inset 0 0 30px rgba(var(--gold),.34)}}
.cell.win .glyph{animation:winPulse .7s ease-in-out infinite}
@keyframes winPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
.cell.dim{opacity:.32;filter:saturate(.5)}

/* couleurs par symbole */
.g-orb{color:#7ea6ff}.g-wave{color:#54d0ff}.g-chat{color:#8fe0a0}
.g-drop{color:#ffcf6b}.g-flame{color:#ff8a3d}.g-crown{color:rgb(var(--gold))}
.g-chip{color:#ff5030}.g-pulse{color:#ff3b2f}
.g-vs{color:#ffd34d}
/* DUEL VS */
.cell.vs{border-color:rgba(var(--gold),.9);
  background:linear-gradient(160deg,rgba(70,48,12,.95),rgba(24,16,10,.96));
  box-shadow:0 0 28px rgba(var(--gold),.5),inset 0 0 26px rgba(var(--gold),.28)}
.cell.vs .glyph{color:#ffd34d}
.cell.vs.firing{animation:vsFire .7s ease}
@keyframes vsFire{0%{box-shadow:0 0 0 rgba(var(--gold),.9)}45%{box-shadow:0 0 70px rgba(var(--gold),1),inset 0 0 46px rgba(var(--gold),.7);transform:scale(1.06)}100%{box-shadow:0 0 28px rgba(var(--gold),.5)}}
.cell.vswild{border-color:rgba(var(--gold),.7);
  background:linear-gradient(160deg,rgba(58,40,12,.9),rgba(18,13,10,.95));
  box-shadow:0 0 22px rgba(var(--gold),.35),inset 0 0 20px rgba(var(--gold),.2)}
.cell.vswild::after{content:"WILD";position:absolute;bottom:4px;left:0;right:0;text-align:center;
  font-family:var(--font-display);font-size:.46rem;font-weight:800;letter-spacing:.14em;color:rgba(var(--gold),.95)}
/* colonne en duel : rayon lumineux */
.reel.vs-col::before{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(var(--gold),.22),transparent 40%,transparent 60%,rgba(var(--gold),.22));
  box-shadow:inset 0 0 0 2px rgba(var(--gold),.55);animation:vsCol .8s ease-in-out infinite}
@keyframes vsCol{0%,100%{opacity:.55}50%{opacity:1}}

/* VS qui se lève et prend tout le rouleau (Wild pleine colonne) */
.vs-expand{position:absolute;inset:0;z-index:6;display:grid;place-items:center;gap:6px;border-radius:8px;
  background:linear-gradient(180deg,rgba(96,66,14,.99),rgba(38,25,9,.995));
  border:2px solid rgba(var(--gold),.95);
  box-shadow:0 0 44px rgba(var(--gold),.6),inset 0 0 44px rgba(var(--gold),.3);
  clip-path:inset(var(--t,0px) 0 var(--b,0px) 0);
  transition:clip-path .62s cubic-bezier(.16,1.02,.3,1)}
.vs-expand.open{clip-path:inset(0 0 0 0)}
.vs-expand .vs-art{width:44%;color:#ffd970;filter:drop-shadow(0 4px 12px rgba(0,0,0,.6));
  transition:width .4s,opacity .3s}
.vs-expand.wheeling .vs-art{width:26%;opacity:.75}
.vs-expand .vs-art svg{width:100%;height:auto;display:block}
.vs-expand .vs-lab{font-family:var(--font-display);font-size:.56rem;font-weight:800;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,225,150,.95)}
/* roue miniature DANS le rouleau (une par VS) */
.vs-wheel{position:relative;width:84%;aspect-ratio:1;margin:2px auto;opacity:0;transform:scale(.5);
  transition:opacity .3s,transform .45s cubic-bezier(.16,1.3,.35,1)}
.vs-wheel.show{opacity:1;transform:none}
.vs-wheel.done{opacity:.28;transform:scale(.86)}
.vs-wheel svg{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 18px rgba(0,0,0,.6))}
.vs-wheel .vw-spin{transform-origin:50% 50%;transform-box:view-box}
.vs-wheel .vw-needle{position:absolute;top:-4px;left:50%;width:0;height:0;z-index:3;
  transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;
  border-top:12px solid #fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.7))}
.vs-wheel .vw-needle.ticking{animation:vwTick .1s linear infinite}
@keyframes vwTick{0%{transform:translateX(-50%) rotate(0)}40%{transform:translateX(-50%) rotate(10deg)}100%{transform:translateX(-50%) rotate(0)}}
.vs-wheel .vw-hit{position:absolute;top:0;left:50%;width:26%;height:26%;z-index:2;border-radius:50%;
  transform:translateX(-50%);pointer-events:none;opacity:0;
  background:radial-gradient(circle,rgba(255,240,190,.95),transparent 70%)}
.vs-wheel .vw-hit.show{opacity:1;animation:vwFlash .45s ease-out 3}
@keyframes vwFlash{0%{transform:translateX(-50%) scale(.6);opacity:1}100%{transform:translateX(-50%) scale(1.6);opacity:0}}

.vs-expand .vs-mult{position:absolute;left:50%;bottom:8%;transform:translate(-50%,10px) scale(.7);
  font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:#fff;padding:4px 12px;
  border-radius:999px;border:1px solid rgba(255,255,255,.5);background:rgba(var(--red-soft),.85);
  box-shadow:0 0 22px rgba(var(--red-soft),.7);opacity:0;
  transition:opacity .3s,transform .35s cubic-bezier(.16,1.3,.4,1)}
.vs-expand .vs-mult.show{opacity:1;transform:translate(-50%,0) scale(1)}
.vs-expand.pulsing{animation:vsExpGlow 1s ease-in-out infinite}
@keyframes vsExpGlow{0%,100%{box-shadow:0 0 34px rgba(var(--gold),.5),inset 0 0 34px rgba(var(--gold),.24)}
  50%{box-shadow:0 0 60px rgba(var(--gold),.85),inset 0 0 50px rgba(var(--gold),.4)}}
body.no-shake .vs-expand.pulsing{animation:none}

/* ---------- ROUE DE MULTIPLICATEURS ---------- */
.wheel-stage{position:fixed;inset:0;z-index:130;display:none;place-items:center;padding:20px;
  background:radial-gradient(60% 70% at 50% 45%,rgba(8,5,4,.86),rgba(4,3,4,.96));
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.wheel-stage.show{display:grid;animation:ovIn .3s ease both}
.wheel-box{text-align:center;animation:wheelPop .5s cubic-bezier(.16,1.25,.35,1) both}
@keyframes wheelPop{0%{opacity:0;transform:scale(.6) rotate(-8deg)}60%{opacity:1}100%{opacity:1;transform:none}}
.wheel-k{font-family:var(--font-display);font-size:.72rem;font-weight:800;letter-spacing:.26em;
  text-transform:uppercase;color:rgba(var(--gold),.9);margin:0 0 16px}
.wheel-wrap{position:relative;width:min(340px,78vw);aspect-ratio:1;margin:0 auto}
.wheel-wrap svg{width:100%;height:100%;display:block;filter:drop-shadow(0 20px 50px rgba(0,0,0,.7))}
.wheel-spin{transform-origin:50% 50%;transform-box:view-box}
.wheel-needle{position:absolute;top:-6px;left:50%;width:0;height:0;z-index:3;
  transform:translateX(-50%);transform-origin:50% 100%;
  border-left:11px solid transparent;border-right:11px solid transparent;border-top:22px solid rgb(var(--gold));
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.6))}
.wheel-needle.ticking{animation:needleTick .1s linear infinite}
@keyframes needleTick{0%{transform:translateX(-50%) rotate(0deg)}40%{transform:translateX(-50%) rotate(9deg)}100%{transform:translateX(-50%) rotate(0deg)}}
/* segment gagnant mis en valeur */
.wheel-hit{position:absolute;top:2%;left:50%;transform:translateX(-50%);width:22%;height:22%;z-index:2;
  border-radius:50%;pointer-events:none;opacity:0;
  background:radial-gradient(circle,rgba(255,235,170,.9),transparent 70%);
  transition:opacity .25s}
.wheel-hit.show{opacity:1;animation:hitFlash .5s ease-out 3}
@keyframes hitFlash{0%{transform:translateX(-50%) scale(.7);opacity:1}100%{transform:translateX(-50%) scale(1.5);opacity:0}}
.wheel-hub{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.wheel-hub span{width:26%;height:26%;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(160deg,#2a1d10,#120c08);border:2px solid rgba(var(--gold),.6);
  font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:rgb(var(--gold));
  box-shadow:0 0 24px rgba(var(--gold),.4),inset 0 1px 0 rgba(255,255,255,.2)}
.wheel-res{margin:20px 0 0;font-family:var(--font-display);font-size:clamp(2rem,6vw,3.2rem);font-weight:800;
  color:rgb(var(--gold));text-shadow:0 0 40px rgba(var(--gold),.6);opacity:0;transition:opacity .3s,transform .3s;
  transform:scale(.8)}
.wheel-res.show{opacity:1;transform:none}
.wheel-sub{margin:6px 0 0;color:rgba(241,241,241,.7);font-size:.9rem;font-weight:600}
.pulse-mini{color:#fff}
/* live pulse */
.cell.pulse{border-color:rgba(var(--red-soft),.85);
  background:radial-gradient(circle at 50% 42%,rgba(var(--red-soft),.5),rgba(12,10,14,.95));
  box-shadow:0 0 30px rgba(var(--red-soft),.55),inset 0 0 26px rgba(var(--red-soft),.35)}
.cell.pulse .glyph{color:#fff}
.cell.pulse.firing{animation:pulseFire .6s ease}
@keyframes pulseFire{0%{box-shadow:0 0 0 rgba(var(--red-soft),.8)}50%{box-shadow:0 0 64px rgba(var(--red-soft),.95),inset 0 0 44px rgba(var(--red-soft),.65)}100%{box-shadow:0 0 30px rgba(var(--red-soft),.55)}}
.cell.orbwild{border-color:rgba(var(--red-soft),.6)}
.cell.orbwild::after{content:"WILD";position:absolute;bottom:4px;left:0;right:0;text-align:center;
  font-family:var(--font-display);font-size:.48rem;font-weight:800;letter-spacing:.14em;color:rgba(var(--red-soft),.95)}
.cell.orbwild .glyph{color:#fff;animation:landPop .3s both}
/* scatters */
.cell.sc{border-width:2px}
.cell.sc-casual{border-color:rgba(var(--crimzie-blue),.8);box-shadow:0 0 24px rgba(var(--crimzie-blue),.4),inset 0 0 18px rgba(var(--crimzie-blue),.2)}
.cell.sc-casual .glyph{color:rgb(var(--crimzie-blue))}
.cell.sc-bump{border-color:rgba(var(--red-soft),.85);box-shadow:0 0 26px rgba(var(--red-soft),.45),inset 0 0 18px rgba(var(--red-soft),.2)}
.cell.sc-bump .glyph{color:#ff5a3c}
.cell.sc-sauce{border-color:rgba(var(--gold),.9);box-shadow:0 0 34px rgba(var(--gold),.6),inset 0 0 20px rgba(var(--gold),.28)}
.cell.sc-sauce .glyph{color:rgb(var(--gold))}
.cell.sc .glyph{animation:scatterShine 1.4s ease-in-out infinite}
@keyframes scatterShine{0%,100%{transform:scale(1)}50%{transform:scale(1.1) rotate(-2deg)}}
.cell.sc::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.22),transparent 60%)}
.cell.anticip{animation:antic .5s ease-in-out infinite;z-index:5}
@keyframes antic{0%,100%{transform:scale(1);box-shadow:0 0 24px rgba(var(--gold),.4)}50%{transform:scale(1.08);box-shadow:0 0 50px rgba(var(--gold),.85)}}

/* ---------- BANDEAU DE GAIN sous la grille ---------- */
.win-ribbon{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;
  margin:12px auto -6px;width:min(520px,94%);padding:10px 22px;border-radius:6px 6px 16px 16px;
  border:1px solid rgba(var(--gold),.4);border-top:0;
  background:linear-gradient(180deg,rgba(26,14,10,.96),rgba(52,30,14,.94));
  box-shadow:0 14px 34px rgba(0,0,0,.5),inset 0 -1px 0 rgba(255,255,255,.14);
  opacity:0;transform:translateY(-8px);transition:opacity .3s,transform .3s;pointer-events:none}
.win-ribbon.show{opacity:1;transform:none}
.win-ribbon .wr-k{font-size:.6rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,241,241,.6)}
.win-ribbon .wr-v{font-family:var(--font-display);font-size:1.2rem;font-weight:800;color:rgb(var(--gold));
  font-variant-numeric:tabular-nums;text-shadow:0 0 16px rgba(var(--gold),.5)}
.win-ribbon .wr-x{font-family:var(--font-display);font-size:.72rem;font-weight:800;letter-spacing:.1em;
  color:#fff;padding:3px 9px;border-radius:999px;border:1px solid rgba(var(--red-soft),.6);
  background:rgba(var(--red-soft),.2)}

/* ---------- BARRE DE CONTRÔLE ---------- */
.dash{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:clamp(12px,2vh,18px) 0}
.dash .d{padding:11px 14px;border-radius:var(--r-md);border:1px solid var(--glass-brd);
  background:rgba(8,9,13,.42);text-align:center}
.dash .dk{font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,241,241,.5);margin:0 0 4px}
.dash .dv{font-family:var(--font-display);font-size:1.3rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}
.dash .dv.win{color:rgb(var(--gold))}

.controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.bet-ctl{display:flex;align-items:center;gap:8px}
.bet-ctl button{width:44px;height:44px;border-radius:var(--r-md);border:1px solid var(--glass-brd);
  background:var(--glass-soft);color:#fff;font-size:1.2rem;font-weight:700;transition:border-color .2s}
.bet-ctl button:hover:not(:disabled){border-color:rgba(255,255,255,.4)}
.bet-ctl button:disabled{opacity:.35;cursor:not-allowed}
.bet-val{min-width:96px;text-align:center;padding:8px 14px;border-radius:var(--r-md);
  border:1px solid var(--glass-brd);background:rgba(8,9,13,.5)}
.bet-val .bk{font-size:.54rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,241,241,.5);display:block}
.bet-val .bv{font-family:var(--font-display);font-size:1.15rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}

.spin-btn{position:relative;min-width:180px;min-height:64px;padding:0 30px;border-radius:var(--r-pill);
  border:1px solid rgba(var(--red-soft),.8);color:#fff;font-family:var(--font-display);font-size:1rem;
  font-weight:800;letter-spacing:.14em;text-transform:uppercase;overflow:hidden;isolation:isolate;cursor:pointer;
  background:linear-gradient(180deg,rgb(var(--red-soft)),#a8180d);
  box-shadow:0 16px 38px rgba(var(--red-soft),.36),inset 0 1px 0 rgba(255,255,255,.32);
  transition:transform .18s,box-shadow .2s,filter .2s,opacity .2s}
.spin-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 0 52px rgba(var(--red-soft),.6)}
.spin-btn:active:not(:disabled){transform:translateY(0) scale(.98)}
.spin-btn:disabled{opacity:.5;cursor:not-allowed}
.spin-btn::after{content:"";position:absolute;top:0;bottom:0;left:-34%;width:34%;z-index:2;pointer-events:none;
  transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);opacity:0;transition:opacity .2s}
.spin-btn:hover:not(:disabled)::after{opacity:1;animation:slSheen .85s cubic-bezier(.2,.7,.3,1)}
@keyframes slSheen{from{left:-34%}to{left:120%}}

.opt-row{display:flex;align-items:center;gap:10px}
.opt{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:var(--r-pill);
  border:1px solid var(--glass-brd);background:var(--glass-soft);color:rgba(241,241,241,.75);cursor:pointer;
  font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;transition:color .2s,border-color .2s,background .2s}
.opt.active{color:#fff;border-color:rgba(var(--red-soft),.6);background:rgba(var(--red-soft),.14)}

.sl-msg{margin:12px 0 0;text-align:center;min-height:18px;font-size:.86rem;font-weight:600;color:rgba(241,241,241,.55)}
.sl-msg.err{color:#ff8e79}
.sl-msg.ok{color:rgb(var(--crimzie-blue))}

/* ---------- OVERLAY BONUS / GROS GAIN ---------- */
.sl-overlay{position:fixed;inset:0;z-index:120;display:none;place-items:center;padding:24px;
  background:radial-gradient(60% 70% at 50% 40%,rgba(6,8,13,.86),rgba(4,5,8,.96));
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sl-overlay.show{display:grid;animation:ovIn .4s ease both}
@keyframes ovIn{from{opacity:0}to{opacity:1}}
.ov-card{max-width:560px;width:100%;text-align:center;padding:clamp(28px,4vw,48px);
  border:1px solid var(--glass-brd);border-radius:var(--r-lg);position:relative;overflow:hidden;
  background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);box-shadow:var(--shadow-glass)}
.ov-card .ov-k{font-size:.72rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:rgba(241,241,241,.55);margin:0 0 12px}
.ov-card .ov-title{font-family:var(--font-display);font-size:clamp(2.2rem,6vw,3.6rem);font-weight:800;
  line-height:.96;text-transform:uppercase;letter-spacing:-.02em;margin:0 0 14px;color:#fff}
.ov-card.casual .ov-title{color:rgb(var(--crimzie-blue));text-shadow:0 0 40px rgba(var(--crimzie-blue),.5)}
.ov-card.bump .ov-title{color:#ff5a3c;text-shadow:0 0 40px rgba(var(--red-soft),.55)}
.ov-card.sauce .ov-title{color:rgb(var(--gold));text-shadow:0 0 46px rgba(var(--gold),.6)}
.ov-card .ov-sub{color:rgba(241,241,241,.75);font-size:1rem;font-weight:500;line-height:1.5;margin:0 0 20px}
.ov-win{font-family:var(--font-display);font-size:clamp(2.4rem,7vw,4rem);font-weight:800;color:#fff;
  font-variant-numeric:tabular-nums;margin:0 0 8px}
.ov-win.gold{color:rgb(var(--gold))}
.ov-detail{display:grid;gap:8px;margin:0 0 22px;text-align:left}
.ov-detail .od{display:flex;justify-content:space-between;gap:12px;padding:9px 14px;border-radius:var(--r-sm);
  border:1px solid rgba(255,255,255,.08);background:rgba(8,9,13,.4);font-size:.86rem}
.ov-detail .od b{color:#fff;font-family:var(--font-display)}
.ov-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ov-btn{min-height:52px;padding:0 26px;border-radius:var(--r-pill);border:1px solid rgba(var(--red-soft),.7);
  color:#fff;font-family:var(--font-display);font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;background:linear-gradient(180deg,rgb(var(--red-soft)),#a8180d);
  box-shadow:0 12px 28px rgba(var(--red-soft),.3),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .2s,filter .2s}
.ov-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
.ov-btn.ghost{background:var(--glass-soft);border-color:var(--glass-brd);box-shadow:inset 0 1px 0 var(--glass-hi)}
.ov-skip{margin-top:14px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(241,241,241,.45);background:none;border:0;cursor:pointer}
.ov-skip:hover{color:#fff}

/* ---------- INFOS (symboles, règles, bonus) ---------- */
.sl-info{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,22px);margin-top:clamp(24px,4vh,42px)}
@media(max-width:820px){.sl-info{grid-template-columns:1fr}}
.info-card{padding:clamp(20px,2.4vw,28px);border:1px solid var(--glass-brd);border-radius:var(--r-lg);
  background:var(--glass-soft);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);
  box-shadow:0 18px 44px rgba(0,0,0,.4),inset 0 1px 0 var(--glass-hi)}
.info-card h3{margin:0 0 16px;font-family:var(--font-display);font-size:1.04rem;font-weight:700;color:#fff;
  text-transform:uppercase;letter-spacing:.04em}
.paytable{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.pt-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-sm);
  border:1px solid rgba(255,255,255,.07);background:rgba(8,9,13,.35)}
.pt-row .sy{font-family:var(--font-display);font-weight:800;font-size:1.2rem;width:30px;height:30px;text-align:center;flex:0 0 auto}
.pt-row .sy svg,.bn .bn-sy svg{width:100%;height:100%;display:block;overflow:visible}
.bn .bn-sy{width:26px;height:26px;flex:0 0 auto}
.pt-row .pv{margin-left:auto;font-family:var(--font-display);font-weight:800;font-size:.82rem;color:rgba(241,241,241,.7);font-variant-numeric:tabular-nums}
.pt-row .pn{font-size:.78rem;font-weight:600;color:rgba(241,241,241,.7)}
.bonus-list{display:grid;gap:12px}
.bn{padding:14px 16px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.08);background:rgba(8,9,13,.4)}
.bn .bn-h{display:flex;align-items:center;gap:10px;margin:0 0 6px}
.bn .bn-sy{font-family:var(--font-display);font-weight:800;font-size:1.1rem}
.bn.casual .bn-sy{color:rgb(var(--crimzie-blue))}.bn.bump .bn-sy{color:#ff5a3c}.bn.sauce .bn-sy{color:rgb(var(--gold))}
.bn .bn-name{font-family:var(--font-display);font-weight:800;font-size:.92rem;color:#fff;text-transform:uppercase;letter-spacing:.04em}
.bn .bn-rare{margin-left:auto;font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(241,241,241,.45)}
.bn p{margin:0;color:rgba(241,241,241,.7);font-size:.86rem;font-weight:500;line-height:1.45}
.rule-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.rule-list li{position:relative;padding-left:20px;color:rgba(241,241,241,.72);font-size:.88rem;font-weight:500;line-height:1.5}
.rule-list li::before{content:"";position:absolute;left:3px;top:.5em;width:6px;height:6px;border-radius:2px;
  background:rgb(var(--red-soft));transform:rotate(45deg)}
.hist-list{display:grid;gap:7px}
.hist-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:var(--r-sm);
  border:1px solid rgba(255,255,255,.07);background:rgba(8,9,13,.4)}
.hist-row .hb{color:rgba(241,241,241,.5);font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums}
.hist-row .hw{font-family:var(--font-display);font-weight:800;font-size:.88rem;font-variant-numeric:tabular-nums}
.hist-row .hw.pos{color:rgb(var(--gold))}.hist-row .hw.zero{color:rgba(241,241,241,.4)}
.hist-row .ht{font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill)}
.ht.casual{color:rgb(var(--crimzie-blue));border:1px solid rgba(var(--crimzie-blue),.4)}
.ht.bump{color:#ff5a3c;border:1px solid rgba(var(--red-soft),.4)}
.ht.sauce{color:rgb(var(--gold));border:1px solid rgba(var(--gold),.4)}

.legal-strip{margin-top:clamp(20px,3vh,30px);padding:16px 20px;border-radius:var(--r-md);
  border:1px solid rgba(var(--red-soft),.3);background:rgba(var(--red-soft),.06);text-align:center;
  color:rgba(241,241,241,.72);font-size:.84rem;font-weight:500;line-height:1.5}
.legal-strip b{color:#fff}

@media(max-width:520px){
  main.sl{width:calc(100% - 24px)}
  .dash{grid-template-columns:1fr 1fr}
  .spin-btn{width:100%;order:-1}
  .paytable{grid-template-columns:1fr}
}
