/* Original soft cabinet finish. Presentation only; renderer and results unchanged. */
.soft-cabinet { --enamel-shadow:color-mix(in srgb,var(--cabinet-base),#170d22 66%); }
/* Shaped materials, not opaque dashboard cards. No layout dimensions changed. */
#game.soft-cabinet .hud,#stage.soft-cabinet #hud {
 background:radial-gradient(ellipse at 28% 0%,#fff0bf38,transparent 52%),linear-gradient(180deg,color-mix(in srgb,var(--cabinet-base),#fff0d0 18%),var(--cabinet-base) 18%,var(--enamel-shadow) 88%,#b5835459);
 border:1px solid #edca926e; box-shadow:inset 0 2px #fff2d69c,inset 0 -3px #28152b88,0 6px 22px #20112c44;
}
#game.soft-cabinet.premium-world #mode.rail-ante,#stage.soft-cabinet.premium-world #ante {
 background:radial-gradient(ellipse at 36% 5%,#fff3c586,transparent 43%),radial-gradient(ellipse at 50% 75%,var(--cabinet-base),var(--enamel-shadow) 95%);
 box-shadow:inset 0 2px #fff6d4b0,inset 0 -5px #24132999,0 2px #b68954,0 8px 18px #28102b66;
}
#game.soft-cabinet #spin,#stage.soft-cabinet #spin {
 background:radial-gradient(circle at 35% 18%,#fff2d98c,transparent 50%),linear-gradient(155deg,var(--cabinet-base),var(--enamel-shadow));
 color:#fff9e7; border:2px solid #ffe9b8; box-shadow:inset 0 3px #fff6d86b,inset 0 -5px #25152766,0 0 0 3px #6b462b80,0 5px 13px #26142866;
}
#game.soft-cabinet #spin:focus-visible,#stage.soft-cabinet #spin:focus-visible { outline:3px solid white; outline-offset:6px; }
#stage.soft-cabinet #spin svg { stroke:#fff9e7; }
#game.soft-cabinet #mode[aria-pressed=true],#stage.soft-cabinet #ante[aria-pressed=true] { border-color:#fff8c3; box-shadow:inset 0 2px #fff6d4b0,inset 0 -4px #24132999,0 0 24px var(--cabinet-glow); }
#game.soft-cabinet .history-row,#stage.soft-cabinet .historyRow { border:0; border-radius:999px; background:linear-gradient(90deg,transparent,#fff0c417,transparent); }
#game.soft-cabinet .ribbon { border-radius:999px; background:linear-gradient(90deg,transparent,var(--enamel-shadow),transparent); }
#game.soft-cabinet .payout-readout { color:#fff7dc; text-shadow:0 2px 5px #21112bd9; }
#game.soft-cabinet .mechanic-value,#stage.soft-cabinet #multiplier { color:#fff0b8; text-shadow:0 2px 0 #744333,0 0 24px var(--cabinet-glow); }
.cabinet-collection-light { position:fixed; inset:0; z-index:16; overflow:hidden; pointer-events:none; contain:strict; }
.cabinet-collection-light i { position:absolute; width:14px; height:14px; border-radius:50%; background:radial-gradient(circle,#fffdeb 0 12%,var(--collection-glow,#ffd79e) 28%,transparent 72%); }
#game.soft-cabinet #buy:not(:disabled):hover,#stage.soft-cabinet #buy:not(:disabled):hover { filter:drop-shadow(0 7px 8px #28102f66) brightness(1.09); }
.identity-wing:after,#stage.soft-cabinet .brand:after { content:''; position:absolute; pointer-events:none; inset:15% -12%; z-index:-1; border-radius:50%; background:radial-gradient(ellipse,#fff1a41a,transparent 66%); animation:cabinet-logo-light 7s ease-in-out infinite; }
@keyframes cabinet-logo-light { 0%,100% { opacity:.35; } 50% { opacity:1; } }
.soft-cabinet[data-cabinet-motion=paused] .brand:after { animation-play-state:paused; }
body:has(.soft-cabinet[data-cabinet-motion=paused]) .identity-wing:after { animation-play-state:paused; }
@media(prefers-reduced-motion:reduce) { .identity-wing:after,#stage.soft-cabinet .brand:after { animation:none; } }
#game.soft-cabinet .rail { padding:4px 0; gap:14px; align-items:center; }
#game.soft-cabinet #buy,#stage.soft-cabinet #buy {
 width:100%; aspect-ratio:2/3; min-height:0; padding:29% 18% 24%; gap:4px;
 border:0; border-image:none; border-radius:50%; box-shadow:none;
 background:var(--purchase-plaque) center/contain no-repeat;
 filter:drop-shadow(0 7px 8px #28102f66); overflow:visible;
}
#game.soft-cabinet #buy:after,#stage.soft-cabinet #buy:after,
.soft-cabinet #buy .cabinet-crown,#game.soft-cabinet #railProducts { display:none; }
#game.soft-cabinet #buy>strong { font-size:clamp(18px,1.5vw,26px); line-height:1.04; }
#game.soft-cabinet #buy .rail-price { font-size:clamp(18px,1.4vw,25px); white-space:nowrap; }
#game.soft-cabinet #buy .rail-options { font-size:7px; line-height:1.4; text-align:center; }
#game.soft-cabinet #mode.rail-ante,#stage.soft-cabinet #ante {
 width:100%; min-height:105px; padding:13px 10px; border:2px solid #efc789;
 border-radius:50%; border-image:none;
 background:radial-gradient(ellipse at 35% 12%,#fff0bb60,transparent 64%),linear-gradient(145deg,var(--cabinet-base),color-mix(in srgb,var(--cabinet-base),#64172b 35%));
 box-shadow:inset 0 2px #fff4bd99,inset 0 -4px #39182880,0 3px #9a713f,0 6px 16px #28112255;
}
#game.soft-cabinet #mode:before,#game.soft-cabinet #mode:after,#stage.soft-cabinet #ante:after { display:none; }
#game.soft-cabinet .mechanics {
 width:100%; border:0; border-image:none; border-radius:50%; padding:13px 16px;
 background:radial-gradient(ellipse,var(--cabinet-base),transparent 72%); box-shadow:none; text-align:center;
}
#game.soft-cabinet .mechanics:before,#game.soft-cabinet .mechanics:after { display:none; }
#game.soft-cabinet .mechanics.bass-trail-host,#game.soft-cabinet[data-cabinet-game=rotto-blaze] .mechanics { background:none; border-radius:999px; text-align:left; padding:5px; }
#game.soft-cabinet .bass-trail-stage { border:0; border-radius:999px; background:radial-gradient(ellipse,#e3d29622,transparent 75%); }
#game.soft-cabinet .meters>div { border-radius:999px; overflow:hidden; }
#game.soft-cabinet .history,#stage.soft-cabinet #history {
 width:100%; min-height:58px; padding:8px 9px; border:0; border-image:none; border-radius:999px;
 background:radial-gradient(ellipse,color-mix(in srgb,var(--cabinet-base),#210f20 50%) 10%,transparent 75%); box-shadow:none;
}
#game.soft-cabinet .history:before,#game.soft-cabinet .history:after,#stage.soft-cabinet #history:after { display:none; }
#game.soft-cabinet .history>small { text-align:center; border:0; padding-bottom:2px; }
#game.soft-cabinet .rail-feature,#stage.soft-cabinet #featureMeter,#stage.soft-cabinet #freeMeter { border-radius:999px; border-image:none; }
#game.soft-cabinet .hud,#stage.soft-cabinet #hud { border-radius:999px; border-image:none; }
#game.soft-cabinet .hud:before,#stage.soft-cabinet #hud:before { border-image:none; border-radius:inherit; }
#game.soft-cabinet #auto,#game.soft-cabinet #sound,#game.soft-cabinet #bet,#stage.soft-cabinet #auto,#stage.soft-cabinet #betOpen { border-radius:999px; }
#game.soft-cabinet .board,#stage.soft-cabinet #board { border-radius:28px; }
#game.soft-cabinet .board:before { border-radius:28px; clip-path:inset(0 round 28px); }
#stage.soft-cabinet #board:before { border-radius:28px; clip-path:inset(0 round 28px); }
#game.soft-cabinet .spot,#game.soft-cabinet .cell-multiplier,#game.soft-cabinet .collector-subtotal { border-radius:999px; }
#stage.soft-cabinet #buy>span { font-size:1.45cqw; }
#stage.soft-cabinet #buy>#buyPrice { font-size:1.7cqw; white-space:nowrap; }
#stage.soft-cabinet #buy>small { font-size:.5cqw; letter-spacing:0; }
#stage.soft-cabinet #left { gap:1.1cqw; top:12%; }
#stage.soft-cabinet #featureMeter,#stage.soft-cabinet #freeMeter { box-shadow:inset 0 2px #fff1bb77,0 0 24px #e3adf033; }
#stage.soft-cabinet #celebrationAmount { border-radius:999px; }
#stage.soft-cabinet #continue,#stage.soft-cabinet #toast { border-radius:999px; }

/* Disable old square border-image frames, including generic settings/info windows. */
dialog#modal:not(.scene-opening):not(.premium-feature-stage):not(.feature-celebration):not(.purchase-dialog) { border-radius:42px; border-image:none; }
dialog#modal:not(.scene-opening):not(.premium-feature-stage):not(.feature-celebration):not(.purchase-dialog):before { border-image:none; border-radius:inherit; }
dialog .choices:not(.feature-products) button,dialog .options button,dialog .actions button,
dialog .confirm button,.premium-feature-stage #continue,dialog .betrow b,dialog .purchase-bet b { border-radius:999px; }
dialog .close,#modalBody>.close { border-radius:50%; }
dialog#modal .close { display:grid; place-items:center; padding:0; width:30px; height:30px; font-size:22px; line-height:1; }
dialog#modal .betrow b { min-width:0; white-space:nowrap; font-size:clamp(14px,2cqw,24px); }
dialog#modal.purchase-dialog {
 width:min(670px,calc(100vw - 24px)); padding:24px 32px 26px;
 border:3px solid #efc68a; border-radius:64px / 54px; border-image:none;
 background:radial-gradient(ellipse at 35% 0%,#ffe9bd66,transparent 64%),linear-gradient(145deg,var(--cabinet-base),color-mix(in srgb,var(--cabinet-base),#4b202d 38%));
 box-shadow:inset 0 3px #fff3cd99,inset 0 -6px #34172666,0 0 0 3px #926a43,0 16px 60px #160d2380;
}
dialog#modal.purchase-dialog:before { inset:7px; border:1px solid #ffe3a455; border-image:none; border-radius:inherit; background:none; pointer-events:none; }
dialog#modal.purchase-dialog .close { top:17px; right:17px; width:30px; height:30px; border-radius:50%; border:1px solid #ffedba; background:#6a2945; }
dialog#modal.purchase-dialog .purchase-heading { border:0; padding:0; }
dialog#modal.purchase-dialog .purchase-heading h2 { margin:5px 0 10px; padding:0 22px; font-size:26px; }
dialog#modal.purchase-dialog .purchase-crown { width:148px; height:84px; margin:-10px auto -6px; }
dialog#modal.purchase-dialog .feature-products { gap:14px; margin:12px 0; }
dialog#modal.purchase-dialog .feature-product,dialog#modal.purchase-dialog .feature-product.selected {
 border:2px solid #e5bd85; border-radius:999px; border-image:none; min-height:164px; padding:14px 10px; gap:5px;
 background:radial-gradient(ellipse at 35% 5%,#fff2c75e,transparent 70%),linear-gradient(145deg,color-mix(in srgb,var(--cabinet-base),#be8a53 30%),var(--cabinet-base));
 box-shadow:inset 0 2px #fff5cc66,inset 0 -4px #38132966,0 4px 12px #30162b33;
}
dialog#modal.purchase-dialog .feature-product.selected { border-color:#fff1b1; box-shadow:inset 0 2px #fff8df,inset 0 -4px #82422c80,0 0 0 3px #f3c57350,0 0 26px #f6d48940; }
dialog#modal.purchase-dialog .product-art { width:55px; height:55px; }
dialog#modal.purchase-dialog .product-name { font-size:18px; line-height:1.1; }
dialog#modal.purchase-dialog .feature-product strong { font-size:22px; }
dialog#modal.purchase-dialog .product-check { top:16px; right:20px; }
dialog#modal.purchase-dialog .purchase-summary { padding:7px 12px; border:0; border-radius:999px; background:radial-gradient(ellipse,#ffddb51e,transparent 72%); }
dialog#modal.purchase-dialog .purchase-summary .big-number { font-size:45px; }
dialog#modal.purchase-dialog .purchase-bet { border-radius:999px; }
dialog#modal.purchase-dialog .purchase-note { margin-top:7px; }
dialog#modal.purchase-dialog .confirm { margin-top:12px; }
dialog#modal.purchase-dialog .confirm button { border-radius:999px; min-height:43px; }
dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .feature-product { padding:16px 5px; }
dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .product-name { font-size:12px; }
dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .feature-product strong { font-size:17px; }
.stage-turn-plaque,.stage-result-plaque,.award-plaque,dialog.replay-win-show .show-payout-plaque { border-radius:999px; }
dialog.scene-opening .intro-cells>span { border:0; border-radius:50%; background:radial-gradient(circle,#ffe2a85c,transparent 70%); }
dialog.scene-opening .intro-language,.cabinet-test,.cabinet-test button { border-radius:999px; }

@media(max-width:900px) and (orientation:portrait) {
 #game.soft-cabinet #buy,#stage.soft-cabinet #buy { aspect-ratio:auto; height:100%; padding:4px 8px; gap:1px; border:2px solid #eac686; border-radius:999px; background:radial-gradient(ellipse at top,#ffdcb857,transparent 72%),linear-gradient(145deg,var(--cabinet-base),color-mix(in srgb,var(--cabinet-base),#601b30 28%)); filter:none; box-shadow:inset 0 2px #fff1bd66,0 2px #986940; }
 #game.soft-cabinet #buy>strong,#stage.soft-cabinet #buy>span { font-size:13px; }
 #game.soft-cabinet #buy .rail-price,#stage.soft-cabinet #buy>#buyPrice { font-size:18px; }
 #game.soft-cabinet #buy .rail-kicker,#game.soft-cabinet #buy .rail-options,#stage.soft-cabinet #buy>small { display:none; }
 #game.soft-cabinet #mode.rail-ante,#stage.soft-cabinet #ante { min-height:0; height:100%; padding:4px 7px; gap:1px; border-radius:999px; box-shadow:inset 0 2px #fff2bd66,0 2px #9b7747; }
 #game.soft-cabinet #modeDetail { display:none; }
 #game.soft-cabinet .mechanics { padding:5px 9px; height:100%; }
 #game.soft-cabinet .history,#stage.soft-cabinet #history { min-height:0; padding:3px 8px; }
 #game.soft-cabinet .rail-feature,#stage.soft-cabinet #freeMeter,#stage.soft-cabinet #featureMeter,#stage.soft-cabinet #funds { border-radius:999px; }
 #stage.soft-cabinet #left { top:auto; gap:6px; }
 #stage.soft-cabinet #ante strong { font-size:18px; }
 #stage.soft-cabinet #ante small { font-size:6px; }
}
@media(max-width:600px) {
 dialog#modal.purchase-dialog { padding:20px 16px 19px; border-radius:42px / 36px; }
 dialog#modal.purchase-dialog .purchase-heading h2 { font-size:21px; padding:0 20px; }
 dialog#modal.purchase-dialog .purchase-crown { height:64px; width:112px; }
 dialog#modal.purchase-dialog .feature-products { gap:8px; margin:9px 0; }
 dialog#modal.purchase-dialog .feature-product,dialog#modal.purchase-dialog .feature-product.selected { min-height:142px; padding:12px 5px; }
 dialog#modal.purchase-dialog .product-art { width:44px; height:44px; }
 dialog#modal.purchase-dialog .product-name { font-size:16px; }
 dialog#modal.purchase-dialog .feature-product strong { font-size:17px; }
 dialog#modal.purchase-dialog .product-check { top:12px; right:13px; }
 dialog#modal.purchase-dialog .purchase-summary .big-number { font-size:36px; }
 dialog#modal.purchase-dialog .purchase-bet { gap:5px; }
 dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .feature-product { padding:14px 3px; }
 dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .product-name { font-size:10px; }
 dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .feature-product strong { font-size:13px; }
 dialog#modal.purchase-dialog[data-game=rotto-bonanza-2500] .feature-products { gap:5px; }
 dialog .actions button,dialog .confirm button { border-radius:999px; }
}
@media(orientation:landscape) and (max-height:600px) {
 #game.soft-cabinet .rail { gap:7px; }
 #game.soft-cabinet #buy,#stage.soft-cabinet #buy { aspect-ratio:auto; height:130px; padding:18px 9px; gap:2px; border:2px solid #e6bf81; border-radius:50%; background:radial-gradient(ellipse at top,#ffe4b24d,transparent 75%),linear-gradient(145deg,var(--cabinet-base),color-mix(in srgb,var(--cabinet-base),#582031 28%)); filter:none; box-shadow:inset 0 2px #fff2bd66,0 2px #946943; }
 #game.soft-cabinet #buy>strong,#stage.soft-cabinet #buy>span { font-size:15px; }
 #game.soft-cabinet #buy .rail-price,#stage.soft-cabinet #buy>#buyPrice { font-size:17px; }
 #game.soft-cabinet #buy .rail-kicker,#stage.soft-cabinet #buy>.shop-kicker { display:none; }
 #game.soft-cabinet #mode.rail-ante,#stage.soft-cabinet #ante { min-height:0; padding:6px 8px; border-radius:999px; }
 #game.soft-cabinet #modeDetail { display:none; }
 #game.soft-cabinet .mechanics { padding:5px; }
 #game.soft-cabinet .history { min-height:35px; padding:3px 7px; }
 #game.soft-cabinet .hud,#stage.soft-cabinet #hud { border-radius:999px; }
}
@media(orientation:landscape) and (max-height:500px) {
 dialog#modal.purchase-dialog { width:min(650px,calc(100vw - 24px)); padding:12px 26px 14px; border-radius:55px / 42px; }
 dialog#modal.purchase-dialog .purchase-crown { height:40px; width:90px; margin:-5px auto -8px; }
 dialog#modal.purchase-dialog .purchase-heading h2 { font-size:20px; margin:2px 0 7px; }
 dialog#modal.purchase-dialog .feature-products { margin:5px 0; }
 dialog#modal.purchase-dialog .feature-product,dialog#modal.purchase-dialog .feature-product.selected { min-height:100px; padding:9px 12px; gap:3px; }
 dialog#modal.purchase-dialog .product-art { width:30px; height:30px; }
 dialog#modal.purchase-dialog .product-name { font-size:15px; }
 dialog#modal.purchase-dialog .feature-product strong { font-size:18px; }
 dialog#modal.purchase-dialog .purchase-summary { display:flex; align-items:center; justify-content:center; gap:18px; padding:3px; }
 dialog#modal.purchase-dialog .purchase-summary>small { display:none; }
 dialog#modal.purchase-dialog .purchase-summary .purchase-bet { margin:0; }
 dialog#modal.purchase-dialog .purchase-summary .big-number { font-size:29px; }
 dialog#modal.purchase-dialog .purchase-note { margin:4px 0 0; font-size:8px; }
 dialog#modal.purchase-dialog .confirm { margin-top:7px; }
 dialog#modal.purchase-dialog .confirm button { min-height:34px; padding:6px; }
}
