/* Book ritual, stacked expansion and a distinct bonus temple. */
.bonus-scene{position:fixed;inset:-12px;z-index:-3;background:linear-gradient(0deg,#11051ce8,transparent 55%),url('./assets/bonus-temple.webp') center/cover;opacity:0;transition:opacity .9s;pointer-events:none;transform:translate(var(--look-x,0px),var(--look-y,0px))}
.bonus-stage .bonus-scene{opacity:1}.bonus-stage .scene{opacity:0;transition:opacity .9s}.bonus-stage .aether-glow{background:radial-gradient(ellipse at 50% 45%,#cf51ff18,transparent 70%)}
.bonus-stage .temple-mist{background:radial-gradient(ellipse at 15% 90%,#edab4229,transparent 35%),radial-gradient(ellipse at 85% 90%,#ad31d326,transparent 32%)}
.bonus-stage .reel{background:radial-gradient(ellipse at 50% 40%,#47223d9c,#1a0924f0)}.bonus-stage .frame-energy{border-color:#efd3ff88;box-shadow:0 0 20px #bb57e749,inset 0 0 12px #bb57e749}
.bonus-stage .control-deck{background:linear-gradient(105deg,#170e23ed,#352139ef,#160d20f5)}
.bonus-stage .brand-logo{opacity:0}.bonus-ribbon{position:absolute;inset:15px -15px;display:flex;align-items:center;justify-content:center;gap:16px;background:linear-gradient(105deg,#21102aef,#4b2242,#21102aef);border:2px solid #e9c06f;box-shadow:inset 0 0 0 4px #251524,inset 0 0 0 5px #9e793f,0 0 24px #cf93ff38;clip-path:polygon(3% 0,97% 0,100% 18%,100% 82%,97% 100%,3% 100%,0 82%,0 18%);padding:12px 24px}
.bonus-ribbon>div:last-child{display:flex;flex-direction:column;gap:7px}.bonus-ribbon small{font-size:11px;letter-spacing:2px;color:#e0bd93}.bonus-ribbon strong{font:700 clamp(14px,1.8vw,24px) var(--display);color:#ffe4a3;white-space:nowrap;text-shadow:0 2px #422413}.bonus-ribbon span{font-size:14px;color:#e6d2f4}#ribbonSymbol{width:82px;height:82px;flex-shrink:0}#ribbonSymbol img{width:100%;height:100%;filter:drop-shadow(0 0 10px #ffd28266)}
#sceneTransition{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,#e1c0f0,#642c8666 40%,#110b1e00 74%)}#sceneTransition.active{animation:temple-transition .8s ease-in-out both}
.book-flight{position:fixed;z-index:55;pointer-events:none;object-fit:contain;filter:drop-shadow(0 0 25px #73ffe8);will-change:transform}
.motion-sprite{display:none;position:absolute;inset:5%;margin:auto;aspect-ratio:1;width:90%;max-height:90%;background-image:url('./assets/symbol-motion.webp');background-size:400% 400%;background-repeat:no-repeat;pointer-events:none;filter:drop-shadow(0 5px 5px #0008)}
.motion-1{--sprite-row:0%}.motion-2{--sprite-row:33.333333%}.motion-3{--sprite-row:66.666667%}.motion-0{--sprite-row:100%}
.symbol-acting>.motion-sprite,.expansion-cell.winner>.motion-sprite,.books-awaken .scatter-hit>.motion-sprite{display:block;animation:sprite-life 1.35s step-end infinite;background-position-y:var(--sprite-row)}
.symbol-acting:has(>.motion-sprite)>.symbol-art,.expansion-cell.winner:has(>.motion-sprite)>.symbol-art,.books-awaken .scatter-hit:has(>.motion-sprite)>.symbol-art{visibility:hidden}
.line-focus .cell:not(.winner):not(.scatter-hit){filter:brightness(.42) saturate(.65);transition:filter .22s}.line-focus .cell.winner{filter:brightness(1.13)}
.expansion-focus .reel:not(:has(.stacked-symbol)) .cell{filter:brightness(.4) saturate(.6)}
.stacked-symbol.expanded-symbol{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr));align-items:stretch;justify-content:stretch;justify-items:stretch;border:0;background:linear-gradient(90deg,#3f3620,#70582d66,#352c20);animation:none;box-shadow:inset 0 0 20px #f8c96c55;overflow:hidden}
.stacked-symbol:after{display:none}.stacked-symbol>.expansion-beam{opacity:.35;z-index:0;pointer-events:none}
.expansion-cell{position:relative;min-height:0;display:grid;place-items:center;border:1px solid #f5d88b;box-shadow:inset 0 0 12px #ebc96566;background:radial-gradient(ellipse,#dcc26955,#261c2088);animation:transmute-cell .5s calc(var(--row)*.09s) both}
.stacked-symbol .expansion-cell>.symbol-art{height:90%;width:90%;max-height:90%;position:absolute;inset:5%;transform:none;animation:none;filter:drop-shadow(0 4px 4px #0009)}
.expansion-cell.winner{box-shadow:inset 0 0 22px #ffda8880;border-color:#fff1ba}.expansion-cell.winner>.symbol-art{animation:relic-victory 1.2s ease-in-out infinite}
.expansion-cell .motion-sprite{z-index:2}.transmute-ring{position:absolute;inset:20%;border-radius:50%;border:3px solid #fff0a4;box-shadow:0 0 20px #ffc65c,inset 0 0 16px #ffc65c;animation:transmute-spark .65s calc(var(--row)*.09s) both;pointer-events:none;z-index:3}
.line-overlay{z-index:7}.line-overlay .expansion-line{stroke:#f9d280;stroke-width:2;animation:line-draw .33s ease-out both}
.reveal-closed-book{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:5;animation:cover-open 1.2s both;pointer-events:none}
.random-reveal .reveal-book{animation:pages-open 1.2s both;transform-origin:50% 60%}.turning-page{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;clip-path:inset(0 0 0 50%);transform-origin:50% 50%;z-index:4;animation:page-turn 1.15s .65s both;pointer-events:none}
.random-reveal .reveal-window{animation:symbols-enter .4s 1.1s both}.random-reveal .reveal-aura{animation:symbols-enter .8s .7s both}
.celebration-dialog{width:min(870px,calc(100vw - 18px));overflow:visible}.celebration-content{min-height:570px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:78px 65px 68px;position:relative}
.treasure-gate{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-1;pointer-events:none;filter:drop-shadow(0 10px 12px #000a);animation:gate-arrive .8s ease-out both}
.celebration-content.large-prize .treasure-gate{opacity:.7;transform:scale(1.08);mask-image:linear-gradient(transparent,#000 22%)}
.celebration-content.bonus-outro{min-height:620px;background:radial-gradient(ellipse,#331032c9,transparent 65%)}
.bonus-outro .treasure-gate{filter:drop-shadow(0 0 25px #f5c07750)}.bonus-outro .rays{opacity:.4}.bonus-outro .win-halo{background:radial-gradient(ellipse,#bd5e245a,transparent 65%)}
.celebration-title-art{max-width:100%;max-height:180px}.celebration-content h2{width:100%;margin:8px 0 18px}.celebration-content>strong{font-size:clamp(58px,7vw,98px)}
.celebration-content>p{margin:12px 0}.celebration-content .primary{min-width:230px}.celebration-content[data-tier=legendary] .win-halo{background:radial-gradient(ellipse,#c1872877,transparent 65%)}
@keyframes sprite-life{0%,100%{background-position-x:0%}20%{background-position-x:33.333333%}45%{background-position-x:66.666667%}75%{background-position-x:100%}}
@keyframes transmute-cell{0%{opacity:0;transform:scale(.82);filter:brightness(3)}35%{opacity:1}100%{opacity:1;transform:scale(1);filter:brightness(1)}}
@keyframes transmute-spark{0%{opacity:0;transform:scale(.3)}30%{opacity:1}100%{opacity:0;transform:scale(1.6)}}
@keyframes relic-victory{0%,100%{transform:scale(1) rotate(0)}40%{transform:scale(1.06) rotate(-3deg)}70%{transform:scale(1.03) rotate(2deg)}}
@keyframes temple-transition{0%,100%{opacity:0;transform:scale(.9)}32%,45%{opacity:1;transform:scale(1.3)}}
@keyframes cover-open{0%,30%{opacity:1;transform:scale(.72) rotateY(0)}75%{opacity:.6;transform:scale(.85) rotateY(-105deg)}100%{opacity:0;transform:scale(.85) rotateY(-140deg)}}
@keyframes pages-open{0%,25%{opacity:0;transform:scaleX(.1) scale(.8)}65%{opacity:1}100%{opacity:1;transform:scaleX(1) scale(1)}}
@keyframes page-turn{0%{opacity:0;transform:rotateY(0)}15%{opacity:1}85%{opacity:.8}100%{opacity:0;transform:rotateY(-170deg)}}
@keyframes symbols-enter{from{opacity:0}to{opacity:1}}
@keyframes gate-arrive{from{opacity:0;transform:translateY(35px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-height:720px) and (min-width:851px){.bonus-ribbon{inset:5px -35px;gap:8px;padding:8px 18px}.bonus-ribbon strong{font-size:17px}.bonus-ribbon small{font-size:9px}.bonus-ribbon span{font-size:12px}#ribbonSymbol{width:60px;height:60px}.bonus-ribbon>div:last-child{gap:4px}.celebration-content,.celebration-content.bonus-outro{min-height:530px;padding:65px 60px}}
@media(max-width:600px){.bonus-ribbon{inset:0 -42px;padding:8px 16px;gap:8px}.bonus-ribbon>div:last-child{gap:3px}.bonus-ribbon strong{font-size:14px}.bonus-ribbon small{font-size:8px;letter-spacing:1.5px}.bonus-ribbon span{font-size:12px}#ribbonSymbol{width:60px;height:60px}.celebration-content,.celebration-content.bonus-outro{min-height:470px;padding:65px 25px 55px}.celebration-title-art{width:100%;max-height:105px}.celebration-content>strong{font-size:56px;letter-spacing:1px}.celebration-content .primary{min-width:0;max-width:100%;font-size:11px}.celebration-content>p{font-size:14px}.celebration-content .eyebrow{font-size:9px}.treasure-gate{object-fit:fill}.bonus-stage .brand{margin-bottom:5px}}
.no-motion .motion-sprite{display:none!important}.no-motion .symbol-art{visibility:visible!important}.no-motion .reveal-closed-book,.no-motion .turning-page{display:none}.no-motion .bonus-scene{transform:none}
@media(prefers-reduced-motion:reduce){.motion-sprite{display:none!important}.symbol-art{visibility:visible!important}.reveal-closed-book,.turning-page{display:none}.bonus-scene{transform:none}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.no-motion *,.no-motion *:before,.no-motion *:after{animation-delay:0s!important}
.celebration-content>.treasure-gate{width:100%;height:100%;max-width:none;max-height:none;object-fit:fill;margin:0;animation:gate-arrive .8s ease-out both}
.bonus-outro{padding-top:150px;padding-bottom:100px}.bonus-outro>p:not(.eyebrow){max-width:390px;line-height:1.5}.bonus-outro h2{max-width:600px}.bonus-outro .celebration-title-art{max-height:140px}
@media(max-width:600px){.celebration-content.bonus-outro{padding:115px 24px 70px}.bonus-outro>p:not(.eyebrow){max-width:210px;font-size:12px}.bonus-outro .celebration-title-art{max-height:85px}.bonus-outro>strong{font-size:46px}.bonus-outro .primary{font-size:10px;padding-left:10px;padding-right:10px}.bonus-outro .eyebrow{font-size:8px}}
.motion-sprite{inset:0;width:auto;height:90%;max-width:90%;max-height:none;aspect-ratio:1}
.bonus-outro .eyebrow{display:none}
.celebration-content .eyebrow{display:none}
.stacked-symbol.expanded-symbol{background:linear-gradient(90deg,#352b21,#574127,#30231f)}
