/* MONARCH — slower, tactile table play and integrated product imagery */
.card-arriving.from-player{animation:deal-player .65s cubic-bezier(.2,.7,.2,1) both}.card-arriving.from-dealer{animation:deal-dealer .65s cubic-bezier(.2,.7,.2,1) both}.playing-card{backface-visibility:hidden}.game-status{font-size:13px;line-height:1.65;min-height:42px;color:#b6cabb;margin:18px 0 0}.bet-panel>.game-status{color:#b0c2d4}.table-welcome{min-height:22px}
#win-notice{transition:opacity .16s ease,transform .16s ease;visibility:hidden;--result:#a6ff72}#win-notice.visible{visibility:visible}#win-notice.result-loss{--result:#f2939e;border-color:#c46c7e;background:linear-gradient(130deg,#291923,#352531);box-shadow:0 18px 70px #0008,0 0 45px #a3445722}#win-notice.result-draw{--result:#a8d7fc;border-color:#87b6df;background:linear-gradient(130deg,#162334,#20374d);box-shadow:0 18px 70px #0008,0 0 45px #6badd922}#win-notice>span,#win-notice>.icon{color:var(--result)}#win-notice strong{color:#eef4f8}#win-notice>i{border-color:var(--result)}
.game-logo{mix-blend-mode:normal;background-image:url('assets/games-v4.png');filter:drop-shadow(0 6px 10px #0004);background-color:transparent}.game-tab:hover .game-logo{filter:drop-shadow(0 8px 14px #0006) brightness(1.08)}.product-art{background-color:transparent!important;mix-blend-mode:normal;filter:none!important}.inventory-v3 .item-card,.city-sidebar{background:#182636}.shop-item{border-bottom:1px solid #314252}.inventory-v3 .item-card{box-shadow:0 10px 28px #0001;transition:border-color .2s,transform .2s}.inventory-v3 .item-card:hover{transform:translateY(-3px);border-color:#627c91}.product-art{transition:transform .35s ease}.item-card:hover .product-art,.shop-item:hover .product-art{transform:scale(1.035)}.inventory-v3 .product-art{width:100%;max-width:160px;height:auto;aspect-ratio:1;margin:3px auto 0}.shop-item .product-art{width:240px;height:240px;margin:12px auto 2px}.shop-item h3{margin-top:4px}.shop-item>p{min-height:44px}.store-sticky{background:#182636}.purchase-confirm .product-art{background-color:transparent}.map-plane{width:100%;height:100%;min-width:0;min-height:0;transform-origin:center}.map-plane img{width:100%;height:100%;object-fit:fill}.city-map{background:#132d36}.pin-aviation>span,.store-icon.type-aviation{background:#293752;border-color:#829ee1;color:#d1defc}.legend-aviation{color:#b4c7ff}.city-time{white-space:nowrap}.city-toolbar .filter-tabs{flex-wrap:wrap}.district-airport{left:73%;top:94%;color:#c8d6e3}.map-pin>b{white-space:nowrap}
.play-mode{display:flex;background:#0c1927;border:1px solid #355066;border-radius:9px;padding:4px;gap:4px;margin:8px 0 20px}.play-mode button{flex:1;padding:10px 6px;border-radius:6px;color:#91a9bb;font-size:13px}.play-mode button[aria-pressed=true]{color:#e9f5ff;background:#294257}.bet-panel select{width:100%;background:#0c1b2a;border:1px solid #41617a;color:#e7f0f8;padding:12px;border-radius:8px;font:inherit;font-size:14px;min-height:45px}.auto-help{font-size:12px;line-height:1.6;color:#9bb0bf;margin:12px 0 18px}.stop-auto{border-color:#d5949a;color:#ffb9bd;min-height:55px}.roulette-room{padding:24px 26px 35px;min-height:650px}.roulette-console{display:grid;grid-template-columns:1fr .7fr;align-items:center;gap:20px;margin:0 5% 18px}.roulette-room .wheel-zone{min-height:0;display:flex;flex-direction:column;align-items:center}.wheel-wood{width:310px;height:310px;position:relative;border-radius:50%;padding:14px;background:repeating-conic-gradient(#453128 0deg 3deg,#533b2d 3deg 6deg,#614632 6deg 9deg);box-shadow:0 0 0 3px #bc9560,0 0 0 6px #392d2a,0 22px 25px #0005,inset 0 0 0 6px #261d1e}.roulette-room .roulette-wheel{width:100%;height:100%;border:9px solid #cfb677;box-shadow:inset 0 0 0 2px #342e26,0 0 0 2px #201a18;background:var(--wheel-fill);transform:rotate(var(--rotation));position:relative;animation:none}.roulette-room .roulette-wheel.spinning{animation:wheel-slow 6.2s cubic-bezier(.14,.35,.22,1) both}.roulette-room .wheel-numbers span{height:123px;top:3px;font-size:10px;transform:translateX(-50%) rotate(var(--a));transform-origin:50% 100%;color:#fff}.roulette-room .roulette-wheel:after{inset:33px;border:1px solid #ccb880;box-shadow:0 0 0 5px #58442c,0 0 0 7px #c4b18344;background:radial-gradient(circle,#374543 0,#13282b 75%)}.roulette-room .wheel-hub{inset:72px;background:radial-gradient(circle at 40% 30%,#566860,#152c2d);border:3px solid #b4995c;z-index:3;box-shadow:0 8px 15px #0005;display:flex;justify-content:center;align-items:center}.wheel-hub .icon{position:absolute;width:28px;height:28px;color:#dac38c}.wheel-spindle{position:absolute;width:105px;height:7px;background:linear-gradient(#f0dbac,#9a7845);transform:rotate(-35deg);border-radius:3px;box-shadow:0 2px 5px #0008}.wheel-spindle:before{content:'';position:absolute;width:7px;height:105px;left:49px;top:-49px;background:linear-gradient(90deg,#d7bd86,#8a703f);border-radius:3px}.wheel-spindle:after{content:'';position:absolute;width:21px;height:21px;border-radius:50%;left:42px;top:-7px;background:radial-gradient(at 35% 25%,#fff0be,#ac8d51);box-shadow:0 2px 3px #0005}.ball-track{position:absolute;inset:0;border-radius:50%;transform:rotate(0);z-index:8;pointer-events:none}.roulette-ball{position:absolute;left:calc(50% - 5px);top:19px;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 32% 24%,#fff,#fff9e6 38%,#9c927c);box-shadow:0 2px 4px #000c;transition:top .22s}.ball-spinning{animation:ball-orbit 6.2s cubic-bezier(.06,.48,.26,1) both}.ball-spinning .roulette-ball{animation:ball-radius 6.2s ease-in both}.ball-landed{transform:rotate(var(--ball-angle))}.ball-landed .roulette-ball{top:45px}.roulette-room .wheel-result{margin-top:18px;min-height:32px;color:#c9d6ca;font-size:12px;display:flex;gap:10px;align-items:center;justify-content:center}.roulette-room-brand{text-align:center}.roulette-room-brand .table-brand{font-size:20px;color:#b8d3b766}.roulette-room-brand p{font-size:16px;line-height:1.65;color:#b7cdbd;margin:24px 0 8px}.table-chip-stack{display:flex;justify-content:center;align-items:end;height:40px;gap:8px}.table-chip-stack i{width:32px;height:13px;border:3px dashed #dfdbb7;background:#24654e;border-radius:50%;box-shadow:0 4px #122b29,0 7px #c8c5a3,0 10px #1e5847}.table-chip-stack i:nth-child(2){background:#9a3346;transform:translateY(-6px);box-shadow:0 4px #551d2e,0 7px #c8c5a3,0 10px #8c3040}.table-chip-stack i:nth-child(3){background:#274873}
.roulette-table-rail{padding:14px;background:linear-gradient(140deg,#4b3529,#211d1c 30%,#694a32 70%,#362a24);border:1px solid #98744b;border-radius:40px 40px 70px 70px;box-shadow:inset 0 0 0 5px #1c1819,0 18px 30px #0004}.roulette-betting-felt{padding:18px 23px 27px;background:radial-gradient(ellipse at 40% 0,#286850,#164836 75%);border:2px solid #698571;border-radius:29px 29px 57px 57px;box-shadow:inset 0 5px 20px #071c1780}.felt-caption{display:flex;justify-content:space-between;color:#c7d3ae88;font-size:8px;letter-spacing:.14em;margin:0 3px 16px}.felt-grid{display:grid;grid-template-columns:45px minmax(0,1fr) 40px;gap:0;border-radius:8px;overflow:hidden;border:1px solid #ddd9b3aa}.felt-numbers{display:grid;grid-template-rows:repeat(3,38px);grid-auto-flow:column;grid-template-columns:repeat(12,minmax(0,1fr))}.felt-grid .number-bet{position:relative;min-width:0;min-height:38px;border-radius:0;border:1px solid #ede6c95c;font-size:15px;color:#fff;padding:0;background:#1b3e31}.felt-grid>.zero{grid-row:1;grid-column:1;background:#205c43;font-size:22px}.felt-grid .red{background:#a72840}.felt-grid .black{background:#172c2b}.felt-grid .number-bet:hover,.felt-columns button:hover,.dozen-bets button:hover,.outside-bets button:hover{filter:brightness(1.35)}.felt-columns{display:grid;grid-template-rows:repeat(3,38px)}.felt-columns button{position:relative;font-size:10px;color:#eee4c1;border:1px solid #ede6c95c}.felt-grid .chosen{background:#527642!important;box-shadow:inset 0 0 0 2px #cbeba3}.felt-grid .winning-pocket{box-shadow:inset 0 0 0 2px #fffbc2;background:#b79d36!important;color:#fff}.dozen-bets{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr)}.dozen-bets button{position:relative;min-height:32px;border:1px solid #ede6c95c;font-size:12px;color:#efe8c4}.felt-grid>.outside-bets{grid-column:2;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0}.felt-grid>.outside-bets button{position:relative;font-size:11px;min-height:37px;border-radius:0;border:1px solid #ede6c95c;background:transparent;padding:3px;color:#efe8c4}.red-diamond,.black-diamond{display:block;width:24px;height:15px;transform:skew(-28deg);background:#c13c4f;margin:auto;box-shadow:inset 0 0 0 1px #f19494}.black-diamond{background:#102724;box-shadow:inset 0 0 0 1px #4f7461}.felt-chip{position:absolute;right:2px;bottom:2px;width:20px;height:20px;border:3px dashed #f8f0ce;background:#aa7744;border-radius:50%;box-shadow:0 2px 2px #0007;pointer-events:none}.felt-chip:after{content:'';position:absolute;inset:3px;border:1px solid #f9e7b9;border-radius:50%}.roulette-room .roulette-payout-note{font-size:10px;display:flex;gap:12px;justify-content:space-between;margin-top:18px;color:#b5c8ad}.table-diamond .roulette-betting-felt{background:radial-gradient(ellipse at 40% 0,#315979,#1d394f 75%);border-color:#93afba}.table-emerald .roulette-betting-felt{background:radial-gradient(ellipse at 40% 0,#197456,#123d35 75%)}.table-gold .roulette-betting-felt{border-color:#bda76a}.table-diamond .roulette-room-brand p{color:#bed4e4}
@keyframes wheel-slow{from{transform:rotate(var(--previous))}to{transform:rotate(var(--rotation))}}@keyframes ball-orbit{from{transform:rotate(0)}to{transform:rotate(var(--ball-end))}}@keyframes ball-radius{0%,65%{top:19px}83%{top:32px}89%{top:26px}95%,100%{top:45px}}
@media(min-width:1450px){.roulette-console{grid-template-columns:1fr 1fr;margin:0 10% 20px}.wheel-wood{width:340px;height:340px}.roulette-room .wheel-numbers span{height:138px}.roulette-room .wheel-hub{inset:82px}.roulette-room{padding:30px 40px 38px}.felt-numbers{grid-template-rows:repeat(3,43px)}.felt-columns{grid-template-rows:repeat(3,43px)}.felt-grid .number-bet{min-height:43px}}
@media(max-width:1050px){.roulette-console{margin:0 0 18px;grid-template-columns:1fr}.roulette-room-brand{display:none}.roulette-room{padding:25px 12px}.roulette-betting-felt{padding:14px 12px 23px}.felt-grid{grid-template-columns:30px minmax(0,1fr) 28px}.felt-grid .number-bet{font-size:12px}.felt-grid>.outside-bets button{font-size:10px}.roulette-room .roulette-payout-note{font-size:9px;display:block;line-height:1.7}.roulette-payout-note span{display:block}}
@media(max-width:760px){.game-shell:has(.roulette-room) .bet-panel{display:flex;flex-direction:column;gap:0}.game-shell:has(.roulette-room) .bet-shortcuts{margin:10px 0}.game-shell:has(.roulette-room) .field-label{margin:12px 0 8px}.game-shell:has(.roulette-room) .round-summary{margin-top:20px}.game-shell:has(.roulette-room) .bet-panel-bottom{margin-top:20px}.play-mode{margin:16px 0}.roulette-room{min-height:0;padding:25px 8px 22px}.wheel-wood{width:272px;height:272px;padding:13px}.roulette-room .wheel-numbers span{height:106px;font-size:9px}.roulette-room .wheel-hub{inset:62px}.roulette-room .roulette-wheel:after{inset:27px}.ball-landed .roulette-ball{top:40px}.ball-spinning .roulette-ball{animation-name:ball-radius-small}.roulette-console{gap:0;margin-bottom:18px}.roulette-room .wheel-result{font-size:11px;max-width:290px;text-align:center}.roulette-table-rail{padding:8px;border-radius:23px 23px 40px 40px}.roulette-betting-felt{padding:12px 5px 18px;border-radius:18px 18px 32px 32px}.felt-caption{font-size:6px;letter-spacing:.07em;margin-bottom:11px}.felt-grid{grid-template-columns:22px minmax(0,1fr) 21px;border-radius:3px}.felt-numbers{grid-template-rows:repeat(3,30px)}.felt-columns{grid-template-rows:repeat(3,30px)}.felt-columns button{font-size:8px}.felt-grid .number-bet{font-size:9px;min-height:30px}.felt-grid>.zero{font-size:14px}.dozen-bets button{font-size:9px;min-height:27px}.felt-grid>.outside-bets button{font-size:8px;min-height:29px}.red-diamond,.black-diamond{width:15px;height:11px}.felt-chip{width:13px;height:13px;border-width:2px;right:1px;bottom:1px}.felt-chip:after{inset:2px}.roulette-room .roulette-payout-note{font-size:8px;text-align:center;margin-top:12px}.game-status{font-size:12px}.inventory-v3 .product-art{max-width:130px}.shop-item .product-art{width:230px;height:230px}.city-time{display:none}.map-pin>b{display:none}.district-airport{font-size:7px;top:94%}}
@keyframes ball-radius-small{0%,65%{top:17px}83%{top:29px}89%{top:25px}95%,100%{top:40px}}
@media(prefers-reduced-motion:reduce){.card-arriving.from-player,.card-arriving.from-dealer,.roulette-room .roulette-wheel.spinning,.ball-spinning,.ball-spinning .roulette-ball{animation-duration:.08s}.game-logo,.game-logo-roulette{animation:none}.item-card:hover .product-art,.shop-item:hover .product-art{transform:none}}

/* A control update must not restart a wheel already in motion. */
.roulette-room .roulette-wheel.spinning,.ball-spinning,.ball-spinning .roulette-ball{animation-delay:var(--spin-delay,0s)}.felt-grid button:disabled{opacity:1;cursor:default}.play-mode button:not([aria-pressed=true]){background:transparent}
@media(max-width:600px){.felt-grid{grid-template-columns:minmax(0,1fr) 49px 49px;grid-template-rows:40px auto 40px}.felt-grid>.zero{grid-column:1;grid-row:1}.felt-numbers{grid-column:1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(12,40px);grid-auto-flow:row}.felt-columns{grid-column:1;grid-row:3;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:40px}.felt-columns button{font-size:12px}.felt-grid .number-bet{min-height:40px;font-size:14px}.dozen-bets{grid-column:2;grid-row:2;grid-template-columns:1fr;grid-template-rows:repeat(3,1fr)}.dozen-bets button{font-size:12px}.felt-grid>.outside-bets{grid-column:3;grid-row:2;grid-template-columns:1fr;grid-template-rows:repeat(6,1fr)}.felt-grid>.outside-bets button{font-size:12px;padding:4px}.felt-chip{width:16px;height:16px}.felt-caption{font-size:8px;letter-spacing:0}.roulette-room .roulette-payout-note{font-size:10px}.game-status,.auto-help{font-size:13px}}

.felt-columns button,.dozen-bets button{background:transparent}
