.roulette{--coral:#ff4b58;--plum:#63206e;--gold:#ffcc24;border:2px solid #292333;border-radius:25px;overflow:hidden;box-shadow:0 7px 0 #29233312;background:#fffbed}.roll-layout{display:grid;grid-template-columns:1fr 1fr}.wheel-scene{position:relative;min-height:450px;overflow:hidden;background:radial-gradient(circle at 30% 30%,#36f1d0,#009ba8 70%,#08647d);display:flex;align-items:center;padding:35px 15px 35px 25px}.wheel-scene:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 80%,#beff32 0 5%,transparent 5.3%),radial-gradient(ellipse at 80% 88%,#75e334 0 8%,transparent 8.3%);opacity:.8}.wheel-wrap{position:relative;width:78%;aspect-ratio:1;z-index:2;filter:drop-shadow(0 12px 0 #17382a30)}.wheel-svg{width:100%;height:100%;display:block}.wheel-svg text{font-family:KroakedDisplay,Arial;font-size:27px;fill:#fffbed;paint-order:stroke;stroke:#292333;stroke-width:1px;stroke-linejoin:round}.wheel-hub text{fill:#292333;stroke:none;font-size:20px}.wheel-pointer{position:absolute;left:50%;top:-1%;transform:translateX(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:26px solid #fffbed;filter:drop-shadow(0 3px 0 #292333)}.ball-orbit{position:absolute;inset:0;pointer-events:none}.roulette .ball-orbit img{position:absolute;left:50%;top:5%;width:38px;height:36px;object-fit:contain;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 2px #29233350)}.roulette .dealer{position:absolute;right:-2%;bottom:4%;height:58%;width:48%;object-fit:contain;z-index:1;pointer-events:none;animation:dealer-idle 3s ease-in-out infinite;filter:drop-shadow(0 4px 0 #29233320)}.scene-tag{position:absolute;top:18px;left:22px;color:#fffbed;font-size:10px;letter-spacing:2px;font-weight:800}.result-bubble{position:absolute;right:16px;top:50px;background:#fffbed;color:#292333;border:2px solid #292333;border-radius:16px;padding:10px 13px;z-index:4;max-width:125px;font-size:12px;line-height:1.35;text-align:center}.result-bubble strong{font:400 30px KroakedDisplay,Arial;display:block}.roll-table{padding:22px;min-width:0}.bet-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;font-size:11px;font-weight:800;letter-spacing:1px}.bet-heading span:last-child{color:#7253b4;letter-spacing:0}.number-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.demo-page .roll-pick{border-radius:12px;padding:0;min-height:48px;background:#fffbed;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;position:relative}.demo-page .roll-number{background:var(--plum);color:#fffbed;font:400 25px KroakedDisplay,Arial}.demo-page .roll-number.coral{background:var(--coral)}.demo-page .roll-pick[aria-pressed=true]{outline:3px solid #7253b4;outline-offset:2px;box-shadow:inset 0 0 0 3px #fffbed}.demo-page .roll-pick.landed:after{content:'●';position:absolute;right:4px;top:2px;font:12px Arial;color:#fff4a9;text-shadow:0 0 3px #292333}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.roll-pick small{font-size:10px;opacity:.75}.roll-pick.color-coral{background:#ffb0a8}.roll-pick.color-plum{background:#dfb4f7}.ticket-note{font-size:12px;line-height:1.5;background:#e0f7a9;border-radius:12px;padding:10px 12px;margin:14px 0}.roll-controls{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.roll-controls label{display:block;font-size:10px;letter-spacing:1px;font-weight:800;margin-bottom:5px}.demo-page .roll-controls input{width:100%;max-width:135px;padding:10px 12px}.demo-page .roll-controls .spin{min-width:150px;background:#c5f52d;padding:15px 18px;min-height:48px}.roll-table .quick-bets{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.demo-page .quick-bets button{padding:7px 9px;min-height:34px;font-size:11px}.roll-result{border-top:2px solid #292333;padding:17px 22px;display:flex;gap:15px;align-items:center;background:#f5f0e6}.roll-result.won{background:#d5f685}.roll-result .outcome-chip{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;border:2px solid #292333;background:#fffbed;font:400 28px KroakedDisplay,Arial}.roll-result p{margin:0;font-size:13px;line-height:1.5}.roll-result .settlement{display:block;font-size:11px;color:#776c80;margin-top:3px}.roll-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px}.roll-meta .balance{display:inline-block;margin:0}.roll-meta .label{font-size:10px;font-weight:800;letter-spacing:1px;display:block}.roll-meta .reset{font-size:11px;padding:7px 10px;background:transparent;border:0;text-decoration:underline}.roll-history{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0;font-size:11px;align-items:center}.roll-history span{border:1px solid #29233340;padding:7px 9px;border-radius:8px;background:#fffbed}.roll-history .won{background:#d5f685}.calm .dealer{animation:none}.spinning .dealer{animation:dealer-deal .5s ease-in-out infinite}.won .dealer{animation:dealer-win .45s ease-in-out 4}@keyframes dealer-idle{50%{transform:translateY(-3px) rotate(1deg)}}@keyframes dealer-deal{50%{transform:translateY(-5px) rotate(-3deg)}}@keyframes dealer-win{50%{transform:translateY(-8px) rotate(4deg)}}@media(max-width:750px){.roll-layout{grid-template-columns:1fr}.wheel-scene{min-height:0;height:250px;padding:18px 30px}.wheel-wrap{width:220px;max-width:72%;margin-left:5%}.roulette .dealer{height:73%;width:43%;right:2%;bottom:2%}.scene-tag{top:12px;left:16px;font-size:9px}.result-bubble{right:10px;top:31px;padding:6px 10px;max-width:110px}.result-bubble strong{font-size:24px}.roll-table{padding:16px}.number-grid{gap:6px}.demo-page .roll-number{min-height:44px;font-size:22px}.group-grid{gap:7px;margin:12px 0}.demo-page .roll-pick{min-height:44px}.ticket-note{margin:10px 0;padding:7px 10px}.roll-controls{gap:10px}.demo-page .roll-controls .spin{min-width:120px;padding:14px 12px}.roll-result{padding:12px 16px}.roll-meta{margin-top:12px}.roll-history{margin:12px 0}}@media(prefers-reduced-motion:reduce){.roulette .dealer{animation:none!important}}

.result-fx{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;overflow:visible}.result-fx[hidden],.reaction-badge[hidden]{display:none}.reaction-badge{position:absolute;right:8%;top:43%;z-index:6;font:400 22px KroakedDisplay,Arial;background:#fffbed;color:#63206e;padding:8px 13px;border:2px solid #292333;border-radius:16px;transform:rotate(8deg);pointer-events:none}.lost .dealer{animation:dealer-oops .34s ease-in-out 3}.lost .result-bubble{background:#ffe2bd}.catching .dealer{animation:dealer-chomp .65s ease-out 1}@keyframes dealer-oops{25%{transform:rotate(-5deg) translateX(-4px)}75%{transform:rotate(5deg) translateX(4px)}}@keyframes dealer-chomp{35%{transform:scale(1.04,.97) rotate(-3deg)}70%{transform:scale(.98,1.03) rotate(2deg)}}.calm .dealer{animation:none!important}@media(prefers-reduced-motion:reduce){.result-fx{display:none}.dealer{animation:none!important}}@media(max-width:750px){.reaction-badge{right:7%;top:56%;font-size:17px;padding:6px 10px}}

.wheel-scene{background:linear-gradient(0deg,#063a3e35,#063a3e12),url(../../assets/roll-lounge.cc83613797.jpg) center/cover no-repeat}.wheel-scene:before{display:none}.scene-tag{z-index:3;background:#163d42bb;border:1px solid #ffe38888;padding:7px 10px;border-radius:100px;left:16px;top:12px;letter-spacing:1.3px}.lounge-glints{position:absolute;inset:0;pointer-events:none;z-index:0}.lounge-glints span{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#fff3a0;box-shadow:0 0 9px 3px #ffd64b70;animation:lounge-glow 5s ease-in-out infinite;animation-delay:var(--delay)}@keyframes lounge-glow{50%{opacity:.3;transform:translate(5px,-8px)}}.calm .lounge-glints span{animation:none}@media(prefers-reduced-motion:reduce){.lounge-glints span{animation:none}}

.wheel-scene{background:#218f91}.wheel-scene:before{content:"";display:block;position:absolute;inset:0;background:linear-gradient(#0a768466,#087e8066),url(../../assets/roll-lounge.cc83613797.jpg) center/cover no-repeat;filter:saturate(.65);opacity:.78;pointer-events:none}.lounge-glints{opacity:.4}
