/* Four distinct materials, sharing the same readable cabinet geometry. */
.world-lucky,.bonus-lucky{--metal-hi:#e8d393;--metal-mid:#a48749;--metal-dark:#354c31;--panel-hi:#243e32;--panel-dark:#091b17;--soft-glow:#98ebac44;--title-color:#e9f3cc;--button-ink:#10271d;}
.world-mythic,.bonus-mythic{--metal-hi:#c6afd9;--metal-mid:#7a638e;--metal-dark:#2c203b;--panel-hi:#332c42;--panel-dark:#110e1c;--soft-glow:#b198e644;--title-color:#eee2ff;--button-ink:#271831;}
.world-neon,.bonus-neon{--metal-hi:#c1e8f0;--metal-mid:#657a93;--metal-dark:#283344;--panel-hi:#242a3b;--panel-dark:#0a0c1b;--soft-glow:#ff79ce44;--title-color:#ffe1f7;--button-ink:#320c2a;}
.world-ocean,.bonus-ocean{--metal-hi:#d2e9df;--metal-mid:#6b9d9d;--metal-dark:#204958;--panel-hi:#20424c;--panel-dark:#071923;--soft-glow:#70dfeb44;--title-color:#d2fbf5;--button-ink:#082e39;}
.slot-playing:not(.world-classic) .slot-world-art{opacity:.38;}
.slot-playing:not(.world-classic):not(.is-phone) .slot-main{background:linear-gradient(135deg,var(--panel-hi),var(--panel-dark) 55%);border:1px solid var(--metal-mid);box-shadow:inset 0 0 0 5px #080d16,inset 0 0 0 6px var(--metal-dark),0 24px 65px #000a;border-radius:26px;padding-top:14px;}
.slot-playing:not(.world-classic) .slot-cabinet-crown{background:transparent!important;position:relative;border-bottom:1px solid var(--metal-mid);border-radius:0;color:var(--title-color);letter-spacing:.1em;}
.slot-playing:not(.world-classic) .slot-cabinet-crown>strong{font-family:Georgia,serif;font-size:29px;font-weight:400;letter-spacing:.08em;text-shadow:0 2px 16px var(--soft-glow);}
.slot-playing:not(.world-classic) .slot-cabinet-crown>span{font-size:23px;color:var(--accent);}
.slot-playing:not(.world-classic) .slot-reel-rule strong{font-size:15px;text-transform:uppercase;letter-spacing:.16em;}
.slot-playing:not(.world-classic) .slot-reel-rule span{color:#d3d5dc;}
.slot-playing:not(.world-classic) .slot-frame{padding:9px;background:linear-gradient(130deg,var(--metal-hi),var(--metal-mid) 24%,var(--metal-dark) 47%,var(--metal-mid) 73%,var(--metal-hi));border:0;box-shadow:0 14px 30px #0009,inset 0 1px 1px #fff9;transition:box-shadow .25s;}
.slot-playing:not(.world-classic) .slot-reels{background:#090f15;border-radius:8px;box-shadow:inset 0 5px 15px #000;padding:16px;gap:14px;}
.slot-playing:not(.world-classic) .slot-reel-window{box-shadow:0 0 0 1px #a9bac733;background:#101722;border-radius:4px;}
.slot-playing:not(.world-classic) .slot-reel-window:before,.slot-playing:not(.world-classic) .slot-reel-window:after{height:33.333%;opacity:.64;background:linear-gradient(#02080ceb,#07101977);}
.slot-playing:not(.world-classic) .slot-reel-window:after{transform:rotate(180deg);}
.slot-playing:not(.world-classic) .slot-payline-line{border:1px solid var(--accent);box-shadow:0 0 18px var(--soft-glow),inset 0 0 15px #d8aa5815;border-radius:3px;}
.slot-playing:not(.world-classic) .slot-line-label{color:#101722;letter-spacing:.18em;font-size:10px;border-radius:3px 3px 0 0;}
.slot-playing:not(.world-classic) .slot-sign-amt{color:var(--title-color);text-shadow:0 0 15px var(--soft-glow);}
.slot-playing:not(.world-classic) .slot-lever-ball{background:radial-gradient(circle at 32% 25%,var(--metal-hi),var(--metal-mid) 55%,var(--metal-dark));}
.slot-playing:not(.world-classic) .slot-controls,.slot-playing:not(.world-classic) .slot-betrow{background:linear-gradient(var(--panel-hi),var(--panel-dark));border:1px solid var(--metal-mid);box-shadow:inset 0 1px #ffffff12;}
.slot-playing:not(.world-classic) .slot-spin{background:linear-gradient(var(--title-color),var(--accent) 58%,var(--metal-mid));border:1px solid var(--title-color);box-shadow:0 5px 0 var(--metal-dark),0 8px 16px #0008;color:var(--button-ink);border-radius:9px;text-shadow:0 1px #fff6;transition:filter .15s,transform .15s;}
.slot-playing:not(.world-classic) .slot-spin:hover:not(:disabled){filter:brightness(1.12);}
.slot-playing:not(.world-classic) .slot-spin:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 var(--metal-dark);}
.slot-playing:not(.world-classic) .slot-chip{background:radial-gradient(circle,#273744 57%,#141f28 60%);color:#d8d8d0;border-color:#65737b;}
.slot-playing:not(.world-classic) .slot-chip.active{background:radial-gradient(circle,var(--metal-dark) 57%,var(--accent) 60%,var(--metal-mid) 66%);color:var(--title-color);box-shadow:0 0 0 2px var(--soft-glow);}
.slot-playing:not(.world-classic) .slot-win-banner{background:linear-gradient(110deg,var(--panel-dark),var(--panel-hi),var(--panel-dark));border:1px solid var(--accent);color:var(--title-color);box-shadow:0 5px 22px #000b;animation:classicPrize .4s cubic-bezier(.2,.8,.2,1) both;}
.slot-playing:not(.world-classic) .slot-paytable-grid{border-top:1px solid var(--metal-dark);padding-top:8px;}
.slot-playing:not(.world-classic) .slot-pt-sym{border-radius:4px;}
.slot-playing:not(.world-classic) .slot-paytable-title{font-size:15px;letter-spacing:.04em;}
.slot-playing:not(.world-classic) .is-spinning .slot-frame,.slot-playing:not(.world-classic) .is-winning .slot-frame{box-shadow:0 14px 30px #0009,0 0 30px var(--soft-glow),inset 0 1px 1px #fff9;}
/* Silhouettes and typography are specific to each world. */
.slot-playing.world-lucky .slot-frame{border-radius:28px 28px 12px 12px;}
.slot-playing.world-lucky .slot-cabinet-crown{border-bottom-style:double;border-bottom-width:3px;}
.slot-playing.world-mythic .slot-frame{border-radius:6px;}
.slot-playing.world-mythic .slot-cabinet-crown{border-bottom-style:double;border-bottom-width:3px;}
.slot-playing.world-mythic:not(.is-phone) .slot-main{border-radius:10px 10px 28px 28px;}
.slot-playing.world-neon .slot-frame{border-radius:12px;box-shadow:0 0 0 1px #ff79ce,0 0 18px #69d8ff33;}
.slot-playing.world-neon .slot-cabinet-crown>strong{font-family:'JetBrains Mono',monospace;font-weight:700;letter-spacing:.06em;}
.slot-playing.world-neon .slot-cabinet-crown{border-bottom-color:#ff79ce;box-shadow:0 2px 0 #6bdfff44;}
.slot-playing.world-neon .slot-spin{border-radius:4px;}
.slot-playing.world-ocean .slot-frame{border-radius:30px;}
.slot-playing.world-ocean .slot-cabinet-crown>strong{font-style:italic;letter-spacing:.03em;}
.slot-playing.world-ocean .slot-cabinet-crown{border-bottom:3px double #70dfeb77;}
.slot-playing:not(.world-classic).is-upright .slot-cabinet-crown>strong{font-size:25px;letter-spacing:.06em;}
.slot-playing:not(.world-classic).is-upright .slot-reels{padding:9px;gap:10px;}
.slot-playing:not(.world-classic).is-sideways .slot-cabinet-crown>strong{font-size:21px;letter-spacing:.05em;}
.slot-playing:not(.world-classic).is-sideways .slot-reels{padding:8px;gap:8px;}
.slot-playing:not(.world-classic).is-sideways .slot-frame{padding:5px;}
.slot-picker .picker-reel{background:#101722;}
.machine-lucky .picker-preview{border-color:#a68d52;}
.machine-mythic .picker-preview{border-color:#8c74a7;border-radius:4px;}
.machine-neon .picker-preview{border-color:#94b9c9;box-shadow:0 0 10px #ff79ce55;}
.machine-ocean .picker-preview{border-color:#83b7b6;border-radius:18px;}
/* Bonus worlds retain their own stage, props and interaction affordances. */
.bonus-art-emblem{display:inline-block;border-radius:50%;box-shadow:0 0 0 1px var(--accent),0 0 28px var(--soft-glow);}
.slot-bonus:not(.bonus-classic) .bonus-stage,.slot-bonus:not(.bonus-classic) .bonus-result{background:linear-gradient(145deg,var(--panel-hi),var(--panel-dark));border:1px solid var(--metal-mid);box-shadow:inset 0 0 0 4px #0a111744,0 16px 40px #0008;}
.slot-bonus:not(.bonus-classic) .bonus-heading h2{font-family:Georgia,serif;font-weight:400;letter-spacing:.02em;color:var(--title-color);}
.slot-bonus:not(.bonus-classic) .bonus-primary{background:linear-gradient(var(--title-color),var(--accent));border:1px solid var(--title-color);color:var(--button-ink);box-shadow:0 4px 0 var(--metal-dark);}
.slot-bonus:not(.bonus-classic) .bonus-secondary{background:var(--panel-dark);color:var(--title-color);}
.slot-bonus:not(.bonus-classic) .bonus-result>strong{color:var(--title-color);text-shadow:0 0 24px var(--soft-glow);}
.bonus-hidden-symbol,.bonus-rune-art,.bonus-dragon-art,.bonus-recap-art{display:block;background-repeat:no-repeat;border-radius:50%;flex-shrink:0;}
.bonus-recap span{flex-direction:column;min-width:76px;background:#101722;color:var(--title-color);border-color:var(--metal-mid);font-size:21px;}
.bonus-recap-art{margin-bottom:6px;}
.bonus-lucky .bonus-stage{border-radius:40px 40px 18px 18px;}
.bonus-lucky .bonus-clovers{padding:12px 0;}
.bonus-lucky .bonus-pick.clover{height:158px;width:104px;border:2px solid #bca362;border-radius:48px 48px 12px 12px;background:linear-gradient(145deg,#254b35,#101722 70%);box-shadow:0 6px 0 #183128,inset 0 0 0 4px #dccb8022;position:relative;}
.bonus-lucky .bonus-pick.clover>span{font-family:Georgia,serif;font-size:30px;color:#f6dea3;}
.bonus-lucky .bonus-pick.clover>small{margin-top:9px;color:#e1d8b5;letter-spacing:.1em;}
.bonus-lucky .bonus-pick.clover.revealed{box-shadow:0 3px 0 #183128,0 0 18px #c3b56733;}
.bonus-mythic .bonus-stage{border-radius:6px 6px 30px 30px;}
.bonus-mythic .bonus-pick.rune{border:2px solid #857294;border-radius:5px 5px 24px 24px;background:linear-gradient(145deg,#403447,#101722 75%);box-shadow:inset 0 0 0 5px #a68ac51c,0 8px 0 #150e20;height:210px;}
.bonus-mythic .bonus-pick.rune>span{font-size:46px;line-height:1.1;color:#ddc3fa;text-shadow:0 0 15px #d3b1ff66;}
.bonus-mythic .bonus-pick.rune>small{margin-top:12px;color:#dfd2e9;}
.bonus-dragon-art{display:inline-block;vertical-align:middle;box-shadow:0 0 28px #b59ce633;}
.bonus-mythic .bonus-dragon-offer:before{display:none;}
.bonus-mythic .bonus-offer-value{vertical-align:middle;}
.bonus-neon .bonus-heading h2{font-family:'JetBrains Mono',monospace!important;text-transform:uppercase;letter-spacing:.06em!important;font-weight:700!important;}
.bonus-neon .bonus-stage{border-radius:6px;box-shadow:0 0 0 1px #f77fcc55,0 0 25px #60d5ef22!important;}
.bonus-neon .bonus-beats span{border-radius:9px;background:#0d1520;border-color:#67d2e766;}
.bonus-neon .bonus-beats .done{color:#b3f6ff;border-color:#75def4;}
.bonus-equalizer{display:flex;height:52px;align-items:center;justify-content:center;margin:0 auto 15px;}
.bonus-equalizer i{width:10px;margin:0 3px;background:linear-gradient(#a2eeff,#8b71eb,#ed74c5);border-radius:2px;opacity:.65;transform-origin:center;}
.phase-rhythm .bonus-equalizer i{animation:equalizerPulse .55s ease-in-out infinite alternate;}
@keyframes equalizerPulse{from{transform:scaleY(.4);opacity:.4;}to{transform:scaleY(1);opacity:1;}}
.bonus-neon .bonus-pulse{border:1px solid #7bcbdf;box-shadow:inset 0 0 14px #000;}
.bonus-neon .pulse-good{background:#384965;}
.bonus-neon .pulse-perfect{background:linear-gradient(90deg,#8557ad,#c77ed3,#8557ad);}
.bonus-ocean .bonus-stage{border-radius:32px;border:3px double #7fc6d3!important;background:radial-gradient(ellipse at 50% 0%,#215366,#081925 75%)!important;}
.bonus-ocean .bonus-seabed{gap:12px;max-width:370px;}
.bonus-ocean .bonus-pick.dive{height:82px;border-radius:15px;border:1px solid #77b9bf;background:radial-gradient(ellipse at 50% 10%,#24546b,#101722 85%);position:relative;overflow:hidden;}
.bonus-ocean .bonus-pick.dive>small{position:absolute;right:6px;bottom:5px;color:#9ddbe4;font:10px 'JetBrains Mono',monospace;}
.bonus-ocean .bonus-pick.dive.revealed{background:radial-gradient(ellipse,#2b666c,#102b37);border-color:#c5e7c3;}
.bonus-ocean .bonus-pick.dive.shark{background:#352335;border-color:#f9a0a8;color:#ffc6cc;}
.bonus-ocean .bonus-haul{padding:10px;border-top:1px solid #79c7cf55;border-bottom:1px solid #79c7cf55;}
/* Keep the themed props within the existing scaled phone canvases. */
.bonus-upright .bonus-art-emblem{margin-top:0;}
.bonus-upright.bonus-lucky .bonus-pick.clover{height:128px;width:100px;}
.bonus-upright.bonus-mythic .bonus-pick.rune{height:178px;width:100px;}
.bonus-upright.bonus-ocean .bonus-pick.dive{height:72px;}
.bonus-sideways .bonus-art-emblem{transform:scale(.75);margin:-10px;}
.bonus-sideways.bonus-lucky .bonus-pick.clover{height:130px;width:76px;}
.bonus-sideways.bonus-lucky .bonus-pick.clover>span{font-size:23px;}
.bonus-sideways.bonus-mythic .bonus-pick.rune{height:176px;width:100px;}
.bonus-sideways .bonus-dragon-art{width:75px!important;height:75px!important;background-size:225px 150px!important;background-position:-150px -75px!important;}
.bonus-sideways .bonus-equalizer{height:25px;margin-bottom:8px;overflow:hidden;}
.bonus-sideways.bonus-ocean .bonus-pick.dive{height:44px;}
.bonus-sideways.bonus-ocean .bonus-hidden-symbol{width:38px!important;height:38px!important;background-size:114px 76px!important;}
.bonus-sideways.bonus-ocean .bonus-seabed{gap:6px;}
.bonus-sideways .bonus-recap{margin:4px 0 10px;}
.bonus-sideways .bonus-recap span{min-height:48px;min-width:60px;padding:5px;font-size:16px;}
.bonus-sideways .bonus-recap-art{display:none;}
@media(prefers-reduced-motion:reduce){.slot-playing:not(.world-classic) .slot-frame,.slot-playing:not(.world-classic) .slot-spin{transition:none;}.slot-playing:not(.world-classic) .slot-win-banner,.slot-playing:not(.world-classic) .slot-hit,.phase-rhythm .bonus-equalizer i{animation:none;}}
html.slot-lite .bonus-equalizer i{animation:none;}
/* Changing bonus stages must not drag the viewport to a newly focused control. */
.slot-bonus{overflow-anchor:none;}
