/* =========================================================
   GainBet — slots: cenários, ambiente, molduras e efeitos de cada máquina (ver slots-fx.js)
   O cenário grande nunca se mexe; o que anda são camadas pequenas por cima (peças .sxp e partículas .fxp),
   só com transform/opacity, para o browser as mover sem redesenhar.
   ========================================================= */

/* ---------- o palco: cenário atrás, máquina e resultado à frente ---------- */
.cg-main .cg-stage[data-game^="slot-"]{position:relative;overflow:hidden;isolation:isolate}
.cg-stage[data-game^="slot-"]>.sl-machine,.cg-stage[data-game^="slot-"]>.cg-result{position:relative;z-index:1}
.sl-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;border-radius:inherit;container-type:size;
  /* a mesma conta do preserveAspectRatio="xMidYMid slice": escala e margens do cenário de 1000×640 */
  --k:max(calc(100cqw / 1000),calc(100cqh / 640));--ox:calc((100cqw - 1000 * var(--k)) / 2);--oy:calc((100cqh - 640 * var(--k)) / 2)}
.sl-scene .sx{position:absolute;inset:0;width:100%;height:100%;display:block}
.sxp>svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible}
.sxp{position:absolute;display:block;left:calc(var(--ox) + var(--bx,0) * var(--k));top:calc(var(--oy) + var(--by,0) * var(--k));width:calc(var(--bw,0) * var(--k));height:calc(var(--bh,0) * var(--k))}
.sl-amb{position:absolute;inset:0;overflow:hidden}
.sl-vig{position:absolute;inset:0;background:radial-gradient(120% 95% at 50% 46%,transparent 45%,rgba(0,0,0,.5)),linear-gradient(rgba(0,0,0,.34),transparent 15%,transparent 82%,rgba(0,0,0,.4))}
.sl-burst{position:absolute;left:50%;top:44%;width:110cqw;aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--m-hi) 55%,transparent),transparent);opacity:0}
.sl-scene.fx-burst .sl-burst{animation:fx-burst 1.7s ease-out}
@keyframes fx-burst{0%{opacity:0;scale:.35}22%{opacity:.85}100%{opacity:0;scale:1.08}}

/* legibilidade por cima do cenário */
.sl-top{position:relative;z-index:2}
.sl-pt{background:rgba(0,0,0,.34);border-color:rgba(255,255,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sl-pt:hover{background:rgba(0,0,0,.5)}
.cg-stage[data-game^="slot-"]>.cg-result{background:rgba(8,5,10,.66);border-color:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.cg-stage[data-game^="slot-"]>.cg-result.is-win{border-color:var(--ok);background:rgba(6,26,16,.74)}
.sl-winbar{position:relative;overflow:hidden;box-shadow:0 10px 26px -14px rgba(0,0,0,.8)}

/* ---------- peças do cenário que se mexem ---------- */
.sl-scene .d1{animation-delay:-.7s}.sl-scene .d2{animation-delay:-1.9s}.sl-scene .d3{animation-delay:-3.1s}
.sl-scene .d4{animation-delay:-4.3s}.sl-scene .d5{animation-delay:-5.5s}.sl-scene .d6{animation-delay:-6.7s}
.sl-scene .tw{animation:sx-tw 3.2s ease-in-out infinite alternate}
.sl-scene .tw.d2,.sl-scene .tw.d5{animation-duration:2.3s}.sl-scene .tw.d3,.sl-scene .tw.d6{animation-duration:4.1s}
@keyframes sx-tw{from{opacity:.12}to{opacity:1}}
.sx-beam{animation:sx-beam 9s ease-in-out infinite alternate}
.sx-beam--l{transform-origin:91.7% 0}
.sx-beam--r{transform-origin:8.3% 0;animation-delay:-4.5s;animation-direction:alternate-reverse}
@keyframes sx-beam{from{rotate:-8deg;opacity:.7}to{rotate:8deg;opacity:1}}
.sx-glow{animation:sx-glow 3.4s ease-in-out infinite alternate}
@keyframes sx-glow{from{opacity:.6;scale:.95}to{opacity:1;scale:1.04}}
.sx-flame{transform-origin:50% 100%;animation:sx-flame .9s ease-in-out infinite alternate}
@keyframes sx-flame{0%{transform:scale(1,1) skewX(0deg)}30%{transform:scale(.93,1.09) skewX(4deg)}65%{transform:scale(1.06,.93) skewX(-4deg)}100%{transform:scale(.97,1.05) skewX(2deg)}}
.sx-swing{transform-origin:50% 0;animation:sx-swing 4.6s ease-in-out infinite alternate}
@keyframes sx-swing{from{rotate:-4deg}to{rotate:4deg}}
.sx-drift{animation:sx-drift 17s ease-in-out infinite alternate}
@keyframes sx-drift{from{translate:-2.6cqw 0}to{translate:2.6cqw 0}}
.sx-bob{animation:sx-bob 10s ease-in-out infinite alternate}
@keyframes sx-bob{from{translate:0 -1.4cqh;rotate:-1.6deg}to{translate:0 1.4cqh;rotate:1.6deg}}
.sx-rays{transform-origin:50% 0;animation:sx-rays 8s ease-in-out infinite alternate}
@keyframes sx-rays{from{opacity:.5;transform:skewX(-5deg)}to{opacity:1;transform:skewX(5deg)}}
.sx-weed{transform-origin:50% 100%;animation:sx-weed 3.8s ease-in-out infinite alternate}
@keyframes sx-weed{from{rotate:-5deg}to{rotate:5deg}}
.sx-grass{transform-origin:50% 100%;animation:sx-grass 3.2s ease-in-out infinite alternate}
@keyframes sx-grass{from{transform:skewX(-7deg)}to{transform:skewX(4deg)}}
.sx-fog{animation:sx-fog 15s ease-in-out infinite alternate}
@keyframes sx-fog{from{translate:-5cqw 0;opacity:.65}to{translate:5cqw 0;opacity:1}}
.sx-neon{animation:sx-neon 7s linear infinite}
.sx-neon--b{animation-duration:9.5s;animation-delay:-3s}
@keyframes sx-neon{0%,17%,23%,58%,100%{opacity:1}18%,22%{opacity:.22}59%{opacity:.4}60%{opacity:1}61%{opacity:.3}62%{opacity:1}}
/* néon: as linhas do chão vêm do horizonte para nós, cada vez mais depressa */
.sx-gl{animation:sx-gl 3.5s cubic-bezier(.55,0,1,1) infinite}
.sx-gl.d1{animation-delay:0s}.sx-gl.d2{animation-delay:-.5s}.sx-gl.d3{animation-delay:-1s}.sx-gl.d4{animation-delay:-1.5s}.sx-gl.d5{animation-delay:-2s}.sx-gl.d6{animation-delay:-2.5s}.sx-gl.d7{animation-delay:-3s}
@keyframes sx-gl{0%{transform:translateY(0);opacity:0}12%{opacity:.55}100%{transform:translateY(210px);opacity:1}}
/* Grand Tour: os pontos de partida pulsam; os continentes passam dentro do globo */
.sx-ping{animation:sx-ping 2.8s ease-out infinite}
@keyframes sx-ping{0%{scale:.45;opacity:.9}100%{scale:1.9;opacity:0}}
.sx-glb-in{position:absolute;inset:1.5%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 38% 35%,#4f93cc,#1d4f80 75%)}
.sx-glb-strip{position:absolute;top:0;bottom:0;left:-200%;width:300%;animation:sx-globe 18s linear infinite}
.sx-glb-strip>svg{display:block;width:100%;height:100%}
@keyframes sx-globe{to{translate:33.3333% 0}}

/* =========================================================
   Partículas (.fxp): o aspeto de cada uma
   ========================================================= */
.fxp{position:absolute;left:0;top:0;display:block;pointer-events:none;--c:#fff}
.fxp>svg{display:block;width:100%;height:100%;fill:currentColor;overflow:visible}
.fxp--coin{width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 36% 32%,#fff7cf 0 16%,#ffd84d 38%,#d39a12 72%,#8a5a00);box-shadow:inset 0 0 0 1.5px rgba(122,74,0,.55)}
.fxp--spark{width:18px;height:18px;background:radial-gradient(circle,#fff 0 11%,transparent 13%),linear-gradient(90deg,transparent 45%,var(--c) 50%,transparent 55%),linear-gradient(transparent 45%,var(--c) 50%,transparent 55%),radial-gradient(circle,color-mix(in srgb,var(--c) 70%,transparent) 0,transparent 58%)}
.fxp--glint{width:18px;height:18px;background:radial-gradient(circle,#fff 0 10%,transparent 12%),linear-gradient(90deg,transparent 46%,var(--c) 50%,transparent 54%),linear-gradient(transparent 46%,var(--c) 50%,transparent 54%),radial-gradient(circle,color-mix(in srgb,var(--c) 60%,transparent) 0,transparent 55%)}
.fxp--drop{width:11px;height:15px;border-radius:50% 50% 50% 50% / 62% 62% 38% 38%;background:radial-gradient(circle at 38% 62%,#ff8aa6 0 14%,var(--c) 48%,#3a0010)}
.fxp--shard{width:11px;height:17px;background:linear-gradient(135deg,#fff 0 18%,var(--c) 46%,color-mix(in srgb,var(--c) 60%,#000));clip-path:polygon(50% 0,100% 34%,72% 100%,28% 100%,0 34%)}
.fxp--line{width:24px;height:3px;border-radius:2px;background:var(--c);box-shadow:0 0 6px var(--c),0 0 14px var(--c)}
.fxp--note{color:var(--c);font:800 20px/1 system-ui,sans-serif;text-shadow:0 0 8px var(--c)}
.fxp--note::before{content:"\266A"}
.fxp--note:nth-child(3n)::before{content:"\266B"}
.fxp--tile{width:15px;height:15px;border-radius:2px;border:1.5px solid #f3f7ff;background:radial-gradient(circle,#f3f7ff 0 16%,transparent 18%),conic-gradient(from 45deg,#1f5bb3 0 25%,#f3f7ff 0 50%,#1f5bb3 0 75%,#f3f7ff 0)}
.fxp--sardine{width:24px;height:8px;border-radius:50% 22% 22% 50% / 50%;background:linear-gradient(#eef4fa,#9fb2c6 55%,#5d6e84)}
.fxp--sardine::after{content:"";position:absolute;right:-6px;top:0;width:8px;height:8px;background:#7d8fa6;clip-path:polygon(0 50%,100% 0,100% 100%)}
.fxp--petal{width:12px;height:9px;border-radius:0 100% 0 100%;background:radial-gradient(circle at 30% 30%,#fff 0 12%,var(--c) 62%)}
.fxp--sprinkle{width:13px;height:4px;border-radius:3px;background:var(--c)}
.fxp--star{width:17px;height:17px;background:var(--c);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.fxp--bubble{width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(220,250,255,.75);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.9) 0 12%,rgba(255,255,255,.08) 32%,transparent 70%)}
.fxp--pearl{width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 20%,#f0e9f5 42%,#bcaecf 85%);box-shadow:0 0 6px rgba(255,255,255,.55)}
.fxp--confetti{width:8px;height:13px;border-radius:1px;background:var(--c)}
.fxp--ball{width:17px;height:17px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#1d1d1d 0 17%,transparent 19%),radial-gradient(circle at 14% 26%,#1d1d1d 0 11%,transparent 13%),radial-gradient(circle at 86% 26%,#1d1d1d 0 11%,transparent 13%),radial-gradient(circle at 28% 88%,#1d1d1d 0 11%,transparent 13%),radial-gradient(circle at 72% 88%,#1d1d1d 0 11%,transparent 13%),radial-gradient(circle at 36% 30%,#fff,#e3e3e3 65%,#a8a8a8)}
.fxp--leaf{width:15px;height:8px;border-radius:0 100% 0 100%;background:linear-gradient(135deg,var(--c),#5a3a0a)}
.fxp--dust{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c) 75%,#fff) 0,transparent 68%)}
.fxp--nugget{width:15px;height:12px;border-radius:45% 55% 40% 60% / 55% 45% 60% 40%;background:radial-gradient(circle at 34% 30%,#fff3b0 0 14%,#f4c443 44%,#a8701a 90%)}
.fxp--mote{width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fff7d8 0 30%,rgba(255,220,150,0) 72%)}
.fxp--orb{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9) 0 9%,color-mix(in srgb,var(--c) 70%,transparent) 32%,transparent 70%)}
.fxp--firefly{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle,#f6ffb0 0 24%,rgba(166,255,107,.6) 46%,transparent 72%)}
.fxp--flash{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,#fff 0 22%,rgba(255,255,255,.45) 44%,transparent 72%)}
.fxp--ripple{width:max(40px,8cqw);height:max(14px,2.6cqw);border-radius:50%;border:1.5px solid rgba(200,250,240,.55)}
.fxp--sand{width:max(26px,4cqw);height:1.5px;background:linear-gradient(90deg,transparent,rgba(240,205,140,.75),transparent)}
.fxp--shoot{width:max(60px,9cqw);height:2px;border-radius:2px;transform-origin:0 50%;background:linear-gradient(90deg,transparent,rgba(124,243,255,.55) 60%,#fff)}
.fxp--bird{width:26px;height:10px;color:#0a1a30}
.fxp--bat{width:28px;height:12px;color:#140a22}
.sl-fx .fxp--bat{filter:drop-shadow(0 0 3px rgba(255,138,31,.9))}
.fxp--plane{width:30px;height:13px;color:#f4ecd8}
.fxp--tram{width:52px;height:29px}
.fxp--koi{width:52px;height:17px}
.fxp--koi .kb{fill:#ff7a2f}.fxp--koi .kp{fill:#fff}
.fxp--koi.fxa--rev .kb{fill:#f6f1e6}.fxp--koi.fxa--rev .kp{fill:#e24a1a}
.fxp--school{width:72px;height:26px;color:#0b2b3d}
.fxp--bird>svg{animation:fx-flap .34s ease-in-out infinite alternate}
.fxp--bat>svg{animation:fx-flap .2s ease-in-out infinite alternate}
@keyframes fx-flap{to{transform:scaleY(.3)}}
.fxp--koi>svg{transform-origin:72% 50%;animation:fx-wag .9s ease-in-out infinite alternate}
@keyframes fx-wag{from{transform:skewY(-5deg)}to{transform:skewY(5deg)}}
.fxp--plane::after{content:"";position:absolute;right:92%;top:50%;width:max(60px,9cqw);height:2px;translate:0 -50%;background:repeating-linear-gradient(90deg,rgba(244,196,67,.85) 0 6px,transparent 6px 12px);-webkit-mask:linear-gradient(90deg,transparent,#000);mask:linear-gradient(90deg,transparent,#000)}

/* =========================================================
   Ambiente (.fxa): as partículas que andam sempre pelo cenário
   ========================================================= */
.fxa{scale:var(--s,1);will-change:translate,opacity}
.fxa.fxp--petal{width:max(10px,1.25cqw);height:max(7px,.9cqw)}
.fxa.fxp--sprinkle{width:max(10px,1.2cqw);height:max(3px,.38cqw)}
.fxa.fxp--dust{width:max(5px,.6cqw);height:max(5px,.6cqw);opacity:.75}
.fxa.fxp--mote{width:max(5px,.55cqw);height:max(5px,.55cqw)}
.fxa.fxp--bubble{width:max(9px,1.3cqw);height:max(9px,1.3cqw)}
.fxa.fxp--bird{width:max(18px,2.6cqw);height:max(7px,1.05cqw)}
.fxa.fxp--bat{width:max(24px,3.4cqw);height:max(10px,1.4cqw)}
.fxa.fxp--plane{width:max(26px,3.6cqw);height:max(11px,1.55cqw)}
.fxa.fxp--tram{width:max(46px,6.6cqw);height:max(25px,3.65cqw)}
.fxa.fxp--koi{width:max(48px,7.4cqw);height:max(16px,2.5cqw);opacity:.92}
.fxa.fxp--school{width:max(64px,10cqw);height:max(23px,3.5cqw);opacity:.7}
.sl-m--savanna .fxp--bird{color:#2a0f0a}
.fxa--rev{animation-direction:reverse!important;scale:calc(var(--s,1) * -1) var(--s,1)}
.fxa.fxp--petal,.fxa.fxp--sprinkle,.fxa.fxp--dust{animation:fxa-fall var(--d) ease-in-out var(--delay) infinite,fxa-spin calc(var(--d) / 2.5) linear var(--delay) infinite}
.fxa.fxp--mote,.fxa.fxp--orb,.fxa.fxp--spark{animation:fxa-float var(--d) ease-in-out var(--delay) infinite}
.fxa.fxp--spark{width:12px;height:12px}
.fxa.fxp--firefly{animation:fxa-wander var(--d) ease-in-out var(--delay) infinite,fxa-blink calc(var(--d) / 3) ease-in-out var(--delay) infinite}
.fxa.fxp--bubble{animation:fxa-rise var(--d) ease-in-out var(--delay) infinite}
.fxa.fxp--glint{translate:var(--x) var(--y);animation:fxa-twinkle var(--d) ease-in-out var(--delay) infinite}
.fxa.fxp--flash{translate:var(--x) var(--y);animation:fxa-flash var(--d) linear var(--delay) infinite}
.fxa.fxp--ripple{translate:var(--x) var(--y);animation:fxa-ripple var(--d) ease-out var(--delay) infinite}
.fxa.fxp--bird,.fxa.fxp--bat,.fxa.fxp--plane,.fxa.fxp--tram,.fxa.fxp--school,.fxa.fxp--koi,.fxa.fxp--sand{animation:fxa-cross var(--d) linear var(--delay) infinite}
.fxa.fxp--shoot{translate:var(--x) var(--y);rotate:155deg;animation:fxa-shoot var(--d) linear var(--delay) infinite}
@keyframes fxa-fall{0%{translate:var(--x) -6cqh;opacity:0}6%{opacity:.9}25%{translate:calc(var(--x) + var(--drift)) 20cqh}50%{translate:var(--x) 47cqh}75%{translate:calc(var(--x) + var(--drift)) 74cqh}94%{opacity:.9}100%{translate:var(--x) 104cqh;opacity:0}}
@keyframes fxa-spin{to{rotate:360deg}}
@keyframes fxa-float{0%{translate:var(--x) var(--y);opacity:0}25%,75%{opacity:.85}100%{translate:calc(var(--x) + var(--drift)) calc(var(--y) - 16cqh);opacity:0}}
@keyframes fxa-rise{0%{translate:var(--x) 104cqh;opacity:0}8%{opacity:.85}30%{translate:calc(var(--x) + var(--drift) * .5) 72cqh}60%{translate:calc(var(--x) - var(--drift) * .5) 40cqh}90%{opacity:.85}100%{translate:var(--x) 4cqh;opacity:0}}
@keyframes fxa-twinkle{0%,100%{scale:0;opacity:0;rotate:0deg}9%{scale:var(--s,1);opacity:1;rotate:45deg}18%{scale:0;opacity:0;rotate:90deg}}
@keyframes fxa-flash{0%,88%,100%{opacity:0;scale:.3}90%{opacity:1;scale:1.2}93%{opacity:0;scale:.6}}
@keyframes fxa-ripple{0%{scale:.25;opacity:0}12%{opacity:.7}100%{scale:1.5;opacity:0}}
@keyframes fxa-wander{0%,100%{translate:var(--x) var(--y)}25%{translate:calc(var(--x) + var(--drift)) calc(var(--y) - 4cqh)}50%{translate:calc(var(--x) + var(--drift) * .3) calc(var(--y) + 3cqh)}75%{translate:calc(var(--x) - var(--drift) * .6) calc(var(--y) - 2cqh)}}
@keyframes fxa-blink{0%,100%{opacity:.12}50%{opacity:1}}
@keyframes fxa-cross{0%{translate:-16cqw var(--y)}25%{translate:16cqw calc(var(--y) - 2cqh)}50%{translate:47cqw var(--y)}75%{translate:78cqw calc(var(--y) + 2cqh)}100%{translate:112cqw var(--y)}}
@keyframes fxa-shoot{0%{transform:translateX(0);opacity:0}1.5%{opacity:1}8%{transform:translateX(30cqw);opacity:0}100%{transform:translateX(30cqw);opacity:0}}

/* =========================================================
   Camada das partículas dos prémios e da paragem dos rolos
   ========================================================= */
.sl-fx{position:absolute;inset:-14px;z-index:4;pointer-events:none;overflow:hidden}
@media(max-width:600px){.sl-fx{inset:-10px}}

/* ---------- rolos: paragem, suspense, brilho ao começar ---------- */
.sl-reel.is-land::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;z-index:2;pointer-events:none;background:linear-gradient(transparent,color-mix(in srgb,var(--m-hi) 42%,transparent));animation:fx-fade .5s ease-out forwards}
@keyframes fx-fade{from{opacity:1}to{opacity:0}}
.sl-reel.is-tease{animation:fx-tease .5s ease-in-out infinite alternate}
@keyframes fx-tease{from{box-shadow:0 0 0 2px var(--m-hi),0 0 14px var(--m-hi)}to{box-shadow:0 0 0 3px #fff,0 0 34px 5px var(--m-hi)}}
.sl-reel.is-tease::before{content:"";position:absolute;left:0;right:0;top:-50%;height:200%;z-index:2;pointer-events:none;background:linear-gradient(transparent 40%,color-mix(in srgb,var(--m-hi) 40%,transparent) 50%,transparent 60%);animation:fx-scan .65s linear infinite}
@keyframes fx-scan{from{translate:0 -25%}to{translate:0 25%}}
.sl-frame{position:relative}
.sl-frame::after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.3) 50%,transparent 60%) no-repeat;background-size:300% 100%}
.sl-machine.fx-spin .sl-frame::after{animation:fx-shine .75s ease-out}
@keyframes fx-shine{0%{opacity:1;background-position:120% 0}100%{opacity:1;background-position:-20% 0}}
.sl-winbar[data-state="win"]::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 35%,color-mix(in srgb,var(--m-hi) 32%,transparent) 50%,transparent 65%) no-repeat;background-size:300% 100%;animation:fx-shine 1.2s ease-out .15s both}

/* ---------- prémio: a moldura acende; a partir de 5× dá um pequeno salto ---------- */
.sl-machine.fx-win .sl-frame{animation:fx-frame 1s ease-out}
.sl-machine.fx-win--big .sl-frame{animation:fx-frame 1.1s ease-out 2,fx-thump .55s cubic-bezier(.3,1.7,.5,1)}
@keyframes fx-frame{0%{box-shadow:inset 0 0 0 2px var(--m-frame-hi),0 0 0 0 transparent}35%{box-shadow:inset 0 0 0 2px var(--m-frame-hi),0 0 32px 5px var(--m-hi)}100%{box-shadow:inset 0 0 0 2px var(--m-frame-hi),0 14px 32px -18px rgba(0,0,0,.7)}}
@keyframes fx-thump{0%,100%{scale:1}30%{scale:1.028}}
.sl-machine.fx-win .sl-ring,.sl-machine.fx-win--big .sl-ring{animation:fx-ringwin 1s ease-out}
.sl-machine.fx-win--big .sl-logo{transform-origin:0 50%;animation:fx-logowin .6s ease-out 3}
@keyframes fx-logowin{40%{scale:1.07}}
@keyframes fx-ringwin{30%{filter:brightness(1.9)}}

/* ---------- grande prémio: as cores do tema, o símbolo da máquina e a chuva ---------- */
.sl-big{background:radial-gradient(circle,color-mix(in srgb,var(--m-bg) 55%,rgba(0,0,0,.6)),color-mix(in srgb,var(--m-bg) 40%,rgba(0,0,0,.94)) 76%)}
.sl-big::before{background:repeating-conic-gradient(color-mix(in srgb,var(--m-hi) 13%,transparent) 0 9deg,transparent 9deg 18deg)}
.sl-big-in{z-index:2}
.fx-rain{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.fx-emblem{width:clamp(72px,13vw,128px);aspect-ratio:1;margin-bottom:2px;animation:fx-emblem .9s cubic-bezier(.3,1.5,.5,1) both,fx-hover 2.2s ease-in-out .9s infinite alternate}
.fx-emblem svg{display:block;width:100%;height:100%;filter:drop-shadow(0 0 16px var(--m-hi)) drop-shadow(0 6px 10px rgba(0,0,0,.5))}
@keyframes fx-emblem{0%{scale:0;rotate:-25deg;opacity:0}60%{scale:1.15;rotate:6deg;opacity:1}100%{scale:1;rotate:0deg;opacity:1}}
@keyframes fx-hover{from{translate:0 -4px}to{translate:0 5px}}

/* =========================================================
   Molduras: a fita decorativa (.sl-ring) e os enfeites de cada tema
   ========================================================= */
.sl-ring{--ri:2px;--rw:0px;--rr:var(--rw);position:absolute;inset:var(--ri);z-index:0;border-radius:calc(18px - var(--ri));padding:var(--rr);overflow:hidden;pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.sl-ring::before,.sl-ring::after{content:"";position:absolute;inset:0;border:var(--rr) solid transparent}
.sl-ring>i{position:absolute;left:50%;top:50%;width:150%;aspect-ratio:1;translate:-50% -50%}
@media(max-width:600px){.sl-ring{--ri:1px;--rr:min(var(--rw),4px);border-radius:13px}}
@keyframes fx-rot{to{rotate:360deg}}
@keyframes fx-bulb{0%,49.9%{opacity:1}50%,100%{opacity:.25}}
/* Ruby Sevens: lâmpadas de casino a piscar (mais depressa enquanto roda e nos prémios) */
.sl-m--sevens .sl-ring{--rw:6px;background:#4a0610}
.sl-m--sevens .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.4' cy='.38' r='.62'%3E%3Cstop offset='0' stop-color='%23fffbe0'/%3E%3Cstop offset='.55' stop-color='%23ffd84d'/%3E%3Cstop offset='1' stop-color='%23d98a00'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23b)'%3E%3Ccircle cx='12' cy='3' r='2.4'/%3E%3Ccircle cx='12' cy='21' r='2.4'/%3E%3Ccircle cx='3' cy='12' r='2.4'/%3E%3Ccircle cx='21' cy='12' r='2.4'/%3E%3C/g%3E%3C/svg%3E") 6 round;animation:fx-bulb .9s linear infinite}
.sl-m--sevens .sl-ring::after{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CradialGradient id='b' cx='.4' cy='.38' r='.62'%3E%3Cstop offset='0' stop-color='%23fffbe0'/%3E%3Cstop offset='.55' stop-color='%23ffd84d'/%3E%3Cstop offset='1' stop-color='%23d98a00'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23b)'%3E%3Ccircle cx='6' cy='3' r='2.4'/%3E%3Ccircle cx='18' cy='3' r='2.4'/%3E%3Ccircle cx='6' cy='21' r='2.4'/%3E%3Ccircle cx='18' cy='21' r='2.4'/%3E%3Ccircle cx='3' cy='6' r='2.4'/%3E%3Ccircle cx='3' cy='18' r='2.4'/%3E%3Ccircle cx='21' cy='6' r='2.4'/%3E%3Ccircle cx='21' cy='18' r='2.4'/%3E%3C/g%3E%3C/svg%3E") 6 round;animation:fx-bulb .9s linear -.45s infinite}
.sl-machine.is-spinning .sl-ring::before,.sl-machine.is-spinning .sl-ring::after{animation-duration:.32s}
.sl-machine.is-spinning .sl-ring::after{animation-delay:-.16s}
.sl-machine.fx-win--big .sl-ring::before,.sl-machine.fx-win--big .sl-ring::after{animation-duration:.22s}
/* Grand Cru: um filete de latão com um reflexo a passar */
.sl-m--grandcru .sl-ring{--rw:3px;background:linear-gradient(#e9c46a,#9a6a1c)}
.sl-m--grandcru .sl-ring>i{left:0;top:-25%;width:22%;height:150%;aspect-ratio:auto;translate:-120% 0;rotate:18deg;background:linear-gradient(90deg,transparent,#fff6d0,transparent);animation:fx-sweep 6.5s ease-in-out infinite}
@keyframes fx-sweep{0%,55%{translate:-120% 0}100%{translate:560% 0}}
/* Crystal Cavern: luz a refratar à volta da moldura */
.sl-m--crystal .sl-ring{--rw:4px;background:rgba(98,245,220,.25)}
.sl-m--crystal .sl-ring>i{background:conic-gradient(transparent 0 8%,#c9fff4 14%,transparent 20% 40%,#f3d6ff 46%,transparent 52% 70%,#9fd8ff 76%,transparent 82%);animation:fx-rot 14s linear infinite}
/* Neon Nights: tubo de néon com brilho que falha de vez em quando */
.sl-m--neon .sl-ring{--rw:2px;background:#9ff8ff}
.sl-m--neon .sl-frame::before{content:"";position:absolute;inset:-2px;z-index:0;border-radius:20px;pointer-events:none;box-shadow:0 0 0 2px #ff47ad,0 0 14px 2px rgba(255,71,173,.85),0 0 42px 6px rgba(255,71,173,.42),inset 0 0 14px rgba(255,71,173,.45);animation:sx-neon 6s linear infinite}
/* Lisboa 28: uma barra de azulejos */
.sl-m--lisboa .sl-ring{--rw:8px;--ri:1px}
.sl-m--lisboa .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E%3Cdefs%3E%3Cg id='t'%3E%3Crect width='8' height='8' fill='%23f3f7ff'/%3E%3Cpath d='M4 .9L7.1 4L4 7.1L.9 4Z' fill='none' stroke='%231f5bb3' stroke-width='.9'/%3E%3Ccircle cx='4' cy='4' r='1.1' fill='%231f5bb3'/%3E%3Cpath d='M0 0h1.8L0 1.8ZM8 0v1.8L6.2 0ZM0 8v-1.8L1.8 8ZM8 8h-1.8L8 6.2Z' fill='%231f5bb3'/%3E%3C/g%3E%3C/defs%3E%3Cuse href='%23t' xlink:href='%23t' x='0' y='0'/%3E%3Cuse href='%23t' xlink:href='%23t' x='0' y='8'/%3E%3Cuse href='%23t' xlink:href='%23t' x='0' y='16'/%3E%3Cuse href='%23t' xlink:href='%23t' x='8' y='0'/%3E%3Cuse href='%23t' xlink:href='%23t' x='8' y='16'/%3E%3Cuse href='%23t' xlink:href='%23t' x='16' y='0'/%3E%3Cuse href='%23t' xlink:href='%23t' x='16' y='8'/%3E%3Cuse href='%23t' xlink:href='%23t' x='16' y='16'/%3E%3C/svg%3E") 8 round}
/* Koi Garden: filete dourado e cantoneiras */
.sl-m--koi .sl-ring{--rw:2px;background:#e8b04a}
.sl-m--koi .sl-frame::before{content:"";position:absolute;inset:-6px;z-index:2;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M2 24V7Q2 2 7 2H24' fill='none' stroke='%23f2c45a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='8' r='2.6' fill='%23f2c45a'/%3E%3C/svg%3E") left top/26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M24 24V7Q24 2 19 2H2' fill='none' stroke='%23f2c45a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='18' cy='8' r='2.6' fill='%23f2c45a'/%3E%3C/svg%3E") right top/26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M2 2V19Q2 24 7 24H24' fill='none' stroke='%23f2c45a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='18' r='2.6' fill='%23f2c45a'/%3E%3C/svg%3E") left bottom/26px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Cpath d='M24 2V19Q24 24 19 24H2' fill='none' stroke='%23f2c45a' stroke-width='3' stroke-linecap='round'/%3E%3Ccircle cx='18' cy='18' r='2.6' fill='%23f2c45a'/%3E%3C/svg%3E") right bottom/26px no-repeat}
/* Candy Clouds: riscas de bengala de açúcar (andam enquanto roda) */
.sl-m--candy .sl-ring{--rw:6px}
.sl-m--candy .sl-ring>i{inset:-30px;width:auto;aspect-ratio:auto;translate:0 0;background:repeating-linear-gradient(45deg,#ff5a9a 0 7px,#fff4fa 7px 14px);animation:fx-candy 1.4s linear infinite paused}
.sl-machine.is-spinning .sl-ring>i{animation-play-state:running}
@keyframes fx-candy{to{translate:19.8px 0}}
/* Orbit: uma luz a dar a volta à moldura, como um satélite */
.sl-m--orbit .sl-ring{--rw:3px;background:rgba(138,216,255,.22)}
.sl-m--orbit .sl-ring>i{background:conic-gradient(transparent 0 76%,rgba(124,243,255,.55) 92%,#fff 99%,transparent 100%);animation:fx-rot 5s linear infinite}
/* Atlantic Treasure: rebites de latão */
.sl-m--atlantic .sl-ring{--rw:6px}
.sl-m--atlantic .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Cdefs%3E%3CradialGradient id='r' cx='.4' cy='.38' r='.62'%3E%3Cstop offset='0' stop-color='%23fff3c8'/%3E%3Cstop offset='.55' stop-color='%23c99a3a'/%3E%3Cstop offset='1' stop-color='%235a3a08'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23r)' stroke='%233a2406' stroke-width='.5'%3E%3Ccircle cx='15' cy='3' r='2.1'/%3E%3Ccircle cx='15' cy='27' r='2.1'/%3E%3Ccircle cx='3' cy='15' r='2.1'/%3E%3Ccircle cx='27' cy='15' r='2.1'/%3E%3C/g%3E%3C/svg%3E") 6 round}
/* Grand Tour: uma rota a tracejado à volta da moldura */
.sl-m--grandtour .sl-ring{--rw:3px}
.sl-m--grandtour .sl-ring>i{background:repeating-conic-gradient(#f4c443 0 2.2deg,transparent 2.2deg 5deg);animation:fx-rot 60s linear infinite}
/* Golden Goal: a rede da baliza */
.sl-m--goal .sl-ring{--rw:7px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.75) 0 1px,transparent 1px 6px),repeating-linear-gradient(-45deg,rgba(255,255,255,.75) 0 1px,transparent 1px 6px),#0f4a1a}
/* Savanna: triângulos tribais */
.sl-m--savanna .sl-ring{--rw:6px}
.sl-m--savanna .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' fill='%23e08a3a'/%3E%3Cg fill='%232a1206'%3E%3Crect width='8' height='8'/%3E%3Crect x='16' width='8' height='8'/%3E%3Crect y='16' width='8' height='8'/%3E%3Crect x='16' y='16' width='8' height='8'/%3E%3Cpath d='M8 0H16L12 5Z'/%3E%3Cpath d='M8 24H16L12 19Z'/%3E%3Cpath d='M0 8V16L5 12Z'/%3E%3Cpath d='M24 8V16L19 12Z'/%3E%3C/g%3E%3Cg fill='%23fff3d6'%3E%3Ccircle cx='12' cy='6.6' r='.8'/%3E%3Ccircle cx='12' cy='17.4' r='.8'/%3E%3Ccircle cx='6.6' cy='12' r='.8'/%3E%3Ccircle cx='17.4' cy='12' r='.8'/%3E%3Ccircle cx='4' cy='4' r='1.1'/%3E%3Ccircle cx='20' cy='4' r='1.1'/%3E%3Ccircle cx='4' cy='20' r='1.1'/%3E%3Ccircle cx='20' cy='20' r='1.1'/%3E%3C/g%3E%3C/svg%3E") 8 round}
/* Pumpkin Night: teias de aranha nos cantos */
.sl-m--pumpkin .sl-ring{--rw:2px;background:linear-gradient(90deg,#ff8a1f,#c58bff,#ff8a1f)}
.sl-m--pumpkin .sl-frame::before{content:"";position:absolute;left:-7px;right:-7px;top:-7px;height:70px;z-index:2;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' viewBox='0 0 70 70'%3E%3Cpath d='M0 0L70.0 0.0M0 0L66.6 21.6M0 0L56.6 41.1M0 0L41.1 56.6M0 0L21.6 66.6M0 0L0.0 70.0M14.0 0.0Q11.3 1.8 13.3 4.3M13.3 4.3Q10.2 5.2 11.3 8.2M11.3 8.2Q8.1 8.1 8.2 11.3M8.2 11.3Q5.2 10.2 4.3 13.3M4.3 13.3Q1.8 11.3 0.0 14.0M27.0 0.0Q21.9 3.5 25.7 8.3M25.7 8.3Q19.7 10.1 21.8 15.9M21.8 15.9Q15.7 15.7 15.9 21.8M15.9 21.8Q10.1 19.7 8.3 25.7M8.3 25.7Q3.5 21.9 0.0 27.0M41.0 0.0Q33.2 5.3 39.0 12.7M39.0 12.7Q30.0 15.3 33.2 24.1M33.2 24.1Q23.8 23.8 24.1 33.2M24.1 33.2Q15.3 30.0 12.7 39.0M12.7 39.0Q5.3 33.2 0.0 41.0M56.0 0.0Q45.4 7.2 53.3 17.3M53.3 17.3Q40.9 20.8 45.3 32.9M45.3 32.9Q32.5 32.5 32.9 45.3M32.9 45.3Q20.8 40.9 17.3 53.3M17.3 53.3Q7.2 45.4 0.0 56.0' fill='none' stroke='%23e9e2ff' stroke-opacity='.55' stroke-width='.8'/%3E%3Cg%3E%3Cpath d='M44 44V60' stroke='%23e9e2ff' stroke-opacity='.5' stroke-width='.6'/%3E%3Ccircle cx='44' cy='62' r='3' fill='%231a0d2a'/%3E%3Cpath d='M40 60L37 58M40 63L36 64M48 60L51 58M48 63L52 64' stroke='%231a0d2a' stroke-width='.9'/%3E%3C/g%3E%3C/svg%3E") left top/70px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' viewBox='0 0 70 70'%3E%3Cpath d='M0 0L70.0 0.0M0 0L66.6 21.6M0 0L56.6 41.1M0 0L41.1 56.6M0 0L21.6 66.6M0 0L0.0 70.0M14.0 0.0Q11.3 1.8 13.3 4.3M13.3 4.3Q10.2 5.2 11.3 8.2M11.3 8.2Q8.1 8.1 8.2 11.3M8.2 11.3Q5.2 10.2 4.3 13.3M4.3 13.3Q1.8 11.3 0.0 14.0M27.0 0.0Q21.9 3.5 25.7 8.3M25.7 8.3Q19.7 10.1 21.8 15.9M21.8 15.9Q15.7 15.7 15.9 21.8M15.9 21.8Q10.1 19.7 8.3 25.7M8.3 25.7Q3.5 21.9 0.0 27.0M41.0 0.0Q33.2 5.3 39.0 12.7M39.0 12.7Q30.0 15.3 33.2 24.1M33.2 24.1Q23.8 23.8 24.1 33.2M24.1 33.2Q15.3 30.0 12.7 39.0M12.7 39.0Q5.3 33.2 0.0 41.0M56.0 0.0Q45.4 7.2 53.3 17.3M53.3 17.3Q40.9 20.8 45.3 32.9M45.3 32.9Q32.5 32.5 32.9 45.3M32.9 45.3Q20.8 40.9 17.3 53.3M17.3 53.3Q7.2 45.4 0.0 56.0' fill='none' stroke='%23e9e2ff' stroke-opacity='.55' stroke-width='.8' transform='translate(70 0) scale(-1 1)'/%3E%3Cg transform='translate(70 0) scale(-1 1)'%3E%3Cpath d='M44 44V60' stroke='%23e9e2ff' stroke-opacity='.5' stroke-width='.6'/%3E%3Ccircle cx='44' cy='62' r='3' fill='%231a0d2a'/%3E%3Cpath d='M40 60L37 58M40 63L36 64M48 60L51 58M48 63L52 64' stroke='%231a0d2a' stroke-width='.9'/%3E%3C/g%3E%3C/svg%3E") right top/70px no-repeat}
/* Gold Rush: pregos na madeira */
.sl-m--goldrush .sl-ring{--rw:6px}
.sl-m--goldrush .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3E%3Ccircle cx='15' cy='3' r='2' fill='%2324140a'/%3E%3Ccircle cx='14.4' cy='2.4' r='.7' fill='%23c9a46a'/%3E%3Ccircle cx='15' cy='27' r='2' fill='%2324140a'/%3E%3Ccircle cx='14.4' cy='26.4' r='.7' fill='%23c9a46a'/%3E%3Ccircle cx='3' cy='15' r='2' fill='%2324140a'/%3E%3Ccircle cx='2.4' cy='14.4' r='.7' fill='%23c9a46a'/%3E%3Ccircle cx='27' cy='15' r='2' fill='%2324140a'/%3E%3Ccircle cx='26.4' cy='14.4' r='.7' fill='%23c9a46a'/%3E%3C/svg%3E") 6 round}
/* Golden Scarab: colar egípcio */
.sl-m--scarab .sl-ring{--rw:6px}
.sl-m--scarab .sl-ring::before{border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' fill='%23e9c46a'/%3E%3Crect x='8' y='0' width='2' height='8' fill='%23e9c46a'/%3E%3Crect x='8' y='16' width='2' height='8' fill='%23e9c46a'/%3E%3Crect x='0' y='8' width='8' height='2' fill='%23e9c46a'/%3E%3Crect x='16' y='8' width='8' height='2' fill='%23e9c46a'/%3E%3Crect x='10' y='0' width='2' height='8' fill='%231f3fa8'/%3E%3Crect x='10' y='16' width='2' height='8' fill='%231f3fa8'/%3E%3Crect x='0' y='10' width='8' height='2' fill='%231f3fa8'/%3E%3Crect x='16' y='10' width='8' height='2' fill='%231f3fa8'/%3E%3Crect x='12' y='0' width='2' height='8' fill='%23e9c46a'/%3E%3Crect x='12' y='16' width='2' height='8' fill='%23e9c46a'/%3E%3Crect x='0' y='12' width='8' height='2' fill='%23e9c46a'/%3E%3Crect x='16' y='12' width='8' height='2' fill='%23e9c46a'/%3E%3Crect x='14' y='0' width='2' height='8' fill='%232fc4b2'/%3E%3Crect x='14' y='16' width='2' height='8' fill='%232fc4b2'/%3E%3Crect x='0' y='14' width='8' height='2' fill='%232fc4b2'/%3E%3Crect x='16' y='14' width='8' height='2' fill='%232fc4b2'/%3E%3Cg fill='%231f3fa8'%3E%3Ccircle cx='4' cy='4' r='1.6'/%3E%3Ccircle cx='20' cy='4' r='1.6'/%3E%3Ccircle cx='4' cy='20' r='1.6'/%3E%3Ccircle cx='20' cy='20' r='1.6'/%3E%3C/g%3E%3C/svg%3E") 8 round}

/* ---------- o nome de cada máquina, no estilo do tema ---------- */
.sl-logo{position:relative}
/* (gradientes parados: um brilho a passar obrigaria o browser a redesenhar o nome a cada imagem) */
.sl-m--sevens .sl-logo,.sl-m--crystal .sl-logo,.sl-m--goldrush .sl-logo,.sl-m--atlantic .sl-logo{-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.sl-m--sevens .sl-logo{background-image:linear-gradient(#fff7cf 10%,#ffd84d 48%,#e3a01a 86%);filter:drop-shadow(0 2px 0 #6a0a14) drop-shadow(0 0 12px rgba(255,200,80,.45))}
.sl-m--crystal .sl-logo{background-image:linear-gradient(100deg,#e6fffb 10%,#a8fff0 40%,#d9b8ff 70%,#62f5dc 95%);filter:drop-shadow(0 0 10px rgba(98,245,220,.55))}
.sl-m--goldrush .sl-logo{background-image:linear-gradient(#fff3b0 8%,#f4c443 50%,#a8701a 92%);filter:drop-shadow(0 2px 0 #3a1a06) drop-shadow(0 0 10px rgba(244,196,67,.4))}
.sl-m--atlantic .sl-logo{background-image:linear-gradient(#ffffff 10%,#9fe8ff 50%,#3fb8d8 92%);filter:drop-shadow(0 2px 0 #021620) drop-shadow(0 0 10px rgba(159,232,255,.45))}
.sl-m--grandcru .sl-logo{color:#f3d792;letter-spacing:.09em;text-shadow:0 2px 0 #3a0a14,0 0 16px rgba(201,162,74,.45)}
.sl-m--neon .sl-logo{animation:sx-neon 8s linear -2s infinite}
.sl-m--lisboa .sl-logo{color:#ffd23f;text-shadow:2px 2px 0 #1f5bb3,0 0 16px rgba(255,210,63,.35)}
.sl-m--koi .sl-logo{color:#ffd9a8;text-shadow:0 2px 0 #b3261e,0 0 16px rgba(255,107,61,.45)}
.sl-m--candy .sl-logo{color:#fff0f8;text-shadow:2px 2px 0 #ff5a9a,4px 4px 0 #7b5cff}
.sl-m--orbit .sl-logo{letter-spacing:.12em}
.sl-m--grandtour .sl-logo{color:#ffe7a0;text-shadow:0 2px 0 #061a30,0 0 14px rgba(244,196,67,.4)}
.sl-m--goal .sl-logo{color:#ffe14d;text-shadow:0 2px 0 #0f4a1a,0 0 16px rgba(255,225,77,.4)}
.sl-m--savanna .sl-logo{color:#ffd27a;text-shadow:0 2px 0 #4a1a06,0 0 18px rgba(255,140,60,.5)}
.sl-m--pumpkin .sl-logo{animation:fx-candle 3s ease-in-out infinite alternate}
@keyframes fx-candle{0%,100%{opacity:1}40%{opacity:.82}55%{opacity:.95}70%{opacity:.78}}
.sl-m--scarab .sl-logo{color:#ffe08a;text-shadow:0 2px 0 #0b2470,0 0 16px rgba(91,140,255,.5)}

/* ---------- reduzir movimento: só o cenário parado ---------- */
@media(prefers-reduced-motion:reduce){
  .sl-scene *,.sl-ring,.sl-ring::before,.sl-ring::after,.sl-ring>i,.sl-frame::before,.sl-frame::after,.sl-logo,.sl-reel,.sl-reel::before,.sl-reel::after,.sl-winbar::after,.sl-machine .sl-frame,.fx-emblem{animation:none!important}
  .sl-amb,.sl-fx,.sl-burst{display:none}
}
