#roulette-overlay{
  position:fixed;
  inset:-40px;
  z-index:200;
  background:rgba(3,3,8,.97);
  display:none;
  align-items:center;
  justify-content:center;
  transition:opacity .25s ease;
}
#roulette-overlay.active{display:flex}
#roulette-overlay.closing{opacity:0;pointer-events:none}

.roulette-wrapper{
  position:relative;
  z-index:10;
  width:92vw;
  max-width:1020px;
  overflow:hidden;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--bg2);
  box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.03) inset,0 0 120px rgba(0,0,0,.4);
}
.roulette-wrapper.shake{animation:screenShake .4s ease-out}

#roulette-overlay.screen-shake-light{animation:screenShakeLight .35s ease-out}
#roulette-overlay.screen-shake-heavy{animation:screenShakeHeavy .45s ease-out}

.shockwave-ring{
  position:absolute;
  top:50%;
  left:50%;
  border-radius:50%;
  pointer-events:none;
  z-index:30;
  transform:translate(-50%,-50%) scale(0);
  opacity:1;
}

.floating-spark{
  position:absolute;
  top:50%;
  left:50%;
  border-radius:50%;
  pointer-events:none;
  z-index:25;
  opacity:0;
}
.floating-spark.spark-anim{
  animation:sparkFloat 1.2s ease-out forwards;
}

.roulette-pointer{
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  width:3px;
  height:100%;
  background:var(--accent);
  box-shadow:0 0 14px var(--accent),0 0 30px rgba(var(--accent-rgb),.3);
}
.roulette-pointer::before{
  content:'';
  position:absolute;
  top:-8px;
  left:50%;
  transform:translateX(-50%);
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-top:14px solid var(--accent);
  filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.5));
}
.roulette-pointer::after{
  content:'';
  position:absolute;
  bottom:-8px;
  left:50%;
  transform:translateX(-50%);
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-bottom:14px solid var(--accent);
  filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.5));
}
.roulette-edges{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:5;
  background:linear-gradient(90deg,var(--bg2) 0%,transparent 6%,transparent 94%,var(--bg2) 100%);
}
.roulette-strip{
  display:flex;
  gap:var(--item-gap);
  padding:12px 0;
  will-change:transform;
}

.stage-label{
  position:absolute;
  top:8vh;
  left:50%;
  transform:translateX(-50%);
  z-index:15;
  font-family:'Jost',sans-serif;
  font-size:1.04rem;
  font-weight:700;
  color:var(--accent);
  letter-spacing:1.4px;
  text-transform:uppercase;
  opacity:0;
  transition:opacity .3s;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(var(--accent-rgb),.06),rgba(var(--accent-rgb),.18),rgba(var(--accent-rgb),.06));
  padding:8px 14px;
  border-radius:999px;
  border:1px solid rgba(var(--accent-rgb),.25);
  box-shadow:0 8px 18px rgba(0,0,0,.28);
}
.stage-label.visible{opacity:1}

#case-intro{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) scale(0.85);
  opacity:0;
  background:var(--bg2);
  border-radius:14px;
  border:1px solid var(--border);
  box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.03) inset,0 0 120px rgba(0,0,0,.4);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:15;
  overflow:hidden;
  transition:width .6s cubic-bezier(.25,.8,.25,1),height .6s cubic-bezier(.25,.8,.25,1),opacity .4s ease,transform .5s cubic-bezier(.25,.8,.25,1);
}
#case-intro.visible{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
#case-intro.fade-only{
  opacity:0 !important;
  transform:translate(-50%,-50%) scale(1) !important;
  transition:opacity .45s ease !important;
}
.case-img-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  filter:brightness(1) blur(0px) drop-shadow(0 10px 20px rgba(0,0,0,0.5));
  transition:filter .45s ease-in;
}
.case-img-wrap.whitening{
  filter:brightness(10) blur(3px) drop-shadow(0 10px 20px rgba(0,0,0,0.5));
}
.case-img-wrap.white{
  filter:brightness(14) blur(6px) drop-shadow(0 10px 20px rgba(0,0,0,0.5));
}
.case-img-wrap img{
  width:75%;
  max-width:220px;
  object-fit:contain;
  transition:transform .25s ease-out;
}
.case-img-wrap img.shake{animation:caseViolentShake .08s infinite}

.roulette-item{
  --rc:#4b69ff;
  --rg:0 0 18px rgba(75,105,255,.32);
  flex-shrink:0;
  width:var(--item-w);
  height:var(--item-h);
  border-radius:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  position:relative;
  transition:transform .5s ease-out,box-shadow .5s ease-out,filter .5s ease-out;
}
.roulette-item:hover{z-index:10}
.roulette-item .item-bg{
  position:absolute;
  inset:0;
  border-radius:10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  border-bottom:3px solid var(--rc);
  background:linear-gradient(180deg,#1a1a32,#121228);
  z-index:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 4px 12px rgba(0,0,0,.3);
  transition:border-color .4s ease,box-shadow .4s ease;
}
.roulette-item .rim-light{
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);
  z-index:1;
  pointer-events:none;
}
.roulette-item .inner-glow{
  position:absolute;
  inset:0;
  border-radius:10px;
  pointer-events:none;
  z-index:1;
  background:radial-gradient(ellipse at 28% 8%,rgba(255,255,255,.04),transparent 55%);
}
.roulette-item .shimmer{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
  border-radius:10px;
  display:none;
}
.roulette-item .shimmer::after{
  content:'';
  position:absolute;
  top:0;
  left:-100%;
  width:60%;
  height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.02) 40%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.02) 60%,transparent);
  animation:shimmerSweep 3s ease-in-out infinite;
}
.roulette-item .bottom-fade{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:40%;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.25));
  pointer-events:none;
  z-index:1;
  border-radius:0 0 10px 10px;
}
.roulette-item img{
  width:115%;
  height:125px;
  object-fit:contain;
  padding:8px;
  position:relative;
  z-index:3;
  transform:translateY(6px) scale(1.05);
  filter:drop-shadow(0 15px 25px rgba(0,0,0,.6));
  transition:transform .35s ease-out,filter .35s ease-out;
}
.roulette-item .rname{
  padding:3px 5px;
  font-size:.62rem;
  font-family:'Jost',sans-serif;
  font-weight:700;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  width:100%;
  border-top:1px solid rgba(255,255,255,.05);
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
  z-index:3;
  text-shadow:0 1px 3px rgba(0,0,0,.6);
  position:relative;
  min-width:0;
}
.roulette-item .rname-text{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
  width:100%;
  text-align:center;
}

.roulette-item.covert-theme .item-bg{
  background:
    radial-gradient(ellipse at 26% 10%,rgba(255,100,80,0.22) 0%,transparent 52%),
    radial-gradient(ellipse at 72% 78%,rgba(140,20,20,0.1) 0%,transparent 48%),
    linear-gradient(168deg,#1c0606 0%,#3e0e10 16%,#6e1a1e 32%,#a02830 46%,#c43438 54%,#9c2428 66%,#5e1418 80%,#280808 94%,#1c0606 100%);
  border:1px solid rgba(0,0,0,0.5);
  border-bottom-color:var(--c-covert);
  box-shadow:inset 0 1px 0 rgba(255,100,80,.1),0 4px 16px rgba(235,75,75,.15);
}
.roulette-item.covert-theme .shimmer{display:block}

.roulette-item.classified-theme .item-bg{
  background:linear-gradient(180deg,#180a24,#121228);
  border-color:rgba(211,44,230,.2);
  border-bottom-color:var(--c-classified);
  overflow:hidden;
}
.roulette-item.classified-theme .item-bg::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:10px;
  background:radial-gradient(ellipse at 50% 35%,rgba(211,44,230,.22),transparent 68%);
  opacity:0.35;
  animation:classifiedInnerGlow 2.2s ease-in-out infinite;
  pointer-events:none;
  z-index:1;
}

.roulette-gold{
  --rc:#ffd700;
  --rg:0 0 36px rgba(255,210,80,0.7);
  flex-shrink:0;
  width:var(--item-w);
  height:var(--item-h);
  border-radius:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  position:relative;
  transition:transform .35s ease-out,box-shadow .35s ease-out;
}
.roulette-gold:hover{z-index:10}
.roulette-gold .item-bg{
  position:absolute;
  inset:0;
  border-radius:10px;
  overflow:hidden;
  z-index:0;
  background:
    radial-gradient(ellipse at 26% 10%,rgba(255,230,130,0.25) 0%,transparent 52%),
    radial-gradient(ellipse at 72% 78%,rgba(160,100,10,0.1) 0%,transparent 48%),
    linear-gradient(168deg,#1a1204 0%,#3c2a08 16%,#6e4e12 32%,#a0781e 46%,#c89c2e 54%,#b08420 66%,#6e4e12 80%,#2a1c04 94%,#1a1204 100%);
  border:1px solid rgba(255,228,132,.4);
  border-bottom:3px solid #ffe588;
}
.roulette-gold .item-bg::before{
  content:'';
  position:absolute;
  inset:-50%;
  border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 38%,rgba(255,241,170,.18) 50%,transparent 63%);
  animation:goldShimmer 3.4s linear infinite;
}
.roulette-gold .shimmer{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:hidden;
  border-radius:10px;
  display:block;
}
.roulette-gold .shimmer::after{
  content:'';
  position:absolute;
  top:-100%;
  left:-100%;
  width:80%;
  height:200%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.05) 40%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.05) 60%,transparent);
  animation:shimmerSweep 2.5s ease-in-out infinite;
}
.roulette-gold img{
  width:100px;
  height:100px;
  object-fit:contain;
  position:relative;
  z-index:3;
  transform:scale(1.05);
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.5));
  transition:transform .35s ease-out,filter .35s ease-out;
}
.roulette-gold .gold-label{
  width:100%;
  max-width:100%;
  padding:4px 7px;
  font-size:.65rem;
  color:#fff5cf;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:center;
  display:block;
  position:relative;
  z-index:3;
  background:linear-gradient(180deg,rgba(10,8,3,.12),rgba(10,8,3,.38));
  border-top:1px solid rgba(255,255,255,.12);
  font-family:'Jost',sans-serif;
  min-width:0;
}
.roulette-gold .gold-label-text{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  min-width:0;
  width:100%;
  text-align:center;
}

.roulette-item.winner,.roulette-gold.winner{
  z-index:22;
  animation:winnerReveal .6s cubic-bezier(.2,.9,.3,1.2) forwards;
  pointer-events:none;
}
.roulette-item.winner{
  box-shadow:0 26px 58px rgba(0,0,0,.5),var(--rg),0 0 40px var(--rc),0 0 80px color-mix(in srgb,var(--rc) 35%,transparent),inset 0 1px 0 rgba(255,255,255,.3),inset 0 -12px 22px rgba(0,0,0,.25);
}
.roulette-item::after,
.roulette-gold::after{
  content:'';
  position:absolute;
  inset:-8px;
  border-radius:14px;
  pointer-events:none;
  z-index:-1;
  opacity:0;
  transition:opacity .5s ease;
}
.roulette-item::after{
  background:radial-gradient(circle at center,color-mix(in srgb,var(--rc) 45%,transparent),transparent 65%);
  filter:blur(16px);
}
.roulette-gold::after{
  background:radial-gradient(circle at center,rgba(255,219,91,.45),transparent 65%);
  filter:blur(18px);
}
.roulette-item.winner::after{
  opacity:0.8;
}
.roulette-gold.winner::after{
  opacity:0.9;
}
.winner-pulse{animation:winnerPulse 1.2s ease-in-out infinite !important}
.roulette-gold.winner{
  box-shadow:0 24px 58px rgba(0,0,0,.5),0 0 50px rgba(255,219,91,.8),0 0 100px rgba(255,200,60,.3),0 0 160px rgba(255,200,60,.15),inset 0 1px 0 rgba(255,248,211,.7),inset 0 -12px 20px rgba(74,45,0,.3);
}

