/* Cinematic stage. Decorative layers never receive input. */
.scene{inset:-12px;transform:translate(var(--look-x,0px),var(--look-y,0px));transition:transform 1.2s ease-out;filter:saturate(1.12)}
.temple-rays,.temple-mist{position:fixed;inset:-10%;pointer-events:none;z-index:-1}
.temple-rays{background:conic-gradient(from 153deg at 50% -5%,transparent 0deg,#9ffff418 9deg,transparent 16deg,#a4fff010 22deg,transparent 30deg);filter:blur(5px);animation:ray-drift 17s ease-in-out infinite alternate}
.temple-mist{background:radial-gradient(ellipse at 20% 85%,#46cfb71c,transparent 35%),radial-gradient(ellipse at 85% 90%,#0abcb821,transparent 32%);animation:mist-drift 21s ease-in-out infinite alternate}
.brand-logo{filter:drop-shadow(0 6px 3px #000) drop-shadow(0 0 25px #1dfed63b)}
.message-strip{margin-bottom:34px;background:linear-gradient(90deg,transparent,#031b25de,transparent);text-shadow:0 0 16px #85ffee70}
.machine{gap:30px}.reel-frame{padding:7px;background:#09171b;border-radius:3px;box-shadow:0 20px 50px #000d,0 0 35px #27edcc20;margin:0 12px}
.reel-frame:before,.frame-corner{display:none}
.temple-bezel{position:absolute;inset:-45px -31px -25px;z-index:9;border-style:solid;border-color:transparent;border-width:50px 38px 30px;border-image:url('./assets/temple-bezel.webp') 215 190 125 190 / 50px 38px 30px / 0 stretch;filter:drop-shadow(0 4px 4px #000b);pointer-events:none}
.frame-energy{position:absolute;inset:4px;z-index:8;border:1px solid #61f9d680;box-shadow:0 0 16px #39e7c845,inset 0 0 12px #1effc938;pointer-events:none;transition:box-shadow .5s,border-color .5s}
.reels{border:1px solid #092b31;background:#071a22}.reel{background:radial-gradient(ellipse at 50% 45%,#23475180,#03121cf0);border-right:1px solid #c0cda22a}
.reel:after{background:linear-gradient(#000c,transparent 17%,transparent 82%,#000c)}
.under-reels{margin:24px 10px 0;height:29px}
.cell.winner{border-radius:2px;box-shadow:inset 0 0 0 1px #ffe5a4,inset 0 0 30px #f5b9463b,0 0 12px #ffd37c55}
.cell.winner:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#fff6c945 48%,transparent 65%);background-size:300% 100%;animation:relic-sheen 1.8s ease-in-out infinite;pointer-events:none}
.reels-moving .frame-energy{box-shadow:0 0 22px #26eec960,inset 0 0 15px #26eec938}
.anticipation-active .frame-energy{border-color:#acffec;animation:energy-charge .65s ease-in-out infinite alternate}
.anticipation-active .scene{filter:saturate(.7) brightness(.7)}
.has-win .frame-energy{border-color:#ffdf92;box-shadow:0 0 28px #f4be6970,inset 0 0 18px #f4be6944}
.impact-ring{position:absolute;inset:10%;border:2px solid #91ffea;box-shadow:0 0 20px #36f5ca70,inset 0 0 15px #36f5ca50;border-radius:50%;z-index:8;pointer-events:none;animation:impact-wave .7s cubic-bezier(.16,.7,.24,1) both}
.impact-ring.gold{border-color:#ffe1a0;box-shadow:0 0 18px #ffc56388}
.feature-button,.super-button,.special-panel{background:radial-gradient(ellipse at 50% 0,#21423fee,#071720f5 75%);border-color:#c8a159;box-shadow:inset 0 0 0 4px #091b21,inset 0 0 0 5px #c7a15b32,0 10px 30px #0009}
.feature-button:after,.special-panel:after{content:'';position:absolute;inset:8px;border:1px solid #b5a67630;pointer-events:none;clip-path:polygon(0 0,20% 0,20% 1%,1% 1%,1% 99%,20% 99%,20% 100%,0 100%,0 0,100% 0,100% 100%,80% 100%,80% 99%,99% 99%,99% 1%,80% 1%,80% 0)}
.special-panel{position:relative;padding:18px 9px;border-radius:3px}.special-art{position:relative}.bonus-mode .special-art:before{content:'';position:absolute;inset:10%;border:1px solid #6bffe96b;border-radius:50%;box-shadow:0 0 25px #35e4c93b;animation:energy-charge 3s infinite alternate}
.control-deck{background:linear-gradient(100deg,#08191fec,#133039f5 48%,#07161ef5);border:1px solid #bfa26b66;box-shadow:0 1px 0 #f4dba43b,inset 0 0 0 4px #05151a80,0 15px 40px #0008}
.spin-button:before{content:'';position:absolute;inset:-10px;border-radius:50%;border:1px dashed #e9c57f80;pointer-events:none;animation:rotate 50s linear infinite}
.spin-button:after{content:'';position:absolute;inset:4px;border:1px solid #b7ffdf4a;border-radius:50%;background:linear-gradient(130deg,#e9ffe725,transparent 48%);pointer-events:none}
.spin-button:not(:disabled):hover{box-shadow:0 0 0 2px #ffe6a7,0 0 0 5px #735931,0 0 0 7px #c9aa69,0 0 40px #3effd899,inset 0 3px 5px #d6fff570}
.expanded-symbol{overflow:hidden;background:radial-gradient(ellipse,#247f70,#082f38 60%,#041b26);animation:column-awaken .65s cubic-bezier(.15,.7,.25,1) both}
.expanded-symbol .symbol-art{position:relative;z-index:2;filter:drop-shadow(0 0 17px #8dffe6a0);animation:relic-rise .75s ease-out both}
.expansion-beam{position:absolute;inset:-30%;background:conic-gradient(from 0deg,#63ffdd00,#9fffe270,#63ffdd00 22%,#ffdf8750 30%,#63ffdd00 45%,#9fffe270 60%,transparent 75%);filter:blur(6px);animation:rotate 12s linear infinite}
.expansion-glyph{position:absolute;bottom:8%;z-index:3;color:#ffe3a8;text-shadow:0 2px 5px #000,0 0 12px #c9a96b;font-family:var(--display);font-size:clamp(8px,1vw,13px);text-align:center;letter-spacing:1px}
.dialog-shell{position:relative;background:radial-gradient(ellipse at 50% 0,#204a4d,#081d29 62%,#06151e);border-color:#e1bd74;box-shadow:0 0 0 4px #071a21,0 0 0 5px #bd99594d,0 25px 100px #000e}
dialog[open] .dialog-shell{animation:portal-enter .4s cubic-bezier(.16,.7,.25,1) both}dialog::backdrop{background:#000b;backdrop-filter:blur(7px)}
.dialog-particles{position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none}
.symbol-dialog .dialog-scroll{text-align:center;position:relative}.symbol-dialog .dialog-head{padding-bottom:12px}.symbol-dialog .dialog-scroll>p:first-child{margin-top:0}
.random-reveal{max-width:520px;height:280px;margin:0 auto;padding:25px 0 0;border:0;border-radius:0;background:none;box-shadow:none;perspective:900px;isolation:isolate}
.reveal-book{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-1;filter:drop-shadow(0 10px 15px #0009);animation:book-unfold 1.15s cubic-bezier(.15,.65,.2,1) both}
.reveal-aura{position:absolute;inset:8% 20%;background:radial-gradient(ellipse,#2effd7b0,transparent 68%);filter:blur(12px);z-index:0;animation:energy-charge 1s infinite alternate}
.random-reveal .reveal-window{width:220px;margin:auto;z-index:2;mask-image:linear-gradient(transparent,#000 12%,#000 85%,transparent)}
.random-reveal .reveal-window:after{display:none}.random-reveal .reveal-item>span{color:#fff0ba;text-shadow:0 2px 3px #0c2525,0 0 8px #061a21;font-size:17px!important}
.random-reveal .reveal-item .symbol-art{height:175px;width:175px}.random-reveal.is-revealed .reveal-aura{animation:revealed-aura 2.5s infinite alternate}.random-reveal.is-revealed .reveal-book{filter:drop-shadow(0 0 22px #31f5cd70)}
.symbol-description{min-height:42px;margin-bottom:0!important}
.celebration-content{isolation:isolate;padding:38px 25px 35px}.win-halo{position:absolute;inset:-12%;background:radial-gradient(ellipse,#127b6666,transparent 60%);z-index:-1;animation:halo-arrive .8s ease-out both}
.celebration-content .rays{inset:-45%;background:repeating-conic-gradient(from 0deg,transparent 0deg,#ffdc8830 7deg,transparent 14deg);mask-image:radial-gradient(ellipse,#000,transparent 64%);animation:rotate 32s linear infinite;z-index:-1}
.celebration-content h2{animation:treasure-title .75s cubic-bezier(.12,.65,.2,1) both}.celebration-title-art{animation:none;filter:drop-shadow(0 7px 4px #000b) drop-shadow(0 0 28px #ffd67750)}
.celebration-content>strong{display:block;color:#ffe4a3;text-shadow:0 3px 0 #6f4621,0 7px 0 #1f211c,0 0 35px #ffd98470;animation:relic-rise .7s .18s both}
.celebration-content .primary{position:relative;z-index:9;margin-top:14px}.celebration-content>p{position:relative;z-index:2}.celebration-content.is-counted>strong{animation:amount-impact .45s ease-out both}
.primary{box-shadow:inset 0 1px 0 #fff6c8,0 4px 0 #513b1f,0 7px 25px #0008;transition:filter .2s,transform .2s}.primary:active{transform:translateY(2px)}
@keyframes impact-wave{from{transform:scale(.2);opacity:.9}to{transform:scale(1.4);opacity:0}}
@keyframes energy-charge{from{opacity:.5;filter:brightness(1)}to{opacity:1;filter:brightness(1.5)}}
@keyframes relic-sheen{from{background-position:140% 0}to{background-position:-50% 0}}
@keyframes ray-drift{from{transform:rotate(-4deg);opacity:.4}to{transform:rotate(4deg);opacity:1}}
@keyframes mist-drift{to{transform:translate(4%,-3%);opacity:.5}}
@keyframes column-awaken{0%{clip-path:inset(48% 0);filter:brightness(3)}50%{clip-path:inset(0);filter:brightness(1.4)}100%{clip-path:inset(0);filter:brightness(1)}}
@keyframes relic-rise{from{transform:translateY(25px) scale(.75);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes portal-enter{from{transform:translateY(20px) scale(.93);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes book-unfold{from{transform:rotateX(45deg) scaleX(.25) scale(.75);opacity:0}to{transform:rotateX(0) scaleX(1) scale(1);opacity:1}}
@keyframes revealed-aura{from{opacity:.65;transform:scale(.95)}to{opacity:1;transform:scale(1.2)}}
@keyframes halo-arrive{from{transform:scale(.1);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes treasure-title{0%{transform:scale(2.1);opacity:0;filter:blur(6px)}60%{transform:scale(.95);opacity:1;filter:blur(0)}100%{transform:scale(1)}}
@keyframes amount-impact{0%{transform:scale(1)}40%{transform:scale(1.1);filter:brightness(1.5)}100%{transform:scale(1)}}
@media(max-width:1150px){.machine{gap:22px}.reel-frame{margin:0 8px}.temple-bezel{inset:-35px -22px -19px;border-image-width:40px 29px 24px}.message-strip{margin-bottom:28px}.under-reels{margin-top:18px}}
@media(max-width:600px){.machine{gap:18px}.game-shell{padding-left:14px;padding-right:14px}.message-strip{margin-bottom:25px;height:30px}.reel-frame{margin:0 7px;padding:4px}.temple-bezel{inset:-28px -17px -16px;border-image-width:31px 21px 20px}.under-reels{margin:17px 0 0;font-size:9px;letter-spacing:.6px}.control-deck{margin-top:10px}.special-panel:after{display:none}.random-reveal{height:235px;padding-top:0}.random-reveal .reveal-item .symbol-art{height:160px;width:160px}.symbol-dialog .dialog-scroll{padding-top:12px;padding-bottom:12px}.symbol-dialog .dialog-scroll>p:first-child{font-size:14px;line-height:1.4}.symbol-description{font-size:13px!important;line-height:1.4!important;min-height:35px}.celebration-content{padding:30px 10px}.temple-rays{filter:none}.expansion-glyph{bottom:5%;font-size:7px}}
@media(max-height:720px) and (min-width:851px){.message-strip{margin-bottom:25px;height:28px}.temple-bezel{inset:-31px -23px -19px;border-image-width:36px 29px 24px}.under-reels{margin-top:18px;height:25px}.brand-logo{height:95px}.control-deck{margin-top:6px}}
.no-motion .scene{transform:none}.no-motion *,.no-motion *:before,.no-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
@media(prefers-reduced-motion:reduce){.scene{transform:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(min-width:851px) and (min-height:721px){.game-shell{max-width:min(1460px,calc((100svh - 450px)*1.83 + 300px))}}
.line-overlay{inset:8px;width:calc(100% - 16px);height:calc(100% - 16px)}
@media(max-width:600px){.topbar{height:35px}.brand-logo{height:90px;width:250px}.brand.has-art{margin:0 0 5px}.reels{aspect-ratio:1.6}.machine{gap:12px}.feature-button,.super-button{min-height:77px;padding-top:6px;padding-bottom:6px}.super-button .feature-title-art{height:24px}.feature-button .feature-title-art{max-height:25px}.feature-button>img:not(.feature-title-art){height:56px;top:7px}.control-deck{gap:9px;padding-top:10px;padding-bottom:10px}.line-overlay{inset:5px;width:calc(100% - 10px);height:calc(100% - 10px)}}
