.reel-frame{isolation:isolate;overflow:hidden}.reels{position:relative;z-index:1}.reel{position:relative;min-width:0}.reel.rolling{display:block;height:283px;background:radial-gradient(ellipse,#fff8e5,#e5dac0)}.reel.rolling .cell{animation:none;filter:none}.spin-strip{animation:reel-travel var(--speed,.4s) linear infinite;will-change:transform}.spin-symbol{height:94.333px;display:flex;align-items:center;justify-content:center;flex-direction:column;filter:blur(1px);opacity:.8}.spin-symbol img,.spin-symbol svg{width:80px;height:74px;object-fit:contain;mix-blend-mode:multiply}.spin-symbol small{display:none}.reel.rolling:after{content:'';position:absolute;inset:0;background:linear-gradient(#142f2a55,transparent 25%,transparent 75%,#142f2a55);pointer-events:none}.reel.landed .cell{animation:reel-land .34s cubic-bezier(.2,.8,.3,1)}.machine.is-spinning .spin b{animation:spin-icon 1s linear infinite}.machine.is-spinning .reel-frame{box-shadow:0 0 20px #e6c47038,0 3px 15px #0007}.machine.is-winning .reel-frame{box-shadow:0 0 26px #f3ce6850}.cell.hit img,.cell.hit svg{animation:symbol-celebrate .65s ease-in-out 3}.cell.hit{animation:glow .8s ease-in-out 3 alternate}.effects-layer{position:absolute;inset:0;overflow:hidden;z-index:7;pointer-events:none}.winning-lines{position:absolute;inset:5px;width:calc(100% - 10px);height:calc(100% - 10px);z-index:2;pointer-events:none}.winning-lines polyline{fill:none;stroke:#e4a92f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #fff0ba);stroke-dasharray:600;stroke-dashoffset:600;animation:line-trace .8s ease-out var(--line-delay,0s) forwards;opacity:.7}.celebration{z-index:5;overflow:hidden;animation:celebration-in .35s ease-out;background:radial-gradient(ellipse,#123a31ed,#102d2ae8)}.celebration:before{content:'';position:absolute;width:550px;height:550px;z-index:-1;background:repeating-conic-gradient(from 0deg,transparent 0deg 19deg,#ffe5a00c 20deg 30deg);animation:sunburst 14s linear 1}.celebration:after{content:'✦';color:#f5d483;position:absolute;top:12%;font-size:25px;animation:star-in .6s ease-out}.celebration strong{background:linear-gradient(#fff4ca,#f4cd6e 55%,#c89935);background-clip:text;color:transparent;filter:drop-shadow(0 4px 1px #725324);animation:amount-in .5s cubic-bezier(.2,1.4,.4,1)}.celebration>span{margin-top:20px;font-size:22px}.celebration small{margin-top:9px;color:#e2d4a6}.celebration.nice strong{font-size:60px}.celebration.mega strong{font-size:85px}.celebration.bonus-reveal{background:radial-gradient(ellipse,#245e4bf2,#102e29f5)}.bonus-reveal strong{font-size:80px}.bonus-reveal:after{content:'✦ ✦ ✦';font-size:18px;letter-spacing:14px;left:14px;width:100%;text-align:center}.gold-coin,.gold-spark{position:absolute;left:var(--x);top:50%;display:block;animation:coin-burst var(--life) cubic-bezier(.12,.45,.4,1) var(--delay) both}.gold-coin{width:17px;height:17px;border:2px solid #f9de90;border-radius:50%;background:linear-gradient(135deg,#ffe9a1,#bb802b);box-shadow:inset 0 0 0 2px #bb8e3c,0 2px 5px #0003}.gold-spark{width:5px;height:9px;background:#f0ce79;border-radius:1px}.bonus-awarded{animation:bonus-pop .5s ease-out 2}.spin{position:relative;overflow:hidden}.spin:after{content:'';position:absolute;inset:-40%;background:linear-gradient(110deg,transparent 40%,#fff6cf77 50%,transparent 60%);transform:translateX(-100%) rotate(-12deg);pointer-events:none}.spin:hover:not(:disabled):after{animation:button-shine .65s ease-out}.machine{animation:machine-enter .7s ease-out both}.intro{animation:machine-enter .6s ease-out both}.bonus-mode .machine-crown{color:#ffe2a0}.top-actions button{white-space:nowrap}.bet-control button{position:relative}.bet-control button:after{content:'';position:absolute;inset:-7px}
@keyframes reel-travel{from{transform:translateY(-50%)}to{transform:translateY(0)}}@keyframes reel-land{0%{transform:translateY(-12px)}55%{transform:translateY(5px)}100%{transform:translateY(0)}}@keyframes spin-icon{to{transform:rotate(360deg)}}@keyframes symbol-celebrate{0%,100%{transform:scale(1)}50%{transform:scale(1.1) translateY(-2px)}}@keyframes line-trace{to{stroke-dashoffset:0}}@keyframes celebration-in{from{opacity:0}to{opacity:1}}@keyframes amount-in{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes star-in{from{opacity:0;transform:scale(.5) rotate(-40deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes sunburst{to{transform:rotate(70deg)}}@keyframes coin-burst{0%{opacity:0;transform:translate(0,30px) scale(.5) rotate(0)}15%{opacity:1}55%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-190px) scale(.9) rotate(var(--turn))}}@keyframes bonus-pop{50%{transform:scale(1.1);box-shadow:0 0 20px #f2c76170}}@keyframes button-shine{to{transform:translateX(100%) rotate(-12deg)}}@keyframes machine-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.reel.rolling{height:262px}.spin-symbol{height:87.333px}.spin-symbol img,.spin-symbol svg{width:64px;height:60px}.top-actions #motion span{display:none}.celebration>span{font-size:17px;letter-spacing:2px}.celebration strong,.celebration.nice strong{font-size:48px}.celebration.mega strong,.bonus-reveal strong{font-size:62px}.celebration:after{top:9%;font-size:18px}.celebration small{font-size:8px;letter-spacing:1.5px}}
@media(max-width:420px){.reel.rolling{height:232px}.spin-symbol{height:77.333px}.spin-symbol img,.spin-symbol svg{width:51px;height:53px}.top-actions{gap:4px}.top-actions button{padding:8px 7px}.wordmark{gap:7px}.wordmark span{padding-left:8px;letter-spacing:2px}.celebration>span{font-size:14px}.celebration small{font-size:7px}.celebration.mega strong{font-size:55px}}
.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduce-motion .winning-lines polyline{stroke-dashoffset:0}.reduce-motion .spin-strip{transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.winning-lines polyline{stroke-dashoffset:0}.spin-strip{transform:none;filter:none}}
/* Small returns get a clear payout ribbon, not a big-win celebration. */
.celebration.line{inset:auto 8px 8px;min-height:56px;padding:8px 15px;display:flex;flex-direction:row;gap:12px;background:#173f35f5;border:1px solid #d7b763;backdrop-filter:none;box-shadow:0 3px 12px #0005}.celebration.line[hidden]{display:none}.celebration.line:before,.celebration.line:after{display:none}.celebration.line>span{margin:0;font:11px 'DM Sans',sans-serif;letter-spacing:1.5px}.celebration.line strong{font-size:30px;filter:none}.celebration.line small{font-size:7px;margin:0;letter-spacing:1px}@media(max-width:420px){.celebration.line{gap:9px;padding:8px}.celebration.line>span{font-size:9px}.celebration.line strong{font-size:25px}.celebration.line small{font-size:6px}}
.win-emblem{width:95px;height:48px;border-radius:8px;border:1px solid #d3b56c;background:#e1ecd9;padding:5px 9px;box-shadow:0 0 25px #e2b95145;animation:brand-arrival .65s cubic-bezier(.2,1.3,.3,1) both;z-index:1}.win-emblem img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.celebration>span{margin-top:12px;z-index:1}.celebration strong,.celebration small{z-index:1}.celebration:after{display:none}.win-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.7}.win-film[hidden]{display:none}.celebration.cinematic{background:#0d292b66;backdrop-filter:none}.celebration.cinematic:before{inset:0;width:100%;height:100%;background:linear-gradient(#0b251d40,#0b251d88);animation:none;z-index:-1}.celebration.cinematic .win-emblem{width:105px;height:52px}.celebration.line .win-emblem{width:55px;height:30px;padding:3px;animation:none;box-shadow:none;flex-shrink:0}.celebration.line small{display:none}@keyframes brand-arrival{from{opacity:0;transform:translateY(-25px) rotateY(100deg) scale(.5)}to{opacity:1;transform:translateY(0) rotateY(0) scale(1)}}@media(max-width:760px){.win-emblem,.celebration.cinematic .win-emblem{width:80px;height:40px}.celebration>span{margin-top:8px}.celebration strong,.celebration.nice strong{font-size:42px}.celebration.mega strong,.bonus-reveal strong{font-size:52px}.celebration small{margin-top:4px}.celebration.line strong{font-size:25px}}
.celebration.cinematic{background:#0d292b}.celebration.cinematic .win-film{opacity:1}
