:root{color-scheme:dark;--ink:#f4ebd9;--muted:#c1c5b6;--gold:#e6c987;--line:#a58d5955;--panel:#0d2720;--deep:#071a16;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{background:var(--deep)}body{margin:0;background:radial-gradient(ellipse at 20% 20%,#174d3b88,transparent 60%),#071a16;color:var(--ink);font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;line-height:1.55}a{color:inherit}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f3dc92;outline-offset:4px}button{color:inherit}header{border-bottom:1px solid var(--line)}.chance-nav{max-width:1440px;margin:auto;min-height:76px;padding:16px 28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.chance-nav .brand{letter-spacing:.12em;text-decoration:none;font-size:.82rem;text-transform:uppercase;font-weight:800;margin-right:auto}.chance-nav>a:not(.brand){text-decoration:none;padding:8px 12px;border-radius:24px;min-height:44px}.chance-nav>a[aria-current]{background:#e7ce8f;color:#132b21}.locale-links{display:flex;gap:5px}.locale-links a{font-size:.76rem;text-decoration:none;padding:7px}.locale-links a[aria-current]{border-bottom:2px solid var(--gold)}.chance-hero{min-height:240px;max-width:1440px;margin:auto;padding:30px 6%;position:relative;display:flex;align-items:center;justify-content:flex-end;background:linear-gradient(90deg,#071a1600 18%,#071a16e8 65%),url('/games/chance/roulette-context.webp') left 37%/cover;border-radius:0 0 32px 32px;overflow:hidden}.chance-hero.slot-hero{min-height:180px;background:radial-gradient(ellipse at 30% 0,#d9b66b1c,transparent 60%),#0b271f;justify-content:center;text-align:center}.chance-hero>div{position:relative;max-width:610px}.eyebrow{color:var(--gold);font-size:.76rem;text-transform:uppercase;font-weight:700;letter-spacing:.13em}.chance-hero h1{font:500 clamp(2.6rem,6vw,5.1rem)/1.05 var(--serif);letter-spacing:-.035em;margin:8px 0 10px}.chance-hero p{margin:0;color:#e5e4d8}.chance-main{width:min(1440px,100%);margin:auto;padding:26px 28px 60px}.wallet-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:0 0 22px;margin:0 0 26px;gap:20px}.wallet-bar>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.wallet-bar strong{font-family:var(--serif);font-size:2.7rem;line-height:1.1;color:var(--gold);font-variant-numeric:tabular-nums}.wallet-bar>div>span:last-child{color:var(--muted)}.subtle{background:transparent;border:1px solid var(--line);border-radius:24px;min-height:44px;padding:9px 16px;font-size:.86rem}.subtle:hover:not(:disabled){background:#e6c98714;border-color:#e6c987a0}.game-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(700px,1.15fr);gap:34px;align-items:start}.game-layout.slots{grid-template-columns:minmax(420px,1.3fr) minmax(270px,.7fr);gap:40px}.wheel-panel,.bet-panel,.slot-controls,.machine-panel{min-width:0}.wheel-stage{position:relative;width:min(100%,560px);aspect-ratio:1;margin:0 auto 18px;filter:drop-shadow(0 20px 22px #0009)}.wheel-face{position:absolute;inset:0;will-change:transform}.wheel-face svg{display:block;width:100%;height:100%}.wheel-pointer{position:absolute;z-index:3;width:4%;height:6%;background:linear-gradient(100deg,#9c6c2c,#fff3b9,#a77734);clip-path:polygon(0 0,100% 0,50% 100%);left:48%;top:3%}.ball-orbit{position:absolute;inset:0;pointer-events:none;will-change:transform}.ivory-ball{position:absolute;display:block;left:48.7%;top:10.5%;width:2.6%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fffef4,#e8d9b4 55%,#9a8562);box-shadow:1px 3px 5px #0009}.bet-panel{background:linear-gradient(135deg,#1a4935,#103729);border:1px solid #b69a645c;border-radius:20px;padding:23px;box-shadow:inset 0 0 36px #071c1b66,0 16px 38px #0003}.bet-panel h2,.slot-controls h2{font:400 1.75rem var(--serif);margin:0 0 6px}.quiet{font-size:.86rem;color:var(--muted)}.number-table{display:grid;grid-template-columns:36px repeat(12,minmax(24px,1fr)) 45px;grid-template-rows:repeat(3,54px);gap:3px;margin-top:18px}.bet-cell{position:relative;min-height:46px;border:1px solid #d9c89b80;border-radius:4px;background:#154935;color:#fff7e8;font-weight:650;overflow:hidden;padding:7px 3px;box-shadow:inset 0 1px #ffffff14}.bet-cell:hover:not(:disabled){border-color:#fff1b4;box-shadow:inset 0 0 12px #f1d39a33}.number-table .bet-cell{grid-column:var(--dc);grid-row:var(--dr);font:700 1rem var(--serif)}.bet-cell.red,.number-pill.red,.result-number.red{background:linear-gradient(145deg,#b32d37,#79202a)}.bet-cell.black,.number-pill.black,.result-number.black{background:linear-gradient(145deg,#1e2924,#09130f)}.number-pill.green,.result-number.green{background:#196c4b}.number-table .zero-cell{grid-row:1/span 3;background:#0b5a3b}.number-table .column-cell{font:600 .7rem system-ui}.bet-amount{display:none;position:absolute;right:2px;bottom:2px;min-width:22px;padding:0 2px;background:#e5c87f;color:#152c1f;border-radius:10px;font:800 .65rem/19px system-ui;box-shadow:0 2px 5px #0008}.has-bet .bet-amount{display:block}.has-bet{outline:1px solid #f4dca6;outline-offset:-3px}.dozen-row,.outside-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:5px 0}.dozen-row .bet-cell{font-size:.78rem}.outside-row{grid-template-columns:repeat(6,1fr)}.outside-row .bet-cell{font-size:.77rem}.chip-picker{border:0;margin:23px 0 17px;padding:0}.chip-picker legend{font-size:.78rem;color:var(--muted);margin-bottom:12px;letter-spacing:.08em;text-transform:uppercase}.chip-picker>div{display:flex;gap:12px;flex-wrap:wrap}.chip{position:relative;display:inline-grid;place-items:center;width:48px;height:48px;border:5px dashed #eee7d2;border-radius:50%;background:#c2ae87;color:#15291f;box-shadow:0 3px 0 #0007,0 6px 12px #0005;cursor:pointer;transition:transform .12s}.chip input{position:absolute;inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);margin:0;appearance:none;border:2px solid transparent;border-radius:50%;cursor:pointer}.chip span{font-weight:850;font-size:.88rem;pointer-events:none}.chip:has(input:checked){transform:translateY(-4px);outline:2px solid #ffedb3;outline-offset:4px}.chip:has(input:disabled){opacity:.5;cursor:default}.chip-5{background:#94343c;color:white}.chip-10{background:#24597c;color:white}.chip-25{background:#276543;color:white}.chip-50{background:#343038;color:white}.chip-100{background:#dbc17f}.stake-strip{display:flex;gap:10px;align-items:baseline;padding:8px 0;color:var(--muted);font-size:.85rem}.stake-strip strong{font-size:1.6rem;font-family:var(--serif);color:var(--ink)}.bet-actions{display:flex;gap:10px;flex-wrap:wrap;margin:7px 0 18px}.bet-actions .subtle{font-size:.74rem;flex:1;padding:8px}.play-button{display:flex;width:100%;justify-content:space-between;align-items:center;min-height:60px;padding:16px 22px;border:1px solid #f7e3ae;border-radius:12px;background:linear-gradient(120deg,#e6c680,#f7e3b5,#bb944c);color:#18281d;font-weight:800;box-shadow:0 5px 0 #6c4e20,0 8px 20px #0004}.play-button:hover:not(:disabled){filter:brightness(1.07)}.play-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #6c4e20}.play-button>span{font-size:1.6rem;line-height:1}.result-box{min-height:118px;padding:16px 0}.round-result{display:flex;gap:15px;align-items:center;max-width:100%;font-size:.91rem}.round-result>div{min-width:0}.round-result p{margin:4px 0 1px}.round-result small{display:block;font-size:.74rem;color:var(--muted)}.result-number{display:grid;place-items:center;flex:0 0 66px;width:66px;height:75px;border:1px solid var(--gold);border-radius:12px;font:600 2.5rem var(--serif)}.round-result.positive>div>strong{color:#ead095}.round-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid var(--line);padding:16px 0}.round-stats span{display:block;color:var(--muted);font-size:.7rem}.round-stats strong{font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:600}.machine-art{position:relative;width:100%;aspect-ratio:3/2}.machine-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.reel-window{position:absolute;left:22.5%;top:28.1%;width:54.7%;height:26.5%;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;overflow:hidden;box-shadow:inset 0 12px 15px #4d2a183d,inset 0 -10px 14px #4d2a182d;border-radius:9px}.reel-viewport{position:relative;overflow:hidden;background:linear-gradient(#c2b18d,#fff8d9 30%,#fffbe8 55%,#ccba93)}.reel-viewport:after{content:'';pointer-events:none;position:absolute;inset:0;background:linear-gradient(#55381145,transparent 30%,transparent 66%,#5538113b)}.reel-strip{will-change:transform}.reel-symbol{width:100%;height:var(--row-height,100%);aspect-ratio:1;display:grid;place-items:center;padding:9%;}.reel-symbol>svg{display:block;width:100%;height:100%;max-height:100%;}.lever-button{position:absolute;right:1%;top:23%;width:13%;min-width:48px;height:49%;background:transparent;border:0;perspective:500px;display:grid;place-items:center}.lever-arm{display:block;position:relative;width:10px;height:72%;background:linear-gradient(90deg,#4d4842,#fbf2df,#696052);border-radius:8px;transform-origin:50% 90%;box-shadow:2px 2px 4px #0006;transition:transform .25s}.lever-knob{display:block;position:absolute;left:50%;top:-12px;transform:translateX(-50%);width:clamp(25px,4vw,58px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 22%,#ffcbad,#c13230 32%,#7e131f 68%,#321018);box-shadow:0 4px 7px #0007}.pulling .lever-arm{animation:lever-pull .5s ease-out}@keyframes lever-pull{50%{transform:rotateX(-48deg) translateY(10px)}}.slot-controls{background:linear-gradient(130deg,#143e2d88,#0b281e);border:1px solid var(--line);border-radius:18px;padding:24px}.paytable{margin-top:30px;border-top:1px solid var(--line);padding-top:14px}.paytable h3{font:500 1.25rem var(--serif);margin:0}.paytable>div{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid #d2bf8a1c;padding:4px 0;font-size:.83rem}.paytable strong{color:var(--gold)}.pay-symbol{height:36px;display:block}.pay-symbol>svg{width:36px;height:36px}.result-symbols{display:flex;flex:0 0 130px;max-width:130px}.result-symbols>span{width:43px;display:block}.result-symbols svg{width:43px;height:43px}.animation-actions{display:flex;align-items:center;gap:12px;min-height:48px}.animation-actions .quiet{font-size:.76rem}.status-line{min-height:1.8em;margin:12px 0 20px;color:#efdeb6}.below-game{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.rules-card,.history-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:#0c241dcc}.rules-card summary{font-size:1rem;font-weight:650;cursor:pointer;min-height:28px}.rules-card p{font-size:.9rem;color:#d7d8c8}.history-card h2{font:500 1.3rem var(--serif);margin:0 0 12px}.history-card ol{padding:0;margin:0;list-style:none;max-height:260px;overflow:auto}.history-card li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #e8d0951a;font-size:.78rem}.history-card li>strong{margin-left:auto;white-space:nowrap}.history-outcome{display:flex;min-width:34px}.number-pill{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff}.history-symbol{display:block;width:25px}.history-symbol svg{width:25px;height:25px}.chance-footer{padding:28px 0 0;color:var(--muted);font-size:.82rem}.chance-footer .quiet{font-size:.73rem}.reset-button{margin-top:10px}.error-note{border:1px solid #dbba75;padding:12px;border-radius:10px;margin-bottom:20px;color:#ffedbb}.chance-loading{padding:20px;color:#d7d8c8}[hidden]{display:none!important}@media(min-width:1500px){.game-layout{gap:55px}}@media(max-width:1150px){.game-layout{grid-template-columns:1fr}.wheel-stage{max-width:470px}.wheel-panel{display:grid;grid-template-columns:minmax(280px,1fr) minmax(200px,.7fr);gap:20px;align-items:center}.wheel-panel .round-stats{grid-column:1/-1}.bet-panel{max-width:850px;width:100%;margin:auto}.game-layout.slots{grid-template-columns:minmax(350px,1.2fr) minmax(270px,.8fr);gap:20px}}@media(max-width:800px){.game-layout.slots{grid-template-columns:1fr}.machine-panel{max-width:800px;width:100%;margin:auto}.slot-controls{max-width:600px;width:100%;margin:auto}.below-game{grid-template-columns:1fr}.chance-nav{padding:12px 18px;gap:8px}.locale-links{width:100%;justify-content:flex-end}.chance-hero{min-height:200px}.chance-hero>div{max-width:65%}.chance-hero.slot-hero>div{max-width:100%}.chance-main{padding:20px 18px 40px}.wallet-bar strong{font-size:2.15rem}.wallet-bar .eyebrow{width:100%}.wallet-bar>div{gap:7px}.wallet-bar{align-items:flex-end}.round-result{font-size:.83rem}}@media(max-width:760px){.wheel-panel{display:block}.wheel-stage{max-width:360px}.bet-panel{padding:17px}.number-table{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(14,46px);gap:4px}.number-table .bet-cell{grid-column:var(--mc);grid-row:var(--mr);font-size:1.15rem}.number-table .zero-cell{grid-column:1/span 3;grid-row:1}.number-table .column-cell{font-size:.8rem}.outside-row{grid-template-columns:repeat(3,1fr)}.dozen-row .bet-cell{font-size:.67rem}.chip-picker>div{gap:10px}.chip{width:44px;height:44px}.chance-hero{min-height:180px;background-position:28% 35%;padding:24px}.chance-hero>div{max-width:68%}.chance-hero h1{font-size:2.6rem}.chance-hero p{font-size:.81rem}.chance-nav .brand{font-size:.68rem;letter-spacing:.07em}.chance-nav>a:not(.brand){font-size:.8rem;padding:7px 9px}.result-box{min-height:100px}.animation-actions{flex-wrap:wrap}.animation-actions .quiet{max-width:100%}.reel-window{border-radius:4px}.reel-symbol{padding:4%}.lever-arm{width:7px}.round-stats{gap:8px}.round-stats span{font-size:.66rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.play-button,.chip-picker,.bet-actions,.lever-button,.animation-actions,.chance-nav,.reset-button,#sound{display:none!important}body{background:white;color:black}.chance-hero{background:none;min-height:0}.game-layout{display:block}.quiet{color:#333}}

.reel-strip{height:100%}

.wheel-pointer{top:12.5%}.ivory-ball{top:19.8%}

.wheel-face>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.wheel-face>svg{position:relative;z-index:1}

.lever-arm:after{content:"";position:absolute;right:0;bottom:0;width:clamp(24px,6vw,82px);height:10px;border-radius:6px;background:linear-gradient(#6c6357,#fff3da,#6c6357);box-shadow:0 3px 4px #0007}.lever-button:after{content:"";position:absolute;left:12%;bottom:10%;width:18%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff0bd,#967139 52%,#503a1f);box-shadow:0 3px 7px #0008;z-index:-1}

/* R216: primary actions near the game, betting in a bounded dialog. */
.primary-controls{position:sticky;top:calc(64px + env(safe-area-inset-top,0px));z-index:6;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;margin:0 0 16px;background:#0d2c23f5;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 22px #0004;backdrop-filter:blur(12px)}
html:not([data-site-controls]) .primary-controls{top:0}.primary-controls>.play-button{flex:1;width:auto;min-width:180px}.primary-controls .chip-picker{margin:0;flex:1 1 100%}.primary-controls .chip-picker legend{margin-bottom:8px}.primary-controls .chip-picker>div{gap:14px}.primary-controls .subtle{min-height:48px}.primary-controls #wheelStakeTotal{margin-left:7px;color:var(--gold)}
.game-layout.roulette{grid-template-columns:1fr}.roulette .wheel-panel{display:flex;flex-direction:column;width:min(100%,680px);margin:auto}.wheel-open{position:absolute;inset:0;z-index:4;display:flex;align-items:flex-end;justify-content:center;border:0;background:transparent;border-radius:50%;padding:0 0 3%;color:var(--ink)}.wheel-open>span{background:#f1d69d;border:1px solid #fff4cd;border-radius:24px;padding:8px 16px;font-size:.8rem;font-weight:750;box-shadow:0 3px 18px #0008}.wheel-open:hover:not(:disabled)>span{background:#fff0c9}.wheel-open:disabled>span{visibility:hidden}.wheel-open:disabled{opacity:1}.wheel-open:focus-visible{outline:3px solid #f5de9d;outline-offset:2px}
.result-box{min-height:0;padding:0 0 14px}.round-result{padding:12px;border:1px solid var(--line);border-radius:14px;background:#0d2b22}.round-result.positive{border-color:#edcc7e;background:linear-gradient(125deg,#284e34,#103d2d)}.round-result.positive>div>strong{font-size:1.2rem}.result-number{height:66px}.round-stats{margin-top:6px}.chance-modal-open{overflow:hidden}
.bet-dialog,.demo-dialog{color:var(--ink);background:var(--deep);border:1px solid #c5ac73;border-radius:18px;padding:0;width:min(920px,calc(100% - 24px));max-width:none;max-height:90vh;max-height:90dvh;overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #000b}.bet-dialog::backdrop,.demo-dialog::backdrop{background:#030d0bd9;backdrop-filter:blur(5px)}.bet-dialog:not([open]),.demo-dialog:not([open]){display:none}.bet-dialog[open],.demo-dialog[open]{position:fixed;inset:0;margin:auto}.bet-dialog .bet-panel{max-width:none;border:0;border-radius:16px;padding:18px}.bet-dialog .chip-picker{position:sticky;top:0;background:#123b2d;z-index:3;margin:10px 0 16px;padding:10px 2px 8px}.bet-footer{position:sticky;bottom:-18px;margin:14px -2px -2px;padding:10px 2px 2px;background:linear-gradient(#123b2df2,#123b2d 12%);z-index:4;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:7px}.bet-footer .stake-strip{grid-column:1/-1;padding:0}.bet-footer .bet-actions{grid-column:1/-1;margin:0}.bet-footer>.play-button{min-height:48px;padding:10px 14px;font-size:.9rem}.bet-footer>.subtle{font-size:.8rem}.demo-dialog{width:min(540px,calc(100% - 24px));padding:24px}.demo-dialog h2{font:500 1.7rem var(--serif);margin:0 0 12px}.demo-triple{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:20px 0;background:#fae8c4;border:3px solid var(--gold);border-radius:12px;padding:12px}.demo-triple svg{width:100%;display:block}.demo-dialog>.play-button{margin-top:20px}.demo-dialog>strong{color:var(--gold);font-size:1.2rem}
.chance-confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:10000}.chance-confetti i{position:absolute;left:var(--x);top:-20px;width:9px;height:15px;background:hsl(var(--hue) 80% 68%);border-radius:2px;animation:chance-fall 1900ms var(--delay) cubic-bezier(.16,.6,.52,1) both}#chanceApp[data-win] .result-box{animation:chance-win 650ms ease-out 1}#chanceApp[data-win=big] .round-result{box-shadow:0 0 32px #f8d17d55}
@keyframes chance-fall{0%{opacity:0;transform:translateY(-30px) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translateY(105vh) rotate(calc(var(--turn)*640deg))}}@keyframes chance-win{0%{transform:scale(.97);filter:brightness(1)}45%{transform:scale(1.025);filter:brightness(1.18)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:800px){.chance-hero,.chance-hero.slot-hero{min-height:100px;padding:14px 18px;border-radius:0 0 18px 18px}.chance-hero h1{font-size:2rem;margin:3px 0 6px}.chance-hero p{font-size:.78rem}.chance-main{padding:12px 12px 32px}.wallet-bar{margin:0 0 12px;padding-bottom:12px;gap:10px}.wallet-bar strong{font-size:1.8rem}.primary-controls{gap:8px;padding:10px}.primary-controls>.play-button{min-height:50px;padding:12px 16px;min-width:150px}.primary-controls .subtle{font-size:.78rem;padding:8px 11px}.primary-controls .chip{width:40px;height:40px}.primary-controls .chip input{inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px)}.primary-controls .chip-picker>div{gap:12px}.wheel-stage{width:min(100%,340px);margin-bottom:8px}.game-layout.slots{gap:14px}.slot-controls{padding:16px}.slot-controls h2{font-size:1.4rem}.paytable{margin-top:16px}.chance-nav{padding:8px 12px;gap:4px}.locale-links{justify-content:center}.chance-nav>a:not(.brand){font-size:.77rem;padding:6px 9px}.result-number{height:56px;width:52px;flex-basis:52px;font-size:2rem}.round-result{font-size:.8rem;gap:10px}.round-result.positive>div>strong{font-size:1rem}.round-stats{padding:10px 0}.below-game{gap:14px}}
@media(max-width:760px){.bet-dialog{width:calc(100% - 16px);max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}.bet-dialog .bet-panel{padding:12px}.bet-dialog .number-table{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:46px;gap:3px}.bet-dialog .number-table .bet-cell{grid-column:auto;grid-row:auto;min-width:0;font-size:1rem}.bet-dialog .number-table .zero-cell{grid-column:1/-1;grid-row:auto}.bet-dialog .number-table .column-cell{grid-column:span 2;font:.7rem system-ui}.bet-dialog .chip-picker>div{gap:12px}.bet-dialog .chip{width:42px;height:42px}.bet-footer{bottom:-12px;grid-template-columns:1fr}.bet-footer>*{grid-column:1/-1}.bet-footer>.subtle{min-height:40px;padding:7px}.bet-dialog .outside-row{grid-template-columns:repeat(3,1fr)}.bet-dialog h2{font-size:1.4rem}.bet-dialog p{margin:6px 0}.demo-dialog{padding:18px}.demo-dialog h2{font-size:1.45rem}}
@media(max-width:359px){.bet-dialog .number-table{grid-template-columns:repeat(5,minmax(0,1fr))}.bet-dialog .number-table .column-cell{grid-column:auto}.primary-controls>.play-button{min-width:130px}.primary-controls .chip-picker>div{gap:10px}.primary-controls .chip{width:36px;height:36px}.primary-controls .chip input{inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px)}.chance-hero>div{max-width:75%}.chance-nav .brand{font-size:.65rem}.chance-nav>a:not(.brand){font-size:.72rem;padding:6px}.wallet-bar .subtle{font-size:.72rem;padding:8px}}
@media(prefers-reduced-motion:reduce){.chance-confetti{display:none!important}#chanceApp[data-win] .result-box{animation:none!important}}
@media print{.primary-controls,.wheel-open,.bet-dialog,.demo-dialog,.chance-confetti{display:none!important}}

/* Explicit geometry fallback for renderers and older layout engines. */
.wheel-face,.wheel-face>img,.ball-orbit,.wheel-open,.machine-art>img{top:0;right:0;bottom:0;left:0}
.wheel-stage::before{content:"";display:block;padding-top:100%}.machine-art::before{content:"";display:block;padding-top:66.666667%}
.bet-dialog,.bet-dialog .bet-panel,.bet-footer,.bet-footer>*{min-width:0}.bet-footer .subtle,.bet-footer .play-button{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.bet-dialog .outside-row,.bet-dialog .dozen-row{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:359px){.primary-controls .chip input{inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px)}.bet-dialog .chip-picker>div{gap:8px}.bet-dialog .chip{width:36px;height:36px}.bet-dialog .chip input{inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px)}}

/* R226: readable per-bet odds, optional information-only taps, and a separate ball track. */
body[data-chance-game=roulette] .bet-info-tools{display:flex;align-items:center;gap:12px;margin:12px 0;flex-wrap:wrap}
body[data-chance-game=roulette] .bet-info-tools p{flex:1 1 280px;font-size:.78rem;line-height:1.45;margin:0;color:var(--muted)}
body[data-chance-game=roulette] #oddsMode[aria-pressed=true]{background:#ead09a;color:#14291f;border-color:#fff0c4}
body[data-chance-game=roulette] .bet-preview{position:fixed;z-index:8;width:min(320px,calc(100vw - 24px));padding:12px 14px;border:1px solid #f1d69b;border-radius:12px;background:#0a211bf7;color:#fff4da;box-shadow:0 8px 32px #000a;pointer-events:none;font-size:.79rem;line-height:1.45;max-height:calc(100vh - 24px);overflow:hidden}
body[data-chance-game=roulette] .bet-preview>strong{display:block;color:#ffe3a4;font-size:.9rem;margin-bottom:6px}
body[data-chance-game=roulette] .bet-preview p{margin:4px 0}.bet-preview small{font-size:inherit;color:#d4d5c6}
body[data-chance-game=roulette] .combined-odds{grid-column:1/-1;margin:0;padding:5px 0;color:#f9e1a5;font-size:.8rem;font-variant-numeric:tabular-nums}
body[data-chance-game=roulette] .bet-odds-note{font-size:.76rem;color:var(--muted);margin:14px 0 6px}
body[data-chance-game=roulette] .ball-orbit{z-index:2}
body[data-chance-game=roulette] .ivory-ball{left:50%;top:calc(50% - var(--ball-radius,26.25%));width:clamp(10px,3.3%,18px);transform:translate(-50%,-50%) rotate(var(--ball-spin,0deg));background:radial-gradient(circle at 28% 22%,#fffefb 0 16%,#fff8df 30%,#e6d8b8 62%,#a58d68 88%,#79674e);box-shadow:1px 2px 2px #000b,0 0 2px #fff8;will-change:top,transform}
@media(max-width:560px){body[data-chance-game=roulette] .bet-info-tools{gap:8px}body[data-chance-game=roulette] .bet-info-tools p{flex-basis:100%}body[data-chance-game=roulette] .bet-preview{font-size:.76rem;padding:10px 12px}}
@media print{.bet-preview,.bet-info-tools{display:none!important}}

/* R227: one persistent balance/control dock, explicit play-money euros. */
body[data-chance-game=roulette] .roulette-dock{position:sticky;top:calc(64px + env(safe-area-inset-top,0px));z-index:7;margin:0 0 18px;padding:12px;background:#081f19f7;border:1px solid #d6bc7b77;border-radius:18px;box-shadow:0 10px 28px #0006;backdrop-filter:blur(12px)}
html:not([data-site-controls]) body[data-chance-game=roulette] .roulette-dock{top:0}
body[data-chance-game=roulette] .wallet-hud{display:block;padding:0;margin:0;border:0}
body[data-chance-game=roulette] .wallet-hud-head{display:flex;justify-content:space-between;align-items:center;gap:14px}
body[data-chance-game=roulette] .wallet-hud-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;min-width:0}
body[data-chance-game=roulette] .wallet-label{flex-basis:100%;margin:0;color:#eee5c9;font-size:.8rem;font-weight:750;letter-spacing:.04em}
body[data-chance-game=roulette] .wallet-hud .wallet-value{font:750 clamp(2.3rem,6vw,4rem)/1.05 system-ui,sans-serif;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#ffe4a4;overflow-wrap:anywhere}
body[data-chance-game=roulette] .wallet-badge{padding:3px 8px;border:1px solid #dbc28688;border-radius:8px;color:#f8e5b5;font-size:.68rem;font-weight:750;letter-spacing:.04em}
body[data-chance-game=roulette] .wallet-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
body[data-chance-game=roulette] .wallet-metrics>div{padding:8px 12px;border:1px solid #d1bc7c40;border-radius:10px;background:#17453155;min-width:0}
body[data-chance-game=roulette] .wallet-metrics span{display:block;color:#cbd6c8;font-size:.69rem}
body[data-chance-game=roulette] .wallet-hud .wallet-metrics strong{font:750 1.2rem/1.3 system-ui,sans-serif;font-variant-numeric:tabular-nums;color:#fff0c9;overflow-wrap:anywhere}
body[data-chance-game=roulette] .wallet-hud .wallet-metrics strong[data-result=loss]{color:#ffb7ad}
body[data-chance-game=roulette] .wallet-hud .wallet-metrics strong[data-result=win]{color:#c6f4b9}
body[data-chance-game=roulette] .wallet-unit-note{margin:7px 0 9px;color:#c3cebf;font-size:.68rem;line-height:1.35}
body[data-chance-game=roulette] .roulette-dock .primary-controls{position:static;top:auto;margin:0;padding:8px 0 0;background:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none}
body[data-chance-game=roulette] .roulette-dock .error-note{margin:8px 0}
@media(max-width:560px){body[data-chance-game=roulette] .roulette-dock{padding:10px;margin-bottom:12px}body[data-chance-game=roulette] .wallet-hud-head{gap:7px}body[data-chance-game=roulette] .wallet-hud-main{gap:6px}body[data-chance-game=roulette] .wallet-label{font-size:.7rem}body[data-chance-game=roulette] .wallet-badge{font-size:.6rem}body[data-chance-game=roulette] .wallet-hud-head>.subtle{font-size:.7rem;padding:7px 9px;min-height:44px}body[data-chance-game=roulette] .wallet-metrics{gap:7px;margin-top:7px}body[data-chance-game=roulette] .wallet-metrics>div{padding:6px 9px}body[data-chance-game=roulette] .wallet-unit-note{font-size:.63rem;margin:5px 0 7px}}
@media print{body[data-chance-game=roulette] .roulette-dock{position:static;box-shadow:none;backdrop-filter:none}}
