:root{color-scheme:dark;--pink:#e879f9;--cyan:#67e8f9;--purple:#a855f7}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b0820;color:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{background:radial-gradient(ellipse at 50% 20%,#38206c 0,#171032 48%,#090717 100%);display:flex;justify-content:center;align-items:center;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);overscroll-behavior:none}button{font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:pointer}button:disabled{opacity:.48;cursor:default}.machine{position:relative;width:min(100%,430px);padding:16px 16px 12px;border:1px solid #7045ab;border-radius:26px;background:linear-gradient(155deg,#21153f,#110d2d 70%);box-shadow:0 0 35px #9b4de52b,inset 0 0 35px #bc63f10d}header{position:relative;text-align:center;padding:0 36px 13px}.brand{display:flex;justify-content:center;align-items:center;gap:9px}.brand h1{font-size:clamp(29px,8vw,38px);line-height:1;margin:0;letter-spacing:3px;color:#f7d8ff;text-shadow:0 0 16px #db69ff}.bolt{color:var(--pink);font-size:25px}.bolt.cyan{color:var(--cyan)}.subtitle{font-size:10px;letter-spacing:2px;color:#c5a9f7;margin-top:7px}.sound{position:absolute;right:0;top:2px;background:#2a204c;border:1px solid #6c508c;border-radius:12px;padding:8px}.balances{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:13px}.display{min-width:0;border:1px solid #4f3b7c;background:#1d183a;border-radius:13px;padding:10px 12px;display:flex;flex-direction:column;gap:1px}.display small{font-size:10px;letter-spacing:1px;color:#c5b2f4}.display strong{font-size:clamp(23px,7vw,31px);font-variant-numeric:tabular-nums;line-height:1.25}.display:nth-child(2) strong{color:var(--cyan)}.display span{font-size:9px;color:#9d8dc5}.reel-panel{border:2px solid #a452ef;border-radius:19px;background:linear-gradient(#302052,#1b143d);padding:14px 10px 11px;box-shadow:0 0 17px #b755ff44,inset 0 0 18px #1c123c;position:relative}.reels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.reel{height:clamp(100px,29vw,132px);border-radius:13px;background:linear-gradient(160deg,#17122f,#090d25);border:1px solid #59417d;box-shadow:inset 0 0 18px #0009;display:flex;align-items:center;justify-content:center;font-size:clamp(44px,13vw,65px);user-select:none;overflow:hidden;transform:translateZ(0)}.reel.rolling{animation:reelPulse .15s linear infinite alternate;filter:blur(.8px)}@keyframes reelPulse{to{transform:translateY(3px);filter:blur(2px)}}.win-line{position:absolute;left:7px;right:7px;top:49%;height:3px;background:var(--cyan);box-shadow:0 0 15px 5px #67e8f999;opacity:0;pointer-events:none}.reel-panel.won{animation:winGlow .65s ease-in-out 3 alternate}.reel-panel.won .win-line{opacity:1}@keyframes winGlow{to{box-shadow:0 0 35px #ef7dff,inset 0 0 28px #ef7dff55}}.message{text-align:center;min-height:22px;margin-top:11px;color:#d6c3ff;font-size:13px;font-weight:600}.message.winning{color:#8cf5ff}.controls{padding-top:16px}.section-title{text-align:center;color:#c8b3f5;letter-spacing:1.5px;font-size:11px;margin-bottom:9px}.bets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bet{border:1px solid #69528e;background:#30254e;color:#eee4ff;border-radius:11px;min-height:47px;font-weight:800}.bet.active{border-color:#f3a4ff;background:#8534c6;box-shadow:0 0 13px #b856e977}.spin{display:block;width:100%;border:1px solid #f0a0ff;background:linear-gradient(115deg,#9b2fd2,#be40c8);color:white;border-radius:16px;font-size:24px;font-weight:900;letter-spacing:2px;min-height:70px;margin-top:14px;box-shadow:0 6px 0 #542178,0 0 22px #a52deb55}.spin:active:not(:disabled){transform:translateY(3px);box-shadow:0 3px 0 #542178}.refill{display:block;width:100%;margin-top:12px;border:1px solid #68dfe8;border-radius:12px;background:#173d53;color:#b3faff;padding:11px;font-weight:700}.refill[hidden]{display:none}footer{display:flex;justify-content:space-between;gap:8px;margin-top:19px}footer button{flex:1;min-height:40px;background:#241b41;border:1px solid #574574;color:#d6c3f8;border-radius:11px;font-size:12px}.note{text-align:center;font-size:10px;color:#9586b9;margin:12px 0 0}dialog{width:min(calc(100% - 28px),400px);border:1px solid #9d66d7;border-radius:20px;background:#1c1536;color:white;padding:18px;box-shadow:0 20px 90px #000a}dialog::backdrop{background:#050310c9}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:20px;margin:0 0 12px}.modal-head button{border:0;border-radius:9px;background:#3a2857;color:white;padding:8px 12px}#modalBody{line-height:1.9}#modalBody .item{display:flex;justify-content:space-between;border-bottom:1px solid #3e315a;padding:4px 0}#modalBody p{color:#bca7df;font-size:12px;line-height:1.5}@media(max-height:700px){.machine{padding:10px 13px}.reel{height:90px}.spin{min-height:55px}.controls{padding-top:10px}footer{margin-top:12px}.reel-panel{padding-top:9px;padding-bottom:7px}}@media(prefers-reduced-motion:reduce){.reel.rolling,.reel-panel.won{animation:none}}

/* SPINNY 0.2-A: original 2D neon cabinet and continuous symbol-strip reels */
body{background:radial-gradient(ellipse at 12% 20%,#5d228e4d,transparent 48%),radial-gradient(ellipse at 90% 80%,#096c9b42,transparent 45%),linear-gradient(150deg,#09051d,#1a0c38 55%,#08091b);background-attachment:fixed}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.24;background-image:radial-gradient(circle,#bb79ff 1px,transparent 2px);background-size:52px 67px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}
.machine{isolation:isolate;border:2px solid #a85cfa;border-bottom:7px solid #522486;background:linear-gradient(145deg,#301c5a,#160d36 46%,#100a28);box-shadow:0 0 24px #a743ff6b,0 0 80px #2e1c9b66,inset 0 0 0 3px #ffffff0c,inset 0 0 45px #b95cff14}
.machine:before{content:"";position:absolute;inset:5px;border-radius:20px;border:1px solid #7f65cb40;pointer-events:none}
.machine:after{content:"";position:absolute;left:16%;right:16%;bottom:-13px;height:9px;background:#5e2998;border-radius:0 0 14px 14px;box-shadow:0 0 14px #b54bff66;z-index:-1}
.cabinet-head{height:26px;margin:-2px 2px 8px;border-radius:10px;background:linear-gradient(90deg,#431a7c,#7427a6,#2e1d79);display:flex;align-items:center;justify-content:space-around;font-size:10px;font-weight:900;letter-spacing:3px;color:#f5cbff;text-shadow:0 0 8px #ff82ff;border:1px solid #bd64ec}
.light-dot{width:9px;height:9px;border-radius:50%;background:#77faff;box-shadow:0 0 8px #67e8f9,0 0 16px #67e8f9;animation:neonBreath 2.2s ease-in-out infinite alternate}
.light-dot:last-child{background:#ff87ee;box-shadow:0 0 8px #ff87ee,0 0 16px #ff87ee;animation-delay:1.1s}
@keyframes neonBreath{to{opacity:.45;filter:brightness(.75)}}
.reel-panel{border:3px solid #ad62ff;background:linear-gradient(165deg,#4a2476,#1c113e 65%);box-shadow:0 0 22px #b755ff55,inset 0 0 25px #0008}
.reels{--reel-height:clamp(100px,29vw,132px);position:relative}
.reel{height:var(--reel-height);position:relative;background:linear-gradient(90deg,#08071c,#171039 52%,#08071c);border:2px solid #8a58b8;box-shadow:inset 0 0 18px #000c,0 0 9px #d465ff33}
.reel img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 0 9px #ad8bff66);pointer-events:none}
.symbol-static{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.symbol-strip{position:absolute;left:0;right:0;top:0;display:flex;flex-direction:column;align-items:center;will-change:transform}
.symbol-strip img{width:78%;height:var(--reel-height);flex:0 0 var(--reel-height);padding:9px 0;object-fit:contain}
.reel.rolling{animation:none;filter:none}
.reel.rolling:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#08071cd9,transparent 30%,transparent 70%,#08071cdb);box-shadow:inset 0 0 16px #0009}
.reel-glass{position:absolute;inset:11px 7px 40px;pointer-events:none;border-radius:14px;background:linear-gradient(130deg,#ffffff18,transparent 35%,transparent 68%,#7ddfff0b);z-index:1}
.reel-panel.won .reel{border-color:#71f5ff;box-shadow:0 0 20px #4beaff99,inset 0 0 16px #0009}
@media(max-height:700px){.reels{--reel-height:90px}}
@media(prefers-reduced-motion:reduce){.light-dot{animation:none}}
