
/* One continuous machine: crown, glass bay and hand-level control deck. */
:root{--pink:#ff91df;--cyan:#82e9ff;--edge:#bd92ca}
body{background:radial-gradient(ellipse at 50% 55%,#342348,#0b0815 62%,#04040a);overflow-x:hidden}
header{max-width:1100px;height:42px;padding:5px 12px;gap:10px;flex-wrap:nowrap}
.logo{font-size:20px;letter-spacing:3px}.balances{margin-left:auto;gap:10px;order:0;width:auto}
.balance,.yona-wallet{background:none;border:0;border-radius:0;padding:0;gap:6px;flex:none}.balance small,.yona-wallet small{font-size:12px}.balance b,.yona-wallet b{font-size:19px}.balance button{height:25px;width:25px}
.icon-button{min-width:34px;height:30px;padding:4px 8px;font-size:12px;background:#24192f;border-color:#735182}
main{width:min(1100px,100%);height:calc(100svh - 46px);min-height:640px;margin:auto;padding:0 10px 4px;max-width:none}
.cabinet{height:100%;display:flex;flex-direction:column;position:relative;isolation:isolate;overflow:visible;border-radius:80px 80px 24px 24px;border:4px ridge #b79dc2;background:linear-gradient(90deg,#4f4158,#100b1e 5%,#100b1e 95%,#4f4158);box-shadow:0 0 0 3px #201a2d,0 0 0 5px #655072,0 15px 60px #000,0 0 35px #9064c233}
.jackpot-banner{flex:0 0 79px;min-height:79px;display:flex;justify-content:center;gap:40px;align-items:center;position:relative;z-index:4;margin:-4px -4px 0;padding:10px 38px;border:5px ridge #d6b574;border-radius:70% 70% 20% 20%/55% 55% 15% 15%;background:radial-gradient(ellipse at 50% 5%,#723976,#211029 60%,#100b1d);box-shadow:inset 0 3px 10px #ffe9b64d,0 5px 0 #1c1228,0 7px 0 #675078,0 0 23px #ae6bd63d;transition:box-shadow .7s}
.jackpot-banner:before,.jackpot-banner:after{content:'';position:absolute;top:36%;height:7px;width:17%;background:repeating-linear-gradient(90deg,#fada96 0 5px,#624270 5px 11px);box-shadow:0 0 12px #eabdff66}
.jackpot-banner:before{left:4%}.jackpot-banner:after{right:4%}
.main-jp{display:grid;grid-template-columns:auto auto;justify-content:center;text-align:center;gap:0 7px;align-items:baseline}
.main-jp>span{grid-column:1/-1;font-size:13px;letter-spacing:4px;color:#ffd1f2;font-weight:900;text-shadow:0 0 10px #ed7fff}
.main-jp strong{font-size:43px;line-height:1.04;color:#ffe89b;letter-spacing:3px;font-variant-numeric:tabular-nums;text-shadow:0 2px #624224,0 0 18px #efb86177;animation:sign-breathe 6s ease-in-out infinite}
.main-jp small{font-size:10px;color:#e5c7b0}.sub-jps{position:absolute;right:5%;bottom:9px;font-size:10px;line-height:1.45;z-index:1;min-width:0}.sub-jps b{color:#e8c7ff;margin-left:6px}
.jp-grown .jackpot-banner{box-shadow:inset 0 0 25px #ffd65f40,0 0 30px #eeba5d88,0 6px 0 #765570}.jp-grown .main-jp strong{color:#fff9d8}
.machine-stage{position:relative;flex:1;min-height:0;height:auto;aspect-ratio:auto;margin:0 5px;background:radial-gradient(ellipse at 50% 0,#634267,#120d20 65%);isolation:isolate;overflow:hidden;border:0}
#scene{position:absolute;inset:0;z-index:0}#scene canvas{width:100%;height:100%;display:block}
.glass-sheen{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(117deg,transparent 12%,#d5ecff07 13%,#e9ddff04 20%,transparent 21%,transparent 74%,#d8deff0a 75%,transparent 84%);box-shadow:inset 0 0 24px #a983be20}
.led-spine{position:absolute;z-index:4;width:12px;top:3%;bottom:0;border:3px ridge #8d7996;border-radius:80% 30% 0 0;pointer-events:none;background:repeating-linear-gradient(0deg,#46364c 0 9px,#eda8ff 10px 17px,#483c57 18px 24px);box-shadow:0 0 9px #b782ff66;opacity:.75}
.led-spine.left{left:0}.led-spine.right{right:0;background:repeating-linear-gradient(0deg,#2a344b 0 9px,#97f3ff 10px 17px,#2c3045 18px 24px)}
.orbit-rack{position:absolute;left:14%;right:14%;top:4px;height:25%;max-height:170px;min-height:114px;z-index:2;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:end;gap:8px;padding:0;background:none;border:0}
.orbit-unit{position:relative;min-width:0;text-align:center;filter:none;opacity:1;padding:0;transition:filter 1s,transform 1s}
.orbit-unit>span{position:relative;z-index:2;display:block;font-size:11px;font-weight:900;letter-spacing:1px;color:#c5eaff;text-shadow:0 0 10px #76caff;margin:0 0 3px}
.orbit-unit canvas{display:block;width:100%;height:auto;aspect-ratio:1.65;object-fit:fill;background:#291b3a;border:3px ridge #bca5c8;border-radius:50%;box-shadow:0 7px 0 #54425e,0 10px 0 #181020,0 0 17px #8ec2ff44;filter:brightness(.95);transform:none}
.orbit-unit:after{content:'';position:absolute;left:0;right:0;top:20%;bottom:2%;border:1px solid #c8e4ff55;border-radius:50% 50% 42% 42%;box-shadow:inset 0 13px 12px #c7e6ff20,inset 4px 3px 3px #f0e8ff3d;pointer-events:none;background:linear-gradient(128deg,transparent 20%,#e8f8ff15 22%,transparent 35%,transparent 78%,#ffffff12 81%,transparent 85%)}
.orbit-unit[data-stage="3"]{align-self:start;margin-top:0;z-index:2}.orbit-unit[data-stage="3"] canvas{filter:brightness(.5) saturate(.65);border-color:#9f8870;box-shadow:0 8px 0 #483b48,0 11px 0 #17101d}.orbit-unit[data-stage="3"]>span{color:#bea795;text-shadow:none}
.orbit-unit.active{filter:drop-shadow(0 0 13px #d5acff);transform:scale(1.05);z-index:5}.orbit-unit.active canvas{filter:brightness(1.25);border-color:#ffe9ad}.orbit-unit.active>span{color:#fff4cb}.orbit-unit.passed canvas{box-shadow:0 7px 0 #645271,0 0 20px #be8ce277}
.slot-screen{position:absolute;z-index:3;top:27%;left:50%;transform:translateX(-50%);width:29%;max-width:300px;min-width:180px;padding:7px 10px;background:linear-gradient(110deg,#c6a578,#4e345d 7%,#1b102c 15%,#170f25 85%,#8f6b99 96%,#e3c89d);border:4px ridge #b8a0b4;border-radius:28px 28px 18px 18px;box-shadow:0 6px 0 #574560,0 9px 0 #140b20,0 0 16px #d791ff3d;pointer-events:none}
.slot-caption{font-size:10px;display:flex;justify-content:space-between;gap:3px;flex-wrap:nowrap;margin:0 2px 4px;color:#f1cefb;white-space:nowrap}.slot-caption #queue{font-size:10px;color:#ffe7a4}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;aspect-ratio:1.45;padding:2px;border:2px inset #b5a3be;border-radius:12px;background:#100b1a;overflow:hidden;box-shadow:inset 0 0 20px #0009;isolation:isolate}
.slot-grid:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(114deg,transparent 6%,#fff2 7%,#fff1 23%,transparent 24%),linear-gradient(#12072199,transparent 20%,transparent 78%,#120721aa);box-shadow:inset 0 0 10px #07020fa8;border-radius:10px}
.slot-column{gap:0;border-radius:9px;background:linear-gradient(#59315e,#c4abd2 20%,#ece0ee 48%,#bca5c4 79%,#583353);border-right:2px solid #3b2445;box-shadow:inset 0 0 8px #000a}
.slot-cell{border:0;border-radius:0;box-shadow:none;background:none!important;overflow:visible;color:var(--symbol);position:relative}
.slot-cell small{display:none}.slot-cell .symbol-mark{height:100%;font-size:38px;font-style:italic;text-shadow:0 2px #733a67,0 4px #54244c}
.symbol-mark svg{width:70%;height:85%;fill:color-mix(in srgb,currentColor 36%,transparent);stroke-width:2;filter:drop-shadow(0 2px 0 #4b3155)}
.slot-cell.won{background:#fff1!important;box-shadow:inset 0 0 14px #ffd89488;border:0}
#slot-lines{z-index:4}.slot-sprite{width:100%;height:100%;display:block;background-image:url('slot-atlas-v2.png');background-size:400% 300%;background-position:calc(var(--sx)*100%/3) calc(var(--sy)*50%);background-repeat:no-repeat;filter:drop-shadow(0 2px 1px #1b0b3b66)}
.yona-symbol{width:90%;height:90%;background-size:1050% auto;background-position:21% 2%;border-radius:0;box-shadow:none;background-image:url('yona-sheet.png')}
.slot-column.rolling .slot-sprite,.slot-column.rolling .yona-symbol{animation:reel-travel .12s linear infinite;filter:blur(1px)}
.slot-column.rolling.slow .slot-sprite,.slot-column.rolling.slow .yona-symbol{animation-duration:.3s;filter:none}
#companion{position:absolute;z-index:3;left:2%;top:26%;width:30%;height:40%;padding:0;display:block;border:0;border-radius:0;background:none;isolation:auto;pointer-events:none}
#yona-face{position:absolute;inset:0;width:100%;height:90%;border:0;border-radius:0;box-shadow:none;background-image:url('yona-cabinet-v2.png');background-repeat:no-repeat;background-size:300% 100%;background-position:0% 50%;filter:drop-shadow(0 6px 6px #080611aa);transform-origin:50% 90%;animation:yona-breathe 5s ease-in-out infinite;transition:filter .7s}
#yona-face[data-mood=sleep],#yona-face[data-mood=normal]{background-position:0% 50%}
#yona-face[data-mood=alert],#yona-face[data-mood=look]{background-position:50% 50%}
#yona-face[data-mood=awake],#yona-face[data-mood=happy]{background-position:100% 50%;box-shadow:none;filter:drop-shadow(0 0 10px #c966ffc0)}
#yona-quote{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:12px;font-weight:600;color:#f5e5ff;line-height:1.5;margin:0;text-shadow:0 1px 5px #000,0 1px 5px #000}
.level-steps{position:absolute;bottom:-6px;left:20%;right:20%;gap:3px;opacity:.6}.level-step{flex:1;height:2px;width:auto;background:#6c4181}.level-step.on{background:#e8a7ff;box-shadow:0 0 9px #bc7cff}
.win-meter{position:absolute;right:5%;top:30%;z-index:2;text-align:center;width:17%;color:#ffe297;text-shadow:0 0 15px #dbaa65;border-top:2px solid #ab917b;border-bottom:2px solid #ab917b;padding:5px 0;background:#150d24aa}
.win-meter small{display:block;font-size:12px;letter-spacing:3px}.win-meter b{font-size:30px;line-height:1.2}
.embedded-items{position:absolute;right:3%;top:44%;width:21%;z-index:3;font-size:11px;pointer-events:none}
#active-effects{display:flex;flex-direction:column;gap:3px}.effect-chip{background:#100d22b3;border:0;border-left:2px solid #e4baf7;border-radius:0;padding:3px 5px;font-size:10px;margin:0;text-shadow:0 1px #000}.effect-chip b{margin-left:3px}#ball-reserve{font-size:10px;text-align:center;line-height:1.4;color:#eec693}
.awakening-strip{height:16px;min-height:16px;display:flex;align-items:center;gap:10px;margin:0 13px;position:relative;z-index:2;background:#110b1b;border-top:2px ridge #a087a8}
#fever-caption{font-size:10px;letter-spacing:1px;margin:0 0 0 6px;color:#dcc4ef;white-space:nowrap}
#fever-track{height:6px;flex:1;border-radius:2px;margin-right:6px;background:#3a204d;overflow:visible}
#fever-fill{background:linear-gradient(90deg,#7940d1,#da8ff8 65%,#e4eeff);box-shadow:0 0 10px #d596ff80;transition:width .35s}
.control-deck{display:grid;grid-template-columns:1fr .55fr 1.3fr .55fr;align-items:center;gap:24px;position:relative;z-index:4;flex:0 0 86px;margin:0 -3px;padding:11px 8%;border:5px ridge #9f859c;border-radius:15px 15px 28px 28px;background:linear-gradient(105deg,#685168,#1a1225 22%,#30203b 50%,#160f21 75%,#796278);box-shadow:0 7px 0 #100b17,inset 0 8px 9px #c8b4d322}
.aim-control{width:100%;max-width:none}.aim-control label{font-size:11px;color:#d6bfdf;letter-spacing:1px;margin-bottom:8px}
#aim{appearance:none;display:block;width:100%;height:6px;border-radius:4px;background:#060410;border:1px solid #8e708e;box-shadow:0 1px #b29aaa;touch-action:pan-y}
#aim::-webkit-slider-thumb{appearance:none;width:20px;height:25px;border-radius:5px;background:linear-gradient(90deg,#aaa1b7,#ede9f6 40%,#736780);border:2px solid #b7a4c0;box-shadow:0 3px 2px #0009}
#aim::-moz-range-thumb{width:18px;height:23px;border-radius:5px;background:#dfd2e9;border:2px solid #b7a4c0}
.bet-control{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#c6b0d6;font-weight:700}
.bet-control select{font:inherit;font-size:15px;appearance:none;background:radial-gradient(ellipse at 40% 25%,#766087,#25182f 72%);color:#ffe3a6;border:3px ridge #b69dba;border-radius:50%;width:51px;height:43px;text-align:center;padding:4px;cursor:pointer;box-shadow:0 4px 0 #100b15}
.insert{min-width:0;width:100%;max-width:230px;justify-self:center;min-height:61px;border:4px ridge #f9e1a2;border-radius:50%;padding:7px 10px;font-size:18px;letter-spacing:1px;color:#35132f;background:radial-gradient(ellipse at 45% 30%,#fffad0,#f6c079 50%,#d580ba 80%,#74439b);box-shadow:0 6px 0 #654263,0 9px 0 #100818,0 0 23px #eaafe749,inset 0 2px 9px #fff9;font-weight:900}
.insert small{font-size:10px;letter-spacing:1px;margin-top:0}.insert:active{transform:translateY(4px);box-shadow:0 2px 0 #654263,0 5px 0 #100818,0 0 30px #f7d39088}
#auto{justify-self:center;width:55px;height:54px;padding:5px;border-radius:50%;border:3px ridge #a3a1bb;background:radial-gradient(ellipse at 40% 20%,#606079,#20182e);box-shadow:0 4px 0 #0b0813;font-size:10px}
#auto b{font-size:12px;margin:0;color:#dfc2eb}#auto[aria-pressed=true]{background:radial-gradient(ellipse,#cb92e4,#7234a1);box-shadow:0 4px 0 #170d25,0 0 13px #be8dff88}
.machine-status{flex:0 0 24px;min-height:24px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;font-size:11px;color:#c4a9d4;padding:6px 15px 2px;text-align:center;border:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#collect-fx{z-index:5;top:64%;font-size:clamp(23px,4vw,45px)}
#kurun{z-index:9;inset:0;background:radial-gradient(ellipse at 50% 45%,#634772e8,#110b20f5 77%);gap:7px;padding:15px}
#kurun-canvas{width:min(75%,480px);max-height:68%;height:auto;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 12px 10px #02000899)}
#kurun-stage{margin:0;font-size:22px}#kurun-kind{font-size:12px}.stage-step{font-size:12px}#kurun-result{font-size:24px}#kurun-hint{font-size:13px}
#reward-overlay{z-index:10;background:radial-gradient(ellipse,#493156e8,#0b0715f8 78%);perspective:800px}
.reward-object{border:0;border-radius:0;width:205px;height:205px;background:none;box-shadow:none;transform-style:preserve-3d}
#reward-art{width:100%;height:100%;display:grid;place-items:center}#reward-art .slot-sprite{width:100%;height:100%;filter:drop-shadow(0 10px 7px #0008)}
#reward-overlay[data-phase=arrive] .reward-object{animation:reward-flight 1s both}
#reward-overlay[data-type=card][data-phase=unlock] .reward-object{animation:physical-flip 1s both}
#reward-overlay[data-phase=glow] .reward-object{box-shadow:none;filter:drop-shadow(0 0 24px var(--reward-color));transform:scale(1.12)}
#reward-overlay[data-phase=reveal] .reward-object{box-shadow:none;filter:drop-shadow(0 0 18px var(--reward-color));transform:scale(1.02)}
#reward-overlay[data-type=card][data-phase=arrive] .reward-object,#reward-overlay[data-type=card][data-phase=approach] .reward-object{filter:hue-rotate(10deg) brightness(.7)}
.reward-yona{background-image:url('yona-cabinet-v2.png');background-size:300% 100%;background-position:50% 50%;height:280px;width:220px;left:-160px;bottom:0;opacity:.6;border-radius:0;mask-image:none}
#reward-overlay[data-rarity="YONA RARE"] .reward-yona,#reward-overlay[data-rarity="SUPER RARE"] .reward-yona{background-size:300% 100%;background-position:100% 50%;width:280px;height:330px;opacity:.85}
#reward-overlay[data-phase=reveal][data-rarity="YONA RARE"]{background:radial-gradient(ellipse,#613768,#182741 55%,#10091e 85%)}
#cinematic{z-index:12}.cinematic-content h2{font-size:clamp(30px,5vw,60px)}#toast{z-index:30;bottom:120px}
#items-dialog .session-info{margin-top:25px;display:flex;flex-direction:column;gap:10px;font-size:14px}#items-dialog #item-history{display:flex;flex-wrap:wrap;overflow:visible}#items-dialog .history-card{font-size:14px}#items-dialog .history-card small{font-size:12px}
.final-dark #scene,.final-dark .slot-screen,.final-dark #companion,.final-dark .win-meter,.final-dark .embedded-items,.final-dark .led-spine{filter:brightness(.13);transition:filter .8s}
.final-dark .orbit-unit:not(.active){filter:brightness(.17)}.final-dark .orbit-unit.active{filter:drop-shadow(0 0 25px #ffe1a1)}
.slot-reach .led-spine{animation:led-flow 1.6s linear infinite;opacity:1}.slot-reach .slot-screen{box-shadow:0 5px 0 #67496d,0 0 25px #efd497aa}.slot-reach .cabinet{box-shadow:0 0 25px #bb7ae966}
.fever .led-spine{animation:led-flow 1s linear infinite;opacity:1;box-shadow:0 0 18px #e69cff}.fever .jackpot-banner{box-shadow:0 0 24px #d893ff88}.fever #companion,.slot-reach #companion{background:none}.fever #yona-face{filter:drop-shadow(0 0 15px #d386ff)}.fever .cabinet{border-color:#e8c398;box-shadow:0 0 35px #c474ff99}
.jp-lit .cabinet{box-shadow:0 0 60px #deb5ff,0 0 0 4px #fff4c4}.jp-lit .jackpot-banner{box-shadow:0 0 45px #ffd994}.jp-lit .led-spine{opacity:1;background:#fff0bc}.jp-lit .orbit-unit canvas{filter:brightness(1.4)}.anomaly #yona-face{filter:brightness(1.18) drop-shadow(0 0 15px #c991ff)}
@keyframes led-flow{to{background-position:0 144px}}
@keyframes sign-breathe{50%{text-shadow:0 2px #624224,0 0 15px #ffe8a890}}
@keyframes yona-breathe{50%{transform:translateY(2px) rotate(.5deg)}}
@keyframes reel-travel{from{transform:translateY(-65%)}to{transform:translateY(65%)}}
@keyframes reward-flight{from{transform:translateY(-150px) scale(.2) rotate(-12deg);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes physical-flip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}100%{transform:rotateY(180deg)}}
@media(max-width:650px){
header{height:38px;padding:4px 9px;gap:7px}.logo{font-size:15px;letter-spacing:2px;margin:0}.balances{gap:8px;flex:1;justify-content:flex-end}.balance b,.yona-wallet b{font-size:16px}.balance small{display:none}.yona-wallet small{font-size:8px;max-width:28px;line-height:1.1}.yona-wallet{gap:3px}.balance button{width:23px;height:23px;font-size:18px}.icon-button{font-size:10px;padding:4px 5px;min-width:28px;height:27px}
main{height:calc(100svh - 40px);min-height:610px;padding:0 5px 5px}.cabinet{border-width:3px;border-radius:50px 50px 20px 20px}.jackpot-banner{flex-basis:72px;min-height:72px;padding:8px 20px;gap:4px;margin:-3px -3px 0;border-width:4px}.main-jp>span{font-size:11px;letter-spacing:2px}.main-jp strong{font-size:34px;letter-spacing:2px}.main-jp small{display:none}.sub-jps{font-size:8px;bottom:8px;right:4%;min-width:0}.sub-jps b{display:block;margin:0}.jackpot-banner:before,.jackpot-banner:after{width:11%;top:35%;height:5px}.jackpot-banner:before{left:7%}.jackpot-banner:after{right:7%}
.machine-stage{margin:0 1px;min-height:0;aspect-ratio:auto}.orbit-rack{left:3%;right:3%;gap:3px;top:7px;height:23%;max-height:128px;min-height:103px;grid-template-columns:1fr 1.12fr 1fr}.orbit-unit>span{font-size:9px;letter-spacing:.5px}.orbit-unit canvas{border-width:2px;aspect-ratio:1.42}.orbit-unit[data-stage="3"]{margin-top:0}.orbit-unit:after{top:20%}.led-spine{width:8px;border-width:2px}
.slot-screen{width:46%;max-width:220px;min-width:150px;top:27%;padding:5px 6px;border-width:3px;border-radius:20px 20px 12px 12px}.slot-caption,.slot-caption #queue{font-size:8px}.slot-grid{aspect-ratio:1.26;gap:2px;padding:1px;border-width:1px}.slot-cell .symbol-mark{font-size:29px}
#companion{left:-2%;top:29%;width:31%;height:35%}#yona-face{height:87%;background-size:300% 100%;border-radius:0}#yona-quote{font-size:10px;bottom:1%;padding:0 2px;line-height:1.5}.level-steps{display:none}
.win-meter{top:32%;right:3%;width:20%;padding:3px 0}.win-meter small{font-size:9px;letter-spacing:2px}.win-meter b{font-size:22px}.embedded-items{top:44%;right:2%;width:22%}.effect-chip{font-size:8px;padding:3px;line-height:1.3}.effect-chip b{margin-left:2px}#ball-reserve{font-size:8px}
.awakening-strip{height:15px;min-height:15px;margin:0 7px;gap:6px}#fever-caption{font-size:9px;letter-spacing:1px;display:block;margin:0 0 0 3px;white-space:nowrap}#fever-track{height:5px;flex:1}
.control-deck{gap:12px;flex:0 0 78px;padding:8px 14px;border-width:4px;margin:0 -2px;border-radius:14px 14px 22px 22px;grid-template-columns:1fr .55fr 1.25fr .55fr}.aim-control{width:100%}.aim-control label{font-size:9px;margin-bottom:8px}.bet-control{font-size:9px}.bet-control select{width:39px;height:36px;font-size:12px}.insert{font-size:12px;min-height:53px;letter-spacing:0;padding:5px;border-width:3px}.insert small{font-size:8px}#auto{width:41px;height:42px;font-size:8px;border-width:3px}#auto b{font-size:10px}
.machine-status{font-size:10px;flex-basis:23px;min-height:23px;padding:6px 8px 0}#collect-fx{font-size:24px;left:5%;right:5%;top:65%}
#kurun{padding:10px 6px;gap:5px}#kurun-canvas{width:94%;max-height:63%}#kurun-stage{font-size:18px}#kurun-kind{font-size:11px}#kurun-result{font-size:22px}#kurun-hint{font-size:12px}.stage-step{font-size:10px}
#reward-overlay{padding:12px;gap:9px}.reward-object{width:170px;height:170px}#reward-title{font-size:26px}#reward-detail{font-size:14px;max-width:310px}.reward-yona{width:160px;height:220px;background-size:300% 100%;left:-120px}.cinematic-content h2{font-size:34px}.cinematic-content strong{font-size:64px}
}
@media(max-height:650px) and (min-width:651px){main{height:740px;min-height:740px}}
@media(prefers-reduced-motion:reduce){.led-spine,#yona-face,.main-jp strong,.slot-column.rolling .slot-sprite,.slot-column.rolling .yona-symbol,.reward-object{animation:none!important}.orbit-unit,.final-dark #scene,#yona-face,.jackpot-banner{transition:none}.slot-column.rolling .slot-sprite{filter:none}}

.slot-cell .slot-sprite{height:100%;width:auto;max-width:100%;aspect-ratio:1}
.yona-symbol{width:100%;height:100%;background-image:url('yona-cabinet-v2.png');background-size:300% 100%;background-position:50% 50%;filter:drop-shadow(0 1px 1px #734a7c)}

/* Reserve the upper glass for the draw mechanisms; fit the moving bed below. */
#scene{top:28%;bottom:0}
@media(max-width:650px){#scene{top:26%}}

#kurun[data-stage="3"][data-phase="intro"]{background:transparent;box-shadow:none}
#kurun[data-stage="3"][data-phase="intro"] #kurun-canvas{display:none}
#kurun[data-stage="3"][data-phase="intro"] .stage-steps{display:none}
#kurun[data-stage="3"][data-phase="intro"] #kurun-result{font-size:70px;color:#fff3c9;text-shadow:0 0 30px #ca99ff}
#kurun[data-stage="3"][data-phase="intro"] #kurun-stage{margin-top:80px}

/* Interior pass: the LCD and Yona's alcove end before the moving field begins. */
.orbit-rack{top:1%;height:20%;min-height:0;max-height:none;left:15%;right:15%;align-items:stretch}
.orbit-unit{height:89%;align-self:end;display:flex;flex-direction:column;justify-content:flex-end}
.orbit-unit>span{flex:0 0 15px;font-size:10px}
.orbit-unit canvas{width:100%;height:calc(100% - 18px);min-height:0;aspect-ratio:auto;object-fit:fill}
.orbit-unit[data-stage="3"]{height:100%;align-self:start}
.orbit-unit[data-stage="3"] canvas{filter:brightness(.91) saturate(1.25);border-color:#e3c18c;box-shadow:0 8px 0 #72545c,0 11px 0 #23132b,0 0 19px #f5ce6b50}
.orbit-unit[data-stage="3"]>span{color:#ffe8a7;text-shadow:0 0 9px #e5b467}
.orbit-unit[data-stage="1"] canvas{box-shadow:0 7px 0 #405265,0 10px 0 #181020,0 0 20px #74d9ff55}
.orbit-unit[data-stage="2"] canvas{box-shadow:0 7px 0 #674062,0 10px 0 #181020,0 0 20px #ff98d84d}
.orbit-unit.active canvas{filter:brightness(1.3) saturate(1.2)}
.slot-screen{top:21.5%;height:24%;width:auto;aspect-ratio:1.5;max-width:48%;min-width:0;max-height:none;display:flex;flex-direction:column;padding:5px 8px;border-radius:24px 24px 12px 12px}
.slot-caption{flex:0 0 13px;line-height:12px;margin:0 1px 3px;overflow:hidden}
.slot-caption #slot-label{overflow:hidden;text-overflow:ellipsis}
.slot-grid{flex:1;width:100%;min-height:0;aspect-ratio:auto;gap:3px;padding:1px}
.slot-cell .symbol-mark{width:100%;height:100%}.slot-cell .slot-sprite{filter:drop-shadow(0 2px 1px #4c1f63);transform:scale(1.08)}
.slot-column.rolling .slot-sprite{filter:drop-shadow(0 -5px 3px #d59fff77) blur(.35px)}
.slot-column.stopped{animation:reel-stop .23s ease-out}
.slot-screen:before,.slot-screen:after{content:'';position:absolute;top:12%;bottom:10%;width:3px;border-radius:4px;background:repeating-linear-gradient(#77eaff 0 4px,#45294c 4px 9px);box-shadow:0 0 8px #80f3ff}
.slot-screen:before{left:0}.slot-screen:after{right:0;background:repeating-linear-gradient(#ffa3d7 0 4px,#45294c 4px 9px)}
.slot-reach .slot-screen:before,.slot-reach .slot-screen:after{background:#ffe995;box-shadow:0 0 14px #ffd979}
#scene{top:47%;bottom:0}
#companion{left:5%;top:24%;height:20%;width:22%;background:radial-gradient(ellipse at 50% 75%,#76557088,#261836 64%,transparent 67%);border:0;border-bottom:5px ridge #a67ca0;border-radius:50% 50% 30% 30%;box-shadow:0 8px 8px #06030c77}
#companion:after{content:'☾';position:absolute;right:0;top:-3px;font-size:20px;color:#bcd7ff;text-shadow:0 0 12px #a0bdff}
#yona-face{left:5%;right:5%;top:0;bottom:auto;width:90%;height:90%;animation:yona-breathe 5s ease-in-out infinite;filter:drop-shadow(0 3px 3px #040207aa)}
#yona-quote{font-size:10px;bottom:-18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .4s}
#companion.speaking #yona-quote{opacity:1}
.level-steps{display:none}
.win-meter{right:6%;top:26%;width:16%;border:0;background:radial-gradient(ellipse,#351d4988,transparent 72%);transform:rotate(-4deg)}
.win-meter small{font-size:10px}.win-meter b{font-size:27px}
.embedded-items{top:35%;right:3%;width:22%;max-height:10%;overflow:hidden}
.machine-status{font-size:9px;opacity:.58}
.reward-port{position:absolute;right:8%;top:21.7%;width:12%;height:4%;border:2px ridge #b99aae;border-radius:40%;background:#0c0814;z-index:2;perspective:200px;pointer-events:none}
.reward-port:after{content:'';position:absolute;inset:0;border-radius:40%;background:linear-gradient(#887293,#2e193f);border-bottom:2px solid #ecc780;transform-origin:top;transition:transform .6s,box-shadow .6s}
.chest-busy .reward-port:after{transform:rotateX(105deg);box-shadow:0 0 20px #ffd775}
.cabinet-charm{position:absolute;z-index:2;pointer-events:none;width:25px;height:25px;filter:drop-shadow(0 0 6px #d39bfb88);animation:charm-drift 7s ease-in-out infinite}
.cabinet-charm .slot-sprite{width:100%;height:100%}.charm-moon{left:5%;top:15%;width:31px;height:31px;transform:rotate(-15deg)}.charm-star{right:7%;top:15%;animation-delay:-2s}.charm-star-small{right:4%;top:11%;width:15px;height:15px;animation-delay:-4s}
.payout-lights .led-spine{animation:led-flow .7s linear infinite;background:repeating-linear-gradient(0deg,#fff0a6 0 12px,#695581 13px 24px);opacity:1}
@keyframes reel-stop{0%{transform:translateY(-5px)}60%{transform:translateY(3px)}100%{transform:translateY(0)}}
@keyframes charm-drift{50%{translate:0 -2px;filter:drop-shadow(0 0 9px #efbfff99)}}
@media(max-width:650px){
.orbit-rack{left:3%;right:3%;height:20%;min-height:0;max-height:none}.orbit-unit>span{font-size:8px;flex-basis:13px}.orbit-unit canvas{height:calc(100% - 16px)}
.slot-screen{top:21.5%;height:24%;width:auto;min-width:0;max-width:49%;padding:4px 5px;aspect-ratio:1.45}
.slot-caption,.slot-caption #queue{font-size:7px;line-height:9px}.slot-caption{flex-basis:10px;margin-bottom:2px}
#scene{top:47%}
#companion{left:3%;top:25%;height:18%;width:22%}#yona-face{height:91%}#yona-quote{font-size:8px;bottom:-17px}#companion:after{font-size:14px;top:-3px}
.win-meter{right:4%;top:27%;width:17%}.win-meter b{font-size:23px}.win-meter small{font-size:8px}
.embedded-items{top:36%;right:2%;width:22%;max-height:10%}.reward-port{right:7%;top:23%;width:13%;height:3%}
.charm-moon{left:4%;top:20%;width:20px;height:20px}.charm-star{right:4%;top:20%;width:19px;height:19px}.charm-star-small{right:2%;top:17%;width:12px;height:12px}
}
@media(prefers-reduced-motion:reduce){.slot-column.stopped,.cabinet-charm,.payout-lights .led-spine{animation:none}.reward-port:after{transition:none}}
#reward-overlay[data-type=chest][data-phase=arrive]{background:#09051122}
#reward-overlay[data-type=chest][data-phase=arrive] #reward-label,#reward-overlay[data-type=chest][data-phase=arrive] #reward-title,#reward-overlay[data-type=chest][data-phase=arrive] #reward-detail,#reward-overlay[data-type=chest][data-phase=arrive] .reward-yona{visibility:hidden}

/* Cat-ear frame and moon crown: structural silhouette, not another panel. */
main{padding-top:48px}
.cabinet{border-radius:45px 45px 24px 24px}
.ear-frame{position:absolute;top:-48px;width:23%;height:120px;z-index:-1;background:linear-gradient(125deg,#ffe6a4,#8261a8 30%,#e4b2ff 55%,#77508e);clip-path:polygon(5% 100%,9% 3%,94% 73%);filter:none}
.ear-frame i{display:block;position:absolute;inset:6px;background:linear-gradient(135deg,#1d122b,#704494 80%);clip-path:polygon(5% 100%,9% 3%,94% 73%)}
.ear-left{left:1%;transform:rotate(-7deg)}.ear-right{right:1%;transform:scaleX(-1) rotate(-7deg)}
.moon-crown{position:absolute;z-index:-1;left:50%;top:-43px;width:235px;height:132px;transform:translateX(-50%) rotate(-10deg);border:10px solid #9870c4;border-left-color:transparent;border-radius:50%;box-shadow:inset -5px 3px 14px #c795ff44,5px -3px 15px #b16eff33;background:transparent}
.jackpot-banner{flex-basis:77px;min-height:77px;margin-top:-1px;border-radius:35% 35% 22% 22%/38% 38% 25% 25%;background:radial-gradient(ellipse at 50% 15%,#593063,#201126 70%);z-index:4}
.main-jp>span{font-size:15px;letter-spacing:4px;text-shadow:0 1px #ffe7fb,0 3px #673c81,0 5px #291236,0 0 13px #be7ae4}
.main-jp strong{text-shadow:0 2px #9d6f38,0 4px #4d2d35,0 0 14px #eed09f66}
.transport-rails{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.rail-shell path{fill:none;stroke:#829cac66;stroke-width:22;stroke-linecap:round}
.rail-shine path{fill:none;stroke:#d0ecff9c;stroke-width:3;stroke-linecap:round}
#transport-ball{fill:#e9d6ff;stroke:#fff5d3;stroke-width:5;filter:drop-shadow(0 0 8px #e8c5ff)}
.orbit-rack{left:8%;right:8%;height:23%;top:1%;display:block}
.orbit-unit{position:absolute;bottom:0;height:57%;width:28%;display:flex;justify-content:flex-end}
.orbit-unit[data-stage="1"]{left:0}.orbit-unit[data-stage="2"]{right:0}
.orbit-unit[data-stage="3"]{left:33%;top:0;height:78%;width:34%;margin:0}
.orbit-unit[data-stage="3"] canvas{box-shadow:0 8px 0 #846368,0 11px 0 #201225,0 0 16px #9c6fac66;border:3px ridge #edc98c}
.orbit-unit[data-stage="3"]>span{font-size:12px;color:#ffe6ba;font-weight:900;letter-spacing:1px}
.slot-screen{top:25%;height:20%;max-width:43%;border-top-width:5px;border-radius:20px 20px 10px 10px}
.slot-screen:before,.slot-screen:after{height:4px;top:40%;bottom:auto;width:33%;z-index:-1;box-shadow:0 2px 0 #665174,0 0 8px #9ddcff}
.slot-screen:before{left:-33%}.slot-screen:after{right:-33%}
#companion{top:25%;left:8%;width:19%;height:18%;border-bottom-width:3px}
#yona-quote{font-size:9px}
.win-meter{top:29%;right:8%;width:16%}
.embedded-items{right:5%;top:37%;width:20%}
.reward-port{top:25.5%;right:9%}
#scene{top:46%}
.charm-moon{display:none}.charm-star{right:5%;top:23%}.charm-star-small{right:2%;top:18%}
body[data-awake="2"] .ear-frame,body[data-awake="3"] .ear-frame,body[data-awake="4"] .ear-frame,body[data-awake="5"] .ear-frame,.final-stage .ear-frame{background:linear-gradient(125deg,#fff1c0,#d797ff 35%,#e9c6ff 55%,#9661d0)}
body[data-awake="3"] .moon-crown,body[data-awake="4"] .moon-crown,body[data-awake="5"] .moon-crown,.final-stage .moon-crown{border-color:#d399ff;border-left-color:transparent;box-shadow:inset -5px 3px 17px #daa9ff66,5px -3px 24px #c380ff77}
body[data-awake="4"] .rail-shell path,body[data-awake="5"] .rail-shell path,.final-stage .rail-shell path{stroke:#ce9dff77}
body[data-awake="4"] .rail-shine path,body[data-awake="5"] .rail-shine path,.final-stage .rail-shine path{stroke:#f0d6ff}
body[data-awake="5"] .orbit-unit[data-stage="3"] canvas,.final-stage .orbit-unit[data-stage="3"] canvas{filter:brightness(1.2);box-shadow:0 8px 0 #846368,0 0 24px #e5be8c99}
.final-dark .transport-rails{opacity:.55}.final-dark #transport-ball{opacity:1}
#kurun[data-phase="intro"]{background:transparent;box-shadow:none;justify-content:center;pointer-events:none}
#kurun[data-phase="intro"] #kurun-canvas,#kurun[data-phase="intro"] .stage-steps,#kurun[data-phase="intro"] #kurun-kind,#kurun[data-phase="intro"] #kurun-hint{display:none}
#kurun[data-phase="intro"] #kurun-stage{margin-top:150px;text-shadow:0 2px 9px #10091b}
#kurun[data-phase="intro"] #kurun-result{font-size:55px;color:#ffe6b6;text-shadow:0 0 18px #b894db}
.jp-lit .ear-frame{background:linear-gradient(120deg,#fff,#b3f2ff,#ffc8f1,#f2dc86,#fff)}
.jp-lit .moon-crown{border-color:#fff4ed;border-left-color:transparent;box-shadow:0 0 35px #f8d6ff,inset 0 0 16px #bbedff}
.jp-lit .rail-shine path{stroke:#fff5e6}
@media(max-width:650px){
main{padding-top:35px;min-height:645px}
.ear-frame{top:-36px;height:91px;width:25%}.ear-left{left:1%}.ear-right{right:1%}
.moon-crown{top:-34px;width:165px;height:98px;border-width:7px}
.jackpot-banner{flex-basis:70px;min-height:70px}
.main-jp>span{font-size:12px;letter-spacing:2px}
.orbit-rack{left:8%;right:8%;top:1%;height:23%}.orbit-unit>span{font-size:8px}.orbit-unit[data-stage="3"]>span{font-size:9px;letter-spacing:0}
.orbit-unit[data-stage="3"] canvas{border-width:2px}
.slot-screen{top:25%;height:20%;max-width:43%;min-width:0}
#companion{top:27%;left:7%;width:19%;height:16%}#yona-quote{font-size:8px}
.win-meter{top:29%;right:6%;width:17%}.embedded-items{right:4%;top:37%;width:20%}
.reward-port{top:25.5%;right:9%}.rail-shell path{stroke-width:22}.rail-shine path{stroke-width:4}
#scene{top:46%}#kurun[data-phase="intro"] #kurun-stage{margin-top:120px;font-size:16px}
}

/* The large Yona reveal is reserved for JACKPOT. */
#reward-overlay .reward-yona,#reward-overlay[data-rarity="YONA RARE"] .reward-yona,#reward-overlay[data-rarity="SUPER RARE"] .reward-yona{width:110px;height:140px;opacity:.45;left:-90px}

/* Play-first layout and a quiet idle GPU budget. */
#scene{top:40%}
.slot-screen{top:25%;height:14%;width:25%;max-width:34%;min-width:0;padding:4px 6px}
.slot-screen .slot-grid{height:calc(100% - 16px);aspect-ratio:auto}
.slot-screen .slot-caption{font-size:9px;margin-bottom:2px}
.slot-screen .slot-caption #queue{font-size:8px}
.slot-reach .slot-screen{z-index:4;transform:translateX(-50%) scale(1.12)}
#companion{height:14%;top:25%}
.embedded-items{top:30%;right:3%;width:18%}
.reward-port{top:25%;right:18%}
.orbit-unit[data-stage="3"]{left:30%;width:40%;height:87%}
.orbit-unit[data-stage="3"] canvas{filter:brightness(.82) saturate(.9)}
.main-jp strong,#yona-face,.cabinet-charm{animation:none}
.slot-column.rolling .slot-sprite,.slot-column.rolling .yona-symbol{filter:none}
.orbit-unit.active{filter:none}
.glass-sheen{box-shadow:none}
.insert{touch-action:manipulation}
.insert.pressed{transform:translateY(4px);background:#ffdc8b}
.transport-rails{z-index:5}
.rail-shell path{stroke-width:26;stroke:#7dacc259}
.rail-shine path{stroke:#9cd3e19c;stroke-width:3}
#transport-ball{filter:none;stroke-width:4}
body[data-awake="4"] .led-spine{opacity:1}
body[data-awake="4"] .glass-sheen{background:linear-gradient(90deg,#c483ff0e,transparent 20%,transparent 80%,#b372ff10)}
.awakening-strip{height:20px;min-height:20px}
#fever-track{height:9px}
#kurun[data-phase="intro"] #kurun-stage{margin-top:60px}
#kurun[data-phase="intro"] #kurun-result{font-size:28px}
#kurun[data-phase="roll"],#kurun[data-phase="land"]{background:radial-gradient(ellipse,#211229e8,#0c081484)}
#reward-overlay[data-type="card"][data-phase="arrive"]{background:#09051122}
.payout-lights .led-spine{animation:led-flow .55s linear 2}
@media(max-width:650px){
#scene{top:40%}
.slot-screen{top:25%;height:14%;width:34%;max-width:34%;padding:3px 4px;border-width:2px}
.slot-caption #queue{display:none}
#companion{top:25%;height:14%}
.embedded-items{top:31%;right:3%}
.win-meter{top:25%;right:5%;width:18%}
.machine-stage{contain:layout paint}
.fever .cabinet,.jp-lit .cabinet{box-shadow:0 0 18px #b782d966}
.final-dark #scene{filter:none}
body:not(.jp-lit) .glass-sheen{box-shadow:none}
}
@media(prefers-reduced-motion:reduce){.insert.pressed{transform:none}}

.slot-column.rolling .symbol-mark{animation:none;filter:none}
body:not(.jp-lit) header{backdrop-filter:none}
@media(max-width:650px){#yona-face{filter:none}.orbit-unit canvas{box-shadow:0 5px 0 #54425e}.slot-screen{box-shadow:0 4px 0 #574560}.fever .machine-stage{box-shadow:none}}

/* Chance chamber: clear reel height, live goals, event-only illumination. */
.machine-stage{min-height:530px}
.orbit-rack{top:4px;height:137px;min-height:0;max-height:none}
.orbit-unit{height:83px;flex-direction:column;justify-content:flex-end}
.orbit-unit canvas{height:calc(100% - 18px);width:100%;object-fit:fill}
.orbit-unit[data-stage="3"]{height:121px;width:40%;left:30%}
.orbit-unit[data-stage="3"] canvas{height:calc(100% - 20px)}
.slot-screen{top:147px;height:110px;width:180px;max-width:38%;aspect-ratio:auto;box-sizing:border-box}
.slot-grid,.slot-screen .slot-grid{height:82px;min-height:0;aspect-ratio:auto}
.slot-column{min-height:0;grid-template-rows:repeat(3,minmax(0,1fr))}
.slot-cell .symbol-mark{height:100%;min-height:0}
#companion{top:148px;height:103px;width:19%}
.win-meter{top:154px}.embedded-items{top:198px}.reward-port{top:147px}
#scene{top:258px}
#chance-zone{position:absolute;top:258px;left:9%;right:9%;height:64px;z-index:4;pointer-events:none;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;background:linear-gradient(90deg,transparent,#150b24e8 15%,#150b24e8 85%,transparent);color:#977baa;border-top:1px solid #76528666;border-bottom:1px solid #76528644}
#chance-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#chance-title{font-size:12px;letter-spacing:2px;z-index:1}
.chance-targets{display:flex;justify-content:space-around;gap:8px;width:100%;z-index:1}
.chance-targets span{font-size:11px;white-space:nowrap;text-align:center;color:#c9bdd8}
#target-ball{color:#90dcfa}
.chance-eyes{display:none;position:absolute;inset:0;background-image:url('yona-cabinet-v2.png');background-size:300% auto;background-position:100% 36%;mask-image:linear-gradient(transparent 24%,black 40%,black 52%,transparent 64%);filter:brightness(1.6);opacity:.8}
.chance-beam{position:absolute;left:50%;bottom:100%;height:240px;width:3px;background:linear-gradient(transparent,#ca8fff);transform:scaleY(0);transform-origin:bottom;opacity:0}
body[data-chance="1"] #chance-zone{color:#c49af8;border-color:#ab67db;background:linear-gradient(90deg,transparent,#38204edd,transparent)}
body[data-chance="2"] #chance-zone{color:#ffbaea;border-color:#ed7dd1;background:linear-gradient(90deg,transparent,#5b244bdd,transparent)}
body[data-chance="3"] #chance-zone{color:#ffe29c;border-color:#e1b65c;background:linear-gradient(90deg,transparent,#624122dd,transparent)}
body[data-chance="4"] #chance-zone{color:#fff;background:linear-gradient(90deg,#774a8699,#437b8099,#92774999)}
.main-jp strong,.jp-grown .main-jp strong{color:#b3a6bd;text-shadow:0 2px #3d2846}
body[data-chance="1"] .main-jp strong{color:#dac3eb;text-shadow:0 0 10px #b357d7}
body[data-chance="2"] .main-jp strong{color:#ffd5ec;text-shadow:0 0 13px #d24f9b}
body[data-chance="3"] .main-jp strong{color:#ffe29a;text-shadow:0 0 16px #dda234}
body[data-chance="4"] .main-jp strong{color:#fff7d7;text-shadow:0 0 22px #fff0b8}
.jp-grown .jackpot-banner{box-shadow:inset 0 2px 10px #b995ca44,0 5px 0 #1c1228}
body[data-signal="awake"] #chance-zone{animation:chamber-awake 2.5s both}
body[data-signal="awake"] .chance-eyes{display:block}
body[data-signal="awake"] .chance-beam{animation:beam-rise 2.5s both}
body[data-signal="hush"] .machine-stage{opacity:.25}
.impact-light{position:absolute;inset:0;z-index:11;pointer-events:none;opacity:0;background:radial-gradient(ellipse,#ffe8a344,transparent 75%)}
body[data-signal="seven"] .impact-light,body[data-signal="collapse"] .impact-light{animation:impact-once .6s both}
body[data-signal="seven"] .ear-frame{background:#ffe5a7}
body[data-signal="collapse"] .machine-stage{animation:short-shake .18s 1}
.final-entry .orbit-unit[data-stage="3"]{animation:final-unfold 1.2s both}
.final-entry .rail-shine path{stroke:#ffdd9a;stroke-dasharray:25 50;animation:rail-converge 1s linear 3}
@keyframes chamber-awake{0%,15%{background:#020104;color:transparent}32%{background:#100619;color:transparent}55%,100%{background:#442054;color:#f5d6ff}}
@keyframes beam-rise{0%,45%{transform:scaleY(0);opacity:0}70%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes impact-once{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
@keyframes short-shake{25%{transform:translateX(2px)}75%{transform:translateX(-2px)}}
@keyframes final-unfold{from{transform:scale(.88)}to{transform:scale(1.06)}}
@keyframes rail-converge{to{stroke-dashoffset:-150}}
@media(max-width:650px){
main{min-height:815px}
.machine-stage{min-height:530px}
.slot-screen{top:146px;height:110px;width:142px;max-width:42%;padding:4px}
#companion{top:155px;height:88px;left:5%;width:21%}
.win-meter{top:154px;right:4%}.embedded-items{top:198px}
#chance-zone{left:6%;right:6%;height:63px}
#chance-title{font-size:11px;letter-spacing:1px}
.chance-targets{gap:3px;flex-wrap:wrap}
.chance-targets span{font-size:10px}
#scene{top:258px}
}
@media(prefers-reduced-motion:reduce){body[data-signal] .machine-stage,.impact-light,.chance-beam,.final-entry .orbit-unit,.final-entry .rail-shine path,body[data-signal="awake"] #chance-zone{animation:none!important}}

.rail-shine use{fill:none;stroke:#9cd3e19c;stroke-width:3;stroke-linecap:round}
body[data-awake="4"] .rail-shine use,body[data-awake="5"] .rail-shine use{stroke:#e4beff}
.final-entry .rail-shine use{stroke:#ffdd9a;stroke-dasharray:25 50;animation:rail-converge 1s linear 3}
@media(prefers-reduced-motion:reduce){.final-entry .rail-shine use{animation:none}}

/* Jewel cabinet: stepped draw deck, recessed controls, concealed transport. */
main{min-height:885px}
.machine-stage{min-height:600px}
.orbit-rack{top:6px;left:7%;right:7%;height:210px}
.orbit-unit[data-stage="1"]{left:0;right:auto;top:120px;bottom:auto;width:33%;height:88px}
.orbit-unit[data-stage="2"]{left:auto;right:0;top:78px;bottom:auto;width:33%;height:93px}
.orbit-unit[data-stage="3"]{left:27%;top:0;width:46%;height:130px}
.orbit-unit[data-stage="3"] canvas{filter:brightness(.48) saturate(.7)}
.orbit-unit>span{font-size:11px}
.orbit-unit canvas{background:#1e1725;border-color:#af97b9;box-shadow:0 5px #6b506b,0 10px #261a2d}
.orbit-unit:after{top:21%;background:linear-gradient(125deg,transparent 25%,#e6ecff13 28%,transparent 40%);box-shadow:inset 0 6px 3px #dddfff17}
.slot-screen{left:77%;top:222px;width:143px;max-width:29%;height:101px;padding:4px 5px;border-width:2px;border-radius:9px;transform:translateX(-50%);box-shadow:0 3px 0 #594461}
.slot-screen .slot-grid{height:77px;border-radius:5px}
.slot-caption #queue{display:none}
.slot-caption #slot-label{font-size:9px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.slot-screen:before,.slot-screen:after{display:none}
.slot-reach .slot-screen{transform:translateX(-50%) scale(1.13);box-shadow:0 4px 0 #775064,0 0 13px #edc19b66}
#companion{left:4%;top:234px;width:22%;height:84px}
.win-meter{right:7%;top:179px;width:20%;border:0;padding:0;background:none}
.win-meter small{font-size:9px}.win-meter b{font-size:18px}
.embedded-items{top:330px;right:6%;width:24%}
.reward-port{right:8%;top:213px;width:20px;height:6px}
#scene{top:313px}
#chance-zone{left:28%;right:36%;top:220px;height:100px;border:0;background:radial-gradient(ellipse,#221230ba,transparent 72%);gap:0;overflow:visible}
#chance-title{position:absolute;bottom:0;left:-20%;right:-20%;text-align:center;font-size:9px;letter-spacing:1px;opacity:.55}
.chance-targets{position:absolute;left:-55%;right:-90%;width:auto;top:95px;height:18px;opacity:0;transition:opacity .3s;pointer-events:none}
body[data-signal="ball"] .chance-targets,body[data-signal="gold"] .chance-targets,.slot-reach .chance-targets{opacity:1}
.chance-targets span{font-size:9px}
.chamber-moon{width:78px;height:78px;opacity:.24;position:absolute;top:0}
.chamber-stars{position:absolute;top:18px;left:0;right:0;height:60px;display:flex;justify-content:space-between;color:#b68ec9;opacity:.08;font-size:11px}
.chamber-stars span:nth-child(2){align-self:flex-end}
body[data-chance="1"] .chamber-stars{opacity:.45}
body[data-chance="2"] .chamber-stars,body[data-chance="3"] .chamber-stars{opacity:.8;color:#f9c493}
body[data-signal="ball"] .chamber-moon,body[data-signal="gold"] .chamber-moon{opacity:1}
body[data-chance="2"] .chamber-moon{opacity:.65}
body[data-chance="3"] .chamber-moon{opacity:.9}
body[data-awake="3"] .chance-eyes,body[data-awake="4"] .chance-eyes,body[data-awake="5"] .chance-eyes{display:block;opacity:.28}
body[data-chance] #chance-zone{border:0;background:radial-gradient(ellipse,#391c4a55,transparent 72%)}
body[data-chance="2"] #chance-zone{background:radial-gradient(ellipse,#75225755,transparent 72%)}
body[data-chance="3"] #chance-zone{background:radial-gradient(ellipse,#8d69234a,transparent 72%)}
body[data-chance="4"] #chance-zone{background:conic-gradient(from 30deg,#785b8133,#56929d55,#9c815233,#785b8133)}
body[data-signal="awake"] #chance-title{font-size:13px;opacity:1}
.wall-lift{position:absolute;z-index:5;top:15px;bottom:17px;width:18px;border:2px ridge #62516c;background:linear-gradient(90deg,#16111e,#3b314511,#15101c);border-radius:6px;pointer-events:none;overflow:hidden}
.wall-lift-left{left:calc(3.6% - 9px)}.wall-lift-right{right:calc(3.6% - 9px)}
.wall-lift:before{content:'';position:absolute;inset:0 4px;border-left:1px solid #92809866;border-right:1px solid #92809833}
.wall-lift i{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 36px,#ad96bc44 37px 39px);opacity:.4}
body[data-lift="left"] .wall-lift-left,body[data-lift="right"] .wall-lift-right{border-color:#b69bcc;background:linear-gradient(90deg,#332245,#b697df25,#20192d)}
.transport-mechanism{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}
.transport-mechanism #transport-ball{fill:url(#lift-jewel);stroke:#f5debba8;stroke-width:2;filter:none}
#active-rail{stroke:#dbc9a166;stroke-width:5;stroke-linejoin:round}
#lift-carriage rect{fill:#bca583;stroke:#f0d7b1;stroke-width:2}
#lift-carriage path{fill:none;stroke:#bda8cf;stroke-width:3}
.final-dark .wall-lift{opacity:.45}
.final-dark .orbit-unit:not(.active){opacity:.2}
.final-dark .orbit-unit[data-stage="3"]{opacity:1}
.final-stage .orbit-unit[data-stage="3"] canvas{filter:brightness(1.18);border-color:#efd6a4}
#kurun[data-phase="intro"] #kurun-stage{font-size:16px;margin-top:220px}
#kurun[data-phase="intro"] #kurun-result{font-size:22px}
.cabinet-charm{display:none}
@media(max-width:650px){
main{min-height:885px}.machine-stage{min-height:600px}
.orbit-rack{left:7%;right:7%;height:210px}
.orbit-unit>span{font-size:9px;letter-spacing:0}
.orbit-unit[data-stage="3"]>span{font-size:11px}
.slot-screen{width:120px;max-width:30%;top:224px;height:99px}
.slot-screen .slot-grid{height:75px}
#companion{top:232px;height:84px;left:3%;width:23%}
#scene{top:313px}
#chance-zone{top:222px;left:28%;right:36%;height:97px}
.wall-lift{width:14px}.wall-lift-left{left:calc(3.6% - 7px)}.wall-lift-right{right:calc(3.6% - 7px)}
}
@media(prefers-reduced-motion:reduce){.chance-targets{transition:none}}

body[data-signal="next"] .chance-beam{animation:beam-rise 1.4s both}
body[data-signal="next"] .wall-lift{border-color:#e7c396}
#kurun-canvas{filter:none}
#kurun.near{box-shadow:inset 0 0 20px #cb9de533}
.orbit-unit[data-stage="3"] canvas{border-color:#8f795b}
.final-stage .orbit-unit[data-stage="3"] canvas{border-color:#f2d698}
@media(prefers-reduced-motion:reduce){body[data-signal="next"] .chance-beam{animation:none}}

.orbit-unit[data-stage="1"]{width:31%}
.orbit-unit[data-stage="2"]{width:28%;top:86px}
.orbit-unit[data-stage="3"]{left:28%;width:44%}
