:root{color-scheme:dark;--gold:#dbbd75;--muted:#9faaa5;--ink:#101c18}*{box-sizing:border-box}body{margin:0;background:#101916;color:#f1f0e7;font:15px/1.5 system-ui,-apple-system,sans-serif}button,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #607267;background:#203c2f;border-radius:7px;padding:10px 17px}button:hover{filter:brightness(1.2)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #ffe098;outline-offset:3px}.mast{max-width:1400px;margin:auto;padding:24px 40px;display:flex;align-items:center;gap:26px;border-bottom:1px solid #314038}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;color:inherit;font-size:14px;letter-spacing:2px}.brand>b{font:italic 44px Georgia;color:var(--gold);letter-spacing:-4px}.brand>b span{font-size:23px}.brand small{display:block;font-size:8px;letter-spacing:1.6px;color:var(--muted)}.demo{margin-left:auto;font-size:10px;letter-spacing:2px;color:var(--muted)}#menu{padding:4px 10px;font-size:23px;background:transparent;border:0}main{max-width:1320px;margin:auto;padding:34px 30px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:2.7px;color:var(--gold)}h1{font:36px Georgia;margin:8px 0}h2{font:26px Georgia;margin:8px 0 12px}.intro p{color:var(--muted);font-size:14px}.table{background:radial-gradient(ellipse at 40% 0,#246342,#12462e 65%,#103821);border:2px solid var(--gold);border-radius:24px;box-shadow:0 16px 60px #0006,inset 0 0 0 7px #162f23,inset 0 0 0 8px #8c7d4b;padding:28px 30px 20px}.table-top{display:flex;align-items:center;gap:30px;margin-bottom:23px}.seal{width:100px;height:100px;flex-shrink:0;border:1px solid #c6b773;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;font:italic bold 48px Georgia;color:#ecdca5}.seal small{font:8px system-ui;letter-spacing:1px}.seal span{font:14px Georgia}.round-area{flex:1}.meters{display:flex;gap:35px;justify-content:center;margin-bottom:15px}.meters>div{font-size:9px;letter-spacing:1.8px;color:#c1ccb9}.meters strong{display:block;font-size:23px;letter-spacing:0;color:#fff;font-weight:500}#hand{display:flex;gap:9px;justify-content:center}.outcome{height:70px;width:48px;border:1px solid #bbab69;border-radius:4px;background:repeating-linear-gradient(45deg,#193a29,#193a29 3px,#284b36 3px,#284b36 5px);display:grid;place-items:center;font-size:23px;color:#d2c28c;position:relative}.outcome small{position:absolute;bottom:-17px;font:9px system-ui}.outcome.reveal{background:#fffaf0;color:#19261e;font:bold 20px Georgia}.outcome.red{color:#b32d34}.outcome.win{outline:3px solid #f5d57b;box-shadow:0 0 25px #e4cb6977}.wheel-wrap{position:relative;text-align:center}.wheel-wrap>small{font-size:7px;letter-spacing:1px}.pointer{position:absolute;top:-12px;left:50%;transform:translateX(-50%);z-index:2;color:#f9e0a0;font-size:24px}#wheel{height:113px;width:113px;position:relative;border:5px solid #c2a05e;border-radius:50%;background:conic-gradient(from -36deg,#bb3439 0 72deg,#2e66ad 72deg 144deg,#299455 144deg 216deg,#e0ad33 216deg 288deg,#744aa2 288deg);box-shadow:0 3px 12px #0007;transition:transform 2.1s cubic-bezier(.12,.65,.15,1)}#wheel span{position:absolute;left:43px;top:1px;height:100px;transform-origin:50% 50%;font-weight:bold;text-shadow:0 1px 3px #000}#wheel span:nth-child(2){transform:rotate(72deg)}#wheel span:nth-child(3){transform:rotate(144deg)}#wheel span:nth-child(4){transform:rotate(216deg)}#wheel span:nth-child(5){transform:rotate(288deg)}#wheel b{position:absolute;inset:35px;border-radius:50%;background:#d1b675;color:#293525;font:bold 15px/33px Georgia}.table-scroll{overflow-x:auto;padding:4px 0 8px}#layout{position:relative;min-width:780px;aspect-ratio:16/5.5;padding:0 6.25%}#grid{display:grid;grid-template-columns:repeat(13,1fr) 1fr;grid-template-rows:repeat(4,1fr) .6fr .65fr;height:100%;gap:3px}.card,.rank,.suit,.facebar{border:1px solid #c1c6a6;border-radius:2px;background:#f3f0df;color:#19281e;position:relative;display:flex;align-items:center;justify-content:center}.card{font:27px Georgia}.card.red,.suit.red{color:#bd3033}.card>small{position:absolute;top:1px;left:3px;font:bold 12px Georgia}.rank{font-weight:700}.facebar{grid-column:1/14;background:#aa3230;color:#fff;font-size:14px}.suit{font:30px Georgia}.joker,.colorbet{position:absolute;border:1px solid #d5c68d;display:grid;place-items:center;text-align:center;font-weight:700}.joker{left:0;width:6.25%;height:38.1%;color:#172f26;font-size:13px}.joker.yellow{top:0;background:#e2c542;border-radius:70% 0 0 0}.joker.blue{top:38.4%;background:#66b3d0;border-radius:0 0 0 70%}.colorbet{right:0;width:6.25%;height:38.1%;writing-mode:vertical-rl;font-size:18px;letter-spacing:1px}.colorbet.red{top:0;background:#b53336;border-radius:0 70% 0 0}.colorbet.black{top:38.4%;background:#151c1b;border-radius:0 0 70% 0}#targets{position:absolute;inset:0;pointer-events:none}.target{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;padding:0;min-width:11px;height:11px;border:1px solid #d5b76b99;background:#bba96977;border-radius:50%;z-index:2}.target.single{width:3.7%;height:12%;border:0;background:transparent;border-radius:2px}.target.major{height:22px;min-width:26px;opacity:.12}.target:hover,.target:focus-visible{opacity:1;background:#e7c975aa;z-index:4}.target.staked{opacity:1;z-index:5;min-width:29px;width:auto;height:29px;background:#b52f36;border:3px dashed #ffe3d3;border-radius:50%;color:white;font:bold 9px system-ui;box-shadow:0 2px 4px #0009}.card.winning{background:#ffe09c;box-shadow:0 0 12px #f2dd91}.toolbar{border-top:1px solid #91a66b77;margin-top:13px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:15px}#chips{display:flex;gap:13px}.chip{width:52px;height:52px;padding:0;border:5px dashed #efeee0;border-radius:50%;font-size:14px;font-weight:700;box-shadow:0 3px 7px #0007;background:#a83137}.chip:nth-child(2){background:#35914e}.chip:nth-child(3){background:#23262b}.chip:nth-child(4){background:#77387c}.chip.active{outline:2px solid #ffe39c;outline-offset:4px;transform:translateY(-3px)}.actions{display:flex;gap:8px}.primary{background:#e5c681;color:#1c2d22;border:1px solid #fce5b4;font-weight:700;min-width:145px}.primary span{margin-left:12px}.under{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}.under p{color:#c7d1c6}.under button{border:0;background:transparent;color:var(--gold);padding-right:0}.bet-tools{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:35px 0;border-bottom:1px solid #314038}.bet-tools p{color:var(--muted);max-width:430px;font-size:13px}.picker{display:grid;grid-template-columns:100px 1fr;gap:10px;align-items:center}.picker label{color:var(--muted);font-size:12px}select{max-width:100%;min-width:0;padding:9px;background:#1c2c24;color:#fff;border:1px solid #46574b;border-radius:5px}.picker button{grid-column:2}.ledger{padding:25px 0}.ledger h2{font-size:20px}.ledger h2 span{font:11px system-ui;color:var(--muted);margin-left:12px}#bets{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:12px}#bets button{padding:6px 12px;font-size:12px}footer{border-top:1px solid #314038;padding:25px 0;color:var(--gold);font-size:10px;letter-spacing:1px}footer span{float:right;color:var(--muted);letter-spacing:0}dialog{max-width:570px;width:90%;max-height:85vh;border:1px solid var(--gold);border-radius:14px;padding:30px;background:#172b21;color:#eef1e6}dialog::backdrop{background:#000b}#closeDialog{float:right;padding:0 9px;font-size:26px}dialog table{border-collapse:collapse;width:100%;font-size:13px}dialog td,dialog th{text-align:left;padding:9px 6px;border-bottom:1px solid #425345}dialog p,dialog li{color:#bac8bd}dialog button{margin:5px} @media(max-width:800px){.mast{padding:18px}.demo{display:none}#menu{margin-left:auto}main{padding:22px 12px}.intro{display:block}.intro p{font-size:12px}h1{font-size:29px}.table{padding:22px 13px 16px}.seal{display:none}.table-top{gap:10px}.meters{gap:15px}.meters strong{font-size:18px}.meters>div{font-size:7px}.wheel-wrap{transform:scale(.8);margin:-10px}.toolbar{flex-wrap:wrap;justify-content:center}.actions{width:100%;justify-content:center}.actions button{padding:9px 11px}.primary{min-width:125px}.bet-tools{grid-template-columns:1fr;gap:10px}.under{align-items:start}.under button{white-space:nowrap}.picker{grid-template-columns:80px 1fr}footer span{float:none;display:block;margin-top:8px}}@media(prefers-reduced-motion:reduce){#wheel{transition:none}}
#layout{padding:0}#grid{width:87.5%;margin-left:6.25%}.target.single{width:5.8%;height:17%}.target.suit-target{width:5.8%;height:17%;opacity:0}.target.color-target{width:5.8%;height:35%;opacity:0}.target.face-target{width:80%;height:10%;opacity:0}.target.joker-target{width:5%;height:30%}.target.staked{width:auto;height:29px;opacity:1}.target:hover,.target:focus-visible{opacity:1}

/* Version 0.2: user-provided brand, blue felt and animated cards */
.brand-logo{width:70px;height:70px;object-fit:contain;flex-shrink:0}
.table{background:linear-gradient(130deg,#0849cfbb,#0741c4c9),url('blue.jpg') center/cover;border-color:#d9c083;box-shadow:0 16px 60px #0006,inset 0 0 0 7px #0637a0,inset 0 0 0 8px #b9a56a}
.deal-stage{display:flex;align-items:center;justify-content:center;gap:23px;min-height:105px}
#deck{height:70px;width:48px;flex-shrink:0;border-radius:5px;border:3px solid #fff7dc;background:repeating-linear-gradient(45deg,#f7f2e8 0 3px,#143d8c 3px 6px,#f7f2e8 6px 9px,#143d8c 9px 12px);box-shadow:3px 3px 0 #e4dfcc,5px 5px 0 #17356a,0 3px 9px #0018;position:relative}
#deck:after{content:'54';position:absolute;inset:13px 7px;border:2px solid #f8ebc5;background:#103d8a;color:#f7e6ac;display:grid;place-items:center;font:bold 16px Georgia}
.outcome{flex-shrink:0;background:#153d8a;border:3px solid #f9f1db;box-shadow:inset 0 0 0 2px #163e85,0 2px 6px #0006;overflow:visible;color:transparent}
.outcome:not(.reveal):before{content:' ';position:absolute;inset:4px;border:2px solid #f7ead0;border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 3px,#f7ead044 3px 4px,transparent 4px 7px),repeating-linear-gradient(-45deg,#214b9d 0 3px,#0c327d 3px 6px)}
.outcome:not(.reveal):after{content:'54';position:absolute;inset:19px 11px;border:1px solid #f6e6b7;background:#153d8a;color:#f7e7b5;display:grid;place-items:center;font:bold 13px Georgia}
.outcome small{bottom:-29px;font:bold 21px/1 system-ui;color:#fff3c5;text-shadow:0 2px 3px #001a53;z-index:2}
.outcome.reveal{border:2px solid #e9d6a7;overflow:visible}
.outcome.arriving{animation:dealIn .35s ease-out both;transform-origin:center}
@keyframes dealIn{from{opacity:0;transform:translateX(-85px) rotate(-14deg) scale(.83)}to{opacity:1;transform:translateX(0) rotate(0) scale(1)}}
@media(max-width:800px){.brand-logo{width:53px;height:53px}.deal-stage{gap:9px}#deck{width:32px;height:52px}.outcome{width:39px;height:59px}#hand{gap:5px}.outcome small{font-size:18px;bottom:-26px}}
@media(prefers-reduced-motion:reduce){.outcome.arriving{animation:none}}
/* Version 0.3: original red-and-ivory geometric card-back artwork, CSS only. */
#deck{background:#bd2731;border-color:#fffaf0;box-shadow:3px 3px 0 #e4dfcc,5px 5px 0 #85202a,0 3px 9px #0018}
#deck:after{content:'';inset:5px;border:double 4px #fff4e7;border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 6px,#fff5e9 6px 7px,transparent 7px 13px),repeating-linear-gradient(-45deg,#bb2933 0 6px,#fff5e9 6px 7px,#bb2933 7px 13px);color:transparent}
.outcome:not(.reveal){background:#bd2731;border-color:#fffaf0;box-shadow:inset 0 0 0 2px #ac202b,0 2px 6px #0006}
.outcome:not(.reveal):before{inset:4px;border:double 4px #fff4e7;border-radius:2px;background:repeating-linear-gradient(45deg,transparent 0 6px,#fff5e9 6px 7px,transparent 7px 13px),repeating-linear-gradient(-45deg,#bb2933 0 6px,#fff5e9 6px 7px,#bb2933 7px 13px)}
.outcome:not(.reveal):after{content:'◆';inset:24px 15px;border:1px solid #fff4e7;border-radius:50%;background:#b92230;color:#fff4e7;font:bold 11px Georgia}

/* Version 0.3 visual enhancement only: larger suit pips and blue/yellow jesters. */
#grid .card{font-size:clamp(34px,3.8cqw,48px);line-height:1;overflow:hidden}
#grid .card>small{font-size:12px;line-height:1.1;z-index:1}
#layout .joker{background:#fff9eb;color:#15283c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:2px 0;border-radius:3px}
#layout .joker.blue{top:0}
#layout .joker.yellow{top:38.4%}
#layout .joker .jester-art{display:block;width:90%;max-height:72%;flex:1;min-height:0}
#layout .joker span{font:bold clamp(8px,1.1cqw,13px)/1.15 Georgia,serif;letter-spacing:.2px}

#layout .joker .jester-art{width:96%;height:auto;max-height:none;flex:0 0 auto;aspect-ratio:1;overflow:hidden}

/* Final Joker artwork: match supplied table reference. */
#layout .joker .jester-art{aspect-ratio:1.4;max-height:72%;width:96%}

/* v0.5 master board: compact blue felt, curved jokers and crisp split lines. */
.mast{max-width:1500px;padding:8px 12px;gap:14px}.brand-logo{width:48px;height:48px}.brand{font-size:12px}.intro{display:none}main{max-width:1500px;padding:10px 8px}.table{padding:14px 10px 10px;border-radius:14px}.table-top{margin-bottom:14px;gap:14px}.seal{display:none}.meters{margin-bottom:4px}.deal-stage{min-height:102px}.table-scroll{padding:0 0 3px;overflow:visible}#layout{min-width:0;aspect-ratio:16/5.5}#grid{gap:0;background:#fff}#grid>.card,#grid>.suit,#grid>.rank,#grid>.facebar{border:1px solid #fff;border-radius:0}#grid .card{background:#f3f0df}#grid .card>small{font-size:clamp(7px,1.15cqw,14px)}#grid .card{font-size:clamp(14px,3.8cqw,48px)}#grid .suit{font-size:clamp(23px,5.2cqw,68px);line-height:1}#grid .rank{font-size:clamp(9px,1.7cqw,20px)}#grid .facebar{font-size:clamp(9px,1.65cqw,20px)}
#layout .joker{border:2px solid #fff;width:6.25%;height:38.095%;padding:2px;overflow:hidden}#layout .joker.yellow{top:0;background:#f5dc13;border-radius:100% 0 0 0}#layout .joker.blue{top:38.095%;background:#48bce0;border-radius:0 0 0 100%}#layout .joker .jester-art{width:92%;max-height:63%;flex:0 1 auto}#layout .joker span{font-size:clamp(5px,.85cqw,12px)}#layout .colorbet{height:38.095%;border:2px solid #fff;font-size:clamp(10px,2.2cqw,27px)}#layout .colorbet.red{top:0;border-radius:0 100% 0 0}#layout .colorbet.black{top:38.095%;border-radius:0 0 100% 0}.target:not(.single):not(.major){background:#fff;border-color:#fff;width:9px;min-width:9px;height:9px}.target.staked,.target.staked:not(.single):not(.major){width:auto;min-width:29px;height:29px;background:#b52f36;border:3px dashed #ffe3d3}.toolbar{margin-top:7px;padding-top:10px}.bet-tools{padding:15px 0;gap:24px}.bet-tools h2{font-size:20px}.ledger{padding:12px 0}footer{padding:12px 0}
@media(max-width:800px){main{padding:5px 3px}.mast{padding:5px 8px}.table{padding:10px 3px 8px;box-shadow:none;border-radius:8px}.table-top{gap:4px;margin-bottom:8px}.brand-logo{width:36px;height:36px}.brand small{display:none}.deal-stage{min-height:87px}.meters{gap:14px}.meters strong{font-size:16px}.wheel-wrap{transform:scale(.68);margin:-18px}.toolbar{gap:10px}.chip{width:40px;height:40px;font-size:11px;border-width:4px}#chips{gap:15px}.actions{gap:5px}.actions button{padding:8px 10px;font-size:12px}.primary{min-width:110px}.under{gap:8px;padding:0 4px;font-size:11px}.under p{margin:8px 0}.bet-tools{padding:12px 5px}.bet-tools h2,.bet-tools p,.bet-tools .eyebrow{display:none}.picker select,.picker button{min-height:44px}.target:not(.single):not(.major){width:6px;min-width:6px;height:6px}.target.staked,.target.staked:not(.single):not(.major){min-width:19px;height:19px;border-width:2px;font-size:7px}#hand{gap:4px}.outcome{width:34px;height:51px}.outcome small{font-size:16px;bottom:-23px}.outcome.reveal{font-size:16px}}
@media(max-width:380px){.outcome{width:29px;height:46px}.meters{gap:9px}.wheel-wrap{transform:scale(.58);margin:-24px}.brand{letter-spacing:1px}}
/* v0.5 revision: felt-blue internal split lines and boundary markers. */
#layout{--split-blue:#1048cf}
#grid{background:var(--split-blue);outline:1px solid #fff;outline-offset:-1px}
#grid>.card,#grid>.suit,#grid>.rank,#grid>.facebar{border-color:var(--split-blue)}
#layout .target:not(.single):not(.major):not(.staked){background:var(--split-blue);border-color:var(--split-blue)}

/* v0.6: seven poker-hand payout markings on felt; display only. */
.table-top{gap:12px}.poker-felt{display:flex;gap:clamp(3px,.65cqw,10px);align-items:stretch;flex:0 1 auto;min-width:0}.poker-felt>div{background:#b32d32;border:clamp(3px,.45cqw,7px) solid #f1da22;border-radius:2px;color:white;text-align:center;padding:7px 4px;min-width:0;font:clamp(9px,1.22cqw,19px)/1.22 Arial,sans-serif;display:flex;flex-direction:column;justify-content:center;white-space:nowrap}.poker-felt b{font-weight:400}.poker-left{width:29%}.poker-right{width:34%}.poker-felt>div{flex:1}.round-area{min-width:160px}.wheel-wrap{flex:0 0 100px}.poker-felt{align-self:center;min-height:108px}
@media(max-width:850px){.table-top{display:grid;grid-template-columns:1fr 1fr;gap:7px}.poker-left{grid-column:1;grid-row:2;width:100%}.poker-right{grid-column:2;grid-row:2;width:100%}.round-area{grid-column:1;grid-row:1;min-width:0}.wheel-wrap{grid-column:2;grid-row:1;justify-self:center}.poker-felt{min-height:70px}.poker-felt>div{font-size:clamp(7px,1.7cqw,13px);padding:5px 1px;border-width:3px}.meters{gap:8px}.meters strong{font-size:14px}}

/* v0.7: one landscape app frame. Earlier responsive reflow is superseded. */
html,body{width:100%;height:100%;overflow:hidden;background:#071a36}
main{position:absolute;left:50%;top:50%;width:1280px;height:720px;max-width:none;margin:0;padding:0;transform-origin:center;container-type:inline-size}
.table{width:100%;height:100%;padding:22px 20px 14px;border-radius:16px;display:flex;flex-direction:column;gap:0;overflow:hidden;box-shadow:inset 0 0 0 6px #0637a0,inset 0 0 0 7px #b9a56a}
.table-top{display:flex;flex:0 0 164px;gap:12px;margin:0 0 10px;align-items:center}
.poker-left{width:29%}.poker-right{width:34%}.poker-felt{min-height:108px;grid-column:auto;grid-row:auto}.poker-felt>div{font-size:15px;padding:7px 4px;border-width:5px}
.round-area{min-width:260px;flex:1}.meters{gap:18px;margin-bottom:4px}.meters>div{font-size:9px}.meters strong{font-size:21px}
.deal-stage{min-height:106px;gap:12px}#hand{gap:9px}.outcome{width:44px;height:66px}.outcome small{font-size:21px;bottom:-28px}.outcome.reveal{font-size:20px}
.wheel-wrap{transform:none;margin:0;flex:0 0 113px;grid-column:auto;grid-row:auto;justify-self:auto}
.table-scroll{flex:1;min-height:0;padding:0;display:flex;align-items:center}
#layout{width:100%;min-width:0;aspect-ratio:16/5.5}
.toolbar{flex:0 0 78px;margin-top:8px;padding-top:10px;flex-wrap:nowrap;justify-content:space-between;gap:15px}
.chip-controls{display:flex;align-items:center;gap:22px}#chips{gap:15px}.chip{width:52px;height:52px;border-width:5px;font-size:14px}
#menu{margin:0;padding:4px 10px;font-size:29px;border:1px solid #c9d9ff66;background:#06369a;border-radius:8px}
.actions{width:auto;gap:8px}.actions button{padding:10px 17px;font-size:15px}.primary{min-width:145px}
.under{flex:0 0 32px;font-size:12px;padding:0;gap:15px}.under p{margin:4px 0}.under button{font-size:12px;white-space:nowrap;padding:4px}
#grid .card{font-size:45px}#grid .card>small{font-size:13px}#grid .suit{font-size:62px}#grid .rank,#grid .facebar{font-size:19px}
#layout .joker span{font-size:11px}#layout .colorbet{font-size:25px}
.target:not(.single):not(.major){width:9px;min-width:9px;height:9px}.target.staked,.target.staked:not(.single):not(.major){min-width:29px;height:29px;border-width:3px;font-size:9px}
#menuTools[hidden]{display:none}dialog{max-height:85vh;max-width:660px}dialog .bet-tools{display:block;padding:12px 0}dialog .bet-tools>div:first-child{display:none}dialog .picker{grid-template-columns:95px 1fr}dialog .ledger{padding:12px 0}dialog .picker button{grid-column:2}
.table{padding:14px 20px 12px}.table-top{flex-basis:146px;margin-bottom:8px}.toolbar{flex-basis:70px;margin-top:6px;padding-top:8px}.under{flex-basis:26px}

/* v0.8: settings after Deal & Spin; play-money reload on felt. */
#menu{width:46px;height:46px;padding:8px;display:grid;place-items:center;flex-shrink:0}
#reload{font-size:14px;padding:10px 14px;background:#073995;border-color:#bfd5ff80}
.actions{align-items:center}.chip-controls{gap:0}

/* v0.9 — preserve the screenshot master; keep four-of-a-kind rank wagers unobstructed. */
#grid .rank{font:15px/1.12 Arial,sans-serif;justify-content:flex-start;align-items:flex-start;padding:3px 2px;overflow:hidden;text-align:left}
#grid .rank span{display:block;white-space:nowrap}
/* Full rank-cell hit area, but no opaque placeholder over the bet wording. */
#targets .rank-target{width:5.8%;height:10.5%;min-width:0;opacity:0;background:transparent;border:0;border-radius:0;z-index:3}
#targets .rank-target:hover,#targets .rank-target:focus-visible{opacity:1;background:#e5c65d33;outline:2px solid #f3df89;outline-offset:-2px}
#targets .rank-target.staked{opacity:1;width:29px;min-width:29px;height:29px;border:3px dashed #ffe3d3;border-radius:50%;background:#b52f36;z-index:5}
/* Logo lives in the unused lower-right felt gutter, never on a bet. */
#layout .felt-logo{position:absolute;right:0;bottom:1.5%;width:6.0%;height:auto;max-height:18%;object-fit:contain;pointer-events:none;z-index:1}
/* Ensure poker hand display is confined to the upper header row. */
.table-top{position:relative;z-index:1}.poker-felt{max-height:118px;overflow:hidden}

/* v1.0: flash the roulette-winning card on the FELT, not the five-card hand. */
#grid .card.winning {
  background:#d9ffcb;
  outline:4px solid #39ff14;
  outline-offset:-4px;
  box-shadow:inset 0 0 15px #39ff14,0 0 16px 5px #39ff14;
  z-index:3;
  animation:roulette-felt-win 0.8s ease-in-out infinite alternate;
}
@keyframes roulette-felt-win {
  from {background:#f3f0df;outline-color:#20e900;box-shadow:inset 0 0 5px #39ff14,0 0 7px 2px #39ff14;}
  to {background:#c6ffb4;outline-color:#75ff45;box-shadow:inset 0 0 18px #39ff14,0 0 20px 7px #39ff14;}
}
@media(prefers-reduced-motion:reduce){#grid .card.winning{animation:none}}
/* The five-card hand stays unchanged so the remaining four can be revealed later. */
.outcome.win{outline:none;box-shadow:none}

/* v1.1: real denomination colors on every chip placed on the felt. */
#targets .target.staked{background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible;opacity:1;display:grid;place-items:center;padding:0}
#targets .wager-stack{position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;min-width:27px;height:27px}
#targets .wager-chip{width:27px;height:27px;min-width:27px;border:3px dashed #f8f5e9;border-radius:50%;display:grid;place-items:center;color:#fff;font:bold 9px/1 system-ui;text-shadow:0 1px 2px #000;box-shadow:0 2px 4px #0008;margin-left:-19px}
#targets .wager-chip:first-child{margin-left:0}
#targets .wager-chip.chip-5{background:#b12e35}
#targets .wager-chip.chip-25{background:#288d4a}
#targets .wager-chip.chip-100{background:#1c2027}
#targets .wager-chip.chip-500{background:#79358d}
#targets .rank-target.staked{width:auto!important;min-width:29px!important;height:29px!important;outline:0!important}

/* v1.2: fluorescent-green roulette winner on both the felt and the five-card display. */
.outcome.win{outline:4px solid #39ff14!important;box-shadow:0 0 8px #39ff14,0 0 20px #39ff14aa,0 0 32px #39ff1477!important;animation:rouletteGlow 0.8s ease-in-out infinite alternate}
.card.winning,.joker.winning{outline:4px solid #39ff14!important;outline-offset:-4px;box-shadow:inset 0 0 10px #39ff1499,0 0 14px #39ff14!important;z-index:3;animation:rouletteGlow 0.8s ease-in-out infinite alternate}
@keyframes rouletteGlow{from{filter:brightness(1)}to{filter:brightness(1.25)}}
@media(prefers-reduced-motion:reduce){.outcome.win,.card.winning,.joker.winning{animation:none}}

/* v1.3 poker wager chips and authentic card faces */
.poker-bet{position:relative;cursor:pointer;overflow:visible!important;transition:filter .15s}
.poker-bet:hover,.poker-bet:focus-visible{filter:brightness(1.15);outline:2px solid white;outline-offset:2px}
.poker-wager{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);display:flex;z-index:12;pointer-events:none}
.poker-wager .wager-chip{width:24px;height:24px;min-width:24px;border:3px dashed #fff;border-radius:50%;display:grid;place-items:center;color:white;font:bold 9px Arial;text-shadow:0 1px 2px black;margin-left:-8px;box-shadow:0 2px 4px #0008}
.poker-wager .wager-chip:first-child{margin-left:0}
.poker-wager .chip-5{background:#b12e35}.poker-wager .chip-25{background:#288d4a}.poker-wager .chip-100{background:#1c2027}.poker-wager .chip-500{background:#79358d}
.outcome.reveal{position:relative;background:#fffdf4!important;border:2px solid #eee7d5;border-radius:5px;color:#141e1b;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 5px #0007;overflow:visible}
.outcome.reveal.red{color:#c82730}.outcome.reveal.black{color:#131b19}.outcome.reveal.yellow{color:#b2890a}.outcome.reveal.blue{color:#2776ca}
.outcome .card-corner{position:absolute;top:3px;left:4px;font:bold clamp(11px,1.3cqw,19px)/1 Georgia,serif;text-align:center}
.outcome .card-corner small{display:block;font-size:.8em}.outcome .card-center{font:clamp(24px,3.3cqw,48px)/1 Georgia,serif}
.outcome .card-position{position:absolute;bottom:-25px;left:0;width:100%;color:#fff;font:bold clamp(14px,1.7cqw,25px) Arial;text-align:center}
/* v2.0: portrait-first, non-distorting responsive layout */
@media (max-width: 850px) {
 html,body{width:100%;min-height:100%;overflow-x:hidden;background:#071d49}
 main{position:relative!important;inset:auto!important;top:auto!important;left:auto!important;transform:none!important;width:100%!important;height:auto!important;min-height:100dvh!important;max-width:none!important;margin:0!important;padding:5px!important;display:block!important}
 .table{width:100%!important;height:auto!important;min-height:calc(100dvh - 10px);overflow:visible!important;display:flex!important;flex-direction:column;padding:12px 9px 14px!important;border-radius:14px}
 .table-top{display:grid!important;grid-template-columns:minmax(0,1fr) 105px!important;grid-template-rows:auto auto auto!important;gap:12px 7px!important;flex:none!important;margin:0 0 15px!important}
 .poker-felt{width:100%!important;max-height:none!important;min-height:86px!important;overflow:visible!important;align-self:stretch!important;gap:5px!important}
 .poker-left{grid-column:1 / -1!important;grid-row:1!important}
 .poker-right{grid-column:1 / -1!important;grid-row:2!important}
 .poker-felt>div{min-height:82px!important;white-space:normal!important;font-size:clamp(10px,2.6vw,15px)!important;padding:5px 2px!important;border-width:3px!important}
 .round-area{grid-column:1!important;grid-row:3!important;min-width:0!important}
 .wheel-wrap{grid-column:2!important;grid-row:3!important;transform:none!important;margin:0!important;justify-self:center!important;align-self:center!important}
 #wheel{width:88px!important;height:88px!important}#wheel span{left:31px!important;height:76px!important}#wheel b{inset:26px!important;line-height:27px!important}
 .meters{gap:12px!important;justify-content:space-around!important}.meters>div{font-size:8px!important}.meters strong{font-size:clamp(14px,4vw,21px)!important}
 .deal-stage{min-height:96px!important}#hand{gap:clamp(3px,1vw,8px)!important}.outcome{width:clamp(34px,9vw,49px)!important;height:clamp(52px,13vw,70px)!important}
 .table-scroll{display:block!important;flex:none!important;overflow:visible!important;width:100%!important}
 #layout{width:100%!important;min-width:0!important;aspect-ratio:16 / 6.8!important;container-type:inline-size}
 .toolbar{flex:none!important;flex-wrap:wrap!important;justify-content:center!important;margin-top:14px!important;gap:15px!important;padding-top:15px!important}
 #chips{width:100%;justify-content:space-evenly}.chip{width:clamp(49px,13vw,70px)!important;height:clamp(49px,13vw,70px)!important;font-size:14px!important}
 .actions{width:100%!important;justify-content:space-evenly!important;flex-wrap:wrap}.actions button{min-height:45px!important;font-size:clamp(12px,3vw,16px)!important}
 .under{flex:none!important;min-height:34px!important}
}
@media (min-width:851px){main{transform:none!important;position:relative!important;left:auto!important;top:auto!important;margin:0 auto!important;width:min(100%,1500px)!important;height:auto!important;aspect-ratio:16/9}.table{min-height:650px}}

/* v2.1: phone-only correction. Desktop v2.0 remains unchanged. */
@media (max-width:850px){
 .table{min-height:0!important;padding:9px 7px 10px!important}
 .table-top{gap:9px 6px!important;margin-bottom:9px!important;grid-template-columns:minmax(0,1fr) 92px!important}
 .poker-felt{min-height:0!important;gap:4px!important}
 .poker-felt>div{min-height:57px!important;padding:4px 1px!important;font-size:clamp(9px,2.35vw,13px)!important;line-height:1.14!important;border-width:3px!important}
 .round-area{min-width:0!important}
 .meters{gap:5px!important;margin-bottom:8px!important}
 .meters>div{font-size:clamp(6px,1.65vw,9px)!important;letter-spacing:.6px!important}
 .meters strong{font-size:clamp(14px,3.9vw,19px)!important}
 .deal-stage{min-height:88px!important}
 .wheel-wrap{width:92px!important;overflow:visible}
 .wheel-wrap>small{font-size:6px!important}
 #layout{aspect-ratio:16/5.5!important;width:100%!important;min-width:0!important}
 #grid{gap:1px!important}
 #grid .card{font-size:clamp(11px,3.1vw,17px)!important;line-height:1!important}
 #grid .card>small{font-size:clamp(6px,1.55vw,9px)!important;top:0;left:1px}
 #grid .suit{font-size:clamp(15px,4.3vw,24px)!important}
 #grid .rank{font-size:clamp(6px,1.7vw,10px)!important;line-height:1!important;padding:1px!important;letter-spacing:-.25px}
 #grid .rank span{white-space:normal!important;overflow-wrap:anywhere}
 #grid .facebar{font-size:clamp(9px,2.4vw,13px)!important}
 #layout .joker span{font-size:clamp(5px,1.45vw,8px)!important}
 #layout .colorbet{font-size:clamp(10px,2.9vw,16px)!important}
 #layout .target:not(.single):not(.major):not(.staked){width:clamp(3px,1.05vw,5px)!important;min-width:0!important;height:clamp(3px,1.05vw,5px)!important;border:0!important}
 #layout .target.major:not(.staked){min-width:12px!important;height:12px!important}
 #layout .target.staked{min-width:17px!important;width:17px!important;height:17px!important;border-width:2px!important;font-size:6px!important}
 .toolbar{margin-top:9px!important;padding-top:10px!important;gap:11px!important}
 .chip-controls{width:100%!important;justify-content:center!important}
 #chips{justify-content:space-evenly!important}
 #reload{order:3;width:100%;max-width:280px;font-size:11px!important;padding:7px!important;min-height:32px}
 .actions{order:2!important;flex-wrap:nowrap!important;gap:4px!important}
 .actions button{min-height:39px!important;padding:6px 7px!important;font-size:clamp(10px,2.6vw,13px)!important}
 .actions .primary{min-width:0!important;flex:1!important}
 #menu{width:39px!important;height:39px!important;padding:6px!important;flex:0 0 39px!important}
 .under{font-size:10px!important;gap:6px!important}
 .under button{font-size:10px!important}
}

/* v2.2 — mobile-only: reduce placed chip stacks and keep rank bets legible. */
@media (max-width:850px){
 #targets .wager-chip{width:clamp(9px,2.65vw,13px)!important;height:clamp(9px,2.65vw,13px)!important;min-width:0!important;border-width:1.5px!important;font-size:clamp(4px,1.25vw,6px)!important;margin-left:-5px!important;box-shadow:0 1px 2px #0007!important}
 #targets .wager-chip:first-child{margin-left:0!important}
 #targets .target.staked,#targets .rank-target.staked{width:auto!important;min-width:12px!important;height:clamp(12px,3vw,16px)!important;padding:0!important;border-width:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
 #targets .rank-target.staked{top:auto;transform:translate(-50%,-50%)}
 #grid .rank{font-size:clamp(6px,1.85vw,10px)!important;line-height:1.05!important;padding:2px 1px!important;align-items:flex-start!important;justify-content:flex-start!important;overflow:visible!important}
 #grid .rank span{white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
 .poker-wager .wager-chip{width:clamp(11px,3.2vw,16px)!important;height:clamp(11px,3.2vw,16px)!important;min-width:0!important;border-width:2px!important;font-size:clamp(5px,1.35vw,7px)!important;margin-left:-4px!important}
}
