:root{--orange:#f0b429;--orange-2:#f5c84a;--gold:#f5c84a;--ink:#e8ecf4;--dark:#0b0e14;--muted:#9aa4b8;--bg:#07090e;--panel:#0a0c11db;--line:#fbce5e59;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;margin:0;overflow:hidden}body{font-family:var(--font-ui);-webkit-user-select:none;user-select:none;touch-action:manipulation}#stage{position:fixed;inset:0}#stage canvas{display:block}button{font:inherit;color:inherit;cursor:pointer}button:hover:not(:disabled){filter:brightness(1.08)}svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}#loader{z-index:50;background:radial-gradient(circle at 50% 40%,#151924,#06070b 70%);place-content:center;justify-items:center;gap:14px;transition:opacity .4s;display:grid;position:fixed;inset:0}#loader.done{opacity:0;pointer-events:none}.spinner{border:4px solid #fac64140;border-top-color:var(--orange);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#loader p{color:var(--muted);letter-spacing:.04em;margin:0;font-size:14px}#topbar{padding:calc(8px + var(--safe-t)) 10px 0;z-index:5;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:fixed;top:0;left:0;right:0}#topbar>*{pointer-events:auto}.top-right{gap:8px;display:flex}.icon-btn{border:1px solid var(--line);width:38px;height:38px;color:var(--gold);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#07090db3;border-radius:50%;place-items:center;text-decoration:none;display:grid}.icon-btn svg{width:20px;height:20px}#btn-sound .mute{display:none}#btn-sound.off .mute{display:inline}#btn-sound.off .wave{display:none}#feature-bar{white-space:nowrap;background:linear-gradient(#af7e04,#252d41);border:1px solid #fbce5e;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex;box-shadow:0 0 18px #f9b4068c}#feature-bar[hidden]{display:none}.fs-title{font-family:var(--font-display);letter-spacing:.05em;color:#fde5aa;font-weight:800}.fs-mult{color:var(--dark);background:#f0b429;border-radius:6px;padding:0 6px;font-weight:900}.fs-total{color:#fde3a2}#fs-count{font-variant-numeric:tabular-nums}@media (width<=520px){#feature-bar{border-radius:14px;grid-template-columns:auto auto auto;justify-items:center;gap:0 6px;padding:4px 12px;font-size:12px;display:grid}.fs-total{grid-column:1/-1;font-size:11px}}#panel{padding:8px 10px calc(6px + var(--safe-b));z-index:5;background:linear-gradient(#07090c00 0%,#07090ceb 22%,#07080c 100%);position:fixed;bottom:0;left:0;right:0}.meters{grid-template-columns:1fr 1fr 1fr;gap:6px;max-width:560px;margin:0 auto 8px;display:grid}.meter{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:10px;min-width:0;padding:5px}.meter span{letter-spacing:.12em;color:var(--muted);font-size:10.5px;font-weight:700;display:block}.meter b{font-family:var(--font-ui);letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(12.5px,3.6vw,15px);font-weight:800;display:block;overflow:hidden}.meter-win b{color:var(--gold)}.meter-win.flash{animation:.6s ease-out flash}@keyframes flash{0%{box-shadow:0 0 #f9b40600}30%{box-shadow:0 0 22px #f9b406e6}to{box-shadow:0 0 #f9b40600}}.controls{justify-content:center;align-items:center;gap:12px;max-width:560px;margin:0 auto;display:flex}.round-btn{border:1px solid var(--line);width:46px;height:46px;color:var(--gold);background:radial-gradient(circle at 50% 35%,#212839,#0d1016);border-radius:50%;font-size:26px;line-height:1;box-shadow:inset 0 1px #fce09940,0 3px 8px #00000080}.round-btn:active{transform:translateY(1px)}.round-btn:disabled,.side-btn:disabled{opacity:.35}#btn-spin{width:86px;height:86px;color:var(--dark);background:radial-gradient(circle at 50% 30%,#ffe08a 0%,#f0b429 48%,#a8730c 100%);border:3px solid #ffe7a3;border-radius:50%;place-items:center;transition:transform 80ms;display:grid;position:relative;box-shadow:0 0 0 4px #0b0e14d9,0 0 26px #f0b42980,inset 0 -6px 12px #50320073,inset 0 6px 10px #fff8e199}#btn-spin svg{stroke-width:6px;filter:drop-shadow(0 1px #fff0c899);width:46px;height:46px}#btn-spin:active{transform:scale(.95)}#btn-spin.spinning svg{animation:.6s linear infinite spin}#btn-spin.auto svg{display:none}#spin-label{font-family:var(--font-display);text-shadow:0 1px #fff0c899;font-size:22px;font-weight:900;position:absolute}#btn-spin:disabled{filter:grayscale(.6)brightness(.7)}.side-btn{border:1px solid var(--line);background:var(--panel);min-width:56px;color:var(--gold);border-radius:12px;justify-items:center;gap:2px;padding:6px 4px;display:grid}.side-btn svg{width:20px;height:20px}.side-btn small{letter-spacing:.08em;color:var(--muted);font-size:9px}.side-btn.on{color:var(--dark);background:linear-gradient(#f8d567,#e0a21a);border-color:#ffe08a}.side-btn.on small{color:var(--dark)}.side-stack{gap:6px;display:grid}.side-btn.small{grid-template-columns:auto auto;align-items:center;gap:4px;min-width:54px;padding:4px}.side-btn.small svg{width:16px;height:16px}.demo-note{text-align:center;color:#9aa4b8d9;letter-spacing:.02em;margin:6px 0 0;font-size:10.5px}.demo-note b{color:var(--gold)}.modal{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050200b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal[hidden]{display:none}.sheet{border:1px solid var(--line);width:min(640px,100%);max-height:86vh;padding:18px 16px calc(18px + var(--safe-b));background:linear-gradient(#10141c,#07090d);border-bottom:0;border-radius:18px 18px 0 0;animation:.25s ease-out up;position:relative;overflow:auto}@media (width>=700px){.modal{align-items:center}.sheet{border-bottom:1px solid var(--line);border-radius:18px}}@keyframes up{0%{opacity:0;transform:translateY(30px)}}.close{width:36px;height:36px;color:var(--muted);background:0 0;border:0;font-size:28px;position:absolute;top:8px;right:10px}.sheet h2{font-family:var(--font-display);letter-spacing:.02em;color:var(--gold);margin:0 0 4px;font-size:21px;font-weight:800}.sheet h3{letter-spacing:.08em;color:var(--orange-2);text-transform:uppercase;margin:18px 0 8px;font-size:14px}.sheet p{color:#cad3e6;margin:6px 0;font-size:13.5px;line-height:1.5}.lead{color:var(--muted)!important}.kv{grid-template-columns:1fr auto;gap:6px 12px;font-size:14px;display:grid}.kv span{color:var(--muted)}.kv b{text-align:right;font-variant-numeric:tabular-nums}.kv .big{color:var(--gold);font-size:18px}.good{color:#7ee08a!important}.bad{color:#ff8a7a!important}.paytable{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.pay{background:#00000040;border:1px solid #fbce5e2e;border-radius:10px;grid-template-columns:56px 1fr;align-items:center;gap:8px;padding:6px;display:grid}.pay img{object-fit:contain;width:56px;height:56px}.pay div{font-variant-numeric:tabular-nums;font-size:12px;line-height:1.45}.pay div i{color:var(--muted);width:16px;font-style:normal;display:inline-block}.special{grid-template-columns:64px 1fr;align-items:center;gap:10px;margin:8px 0;display:grid}.special img{object-fit:contain;width:64px;height:64px}.lines{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 8px;padding:6px 0 0 6px;display:grid}.mini{background:#00000059;border-radius:6px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:4px;display:grid;position:relative}.mini i{aspect-ratio:1;background:#ffffff14;border-radius:2px}.mini i.on{background:var(--orange)}.mini b{border:1px solid var(--line);background:#151924;border-radius:8px;padding:0 4px;font-size:10px;position:absolute;top:-6px;left:-6px}.history{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.history th{text-align:right;color:var(--muted);border-bottom:1px solid var(--line);padding:4px;font-size:11px;font-weight:600}.history th:first-child,.history td:first-child{text-align:left}.history td{text-align:right;border-bottom:1px solid #fbce5e14;padding:5px 4px}.btn-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.btn{min-width:140px;color:var(--dark);background:linear-gradient(#f8d567,#e0a21a);border:1px solid #ffe08a;border-radius:12px;flex:1;padding:11px;font-weight:800}.btn.ghost{color:var(--gold);border-color:var(--line);background:0 0}.auto-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px;display:grid}.auto-grid button{border:1px solid var(--line);color:var(--gold);background:#0000004d;border-radius:12px;padding:14px 0;font-size:18px;font-weight:800}.pop{z-index:30;background:radial-gradient(circle at 50% 45%,#2831468c,#050200d9 70%);place-items:center;display:grid;position:fixed;inset:0}.pop[hidden]{display:none}.pop-card{text-align:center;padding:26px 28px;animation:.45s cubic-bezier(.2,1.6,.4,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.pop-kicker{letter-spacing:.2em;color:#ffe7a3;font-size:15px}.pop-title{font-family:var(--font-display);background:linear-gradient(#eaeef5,#fbce5e 40%,#f9b406 70%,#bf8a05);color:#0000;filter:drop-shadow(0 4px #191e2b)drop-shadow(0 0 24px #f9b40699);-webkit-background-clip:text;background-clip:text;margin:6px 0;font-size:clamp(38px,11vw,76px);font-weight:800;line-height:1.02}.pop-sub{color:#d9dfec;font-size:16px}.pop-btn{color:var(--dark);font-family:var(--font-display);letter-spacing:.08em;background:linear-gradient(#f8d567,#e0a21a);border:2px solid #fcd87d;border-radius:999px;margin-top:20px;padding:13px 38px;font-size:18px;font-weight:900;box-shadow:0 0 22px #f9b40699}@media (orientation:landscape) and (height<=560px){#panel{padding:6px 12px calc(4px + var(--safe-b));justify-content:center;align-items:center;gap:14px;display:flex}.meters{grid-template-columns:repeat(3,minmax(96px,130px));margin:0}.meter{padding:3px 6px}.meter b{font-size:13px}.controls{gap:8px;margin:0}.round-btn{width:38px;height:38px;font-size:22px}#btn-spin{width:64px;height:64px}#btn-spin svg{width:34px;height:34px}.side-btn{min-width:50px;padding:4px}.demo-note{left:10px;bottom:calc(2px + var(--safe-b));margin:0;font-size:9.5px;position:fixed}}@media (width>=900px) and (height>=600px){.meter b{font-size:18px}.controls{gap:18px}#btn-spin{width:96px;height:96px}}
