:root{--red:#e0242b;--red-dk:#7d0a10;--red-xdk:#3a0408;--gold:#f2b91e;--gold-lt:#fff3b0;--gold-dk:#b97609;--jade:#10864e;--ivory:#fffdf4;--gold-grad:linear-gradient(180deg, #fff7cf 0%, #ffe27a 38%, #f2b91e 62%, #b97609 100%);--serif:"Noto Serif TC", serif}*{box-sizing:border-box}html,body{background:var(--red-xdk);height:100%;color:var(--ivory);font-family:var(--serif);-webkit-tap-highlight-color:transparent;margin:0}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}button{font-family:var(--serif);cursor:pointer;-webkit-touch-callout:none}:focus-visible{outline:2px solid var(--gold-lt);outline-offset:2px}#app{background:var(--clouds), radial-gradient(120% 70% at 50% 35%, var(--red) 0%, var(--red-dk) 70%, var(--red-xdk) 100%);flex-direction:column;max-width:520px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}header{justify-content:center;align-items:center;gap:8px;padding:8px 12px 0;display:flex;position:relative}.title{font:900 34px/1.1 var(--serif);letter-spacing:.14em;background:var(--gold-grad);color:#0000;filter:drop-shadow(0 2px #5a0508)drop-shadow(0 0 1px #5a0508)drop-shadow(0 0 12px #ffd2508c);-webkit-background-clip:text;background-clip:text;margin:0}.ic{width:40px;height:40px;color:var(--gold-lt);background:0 0;border:0;place-items:center;display:grid}#mute{position:absolute;top:8px;right:8px}#mute:not(.off) #cross,#mute.off #wave{display:none}#ladder{border:2px solid var(--gold-dk);background:#2a0306a6;border-radius:999px;grid-template-columns:repeat(4,1fr);gap:6px;margin:6px 12px 0;padding:4px;list-style:none;display:grid}#ladder li{text-align:center;font:900 20px/1.1 var(--serif);color:#c98b6b;border-radius:999px;padding:4px 0;transition:transform .2s}#ladder li.on{background:var(--gold-grad);color:var(--red-dk);transform:scale(1.08);box-shadow:0 0 14px #ffd75acc}#ladder.free li{color:#e8c27a}#stage{flex:1;min-height:0;position:relative}#stage canvas{width:100%;height:100%;position:absolute;inset:0}#loading{color:var(--gold-lt);place-items:center;margin:0;display:grid;position:absolute;inset:0}#loading[hidden]{display:none}#pop{opacity:0;pointer-events:none;white-space:nowrap;z-index:2;font:900 46px var(--serif);background:var(--gold-grad);color:#0000;filter:drop-shadow(0 2px #5a0508)drop-shadow(0 0 2px #5a0508);-webkit-background-clip:text;background-clip:text;margin:0;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)scale(.6)}#pop small{margin-left:6px;font-size:26px}#pop.show{animation:1.1s ease-out pop}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}30%{transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-80%)scale(1)}}#banner{z-index:3;text-align:center;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);font:900 30px/1.3 var(--serif);color:var(--gold-lt);background:linear-gradient(90deg,#0000,#3a0408eb 15% 85%,#0000);padding:16px 12px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}#banner b{background:var(--gold-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:52px;display:block}#banner[hidden],#big[hidden]{display:none}#big{z-index:4;cursor:pointer;background:radial-gradient(circle,#3a040833,#140002bf);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}#big p{text-align:center;margin:0}#big-t{font:900 52px/1.1 var(--serif);letter-spacing:.1em;background:var(--gold-grad);color:#0000;filter:drop-shadow(0 3px #5a0508)drop-shadow(0 0 2px #5a0508);-webkit-background-clip:text;background-clip:text;animation:.8s ease-in-out infinite throb}#big-n{font:900 44px var(--serif);color:var(--ivory);-webkit-text-stroke:2px var(--red-dk);paint-order:stroke fill;font-variant-numeric:tabular-nums}@keyframes throb{50%{transform:scale(1.07)}}.meters{grid-template-columns:1fr 1.2fr 1fr;gap:6px;padding:6px 12px;display:grid}.meters p{text-align:center;border:1.5px solid var(--gold-dk);background:#2a0306b3;border-radius:10px;margin:0;padding:4px 6px}.meters span{color:#e8c27a;font-size:12px;display:block}.meters b{font:900 18px var(--serif);color:var(--ivory);font-variant-numeric:tabular-nums}.meters .win b{color:var(--gold-lt)}.meters .fs{border-color:var(--gold);box-shadow:0 0 10px #ffd75a80}.controls{padding:4px 12px calc(12px + env(safe-area-inset-bottom));justify-content:center;align-items:center;gap:10px;display:flex}.round{border:2px solid var(--gold-dk);background:radial-gradient(circle at 40% 30%, #a3141b, var(--red-xdk));border-radius:50%;width:46px;height:46px}.round:disabled{opacity:.4;cursor:default}.round.on{background:var(--gold-grad);color:var(--red-dk);border-color:var(--gold-lt)}#spin{width:84px;height:84px;color:var(--red-dk);box-shadow:0 0 0 4px var(--red-dk), 0 0 22px #ffd250b3;background:radial-gradient(circle at 40% 30%,#fff7cf,#ffd34d 45%,#e09a0e 80%,#b97609);border:4px solid #fff3b0;border-radius:50%;place-items:center;display:grid;position:relative}#spin:active{transform:scale(.95)}#spin.busy svg{animation:.8s linear infinite turn}#spin:disabled{filter:grayscale(.5)brightness(.8)}#spin-n{font:900 13px var(--serif);position:absolute;bottom:10px}@keyframes turn{to{transform:rotate(360deg)}}#spin[hidden],#spin-n[hidden]{display:none}.sheet{z-index:6;color:var(--ivory);background:linear-gradient(180deg, #5e0a0e, var(--red-xdk));border:3px solid var(--gold);border-radius:18px;flex-direction:column;gap:10px;padding:16px;display:flex;position:absolute;inset:12px;overflow-y:auto}.sheet[hidden]{display:none}.sheet h2{text-align:center;font:900 28px var(--serif);background:var(--gold-grad);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0}.fine{color:#e8c27a;margin:0;font-size:13px;line-height:1.5}#pay-list{grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;list-style:none;display:grid}#pay-list li{background:#00000040;border-radius:10px;align-items:center;gap:8px;padding:6px;display:flex}#pay-list svg{flex:none;width:40px;height:auto}#pay-list dl{grid-template-columns:auto 1fr;gap:0 8px;margin:0;font-size:13px;display:grid}#pay-list dt{color:#e8c27a}#pay-list dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:900}.rules{flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:14px;line-height:1.5;display:flex}.rules b{color:var(--gold-lt);margin-right:6px}.key{border:3px solid var(--gold-lt);background:var(--gold-grad);color:var(--red-dk);font:900 20px var(--serif);letter-spacing:.1em;border-radius:999px;margin-top:4px;padding:12px}
