/* CRU Lucky Machine: machined platinum, curved reels, and Nova celebrations. */
.lucky-page{background:radial-gradient(ellipse at 12% 8%,#e5dfef 0,transparent 32%),radial-gradient(ellipse at 90% 22%,#e4e8ed 0,transparent 42%),linear-gradient(135deg,#fafafa,#f1f2f4 54%,#e7e8ed)}
.lucky-page .lucky-headline h1{letter-spacing:.02em}
.lucky-page .lucky-hero-lead{font-size:16px;color:#55535e}
.lucky-page .lucky-grid{align-items:start;grid-template-columns:minmax(0,1.7fr) minmax(290px,.8fr);gap:28px}
.lucky-page .lucky-machine{padding:32px 48px 32px 30px;border:2px solid #c4c5cc;border-radius:38px;background:radial-gradient(ellipse at 30% 0,rgba(158,133,222,.25),transparent 45%),linear-gradient(120deg,#303139,#17181f 28%,#20212b 69%,#101117);box-shadow:0 4px 0 #fefeff,0 9px 0 #8a8d99,0 12px 0 #51545e,0 34px 54px -16px #25263585,inset 0 0 0 5px #e8e9ed,inset 0 0 0 7px #7d808c,inset 0 0 0 11px #111219,inset 0 16px 28px #ffffff14;overflow:hidden}
.lucky-page .lucky-machine::before{opacity:.5;background:repeating-linear-gradient(0deg,transparent 0 2px,#ffffff04 3px 4px),linear-gradient(117deg,transparent 10%,#fff1 25%,transparent 40%);pointer-events:none}
.lucky-page .lucky-machine::after{inset:14px;border-radius:25px;border-color:#b6b4c84f;box-shadow:inset 0 1px 0 #fff2;pointer-events:none}
.lucky-page .lucky-machine-lights{gap:clamp(12px,3vw,24px);margin:-13px 24px 22px;padding:9px 16px;border:1px solid #9d94b345;border-radius:20px;background:#08090dc9;box-shadow:inset 0 2px 5px #000c,0 1px 0 #fff2}
.lucky-page .lucky-machine-lights i{width:7px;height:7px;border-color:#fff5d4;background:#fff0b8;box-shadow:0 0 7px #f5d990,0 0 16px #cda7ec66;animation-duration:3.4s}
.lucky-page .lucky-machine-label strong{font-size:clamp(24px,3vw,34px);color:#f3effa;text-shadow:0 2px 1px #000,0 -1px 0 #fff7}
.lucky-page .lucky-machine-label small{font-size:12px;letter-spacing:.13em;color:#d8c69d}
.lucky-page .lucky-machine-status{font-size:12px;letter-spacing:.025em;padding:8px 10px;white-space:nowrap}
.lucky-page .lucky-token-balance{align-items:center;gap:16px;margin:22px 0;padding:14px 18px;border:1px solid #a1a0b238;border-radius:12px;background:linear-gradient(170deg,#080a0f,#252331);box-shadow:inset 0 3px 7px #000a,0 1px 0 #fff2}
.lucky-page .lucky-token-balance b{font-size:50px;line-height:1;font-variant-numeric:tabular-nums;min-width:1ch}
.lucky-page .lucky-token-balance span{font-size:12px;color:#c0bcca}
.lucky-page .lucky-token-balance span strong{font-size:14px;margin-bottom:3px}
.lucky-page .lucky-reels{gap:5px;padding:15px;border:1px solid #fff;border-radius:20px;background:linear-gradient(125deg,#93969e,#fbfbff 13%,#9a9eab 27%,#f0edf1 50%,#656b79 77%,#dadce3);box-shadow:0 0 0 3px #05060b,0 0 0 5px #b5a9c754,0 14px 20px #0007,inset 0 1px 3px #fff,0 0 24px #c1a0ed1c}
.lucky-page .lucky-reels::before{z-index:5;inset:15px;border-radius:8px;background:linear-gradient(180deg,#0c0e198f 0,#29273433 13%,transparent 33%,#fff3 46%,transparent 68%,#22212c40 87%,#080a147d 100%);box-shadow:inset 0 4px 9px #0009,inset 0 -3px 7px #0007}
.lucky-page .lucky-reels::after{left:10px;right:10px;height:1px;background:linear-gradient(90deg,#f9d889,transparent 22%,transparent 78%,#f9d889);box-shadow:0 0 8px #f8d48b8a}
.lucky-page .lucky-reel{height:202px;border:0;border-radius:7px;background:linear-gradient(180deg,#a4a5af 0,#eeedf2 20%,#fff 45%,#faf9fb 59%,#e6e5ec 82%,#9596a1 100%);box-shadow:inset 3px 0 5px #55546255,inset -3px 0 5px #55546255;perspective:600px}
.lucky-page .lucky-reel::after{z-index:6;transform:none;background:linear-gradient(112deg,transparent 12%,#fff5 30%,transparent 48%,#fff2 71%,transparent);animation:none}
.lucky-page .lucky-symbol>.lucky-reel-symbol{height:168px;gap:7px}
.lucky-page .lucky-symbol .lucky-reel-symbol svg{width:86px;height:86px;filter:drop-shadow(0 5px 1px #9b8eab55) drop-shadow(0 9px 10px #46404e33)}
.lucky-page .lucky-symbol .lucky-reel-symbol[data-kind=coin] svg{width:94px;height:94px}
.lucky-page .lucky-symbol .lucky-reel-symbol-label{font-size:14px;letter-spacing:.025em;line-height:1.3}
.lucky-page .lucky-symbol .lucky-reel-symbol-en{font-size:10px;letter-spacing:.055em}
.lucky-page .lucky-reel-bonus{top:5px;right:5px;min-width:38px;height:26px;font-size:19px}
.lucky-reel-belt{position:absolute;left:0;right:0;top:0;display:none;will-change:transform;pointer-events:none}
.lucky-reel-belt>.lucky-reel-symbol{height:136px;gap:4px}
.lucky-reel-belt .lucky-reel-symbol svg{width:78px;height:78px}
.lucky-reel-belt .lucky-reel-symbol-label{font-size:12px}
.lucky-page .lucky-reel.rolling .lucky-symbol{opacity:0;animation:none;filter:none}
.lucky-page .lucky-reel.rolling .lucky-reel-belt{display:block;animation:cruPhysicalReel .66s linear infinite;filter:blur(1px)}
.lucky-page .lucky-reel:nth-child(2).rolling .lucky-reel-belt{animation-duration:.72s}
.lucky-page .lucky-reel:nth-child(3).rolling .lucky-reel-belt{animation-duration:.78s}
.lucky-page .lucky-reel.is-settling .lucky-symbol{animation:cruReelSettle .48s cubic-bezier(.2,.8,.3,1) both}
@keyframes cruPhysicalReel{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@keyframes cruReelSettle{0%{transform:translateY(-34px) rotateX(20deg);filter:blur(2px)}45%{transform:translateY(9px) rotateX(-6deg);filter:none}72%{transform:translateY(-4px) rotateX(2deg)}100%{transform:none}}
.lucky-page .lucky-machine-lever{top:244px;right:8px;width:32px;height:172px;transform-origin:50% 90%;filter:drop-shadow(3px 6px 4px #0008)}
.lucky-page .lucky-machine-lever span{height:136px;width:8px;right:12px;background:linear-gradient(90deg,#454753,#fff 42%,#a8aaba 70%,#363846);border:1px solid #d1d3de;box-shadow:1px 0 2px #000}
.lucky-page .lucky-machine-lever i{width:28px;height:28px;background:radial-gradient(circle at 28% 22%,#fff,#e2cbff 11%,#7650ab 48%,#302342 79%);border-color:#c4afd5;box-shadow:0 2px 1px #fff8,inset -4px -5px 8px #1b103ecc,0 4px 9px #000b}
.lucky-page .lucky-machine.is-spinning .lucky-machine-lever{animation:cruLeverPull .7s cubic-bezier(.2,.8,.3,1) both;transform:none}
@keyframes cruLeverPull{0%,100%{transform:rotate(0)}45%{transform:rotate(24deg) scaleY(.88)}}
.lucky-page .lucky-spin-row{grid-template-columns:minmax(0,1fr);gap:14px;padding:19px 16px 16px;margin:22px 0 18px;border:1px solid #bbb6c342;border-radius:18px;background:linear-gradient(178deg,#66616d40,#17151e 30%,#090a0e);box-shadow:inset 0 2px 1px #fff2,0 5px 0 #050509}
.lucky-page .lucky-spin-btn{min-height:60px;border-radius:12px;border:1px solid #f2dca8;box-shadow:0 5px 0 #6e4c25,0 7px 0 #08080b,0 12px 20px #0008,inset 0 2px 2px #fff9;background:linear-gradient(175deg,#fff4d3,#e4c782 35%,#b59450 49%,#d8b977 52%,#f3dba6);font-size:17px;text-shadow:0 1px 0 #fff8}
.lucky-page .lucky-machine.trial .lucky-spin-btn{border-color:#e6d4ff;box-shadow:0 5px 0 #52376e,0 7px 0 #08080b,0 12px 20px #0008,inset 0 2px 2px #fffa;background:linear-gradient(175deg,#f1e7ff,#c3a6e5 46%,#a78aca 50%,#d6bcef)}
.lucky-page .lucky-spin-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 #52376e,inset 0 2px 3px #34204044}
.lucky-page .lucky-spin-btn:focus-visible,.lucky-page .lucky-reward-btn:focus-visible{outline:3px solid #ab8ce0;outline-offset:5px}
.lucky-page .lucky-spin-cost{text-align:center;font-size:12px;color:#c1bacb}
.lucky-page .lucky-spin-cost strong{font-size:14px;display:inline;margin-right:10px;color:#e8d9ff}
.lucky-audio-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.lucky-audio-controls button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:7px 12px;border:1px solid #c4abdf55;border-radius:10px;background:#a78ac41c;color:#e9ddf9;font:inherit;font-size:13px;cursor:pointer}
.lucky-audio-controls button[aria-pressed=false]{background:#ffffff08;border-color:#ffffff26;color:#b3a9c0}
.lucky-audio-controls button:focus-visible{outline:2px solid #e4cafa;outline-offset:3px}
.lucky-audio-controls>span{font-size:12px;color:#b7acbf;margin-left:auto}
.lucky-page .lucky-symbol-story,.lucky-page .lucky-odds-panel{background:#0e0d1466;border-color:#aca0ba36;padding:14px}
.lucky-page .lucky-symbol-story-head,.lucky-page .lucky-odds-head{align-items:start;flex-direction:column;gap:6px}
.lucky-page .lucky-symbol-story-head strong,.lucky-page .lucky-odds-head strong{font-size:14px}
.lucky-page .lucky-symbol-story-head>span,.lucky-page .lucky-odds-head>span{font-size:12px;color:#bdb5c9}
.lucky-page .lucky-symbol-legend{grid-template-columns:repeat(3,minmax(0,1fr))}
.lucky-page .lucky-symbol-legend-item{grid-template-columns:32px minmax(0,1fr);padding:9px 5px;gap:3px}
.lucky-page .lucky-symbol-legend-item>span{font-size:12px;white-space:normal;overflow:visible;line-height:1.45}
.lucky-page .lucky-odds-item b{font-size:24px}.lucky-page .lucky-odds-item span{font-size:12px;line-height:1.5;color:#d4cdda}
.lucky-page .lucky-odds-item.jackpot{background:linear-gradient(135deg,#b38acf40,#cbb56d26)}
.lucky-page .lucky-machine .lucky-note{font-size:12px;color:#c4bdcd;line-height:1.8;background:#ffffff08;border-color:#ffffff1a}
.lucky-page .lucky-machine .lucky-note strong{color:#efebf4}
.lucky-page .lucky-result p{font-size:14px;color:#e0d5ef}
.lucky-page .lucky-reward-grid{gap:22px}
.lucky-page .lucky-reward-card{display:flex;flex-direction:column;padding:16px 16px 20px;background:linear-gradient(145deg,#fff,#f1f0f5);border-color:#d1ced9;box-shadow:0 18px 28px -16px #4c405040;opacity:1}
.lucky-page .lucky-reward-visual{display:flex;align-items:center;justify-content:center;width:100%;height:248px;padding:16px 12px 33px;background:radial-gradient(ellipse at 50% 90%,#cbc3d446,transparent 63%),#fff;border-radius:15px;box-shadow:inset 0 1px 0 #fff;border-color:#e1dee7;isolation:isolate}
.lucky-page .lucky-reward-photo{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 8px #24202d17)}
.lucky-page .lucky-reward-collection{display:flex;align-items:center;justify-content:center;width:100%;height:100%;gap:0}
.lucky-page .lucky-reward-collection img{width:36%;height:88%;object-fit:contain;margin:0 -2%;filter:drop-shadow(0 10px 6px #24202d22)}
.lucky-page .lucky-reward-collection img:nth-child(2){z-index:2;height:100%}
.lucky-page .lucky-reward-photo-caption{position:absolute;z-index:3;bottom:11px;left:8px;right:8px;color:#71667e;text-align:center;font-size:12px;line-height:1.4}
.lucky-page .lucky-reward-coming{font-size:12px;padding:6px 11px;top:25px;right:25px;background:#302636e8;color:#efdeff}
.lucky-page .lucky-reward-card h3{font-size:21px;color:#28232f;margin-top:18px}
.lucky-page .lucky-reward-card>p{font-size:14px;line-height:1.8;color:#64606c;flex:1}
.lucky-page .lucky-reward-meta{margin-top:18px}.lucky-page .lucky-reward-stock,.lucky-page .lucky-reward-cost span{font-size:12px}
.lucky-page .lucky-reward-btn{font-size:14px;min-height:46px}.lucky-page .lucky-reward-btn:disabled{opacity:.75}
/* Keep the celebration over the reels, even when the cabinet grows on mobile. */
.lucky-page .lucky-machine>.lucky-win-fx{z-index:9;background:radial-gradient(ellipse at 50% var(--lucky-stage-y,350px),#b18ee75e,transparent 52%),linear-gradient(#0b081433,#0b0814b8);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.lucky-page .lucky-win-fx::before,.lucky-page .lucky-win-ring,.lucky-page .lucky-win-particle{top:var(--lucky-stage-y,350px)}
.lucky-page .lucky-win-fx::before{width:70%;box-shadow:0 0 26px #ccb0ff66,inset 0 0 30px #edc6ff33}
.lucky-page .lucky-win-fx::after{opacity:.3;animation-duration:var(--lucky-win-duration)}
.lucky-win-stage{position:absolute;z-index:4;left:24px;right:24px;top:var(--lucky-stage-y,350px);height:306px;display:grid;grid-template-columns:42% minmax(0,1fr);border:1px solid #e8d8ffa8;border-radius:24px;background:linear-gradient(135deg,#332347f7,#191121fa 66%,#35293cf7);box-shadow:0 20px 55px #0008,0 0 0 4px #f3dba616,0 0 50px #c3a3f44d;overflow:hidden;transform:translateY(-50%);animation:cruGirlStageEnter .7s cubic-bezier(.16,.9,.3,1.16) both}
.lucky-win-girl{position:relative;min-width:0;height:100%;overflow:hidden;border-radius:23px 0 0 23px;mask-image:linear-gradient(90deg,#000 80%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent)}
.lucky-win-girl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 34%;transform:scale(1.025);animation:cruGirlCheerLift 1.6s .65s ease-in-out infinite}
.lucky-win-girl img:nth-child(2){animation:cruGirlCheerWave .8s .65s steps(1,end) infinite,cruGirlCheerLift 1.6s .65s ease-in-out infinite;opacity:0}
.lucky-win-message{position:relative;z-index:2;align-self:center;padding:18px 16px 18px 3px;color:#fff}
.lucky-win-message>small{display:block;color:#dcc7f3;font-size:12px;font-weight:700;letter-spacing:.12em;margin-bottom:12px}
.lucky-win-message>strong{display:block;color:#fff2cd;font-size:clamp(24px,3vw,35px);font-family:'Noto Serif TC',serif;line-height:1.35}
.lucky-win-message>p{font-size:16px;line-height:1.7;margin:8px 0;color:#ede4f5}
.lucky-win-amount{display:flex;align-items:baseline;gap:5px;color:#ffe5a9;line-height:1;margin:10px 0 8px;font-family:'Cormorant Garamond',serif;font-size:58px;font-weight:700;text-shadow:0 3px 0 #4d345d,0 0 24px #ecc58a55}
.lucky-win-amount em{font-style:normal;font-variant-numeric:tabular-nums}.lucky-win-amount span{font-family:'Noto Sans TC',sans-serif;font-size:14px;font-weight:500;color:#e0d0ed}
.lucky-win-mode{font-size:12px;line-height:1.6;color:#cdbbdc}
.lucky-page .lucky-win-particle.coin{display:grid;place-items:center;width:25px;height:25px;filter:drop-shadow(0 4px 5px #0006);background:none;border:0;border-radius:0;box-shadow:none}
.lucky-page .lucky-win-particle.coin svg{width:100%;height:100%}.lucky-page .lucky-win-particle.coin::after{display:none}
.lucky-page .lucky-win-fx[data-tier="jackpot"] .lucky-win-stage{border-color:#ffe9b7;box-shadow:0 20px 55px #0009,0 0 0 4px #f3dba622,0 0 75px #dfb97288;background:linear-gradient(125deg,#38264b,#2e173f 58%,#674958)}
.lucky-page .lucky-win-fx[data-tier="jackpot"] .lucky-win-amount{font-size:76px}
.lucky-page .lucky-machine.win-special .lucky-machine-lights i,.lucky-page .lucky-machine.win-jackpot .lucky-machine-lights i{animation-duration:1s}
.lucky-page .lucky-machine.win-jackpot{animation:none}
@keyframes cruGirlStageEnter{0%{opacity:0;transform:translateY(calc(-50% + 55px)) scale(.78)}65%{opacity:1;transform:translateY(calc(-50% - 7px)) scale(1.025)}100%{opacity:1;transform:translateY(-50%) scale(1)}}
@keyframes cruGirlCheerLift{0%,100%{transform:scale(1.025) translateY(0)}50%{transform:scale(1.04) translateY(-4px)}}
@keyframes cruGirlCheerWave{0%,100%{opacity:0}50%{opacity:1}}
@media(max-width:1000px){.lucky-page .lucky-grid{grid-template-columns:1fr}.lucky-page .lucky-side{display:grid;grid-template-columns:1fr 1fr}.lucky-page .lucky-side .lucky-progress-card{grid-column:1/-1;grid-row:2}.lucky-win-stage{left:max(24px,8%);right:max(24px,8%);grid-template-columns:40% 1fr;height:330px}.lucky-win-message{padding-left:16px}}
@media(max-width:620px){.lucky-page .lucky-machine{padding:25px 20px 24px;border-radius:29px}.lucky-page .lucky-machine::after{border-radius:19px}.lucky-page .lucky-machine-top{flex-wrap:wrap;gap:10px}.lucky-page .lucky-machine-status{font-size:12px;padding:5px 8px}.lucky-page .lucky-machine-label small{font-size:11px}.lucky-page .lucky-machine-label strong{font-size:24px}.lucky-page .lucky-machine-lights{margin:-9px 10px 17px;gap:18px}.lucky-page .lucky-token-balance{padding:12px;margin:18px 0}.lucky-page .lucky-token-balance b{font-size:42px}.lucky-page .lucky-reels{padding:9px;gap:4px;border-radius:14px}.lucky-page .lucky-reels::before{inset:9px}.lucky-page .lucky-reel{height:166px}.lucky-page .lucky-symbol>.lucky-reel-symbol{height:144px;gap:8px}.lucky-page .lucky-symbol .lucky-reel-symbol svg{width:62px;height:62px}.lucky-page .lucky-symbol .lucky-reel-symbol[data-kind=coin] svg{width:68px;height:68px}.lucky-page .lucky-symbol .lucky-reel-symbol-label{font-size:12px;white-space:normal;text-align:center;padding:0 2px}.lucky-page .lucky-symbol .lucky-reel-symbol-en{display:none}.lucky-page .lucky-spin-row{padding:15px 11px;margin:18px 0}.lucky-page .lucky-spin-btn{font-size:15px;letter-spacing:0;min-height:56px}.lucky-page .lucky-spin-cost strong{display:block;margin:0 0 4px}.lucky-page .lucky-symbol-story,.lucky-page .lucky-odds-panel{padding:11px 8px}.lucky-page .lucky-symbol-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.lucky-page .lucky-odds-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;overflow:visible}.lucky-page .lucky-odds-item{min-width:0;padding:8px 2px}.lucky-page .lucky-odds-item b{font-size:21px}.lucky-page .lucky-odds-item span{font-size:12px;overflow-wrap:anywhere}.lucky-page .lucky-side{display:flex}.lucky-page .lucky-reward-visual{height:260px}.lucky-win-stage{left:12px;right:12px;height:286px;grid-template-columns:40% minmax(0,1fr);border-radius:19px}.lucky-win-girl{border-radius:18px 0 0 18px}.lucky-win-message{padding:12px 9px 12px 0}.lucky-win-message>small{font-size:11px;letter-spacing:.035em;margin-bottom:8px}.lucky-win-message>strong{font-size:23px}.lucky-win-message>p{font-size:14px;line-height:1.5}.lucky-win-amount{font-size:48px;flex-wrap:wrap;gap:2px}.lucky-win-amount span{font-size:12px;flex-basis:100%;margin-top:4px}.lucky-page .lucky-win-fx[data-tier="jackpot"] .lucky-win-amount{font-size:60px}}
@media(max-width:620px){.lucky-win-girl img{left:-38%;width:180%;max-width:none;height:115%;object-position:50% 27%}}
@media(prefers-reduced-motion:reduce){.lucky-page .lucky-machine>.lucky-win-fx{display:block!important;animation:none!important;opacity:1;backdrop-filter:none;-webkit-backdrop-filter:none}.lucky-page .lucky-win-fx::before,.lucky-page .lucky-win-fx::after,.lucky-page .lucky-win-ring,.lucky-page .lucky-win-particle{display:none}.lucky-win-stage,.lucky-win-girl img,.lucky-page .lucky-machine.is-spinning .lucky-machine-lever,.lucky-page .lucky-reel.is-settling .lucky-symbol{animation:none!important}.lucky-win-girl img:nth-child(2){display:none}.lucky-page .lucky-reel.rolling .lucky-reel-belt{animation:none;filter:none}.lucky-page .lucky-reel.rolling .lucky-symbol{opacity:1}.lucky-page .lucky-reel.rolling .lucky-reel-belt{display:none}}
