/* Purchase action only. Prices, availability and confirmation remain engine-owned. */
body :is(#stage,#game).soft-cabinet.premium-world #buy {
 --purchase-light:var(--surface-light,#e7bdff);
 position:relative; isolation:isolate; overflow:hidden;
 border:2px solid transparent; border-radius:30px 18px 30px 18px;
 background:radial-gradient(ellipse at 28% 0%,#ffffff4d,transparent 54%) padding-box,linear-gradient(155deg,var(--surface-top,#7650ab),var(--surface-bottom,#281443)) padding-box,linear-gradient(140deg,#fff9d0 0%,#d4a2ff 28%,#6d4795 51%,#ffe6a5 76%,#fff9da) border-box;
 box-shadow:inset 0 2px 1px #fff8,inset 0 -5px 8px #12092377,0 3px 0 #160d3f99,0 7px 18px #170c373d;
 filter:none; transform:none;
 transition:filter .2s,box-shadow .2s;
}
body :is(#stage,#game).soft-cabinet.premium-world #buy:before {
 content:''; display:block; position:absolute; inset:5px; border:1px solid #fff1c54a;
 border-radius:24px 12px; z-index:0; pointer-events:none;
 background:linear-gradient(115deg,transparent 35%,#fff0de55 47%,#ffffff88 50%,transparent 64%);
 background-size:350% 100%; background-position:120% 0;
 opacity:.6; animation:purchase-satin-sweep 5.5s ease-in-out infinite;
}
body :is(#stage,#game).soft-cabinet.premium-world #buy:after {
 content:''; display:block; position:absolute; inset:auto 12% 3px; height:4px;
 border:0; border-image:none; border-radius:50%; z-index:0; pointer-events:none;
 background:var(--purchase-light); box-shadow:0 0 10px var(--purchase-light),0 -7px 25px var(--purchase-light);
 opacity:.25; animation:purchase-edge-pulse 3.6s ease-in-out infinite;
}
body :is(#stage,#game).soft-cabinet.premium-world #buy>:not(.cabinet-crown):not(.rail-emblem) { position:relative; z-index:1; }
body #game.soft-cabinet.premium-world #buy>strong,
body #stage.soft-cabinet.premium-world #buy>span {
 color:#fff7ff; text-shadow:0 2px 0 #391350,0 4px 10px #190e4559;
 letter-spacing:.035em; font-weight:400;
}
body #game.soft-cabinet.premium-world #buy .rail-price,
body #stage.soft-cabinet.premium-world #buy>#buyPrice {
 color:#fff3b0; text-shadow:0 2px 0 #64254d,0 0 16px #ffe58a40;
 padding:5px 8px 0; border-top:1px solid #ffefb34d; width:90%;
 letter-spacing:0; font-weight:400;
}
body :is(#stage,#game).soft-cabinet.premium-world #buy:hover:not(:disabled) { filter:brightness(1.1); box-shadow:inset 0 2px 1px #fffa,inset 0 -5px 8px #12092377,0 3px 0 #160d3f99,0 0 20px #d9adff55; }
body :is(#stage,#game).soft-cabinet.premium-world #buy:active:not(:disabled) { filter:brightness(.97); }
body :is(#stage,#game).soft-cabinet.premium-world #buy:focus-visible { outline:3px solid #fff2a4; outline-offset:4px; }
body :is(#stage,#game).soft-cabinet.premium-world #buy:disabled:before,
body :is(#stage,#game).soft-cabinet.premium-world #buy:disabled:after { animation:none; opacity:.08; }
@keyframes purchase-satin-sweep { 0%,20% { background-position:120% 0; } 65%,100% { background-position:-30% 0; } }
@keyframes purchase-edge-pulse { 0%,100% { opacity:.25; } 50% { opacity:.8; } }
@media(orientation:portrait) {
 body :is(#stage,#game).soft-cabinet.premium-world #buy { border-width:1px; border-radius:20px 12px; }
 body :is(#stage,#game).soft-cabinet.premium-world #buy:before { inset:3px; border-radius:16px 9px; }
 body #game.soft-cabinet.premium-world #buy .rail-price,
 body #stage.soft-cabinet.premium-world #buy>#buyPrice { padding:2px 0 0; border-top:0; width:100%; }
 body #game.soft-cabinet.premium-world #buy>strong { font-size:12px; letter-spacing:.025em; }
 body :is(#stage,#game).soft-cabinet.premium-world #buy:after { height:2px; bottom:2px; }
}
@media(prefers-reduced-motion:reduce) {
 body :is(#stage,#game).soft-cabinet.premium-world #buy { transition:none; }
 body :is(#stage,#game).soft-cabinet.premium-world #buy:before { animation:none; background:none; }
 body :is(#stage,#game).soft-cabinet.premium-world #buy:after { animation:none; opacity:.3; }
}
@media(orientation:landscape) and (max-height:600px) {
 body #stage.soft-cabinet.premium-world #buy { padding:4px 6px; gap:1px; border-radius:18px 12px; }
 body #stage.soft-cabinet.premium-world #buy>.shop-kicker { font-size:8px; line-height:1; }
 body #stage.soft-cabinet.premium-world #buy>span { font-size:11px; line-height:1; }
 body #stage.soft-cabinet.premium-world #buy>#buyPrice { font-size:13px; line-height:1.1; padding:2px 0 0; width:100%; }
}
