/* Series-only finish. Olympus is deliberately not a consumer of this layer. */
/* Multiplier showcase: genuine game art, no idle x1 dashboard readout. */
body #game.soft-cabinet[data-cabinet-game="rotto-blaze"] #mechanics {border:0;border-radius:0;overflow:visible;background:none;box-shadow:none;}
body #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .blaze-meter {border-radius:8px;overflow:visible;}
/* Shared feature choreography: open composition, theme light, no nested plaques. */
body:has(#game) dialog#modal.premium-feature-stage {
 border:1px solid #fff0c855;border-radius:40px 64px;
 background:radial-gradient(ellipse at 15% 45%,color-mix(in srgb,var(--stage-glow) 32%,transparent),transparent 62%),linear-gradient(135deg,#18152cf5,#0d1229ed);
 box-shadow:inset 0 1px #ffffff40,0 24px 90px #080b2655;
 font-family:'Rotto Display',sans-serif;
}
body:has(#game) dialog#modal.premium-feature-stage:before,body:has(#game) dialog#modal.premium-feature-stage:after {display:none;}
body:has(#game) dialog#modal.premium-feature-stage::backdrop {background:#100e2455;backdrop-filter:none;}
body:has(#game) .premium-feature-stage .stage-turn-plaque,body:has(#game) .premium-feature-stage .stage-result-plaque {
 background:none;border:0;box-shadow:none;border-radius:0;
}
body:has(#game) .premium-feature-stage .stage-copy h2 {color:#fff4d6;text-shadow:0 3px #13142f,0 0 24px var(--stage-glow);letter-spacing:.015em;}
body:has(#game) .premium-feature-stage .stage-turn-plaque>strong {color:#fff1b5;text-shadow:0 3px #744886,0 0 24px color-mix(in srgb,var(--stage-glow) 55%,transparent);}
body:has(#game) .premium-feature-stage .stage-result-plaque>strong {color:#fff1b5;text-shadow:0 3px #29224a,0 0 20px var(--stage-glow);}
body:has(#game) .premium-feature-stage #continue {background:linear-gradient(150deg,#fff6ce,#e5c685);color:#252047;border-radius:999px;box-shadow:inset 0 2px #fff9,0 5px 22px #070b2455;border:1px solid #fff2bb;}
body:has(#game) .premium-feature-stage .stage-crest {animation:feature-crest-reveal .85s cubic-bezier(.18,.75,.25,1) both;}
body:has(#game) .premium-feature-stage .stage-copy {animation:feature-copy-reveal .65s .15s ease-out both;min-width:0;}
@keyframes feature-crest-reveal {from{opacity:0;transform:scale(.65) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes feature-copy-reveal {from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
#game[data-cabinet-game="rotto-bass"] .board .collector-subtotal {background:linear-gradient(145deg,#effffc,#9de7ef);color:#092f49;border:1px solid #eaffff;text-shadow:none;box-shadow:0 0 20px #5dd9e966,0 3px 8px #08234466;}
#game[data-cabinet-game="rotto-bass"] .tile.collecting:before {content:'';position:absolute;inset:9%;border:2px solid #a9ffff;border-radius:50%;pointer-events:none;animation:bass-collection-ring 1.2s ease-out infinite;}
@keyframes bass-collection-ring {from{transform:scale(.65);opacity:.9}to{transform:scale(1.15);opacity:0}}
@media(orientation:portrait) {body:has(#game) dialog#modal.premium-feature-stage {border-radius:28px 40px;} }
@media(prefers-reduced-motion:reduce) {body:has(#game) .premium-feature-stage .stage-crest,body:has(#game) .premium-feature-stage .stage-copy,#game[data-cabinet-game="rotto-bass"] .tile.collecting:before {animation:none;} }
body:has(#game) dialog#modal.replay-win-show {--win-light:#ec92d9;--win-core:#362053; background:radial-gradient(ellipse at 50% 30%,var(--win-core),#11182eef 78%);border:1px solid #fff0c855;border-radius:40px 64px;box-shadow:0 24px 90px #080b2666;}
body:has(#game) dialog#modal.replay-win-show[data-game="rotto-bass"] {--win-light:#96f5ec;--win-core:#123d57;}
body:has(#game) dialog#modal.replay-win-show[data-game="rotto-blaze"] {--win-light:#ffc975;--win-core:#382558;}
body:has(#game) dialog#modal.replay-win-show[data-game="rotto-rush"] {--win-light:#c7b0ff;--win-core:#392877;}
body:has(#game) dialog#modal.replay-win-show[data-game="sweetrotto"] {--win-light:#ffbce1;--win-core:#512355;}
body:has(#game) dialog#modal.replay-win-show[data-game="rotto-sweet"] {--win-light:#ffbfd7;--win-core:#472b64;}
body:has(#game) dialog#modal.replay-win-show .big-number {font-family:'Rotto Display',sans-serif;color:#fff1be;text-shadow:0 3px #24203c,0 0 22px color-mix(in srgb,var(--win-light) 45%,transparent);}
body:has(#game) dialog#modal.replay-win-show .feature-halo {background:radial-gradient(ellipse,color-mix(in srgb,var(--win-light) 24%,transparent),transparent 68%);}
body:has(#game) dialog#modal.replay-win-show .show-stars {color:var(--win-light);text-shadow:0 0 16px var(--win-light);}
body:has(#game) dialog#modal.replay-win-show:before,body:has(#game) dialog#modal.replay-win-show:after {display:none;}
body:has(#game) dialog#modal.replay-win-show::backdrop {background:#100e2455;backdrop-filter:none;}
body:has(#game) dialog.replay-win-show .show-payout-plaque {background:none;border:0;box-shadow:none;}
body:has(#game) dialog.replay-win-show #continue {border-radius:999px;background:linear-gradient(150deg,#fff6ce,#e5c685);color:#252047;box-shadow:inset 0 2px #fff9;}
.multiplier-flight {position:absolute;z-index:80;pointer-events:none;white-space:nowrap;font:clamp(24px,3.2vw,48px)/1 'Rotto Display',sans-serif;color:#fff5b7;text-shadow:0 3px #642575,0 0 4px #37164f,0 0 18px #f998dc;}
#game .spot.spot-upgraded {animation:cell-upgrade-light .9s ease-out both;}
#game .spot.spot-upgraded>span {animation:cell-upgrade-value .65s cubic-bezier(.2,.8,.3,1) both;}
@keyframes cell-upgrade-light {0%{box-shadow:inset 0 0 4px #fff2}40%{box-shadow:inset 0 0 28px #ffe890aa,0 0 12px #ffaee466}100%{box-shadow:inset 0 0 6px #ffe89044}}
@keyframes cell-upgrade-value {0%{transform:scale(.65);opacity:.2}55%{transform:scale(1.3);opacity:1}100%{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){#game .spot.spot-upgraded,#game .spot.spot-upgraded>span{animation:none;}}
/* Scatter art moves independently of the falling tile and its readable label. */
#game #symbols .tile[data-token^="scatter"] { isolation:isolate; }
#game #symbols .tile[data-token^="scatter"]>.symbol-art {
 transform-origin:center; animation:scatter-jewel-turn 6s ease-in-out infinite;
 filter:drop-shadow(0 0 6px #fff4ad) drop-shadow(0 0 12px #ef68b9);
}
#game #symbols .tile[data-token^="scatter"]:before {
 content:'';position:absolute;inset:5%;border-radius:50%;z-index:-1;pointer-events:none;
 background:conic-gradient(from 0deg,transparent,#ffe8ad99,transparent 20%,#fff3a877,transparent 45%,#f886dd77,transparent 70%,#ffe8ad99,transparent);
 animation:scatter-rays 7s linear infinite;opacity:.6;
}
#game #symbols .tile[data-token^="scatter"]:after {
 content:'';position:absolute;inset:8%;pointer-events:none;z-index:3;
 background:linear-gradient(115deg,transparent 36%,#fff9df 48%,transparent 59%);
 clip-path:polygon(50% 0,58% 40%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 40%);
 animation:scatter-glint 3.4s ease-in-out infinite;
}
#game #symbols .tile.scatter-show { z-index:8; }
#game #symbols .tile.scatter-show>.symbol-art { animation:scatter-feature-turn 1.05s cubic-bezier(.2,.65,.3,1) both; }
#game #symbols .tile.scatter-show:before { opacity:.95;animation-duration:1.8s; }
#game #symbols .tile.scatter-show:after { animation-duration:1.2s; }
@keyframes scatter-jewel-turn { 0%,50%,100%{transform:perspective(500px) rotateY(0deg) scale(1)} 65%{transform:perspective(500px) rotateY(25deg) scale(1.04)} 82%{transform:perspective(500px) rotateY(-22deg) scale(1.04)} }
@keyframes scatter-feature-turn { 0%{transform:perspective(500px) rotateY(0) scale(1)} 55%{transform:perspective(500px) rotateY(360deg) scale(1.18)} 80%{transform:perspective(500px) rotateY(360deg) scale(1.08)} 100%{transform:perspective(500px) rotateY(360deg) scale(1.12)} }
@keyframes scatter-rays { to{transform:rotate(360deg)} }
@keyframes scatter-glint { 0%,60%,100%{opacity:0;transform:translate(-20%,15%) scale(.25)} 78%{opacity:.9;transform:translate(20%,-22%) scale(.65)} }
@media(prefers-reduced-motion:reduce){
 #game #symbols .tile[data-token^="scatter"]>.symbol-art,#game #symbols .tile[data-token^="scatter"]:before,#game #symbols .tile[data-token^="scatter"]:after {animation:none;}
 #game #symbols .tile[data-token^="scatter"]:after {opacity:0;}
}
body #game.fruit-cabinet #mechanics.multiplier-stand { position:static; inset:auto; width:100%; height:auto; max-height:none; }
body #game.fruit-cabinet #mechanics.multiplier-stand .stand-art { display:block; width:140px; height:104px; flex:none; }
body #game.fruit-cabinet #mechanics.multiplier-stand .stand-title { font-size:12px; letter-spacing:.08em; }
body #game.soft-cabinet.premium-world .mechanics.multiplier-stand {
 display:flex; flex-direction:column; align-items:center; justify-content:center;
 gap:3px; width:100%; padding:8px 4px; background:none; border:0; border-radius:24px;
 box-shadow:none; text-align:center; overflow:visible;
}
.multiplier-stand .stand-title { color:#ffebac; font:12px/1.2 'Rotto Display',sans-serif; letter-spacing:.08em; }
.multiplier-stand .stand-art { position:relative; isolation:isolate; width:140px; height:104px; }
.multiplier-stand .stand-art:before { content:''; position:absolute; inset:8% -5%; z-index:-1; background:radial-gradient(ellipse,var(--surface-light,#edacff),transparent 66%); opacity:.24; }
.multiplier-stand .stand-art>.symbol-art { position:absolute; inset:0; width:100%; height:100%; filter:drop-shadow(0 5px 6px #1c0d4255); }
body #game.soft-cabinet .multiplier-stand .stand-value { position:absolute; left:0; right:0; bottom:-2px; margin:0; color:#fff4b5; font:400 clamp(27px,2.3vw,44px)/1.15 'Rotto Display',sans-serif; letter-spacing:-.025em; text-shadow:0 2px #542059,0 0 3px #20082f,0 0 12px #260d46; }
.multiplier-stand[data-charged=true] .stand-art:before { opacity:.48; }
.multiplier-stand .stand-note { font:10px/1.3 Arial,sans-serif; color:#f4eafa; text-shadow:0 1px 3px #160b24; }
.stand-cells { display:grid; grid-template-columns:1fr 1fr; gap:4px; width:86px; height:86px; margin:5px auto; transform:rotate(-6deg); }
.stand-cells i { position:relative; border:1px solid #f4d8ff99; border-radius:10px; background:linear-gradient(145deg,#ae76d25e,#562b875e); }
.stand-cells .symbol-art { inset:7%; width:86%; height:86%; }
body #game.soft-cabinet .history:has(#history[data-empty="1"]) { visibility:hidden; }
body #game.soft-cabinet .history { background:none; border:0; box-shadow:none; border-radius:16px; }
body #game.soft-cabinet .history>small { color:#ffecb3; font:11px/1.2 'Rotto Display',sans-serif; letter-spacing:.07em; }
body #game.soft-cabinet .history-row { padding:5px 2px; margin:3px 0; border-bottom:1px solid #f6dcff26; border-radius:0; background:none; }
body #game.soft-cabinet .history-row b { color:#fff0b0; font-family:'Rotto Display',sans-serif; font-weight:400; }
@media(orientation:portrait) and (max-width:1200px) {
 body #game.fruit-cabinet #mechanics.multiplier-stand { height:100%; max-height:72px; }
 body #game.fruit-cabinet #mechanics.multiplier-stand .stand-art { width:65px; height:45px; }
 body #game.fruit-cabinet #mechanics.multiplier-stand .stand-title { font-size:9px; }
 body #game.soft-cabinet.premium-world .mechanics.multiplier-stand { padding:1px; gap:1px; overflow:hidden; }
 .multiplier-stand .stand-art { width:65px; height:48px; }
 .multiplier-stand .stand-title { font-size:9px; }
 .multiplier-stand .stand-note { font-size:8px; }
 body #game.soft-cabinet .multiplier-stand .stand-value { font-size:25px; }
 .stand-cells { width:42px; height:42px; gap:2px; margin:1px auto; }
 .stand-cells i { border-radius:6px; }
}
@media(orientation:landscape) and (max-height:600px) {
 body #game.fruit-cabinet #mechanics.multiplier-stand .stand-art { width:68px; height:44px; }
 body #game.fruit-cabinet #mechanics.multiplier-stand .stand-title { font-size:9px; }
 body #game.soft-cabinet.premium-world .mechanics.multiplier-stand { padding:2px; gap:0; }
 .multiplier-stand .stand-art { width:68px; height:48px; }
 .multiplier-stand .stand-title { font-size:9px; }
 .multiplier-stand .stand-note { font-size:8px; }
 body #game.soft-cabinet .multiplier-stand .stand-value { font-size:24px; }
 .stand-cells { width:44px; height:44px; margin:0 auto; }
}
/* Blaze: each seal has a visible destination and its own reward identity. */
#game.soft-cabinet .blaze-meters { display:grid; gap:5px; }
#game.soft-cabinet .blaze-meter { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; height:37px; gap:5px; margin:0; padding:3px 2px 6px; border:0; border-radius:12px; background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--meter-color),transparent 91%),transparent); }
.blaze-meter .meter-seal { position:relative; width:28px; height:28px; }
.blaze-meter .meter-seal .symbol-art { inset:0; width:100%; height:100%; }
#game.soft-cabinet .blaze-meter .meter-head { display:flex; flex-direction:column; align-items:start; gap:0; min-width:0; font:10px 'Rotto Display',sans-serif; color:var(--meter-color); }
#game.soft-cabinet .blaze-meter .meter-head strong { font:15px/1.1 'Rotto Display',sans-serif; margin:0; color:#fff4d2; white-space:nowrap; }
.blaze-meter .meter-progress { font:19px 'Rotto Display',sans-serif; color:var(--meter-color); white-space:nowrap; }
.blaze-meter .meter-progress small { display:inline; font:10px Arial,sans-serif; color:#e5dded; letter-spacing:0; }
#game.soft-cabinet .blaze-meter .track { position:absolute; left:34px; right:2px; bottom:0; height:3px; margin:0; background:#e2cfff24; border-radius:8px; overflow:hidden; }
.blaze-meter .track i { background:var(--meter-color); box-shadow:0 0 9px var(--meter-color); }
.blaze-meter.prize-complete { filter:brightness(1.7); }
.blaze-seal-flight-layer { position:fixed; inset:0; pointer-events:none; z-index:35; overflow:hidden; }
.blaze-seal-flight { position:absolute; width:62px; height:62px; filter:drop-shadow(0 0 9px #ffdf8a); }
.blaze-seal-flight .symbol-art { inset:0; width:100%; height:100%; }
.blaze-prize-reveal { position:absolute; left:50%; top:50%; z-index:20; transform:translate(-50%,-50%); width:80%; padding:16px 6px; text-align:center; pointer-events:none; border:0; border-radius:50%; background:radial-gradient(ellipse,#23103ceb 15%,#29163db8 45%,transparent 73%); font-family:'Rotto Display',sans-serif; text-shadow:0 2px 3px #120b27; }
.blaze-prize-seal { display:block; position:relative; margin:auto; width:95px; height:95px; }
.blaze-prize-seal .symbol-art { inset:0; width:100%; height:100%; }
.blaze-prize-reveal small { color:#fff4d2; font-size:12px; }
.blaze-prize-reveal h2 { color:#fff0a0; font-size:48px; margin:0; line-height:1.1; }
.blaze-prize-reveal>strong { font-size:36px; color:#fff; }
@media(max-width:1200px) and (orientation:portrait) {
 #game.soft-cabinet .blaze-meters { gap:1px; }
 #game.soft-cabinet .blaze-meter { grid-template-columns:13px minmax(0,1fr) auto; height:13px; gap:3px; padding:0 0 2px; }
 .blaze-meter .meter-seal { width:12px; height:12px; }
 #game.soft-cabinet .blaze-meter .meter-head { flex-direction:row; align-items:center; justify-content:space-between; font-size:7px; gap:2px; }
 #game.soft-cabinet .blaze-meter .meter-head strong { font-size:8px; }
 .blaze-meter .meter-progress { font-size:9px; }
 .blaze-meter .meter-progress small { font-size:7px; }
 #game.soft-cabinet .blaze-meter .track { left:16px; bottom:0; height:1px; }
 .blaze-prize-seal { width:60px; height:60px; }
 .blaze-prize-reveal h2 { font-size:32px; }
 .blaze-prize-reveal>strong { font-size:26px; }
 .blaze-prize-reveal small { font-size:9px; }
}
@media(max-height:600px) and (orientation:landscape) {
 #game.soft-cabinet .blaze-meters { gap:1px; }
 #game.soft-cabinet .blaze-meter { height:18px; grid-template-columns:16px minmax(0,1fr) auto; padding:0 0 3px; gap:3px; }
 .blaze-meter .meter-seal { width:16px; height:16px; }
 #game.soft-cabinet .blaze-meter .meter-head { flex-direction:row; align-items:center; justify-content:space-between; font-size:7px; }
 #game.soft-cabinet .blaze-meter .meter-head strong { font-size:9px; }
 .blaze-meter .meter-progress { font-size:10px; }
 .blaze-meter .meter-progress small { font-size:7px; }
 #game.soft-cabinet .blaze-meter .track { left:19px; height:1px; }
}
@font-face { font-family:'Rotto Display'; src:url('/assets/Anton-Regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
#game.soft-cabinet #buy>strong,#game.soft-cabinet #buy .rail-price,#game.soft-cabinet #mode strong { font-family:'Rotto Display',sans-serif; font-weight:400; }
#game.soft-cabinet { --surface-top:#78268c; --surface-bottom:#25104f; --surface-light:#ffa6f1; }
#game[data-cabinet-game="rotto-bass"] { --surface-top:#087ea0; --surface-bottom:#052b53; --surface-light:#a4fff6; }
#game[data-cabinet-game="rotto-blaze"] { --surface-top:#7730a2; --surface-bottom:#171b4b; --surface-light:#ffb74e; }
#game[data-cabinet-game="rotto-sweet"] { --surface-top:#af267f; --surface-bottom:#481566; --surface-light:#ffd2ed; }
#game[data-cabinet-game="rotto-bonanza-2500"],#game[data-cabinet-game="sweetrotto"] { --surface-top:#d92aaf; --surface-bottom:#68177a; --surface-light:#ffd6f5; }
#game.soft-cabinet .hud,#game.soft-cabinet .money { background:none; border:0; box-shadow:none; backdrop-filter:none; }
#game.soft-cabinet .hud:before,#game.soft-cabinet .hud:after { display:none; }
#game.soft-cabinet .money>strong { font-family:'Rotto Display','Barlow Condensed',sans-serif; font-size:clamp(24px,2vw,36px); color:#fff; text-shadow:0 2px 2px #100b27,0 0 8px #100b2770; }
#game.soft-cabinet .money>small { color:#ffdf7d; font-size:13px; }
#game.soft-cabinet .money .bet { background:none; border:0; font-size:16px; padding:2px; color:#ffdf7d; text-shadow:0 2px #160a25; }
#game.soft-cabinet .money .bet b { color:#fff; }
#game.soft-cabinet #buy { position:relative; isolation:isolate; width:100%; aspect-ratio:auto; min-height:148px; padding:20px 10px; gap:6px; border:1px solid #ffdc9a; border-radius:28px 18px 28px 18px; background:radial-gradient(ellipse at 25% 0%,#ffffff48,transparent 52%),linear-gradient(155deg,var(--surface-top),var(--surface-bottom)); box-shadow:inset 0 2px #fff4cd99,inset 0 -3px #130f4255,0 8px 18px #150d373b; filter:none; overflow:hidden; }
#game.soft-cabinet #buy:before { content:''; position:absolute; inset:5px; border:1px solid #ffe8ae66; border-radius:23px 13px; background:none; pointer-events:none; }
#game.soft-cabinet #buy:after { content:''; display:block; position:absolute; inset:0; border:0; border-image:none; border-radius:inherit; pointer-events:none; background:radial-gradient(ellipse at 50% 100%,var(--surface-light),transparent 65%); opacity:.08; animation:series-buy-light 3.6s ease-in-out infinite; z-index:-1; }
#game.soft-cabinet #buy:disabled:after { animation:none; opacity:0; }
#game.soft-cabinet #buy .rail-emblem,#game.soft-cabinet #buy .cabinet-crown { display:none; }
#game.soft-cabinet #buy>strong { color:#fff; font-size:clamp(19px,1.7vw,29px); line-height:1.08; text-shadow:0 2px 1px #33114f; }
#game.soft-cabinet #buy .rail-price { color:#fff2a8; font-size:clamp(22px,1.9vw,32px); line-height:1.12; text-shadow:0 2px 1px #431455; }
#game.soft-cabinet #buy .rail-kicker { color:#ffe4fc; font-family:'Rotto Display','Barlow Condensed',sans-serif; font-size:12px; letter-spacing:1px; }
#game.soft-cabinet #buy .rail-options { color:#fff1da; font-size:9px; }
#game.soft-cabinet.premium-world #mode.rail-ante { border:1px solid #fce7b0; border-radius:20px 28px; background:linear-gradient(145deg,#fffff0,#e5e6ff); color:#342153; box-shadow:inset 0 2px #fff,0 5px 12px #170a3229; text-shadow:none; }
#game.soft-cabinet #mode.rail-ante strong,#game.soft-cabinet #mode.rail-ante small,#game.soft-cabinet #mode.rail-ante span { color:#342153; text-shadow:none; }
#game.soft-cabinet #mode .rail-toggle { background:#37245b1a; color:#342153; }
#game.soft-cabinet .rail-feature { background:none; border:0; box-shadow:none; }
#game.soft-cabinet .rail-turns strong { font-size:clamp(40px,4vw,68px); color:#ffedaa; text-shadow:0 3px #35214f; }
#game.soft-cabinet #spin { background:#160e324f; border:2px solid #fff; box-shadow:0 3px 12px #120a3233; }
@media(max-width:1000px) and (orientation:landscape) and (max-height:600px) {
 #game.soft-cabinet .money>strong { font-size:20px; line-height:1.1; margin:2px 0; }
 #game.soft-cabinet .money>small { font-size:8px; }
 #game.soft-cabinet .money .bet { font-size:10px; padding:0; line-height:1.1; }
 #game.soft-cabinet #buy { min-height:80px; padding:10px 7px; gap:3px; border-radius:18px 12px; }
 #game.soft-cabinet #buy>strong { font-size:16px; }
 #game.soft-cabinet #buy .rail-price { font-size:20px; }
 #game.soft-cabinet #buy .rail-kicker,#game.soft-cabinet #buy .rail-options { display:none; }
 #game.soft-cabinet.premium-world #mode.rail-ante { min-height:60px; padding:5px; gap:2px; }
}
@keyframes series-buy-light { 0%,100% { opacity:.08; } 50% { opacity:.42; } }
dialog#modal.series-bet-dialog { position:fixed; inset:auto 3vw 18vh auto; margin:0; width:min(310px,92vw); max-height:65dvh; overflow:auto; padding:30px 22px 22px; border:1px solid #ead7ff99; border-radius:26px; background:#191331f0; box-shadow:0 12px 40px #07041655; backdrop-filter:none; }
dialog#modal.series-bet-dialog:before,dialog#modal.series-bet-dialog:after { display:none; }
.series-bet-dialog .series-bet-step { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:18px 0; }
.series-bet-step button { border:1px solid #eee1ff; border-radius:50%; width:44px; height:44px; padding:0; font-size:25px; }
.series-bet-step strong { font-size:22px; color:#ffefa9; }
.series-bet-dialog p { font-size:12px; color:#ddd2ee; }
dialog#modal.series-bet-dialog { z-index:100; }
@media(max-width:1200px) and (orientation:portrait) {
 #game.soft-cabinet #buy { min-height:0; height:100%; padding:5px 7px; gap:2px; border-radius:18px 12px; }
 #game.soft-cabinet #buy:before { inset:3px; border-radius:14px 9px; }
 #game.soft-cabinet #buy>strong { font-size:12px; line-height:1; }
 #game.soft-cabinet #buy>strong br { display:none; }
 #game.soft-cabinet #buy .rail-price { font-size:20px; line-height:1.08; }
 #game.soft-cabinet #buy .rail-kicker,#game.soft-cabinet #buy .rail-options { display:none; }
 #game.soft-cabinet.premium-world #mode.rail-ante { border-radius:12px 18px; padding:3px 6px; }
 #game.soft-cabinet .money>strong { font-size:19px; white-space:nowrap; }
 #game.soft-cabinet .money>small { font-size:10px; }
 #game.soft-cabinet .money .bet { font-size:12px; white-space:nowrap; }
 #game.soft-cabinet .money { gap:6px; padding:0; }
 dialog#modal.series-bet-dialog { bottom:26dvh; right:3vw; }
 #game.soft-cabinet .mechanics.bass-trail-host { padding:2px; }
 #game.soft-cabinet .bass-trail-heading { margin:0; height:16px; }
 #game.soft-cabinet .bass-trail-heading strong { font-size:18px; line-height:1; }
 #game.soft-cabinet .bass-trail-stages { gap:1px; }
 #game.soft-cabinet .bass-trail-stage { height:14px; padding:0 2px; }
 #game.soft-cabinet .bass-trail-portrait { width:14px; height:14px; }
 #game.soft-cabinet .bass-trail-stage>b { display:flex; gap:4px; align-items:center; font-size:8px; }
 #game.soft-cabinet .bass-trail-stage>b span { font-size:10px; }
 #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .mechanics { padding:2px; }
}
body:has(#game) dialog#modal.purchase-dialog { --purchase-top:#672479; --purchase-bottom:#231039; background:radial-gradient(ellipse at 30% 0%,#ffffff22,transparent 58%),linear-gradient(145deg,var(--purchase-top),var(--purchase-bottom)); border:2px solid #ffe5a0; border-radius:32px 48px; box-shadow:inset 0 1px #fff4bd,0 18px 70px #100b3966; }
body:has(#game) dialog#modal.purchase-dialog[data-game="rotto-bass"] { --purchase-top:#087494; --purchase-bottom:#08203f; }
body:has(#game) dialog#modal.purchase-dialog[data-game="rotto-blaze"] { --purchase-top:#512485; --purchase-bottom:#111c40; }
body:has(#game) dialog#modal.purchase-dialog:before,body:has(#game) dialog#modal.purchase-dialog:after { display:none; }
body:has(#game) dialog#modal.purchase-dialog .purchase-crown { display:none; }
body:has(#game) dialog#modal.purchase-dialog .purchase-heading h2 { font-family:'Rotto Display',sans-serif; color:#fff3c5; text-shadow:0 2px #2b1649; }
body:has(#game) dialog#modal.purchase-dialog .feature-product { background:#140f324d; border:1px solid #e4d3ff66; border-radius:20px; box-shadow:inset 0 1px #fff3; }
body:has(#game) dialog#modal.purchase-dialog .feature-product.selected { background:linear-gradient(140deg,#ee9cff33,#b77cff22); border-color:#ffefad; box-shadow:inset 0 0 18px #ffeeba22,0 0 16px #d097ff33; }
body:has(#game) dialog#modal.purchase-dialog .purchase-summary { background:none; border:0; box-shadow:none; }
body:has(#game) dialog#modal.purchase-dialog .big-number { color:#fff0a6; text-shadow:0 2px #34144e; }
dialog.series-opening { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; border-radius:0; overflow:hidden; color:#fff; background:linear-gradient(90deg,#160a2822,#160a2866),var(--environment) center/cover; font-family:'Rotto Display','Barlow Condensed',sans-serif; }
dialog.series-opening:before,dialog.series-opening:after { display:none; }
.series-opening .series-language { position:absolute; top:16px; right:16px; z-index:2; border-radius:50%; padding:10px; background:#20143488; }
.series-showcase { position:absolute; inset:15% 52% 12% 6%; display:grid; place-items:center; background:radial-gradient(ellipse,var(--glow),transparent 68%); }
.series-showcase [data-scene] { width:100%; height:100%; position:relative; display:grid; place-items:center; animation:series-chapter-in .6s ease-out; }
.series-showcase [hidden] { display:none; }
.series-showcase [data-scene]>.symbol-art,.series-showcase [data-scene]>img { position:relative; width:85%; height:85%; object-fit:contain; inset:auto; filter:drop-shadow(0 8px 16px #160f3755); }
.series-showcase [data-scene]>strong { position:absolute; bottom:0; font-size:clamp(38px,5vw,90px); color:#fff0a2; text-shadow:0 3px #38174f,0 0 15px #7b278e; }
.series-match { width:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.series-match i,.series-cell-demo i { position:relative; aspect-ratio:1; min-width:0; }
.series-cell-demo { display:grid; grid-template-columns:1fr 1fr; width:75%; gap:8px; }
.series-cell-demo i { background:#35186166; border:1px solid #ffe5a9; border-radius:24%; }
.series-cell-demo b { position:absolute; bottom:0; right:2px; font-size:clamp(28px,3vw,52px); color:#fff3a8; text-shadow:0 2px #38174f; }
.series-intro-copy { position:absolute; inset:6% 5% 5% 54%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; }
.series-intro-logo { width:90%; height:24%; object-fit:contain; filter:drop-shadow(0 5px 8px #160d3544); }
.series-intro-copy>small { color:#ffe8ad; }
.series-intro-copy h2 { font-size:clamp(24px,3vw,52px); line-height:1.16; margin:0; min-height:2.32em; display:flex; align-items:center; text-shadow:0 2px 3px #281432; }
.series-intro-copy nav { display:flex; gap:10px; }
.series-intro-copy nav button { padding:5px 10px; border-radius:50%; font-size:13px; background:#29194566; }
.series-intro-copy nav button[aria-pressed=true] { color:#fff0a3; border-color:#fff0a3; }
.series-intro-copy p { margin:0; font-size:clamp(12px,1.1vw,19px); color:#fff1bf; text-shadow:0 2px #281432; }
.series-intro-copy p b { display:block; font-size:clamp(36px,4vw,66px); line-height:1.15; }
.series-intro-play { display:flex; align-items:center; gap:14px; background:none!important; border:0; padding:3px; font-size:20px; text-shadow:0 2px #281432; }
.series-intro-play svg { width:64px; height:64px; padding:19px; border:2px solid #ffeba8; border-radius:50%; fill:white; background:#37245599; box-shadow:inset 0 1px #fff8; }
.series-intro-copy label { display:flex; align-items:center; gap:8px; font:12px Arial,sans-serif; text-shadow:0 1px 3px #130c24; }
.series-intro-copy input { appearance:none; position:relative; width:34px; height:20px; margin:0; border:1px solid #ffefbc88; border-radius:20px; background:#21142e88; }
.series-intro-copy input:before { content:''; position:absolute; left:3px; top:3px; width:12px; height:12px; border-radius:50%; background:#eee3ff; }
.series-intro-copy input:checked { background:#edd492; }
.series-intro-copy input:checked:before { transform:translateX(14px); background:#342050; }
.series-intro-copy .series-disclaimer { font:10px Arial,sans-serif; color:#fff9; }
@keyframes series-chapter-in { from { opacity:0; transform:scale(.94); } to { opacity:1; transform:scale(1); } }
@media(orientation:portrait) {
 .series-showcase { inset:18% 14% 48%; }
 .series-intro-copy { inset:0 5% 2%; justify-content:end; gap:8px; }
 .series-intro-logo { position:absolute; top:1%; height:16%; width:82%; }
 .series-intro-copy>small:not(.series-disclaimer) { display:none; }
 .series-intro-copy h2 { font-size:clamp(20px,6vw,36px); min-height:2.32em; max-width:95%; }
 .series-intro-copy p { font-size:12px; }
 .series-intro-copy p b { font-size:36px; }
 .series-intro-play svg { width:52px; height:52px; padding:14px; }
 .series-showcase [data-scene]>strong { font-size:44px; }
}
@media(orientation:portrait) and (max-height:650px) {
 .series-showcase { inset:17% 18% 51%; }
 .series-intro-copy { gap:5px; }
 .series-intro-copy h2 { font-size:20px; }
 .series-intro-copy p b { font-size:30px; }
 .series-intro-play svg { width:44px; height:44px; padding:12px; }
 .series-intro-copy label { font-size:10px; }
 .series-intro-copy .series-disclaimer { font-size:8px; }
}
@media(orientation:landscape) and (max-height:500px) { .series-intro-copy { gap:4px; } .series-intro-copy h2 { font-size:20px; } .series-intro-copy p b { font-size:30px; } .series-intro-play svg { width:42px; height:42px; padding:11px; } }
@media(max-width:1200px) and (orientation:portrait) and (min-height:700px) {
 #game.soft-cabinet[data-cabinet-game="rotto-blaze"] { grid-template-rows:40px auto 38px 54px 140px 32px minmax(38px,1fr); }
 #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .mechanics { max-height:140px; }
 #game.soft-cabinet .blaze-meters { gap:3px; }
 #game.soft-cabinet .blaze-meter { height:23px; grid-template-columns:19px minmax(0,1fr) auto; }
 .blaze-meter .meter-seal { width:19px; height:19px; }
 #game.soft-cabinet .blaze-meter .meter-head { font-size:9px; }
 #game.soft-cabinet .blaze-meter .meter-head strong { font-size:11px; }
 .blaze-meter .meter-progress { font-size:12px; }
 .blaze-meter .meter-progress small { font-size:8px; }
 #game.soft-cabinet .blaze-meter .track { left:22px; height:2px; }
}
@media(orientation:portrait) and (min-width:600px) and (max-width:1200px) {
 body #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .board-wrap {width:min(100%,calc((100dvh - 450px)*var(--board-ratio)));}
}
@media(prefers-reduced-motion:reduce) { #game.soft-cabinet #buy:after { animation:none; opacity:.18; } .series-showcase [data-scene] { animation:none; } }
/* Tablet portrait is a full composition, not a centred desktop miniature. */
@media(orientation:portrait) and (min-width:600px) and (max-width:1200px){
 body #game.soft-cabinet{grid-template-rows:60px auto 55px 80px minmax(130px,1fr) 50px 58px;gap:6px 14px}
 body #game.soft-cabinet .board-wrap{width:min(100%,calc((100dvh - 560px)*var(--board-ratio)))}
 body #game.soft-cabinet .masthead-logo{width:170px;height:54px}
 body #game.soft-cabinet .ribbon{height:28px;font-size:16px}
 body #game.soft-cabinet #buy>strong{font-size:19px}body #game.soft-cabinet #buy .rail-price{font-size:27px}
 body #game.soft-cabinet #mode strong{font-size:25px}
 body #game.soft-cabinet .spin{width:100px;height:100px;padding:19px}
 body #game.soft-cabinet .spin-group>button:not(.spin){width:44px;height:44px}
 body #game.soft-cabinet .money>strong{font-size:30px}body #game.soft-cabinet .money .bet{font-size:19px}
 body #game.soft-cabinet .tools button{font-size:12px;min-height:42px}
 body #game.soft-cabinet .mechanics{max-height:130px}
}
@media(orientation:portrait) and (min-width:600px) and (max-width:1200px) and (max-height:1199px){
 body #game.soft-cabinet{grid-template-rows:44px auto 36px 58px minmax(94px,1fr) 34px 44px;gap:4px 10px}
 body #game.soft-cabinet .board-wrap{width:min(100%,calc((100dvh - 420px)*var(--board-ratio)))}
 body #game.soft-cabinet .masthead-logo{height:42px;width:140px}
 body #game.soft-cabinet .spin{width:84px;height:84px;padding:15px}
 body #game.soft-cabinet .money>strong{font-size:26px}body #game.soft-cabinet .money{min-height:0}
 body #game.soft-cabinet .mechanics{max-height:94px}
}
/* Full-stage composition: viewport fit alone is not visual parity. */
@media(orientation:landscape){
 body #game.soft-cabinet{grid-template-rows:32px minmax(0,1fr) 88px;padding:8px 12px;gap:4px}
 body #game.soft-cabinet .cabinet{width:85%;margin:0;grid-template-columns:clamp(130px,13vw,230px) minmax(0,1fr);gap:14px}
 body #game.soft-cabinet .board-wrap{width:min(100%,calc((100dvh - 190px)*var(--board-ratio)));max-width:none}
 body #game.soft-cabinet:not(.rush):not(.bass){--board-ratio:1.38!important}
 body #game.soft-cabinet .hud{width:88%;margin:0 0 0 3%;height:100%;background:none}
 body #game.soft-cabinet .top{width:100%}
 body #game.soft-cabinet .money>strong{font-size:clamp(23px,2.1vw,38px)}
 body #game.soft-cabinet .round-win>strong{font-size:clamp(32px,3vw,52px)}
 body #game.soft-cabinet .spin{width:82px;height:82px}
}
@media(orientation:portrait) and (max-width:1200px){
 body #game.soft-cabinet{padding:4px 4px max(6px,env(safe-area-inset-bottom));grid-template-rows:76px auto 48px 70px minmax(114px,1fr) 42px 52px;gap:5px 12px}
 body #game.soft-cabinet:not(.rush):not(.bass){--board-ratio:1.43!important}
 body #game.soft-cabinet .board-wrap,body #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .board-wrap{width:100%;max-width:none}
 body #game.soft-cabinet .board-wrap{position:relative}
 body #game.soft-cabinet .caption.payout-readout{display:none}
 body #game.soft-cabinet .masthead-logo{width:190px;height:76px;object-fit:contain}
 body #game.soft-cabinet .top>div{margin:auto}
 body #game.soft-cabinet .test-label,body #game.soft-cabinet .top small{display:none}
 body #game.soft-cabinet .spin{width:94px;height:94px}
 body #game.soft-cabinet .spin-group{align-self:center}
 body #game.soft-cabinet .money{align-self:end;background:none}
 body #game.soft-cabinet .money>strong{font-size:clamp(24px,3.8vw,34px)}
 body #game.soft-cabinet .mechanics{max-height:140px;align-self:center}
}
@media(orientation:portrait) and (min-width:600px) and (max-width:1200px){
 body #game.soft-cabinet{grid-template-rows:86px auto 52px 76px minmax(115px,1fr) 42px 58px}
 body #game.soft-cabinet .masthead-logo{width:230px;height:90px}
 body #game.soft-cabinet.rush .board-wrap{width:min(100%,calc(100dvh - 525px))}
}
@media(orientation:portrait) and (max-height:700px){
 body #game.soft-cabinet{grid-template-rows:50px auto 32px 50px minmax(78px,1fr) 30px 38px;gap:3px 8px}
 body #game.soft-cabinet .board-wrap,body #game.soft-cabinet[data-cabinet-game="rotto-blaze"] .board-wrap{width:min(100%,calc((100dvh - 325px)*var(--board-ratio)))}
 body #game.soft-cabinet .masthead-logo{width:135px;height:46px}
 body #game.soft-cabinet .spin{width:65px;height:65px}
 body #game.soft-cabinet .mechanics{max-height:78px}
 body #game.soft-cabinet .money>strong{font-size:20px}
}
@media(orientation:landscape) and (max-height:500px){
 body #game.soft-cabinet{grid-template-rows:24px minmax(0,1fr) 56px;padding:3px 6px}
 body #game.soft-cabinet .cabinet{width:100%;grid-template-columns:120px minmax(0,1fr);gap:8px}
 body #game.soft-cabinet .board-wrap{width:min(100%,calc((100dvh - 140px)*var(--board-ratio)))}
 body #game.soft-cabinet .hud{width:100%;margin:0}
 body #game.soft-cabinet .spin{width:48px;height:48px}
}
/* Bass footer includes the speed strip and three independent audio/auto controls. */
@media(orientation:landscape){
 body #game.soft-cabinet.bass{grid-template-rows:32px minmax(0,1fr) 124px}
 body #game.soft-cabinet.bass .hud{min-height:0;box-sizing:border-box;padding:6px 10px;align-items:center}
 body #game.soft-cabinet.bass .tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:none;width:156px;flex-shrink:0}
 body #game.soft-cabinet.bass .tools>button{grid-column:auto;min-width:0;min-height:44px;padding:6px 3px;font-size:9px}
 body #game.soft-cabinet.bass .spin-group{flex-shrink:0}
}
@media(orientation:landscape) and (max-height:500px){
 body #game.soft-cabinet.bass{grid-template-rows:24px minmax(0,1fr) 82px}
 body #game.soft-cabinet.bass .tools{width:126px;gap:3px}
 body #game.soft-cabinet.bass .tools>button{min-height:32px;font-size:8px;padding:4px 2px}
}
