@font-face{font-family:'Baloo 2';font-style:normal;font-weight:800;font-display:swap;src:url('./fonts/baloo2-800-latin.woff2') format('woff2')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:600 900;font-display:swap;src:url('./fonts/nunito-sans-latin.woff2') format('woff2')}
:root{color-scheme:dark;font-family:'Nunito Sans',sans-serif;background:#30384e;color:#edf3ff;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100svh;background:linear-gradient(160deg,#363f56,#20273b 75%);overscroll-behavior:none}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,canvas:focus-visible{outline:2px solid #77d7ff;outline-offset:2px}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.round-terms{font-size:10px;line-height:1.3;color:#b2c6de;text-align:center;margin:0}.connection-status{background:#48371c;border:1px solid #d6a34e;border-radius:9px;padding:8px;font-size:12px;display:flex;gap:8px;align-items:center}.connection-status button{border:0;border-radius:6px;background:#f3c05b;color:#30240b;padding:7px;flex-shrink:0}
.pending-button{background:none;color:#d1b8a3;border:1px solid #70594d;border-radius:7px;padding:6px;font-size:11px}
.game-shell{width:min(100%,460px);height:100svh;min-height:530px;max-height:1050px;padding:7px 8px;display:flex;flex-direction:column;gap:7px;margin:auto}
.topbar{display:flex;justify-content:space-between;align-items:center;background:#111a2e;border:1px solid #253450;border-radius:14px;padding:7px 12px;flex:0 0 56px}.mode{display:flex;align-items:center;gap:8px}.mode small,.stake small,.prize-copy small{display:block;font-size:9px;letter-spacing:1.4px;color:#7891b8;font-weight:800}.mode strong{font-size:14px;color:#b9ecd9}.status-dot{height:7px;width:7px;border-radius:50%;background:#5ee0b4;box-shadow:0 0 10px #44d9ad66}.stake{text-align:center}.stake small{font-size:8px;letter-spacing:1px}.stepper{display:flex;gap:10px;align-items:center}.stepper button{background:#24324b;border:1px solid #3b4b67;color:white;border-radius:6px;width:24px;height:24px;padding:0;font-size:18px;line-height:20px}.stepper button:disabled{opacity:.3}.stepper output{font-size:13px;font-weight:900;min-width:65px}
.game-stage{position:relative;min-height:300px;flex:1;overflow:hidden;border-radius:18px;background:#86c6f7;isolation:isolate;touch-action:none}.game-stage canvas{position:absolute;width:100%;height:100%;inset:0;display:block;touch-action:none;outline:none}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.count-label{position:absolute;left:0;top:0;min-width:32px;height:25px;padding:0 9px;border-radius:15px;background:#2aa6ff;color:white;font:800 17px/25px 'Baloo 2',sans-serif;text-align:center;will-change:transform;white-space:nowrap}.count-label:after{content:'';position:absolute;left:50%;bottom:-5px;margin-left:-5px;border-top:7px solid #2aa6ff;border-left:5px solid transparent;border-right:5px solid transparent}.count-label.enemy{background:#f4433d}.count-label.enemy:after{border-top-color:#f4433d}.count-label.boss{border:2px solid white;height:29px;line-height:25px;box-shadow:0 1px 3px #85434344}.count-label.boss:after{display:none}
.instruction{position:absolute;left:12px;right:12px;bottom:20px;text-align:center;background:#153c598c;padding:9px 12px;border-radius:10px;font-size:11px;font-weight:800;pointer-events:none;backdrop-filter:blur(3px)}.toast{position:absolute;left:50%;top:42%;transform:translate(-50%,0);font:800 28px 'Baloo 2',sans-serif;color:white;text-shadow:0 2px 0 #1178b5,0 0 7px #1576be;opacity:0;pointer-events:none;white-space:nowrap}.toast.show{animation:float-away 1s ease-out both}.toast.bad{text-shadow:0 2px 0 #b73133;color:#fff2f1}.toast.gold{color:#fff397;text-shadow:0 2px 0 #b17607}
.prize-card{flex:0 0 68px;display:flex;align-items:center;gap:12px;padding:7px 13px;border:1px solid #243754;border-radius:14px;background:linear-gradient(110deg,#101b2a,#10192b);box-shadow:inset 0 1px 0 #ffffff05}.prize-copy{flex:1;min-width:0}.prize-copy strong{display:block;color:#ffbd28;font:800 29px/.95 'Baloo 2',sans-serif;margin-top:3px}.prize-copy span{display:block;color:#7288aa;font-size:9px;margin-top:4px}.multiplier{font:800 16px 'Baloo 2',sans-serif;color:#8eaccb}.prize-orb{display:block;width:44px;height:44px;flex-shrink:0;position:relative;border-radius:50%;background:radial-gradient(circle at 33% 27%,#f6fff8,#35d9a3 45%,#117971);box-shadow:0 0 16px #34d39960}.prize-orb i{position:absolute;width:9px;height:13px;top:20px;left:18px;background:#12465d;border-radius:5px 5px 3px 3px}.prize-orb i:before{content:'';position:absolute;width:7px;height:7px;left:1px;top:-7px;background:#12465d;border-radius:50%}.prize-orb i:first-child{left:8px;top:23px;transform:scale(.75)}.prize-orb i:last-child{left:28px;top:23px;transform:scale(.75)}
.play-button{flex:0 0 49px;border:0;border-bottom:3px solid #ca8408;border-radius:12px;background:linear-gradient(#ffce46,#ffaf1a);color:#362006;font:800 20px 'Baloo 2',sans-serif;box-shadow:0 3px 12px #080d1726}.play-button:disabled{background:#19273b;color:#9aaecb;border-color:#23344d;font:800 13px 'Nunito Sans',sans-serif}.play-button:not(:disabled):active{transform:translateY(1px)}footer{display:flex;align-items:center;justify-content:space-between;color:#8292ac;font-size:9px;gap:6px;min-height:16px}footer button{border:0;background:none;color:#a4b2c7;font-size:10px;padding:0 2px}
.result{position:absolute;inset:0;background:#0a173d66;display:grid;place-items:center;backdrop-filter:blur(3px);z-index:5;padding:24px}.result-card{width:100%;padding:24px 20px;background:#132139f5;border:1px solid #567295;border-radius:20px;text-align:center;box-shadow:0 14px 45px #0b132a66}.result-card>span{color:#82b5e3;font-size:9px;letter-spacing:1.6px;font-weight:800}.result-card h1{font:800 32px/1 'Baloo 2',sans-serif;margin:12px 0;color:#fff}.result-card p{font-size:13px;line-height:1.5;color:#b0c4dc;margin:0}.result-card>strong{display:block;color:#ffcb44;font:800 40px 'Baloo 2',sans-serif;margin:8px 0}.result-card button{width:100%;border:0;background:#ffc238;color:#3b290c;border-radius:9px;padding:10px;font:800 18px 'Baloo 2',sans-serif;margin-top:10px}.result-card small{display:block;color:#94a9c5;font-size:9px;margin-top:12px}.loading{position:absolute;inset:0;display:grid;place-items:center;background:#86c6f7;color:#15456b;font-weight:900;font-size:14px;z-index:7}
@keyframes float-away{0%{opacity:0;transform:translate(-50%,15px) scale(.8)}15%{opacity:1;transform:translate(-50%,0) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-55px)}}
.bank-progress{position:absolute;left:50%;top:15px;transform:translateX(-50%);white-space:nowrap;border-radius:20px;padding:6px 13px;background:#143831d9;border:1px solid #8ce6ae77;color:#beffcc;font:800 14px 'Baloo 2',sans-serif;pointer-events:none}
.bank-gain{position:absolute;top:0;left:0;color:#fff7ab;font:800 25px 'Baloo 2',sans-serif;text-shadow:0 2px 0 #247648,0 0 6px #175332;pointer-events:none;white-space:nowrap}
@media(max-width:480px){.game-shell{padding:6px;gap:6px}.game-stage{border-radius:17px}.topbar{padding:6px 10px}.prize-card{padding:7px 11px}}
@media(max-height:650px){.game-shell{min-height:460px}.topbar{flex-basis:46px}.prize-card{flex-basis:58px}.play-button{flex-basis:42px}.prize-copy strong{font-size:26px}.prize-orb{height:36px;width:36px}.prize-orb i{margin-left:-4px;margin-top:-3px}.game-stage{min-height:240px}}
@media(prefers-reduced-motion:reduce){.toast.show{animation:none;opacity:0}}
body[data-mode=real] .stepper button{display:none}
.result-primary{display:block;width:100%;border:2px solid #ffe77c;border-radius:25px;padding:12px;background:linear-gradient(#ffdc53,#ffb51c);box-shadow:0 5px #af6508;color:#422600;font:800 22px 'Baloo 2',sans-serif;text-decoration:none;margin:12px 0 8px}
body[data-mode=demo] .result-card #againButton{background:transparent;color:#c4d7ef;border:1px solid #4b688b;font-size:15px}
.result{overflow:auto}.result-card{margin:auto}footer a{color:#bed7f2}
.loading{z-index:20;background:radial-gradient(ellipse at 50% 30%,#164c70,#0c192e 65%);display:grid;place-items:center;padding:28px;text-align:center;color:#fff}
.loading-content{width:min(100%,250px)}.loading-content>strong{display:block;font:800 43px/.9 'Baloo 2',sans-serif;letter-spacing:-1px;text-shadow:0 4px #063451,0 0 25px #249cdf55}.loading-content em{font-style:normal;color:#ffce45}
.loading-content p{font:700 13px/1.5 'Nunito Sans',sans-serif;color:#a9c8e6;margin:25px 0 18px}
.loading-crowd{position:relative;height:82px;margin:0 auto 20px;width:110px}.loading-crowd i{position:absolute;bottom:0;left:39px;width:30px;height:39px;background:linear-gradient(100deg,#55ddff,#118dd7);border-radius:12px 12px 8px 8px;box-shadow:0 0 22px #1ec9ff25}.loading-crowd i::before{content:'';position:absolute;top:-30px;left:-1px;width:32px;height:32px;background:linear-gradient(130deg,#8beaff,#159fea);border-radius:50%;box-shadow:inset 2px 3px 0 #b3f3ff50}.loading-crowd i:first-child{left:4px;transform:scale(.75);transform-origin:bottom;opacity:.7}.loading-crowd i:last-child{left:74px;transform:scale(.75);transform-origin:bottom;opacity:.7}
.loading-track{height:5px;background:#233e5a;border-radius:10px;overflow:hidden}.loading-track span{display:block;height:100%;width:45%;background:linear-gradient(90deg,transparent,#35cbff,#b7f5ff);border-radius:inherit;animation:count-loading 1.4s ease-in-out infinite}
.countdown{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b203665;pointer-events:auto;color:white;text-align:center;padding:20px}.countdown>span{font:800 19px 'Baloo 2',sans-serif;text-shadow:0 2px #17374d}.countdown strong{font:800 clamp(96px,22vw,140px)/1.15 'Baloo 2',sans-serif;color:#fff;paint-order:stroke fill;-webkit-text-stroke:6px #218ec2;text-shadow:0 8px #155781,0 0 40px #3aceff77;font-variant-numeric:tabular-nums}.countdown small{font-size:12px;font-weight:800;background:#102841cc;padding:10px 14px;border-radius:20px}
@keyframes count-loading{from{transform:translateX(-110%)}to{transform:translateX(325%)}}
@media(prefers-reduced-motion:reduce){.loading-track span{animation:none;width:100%;background:#4dd2ff}}
