:root{--bg:#090a24;--panel:rgba(20,18,60,.86);--gold:#ffd95e;--gold2:#f5c84b;--pink:#ff4fa3;--vio:#7c5cff;--cyan:#39e1ff;--green:#5dffb0;--red:#ff6f8f;--lav:#c9c4ff;--fall:120vh}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:#fff;font-family:'M PLUS 1',sans-serif;-webkit-tap-highlight-color:transparent;overflow-x:hidden}
h1,h2,h3,p{margin:0}
button{font-family:inherit;cursor:pointer;color:inherit}
[hidden]{display:none!important}
.num{font-family:'Rajdhani','M PLUS 1',sans-serif;font-weight:700}
.dela{font-family:'Dela Gothic One','M PLUS 1',sans-serif;font-weight:400}
.grn{color:var(--green)}.red{color:var(--red)}.gold{color:var(--gold)}.pnk{color:#ff6fbf}
.dot{display:inline-block;width:.75em;height:.75em;border-radius:50%;margin-right:.35em;vertical-align:baseline;box-shadow:0 0 8px currentColor}
.shine{background:linear-gradient(100deg,#ffe9a3 20%,#fff 40%,#ff9ad5 50%,#ffe9a3 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 3.5s linear infinite}
.rainbowtx{background:linear-gradient(100deg,#fff2b3 15%,#fff 35%,#ff9ad5 50%,#7cf3ff 62%,#fff2b3 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 2.2s linear infinite}
.bump{animation:bump .45s cubic-bezier(.2,1.6,.3,1)}
.shake{animation:shake .5s}.shake2{animation:shake2 .6s}
@keyframes shine{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
@keyframes pop{0%{transform:scale(2.8);opacity:0;filter:blur(10px)}55%{transform:scale(.9);opacity:1;filter:blur(0)}75%{transform:scale(1.07)}100%{transform:scale(1)}}
@keyframes rise{from{transform:translateY(34px);opacity:0}to{transform:none;opacity:1}}
@keyframes dropin{0%{transform:translateY(-60px) scale(.6);opacity:0}70%{transform:translateY(6px) scale(1.05);opacity:1}100%{transform:none;opacity:1}}
@keyframes spin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}
@keyframes glow{0%,100%{box-shadow:0 0 0 2px var(--gold),0 0 18px rgba(255,217,94,.5)}50%{box-shadow:0 0 0 2px #ff9ad5,0 0 34px rgba(255,79,163,.75)}}
@keyframes shake{0%,100%{transform:none}20%{transform:translate(-6px,3px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,2px)}80%{transform:translate(3px,-1px)}}
@keyframes shake2{0%,100%{transform:none}10%{transform:translate(-14px,8px) rotate(-.6deg)}25%{transform:translate(14px,-8px) rotate(.6deg)}40%{transform:translate(-10px,-6px)}55%{transform:translate(10px,6px)}70%{transform:translate(-6px,3px)}85%{transform:translate(4px,-2px)}}
@keyframes fall{to{transform:translateY(var(--fall)) rotate(720deg)}}
@keyframes sparkfly{0%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.2);opacity:0}}
@keyframes flashout{from{opacity:.95}to{opacity:0}}
@keyframes slamin{0%{transform:translate(-50%,-50%) scale(4) rotate(-8deg);opacity:0}45%{transform:translate(-50%,-50%) scale(.9) rotate(-4deg);opacity:1}65%{transform:translate(-50%,-50%) scale(1.08) rotate(-4deg)}100%{transform:translate(-50%,-50%) scale(1) rotate(-4deg);opacity:1}}
@keyframes toastin{0%{transform:translate(-50%,-30px) scale(.7);opacity:0}25%{transform:translate(-50%,0) scale(1.08);opacity:1}35%{transform:translate(-50%,0) scale(1)}85%{opacity:1}100%{opacity:0}}
@keyframes flip{0%{transform:rotateY(90deg) scale(1.3)}100%{transform:none}}
@keyframes crack{0%{transform:scale(1.4) rotate(8deg)}40%{transform:scale(.9) rotate(-6deg)}100%{transform:none}}
@keyframes hue{to{filter:hue-rotate(360deg)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes btnshine{0%{background-position:-150% 0}100%{background-position:250% 0}}

#fx{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:60}
.fxp{position:absolute;top:-50px;animation:fall linear forwards;border-radius:3px}
.fxp.coin{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6c9,#f5c84b 55%,#b8860b);border:2px solid #b8860b;color:#6b4300;font:900 15px/26px 'M PLUS 1',sans-serif;text-align:center}
.fxp.star{background:none;text-shadow:0 0 12px currentColor}
.spark{position:absolute;width:14px;height:14px;border-radius:50%;animation:sparkfly ease-out forwards;box-shadow:0 0 12px currentColor}
.flash{position:absolute;inset:0;animation:flashout .6s ease-out forwards}
.slam{position:absolute;left:50%;top:42%;font-family:'Dela Gothic One',sans-serif;font-size:18vmin;white-space:nowrap;color:#fff;text-shadow:0 .6vmin 0 #7a1d5c,0 0 4vmin rgba(255,79,163,.9);animation:slamin .55s cubic-bezier(.2,1.3,.3,1) both;transition:opacity .3s}
.slam.gold{color:var(--gold);text-shadow:0 .6vmin 0 #7a4b00,0 0 4vmin rgba(255,217,94,.9)}
.slam.bad{color:#ff6f8f;text-shadow:0 .6vmin 0 #5a0a22,0 0 3vmin rgba(255,60,90,.8)}
.slam.sm{font-size:11vmin}
.slam.out{opacity:0}
.toast{position:absolute;left:50%;top:12%;padding:12px 26px;border-radius:999px;background:linear-gradient(90deg,var(--vio),var(--pink));font-weight:900;font-size:20px;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.5);animation:toastin 1.7s ease both}
.toast.ok{background:linear-gradient(90deg,#1fb97a,#5dffb0);color:#04321f}
.toast.bad{background:linear-gradient(90deg,#c2185b,#ff6f8f)}
.toast.gold{background:linear-gradient(90deg,#f5c84b,#ff9f2e);color:#2a1300}
