:root{--bg: #fff4e6;--dot: #ffe4c8;--ink: #6b4a36;--sub: #a8866e;--accent: #ff8a5b;--accent-dark: #e0683e;--card: #fffdf8;--shade: #f0d9bf;--icon: #e07a52;font-family:Hiragino Maru Gothic ProN,BIZ UDPGothic,Yu Gothic,system-ui,sans-serif;color:var(--ink);background-color:var(--bg);background-image:radial-gradient(var(--dot) 3px,transparent 3.5px),radial-gradient(var(--dot) 3px,transparent 3.5px);background-size:28px 28px;background-position:0 0,14px 14px;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}#app{height:100vh;height:100dvh;max-width:560px;margin:0 auto;padding:env(safe-area-inset-top,0px) 16px env(safe-area-inset-bottom,0px)}.screen{height:100%;display:flex;flex-direction:column}button{font:inherit;color:inherit;border:0;cursor:pointer;touch-action:manipulation}.icon{display:block;width:24px;height:24px;flex:none}.icon-btn,.pill,.stage-btn{position:relative;background:var(--card);box-shadow:0 4px 0 var(--shade),0 6px 12px #a06e3c1f;transition:transform .08s,box-shadow .08s}.icon-btn:after,.pill:after,.stage-btn:not(:disabled):after{content:"";position:absolute;left:18%;right:18%;top:4px;height:28%;border-radius:999px;background:#ffffff8c;pointer-events:none}.icon-btn:active,.pill:active,.stage-btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 0 var(--shade),0 2px 4px #a06e3c1f}.icon-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:var(--icon)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 26px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;box-shadow:0 4px 0 var(--accent-dark),0 6px 12px #a050282e}.pill:active{box-shadow:0 0 0 var(--accent-dark)}.pill.secondary{background:var(--card);color:var(--ink);box-shadow:0 4px 0 var(--shade),0 6px 12px #a06e3c1f}.pill.secondary .icon{color:var(--icon)}#menu{position:relative;align-items:center;justify-content:safe center;gap:16px;overflow-y:auto;padding-block:24px}.logo{margin:0;display:flex;flex-direction:column;align-items:center;line-height:1.1;font-size:46px;letter-spacing:.04em;color:var(--accent-dark);-webkit-text-stroke:8px #fff;paint-order:stroke fill;text-shadow:0 5px 0 var(--shade)}.logo span:last-child{font-size:56px;color:#ff7a8a}.sub{margin:-6px 0 0;color:var(--sub);font-size:12px}.total-stars{margin:0;display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:var(--card);font-weight:700;color:#c98a12}.stage-list{display:grid;grid-template-columns:repeat(5,58px);gap:12px}.stage-btn{height:62px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink)}.stage-btn .num{font-size:22px;font-weight:700;line-height:1}.mini-stars{display:flex;gap:1px}.star-sm{width:13px;height:13px}.star-xs{width:15px;height:15px}.star-md{width:20px;height:20px}.star-lg{width:54px;height:54px}.stage-btn:disabled{opacity:.45;cursor:default;box-shadow:0 4px 0 var(--shade)}.install-hint{margin:0;padding:10px 14px;border-radius:14px;background:var(--card);color:var(--sub);font-size:12px;line-height:1.6;text-align:center}.hud{display:flex;align-items:center;gap:10px;padding-top:12px}.stage-title{padding:8px 16px;border-radius:999px;background:var(--card);font-weight:700;font-size:16px;white-space:nowrap}.hearts{margin-left:auto;display:flex;gap:2px}.heart{width:26px;height:26px}.hearts.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.subhud{display:flex;justify-content:space-between;align-items:center;padding:12px 6px 0;color:var(--sub);font-size:14px;font-weight:700}.target{display:inline-flex;align-items:center;gap:1px}.target span{margin-left:4px}.board-wrap{flex:1;min-height:0;position:relative}#board{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.tutorial{position:absolute;left:4px;right:4px;top:4px;z-index:2;padding:12px 14px 8px;background:#fffdf8;border:3px solid #ffb37a;border-radius:18px;box-shadow:0 6px 16px #a06e3c33}.tutorial.bottom{top:auto;bottom:4px}.tutorial.show{animation:pop .3s ease-out}.tutorial.shake{animation:shake .35s ease-in-out}.tutorial-text{margin:0;font-size:15px;line-height:1.55;font-weight:700}.tutorial-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:4px;min-height:24px}.tutorial-next{margin-right:auto;font-size:13px;font-weight:700;color:var(--accent-dark);animation:tutorial-blink 1.1s ease-in-out infinite}.tutorial-skip{padding:4px 6px;font-size:12px;color:var(--sub);background:none}@keyframes tutorial-blink{0%,to{opacity:1}50%{opacity:.35}}.footer{display:flex;justify-content:center;gap:12px;padding:4px 0 18px}.hint-btn{padding:12px 30px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#6b4a3659;display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .2s}@keyframes fade{0%{opacity:0}}.card{width:min(330px,100%);background:var(--card);border-radius:28px;padding:26px 22px 24px;text-align:center;box-shadow:0 6px 0 var(--shade),0 20px 40px #5a321440;animation:pop .3s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:scale(.7)}}.card h2{margin:0 0 8px;font-size:30px;color:var(--accent-dark);-webkit-text-stroke:6px #fff;paint-order:stroke fill}.stars{display:flex;justify-content:center;gap:4px;min-height:0}.stars span{animation:star-pop .4s cubic-bezier(.2,1.8,.4,1) both}.stars span:nth-child(1){animation-delay:.15s}.stars span:nth-child(2){transform:translateY(-8px);animation-delay:.3s}.stars span:nth-child(3){animation-delay:.45s}@keyframes star-pop{0%{transform:scale(0) rotate(-30deg)}}.card p{color:var(--sub);margin:10px 0 22px}.buttons{display:flex;gap:12px;justify-content:center}.shop-note{margin:-4px 0 0;color:var(--sub);font-size:12px}.link-btn{background:none;padding:4px 8px;color:var(--sub);font-size:12px;text-decoration:underline}.revive-btn{width:100%;margin:-8px 0 14px;background:#5cc98a;box-shadow:0 4px #3a9e66,0 6px 12px #28784633}.revive-btn:active{box-shadow:0 0 #3a9e66}.video-badge{display:inline-block;margin-left:2px;padding:1px 6px;border-radius:6px;background:var(--accent);color:#fff;font-size:11px;vertical-align:1px}.mock-ad{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 28px);background:repeating-linear-gradient(135deg,#3b3f58 0,#3b3f58 24px,#444965 24px,#444965 48px);color:#fff;animation:fade .2s}.mock-ad-tag{align-self:flex-start;padding:4px 10px;border-radius:8px;background:#fff3;font-size:13px;font-weight:700}.mock-ad-body{text-align:center}.mock-ad-title{margin:0 0 12px;font-size:18px;font-weight:700}.mock-ad-count{margin:0;font-size:15px;opacity:.8}.mock-ad-actions{display:flex;gap:12px}.mock-ad-close{min-width:160px;font-size:18px}.mock-sheet{z-index:100}.settings-btn{position:absolute;top:12px;right:0}.settings-card{display:flex;flex-direction:column;gap:12px;text-align:left}.settings-card h2{text-align:center;margin-bottom:2px}.setting-row{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 14px;border-radius:18px;background:#fff4e6}.setting-label{display:inline-flex;align-items:center;gap:6px;min-width:5.2em;font-weight:700}.setting-label .icon{width:22px;height:22px;color:var(--icon)}.setting-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:0;height:30px;margin:0;background:transparent}.setting-row input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:linear-gradient(to right,var(--accent) 0 var(--p, 100%),var(--shade) var(--p, 100%) 100%)}.setting-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-9px;border-radius:50%;border:3px solid var(--accent);background:#fff;box-shadow:0 2px 4px #78502840}.setting-row input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:var(--shade)}.setting-row input[type=range]::-moz-range-progress{height:8px;border-radius:999px;background:var(--accent)}.setting-row input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:3px solid var(--accent);background:#fff}.setting-value{width:2.8em;text-align:right;font-size:13px;font-weight:700;color:var(--sub)}.switch{position:relative;margin-left:auto;width:54px;height:32px;flex:none;border-radius:999px;background:var(--shade);transition:background .15s}.switch span{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #78502840;transition:transform .15s}.switch[aria-checked=true]{background:#5cc98a}.switch[aria-checked=true] span{transform:translate(22px)}.settings-shop{display:flex;flex-direction:column;align-items:center;gap:4px}.settings-card .shop-note,.settings-card .version{margin:0;text-align:center}.settings-links{display:flex;justify-content:center;gap:18px;font-size:13px}.settings-links a{color:var(--sub)}.danger-link{align-self:center;color:#d9534f}.version{font-size:11px;color:var(--sub)}.close-settings{align-self:center;min-width:160px}.pill.danger{background:#ff6b6b;box-shadow:0 4px #d94b4b,0 6px 12px #a032322e}.pill.danger:active{box-shadow:0 0 #d94b4b}.overlay.confirm{z-index:20}.score-box{display:inline-flex;align-items:center;gap:8px}.score{min-width:2.5em;font-size:19px;color:var(--ink)}.combo{padding:2px 10px;border-radius:999px;background:#ff5fa2;color:#fff;font-size:12px;box-shadow:0 2px #d9407f}.score.pop,.combo.pop{animation:pop-small .3s cubic-bezier(.2,1.8,.4,1)}@keyframes pop-small{50%{transform:scale(1.25)}}.card .overlay-score{margin:4px 0 0;font-size:24px;font-weight:700;color:var(--accent-dark)}.card .overlay-badges{display:flex;justify-content:center;gap:8px;margin:8px 0 0}.badge{padding:4px 12px;border-radius:999px;background:#ffc93c;color:#7a4b00;font-size:13px;font-weight:700;box-shadow:0 3px #e9a514;animation:pop .4s cubic-bezier(.2,1.6,.4,1) both}.endless-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;width:min(326px,100%);padding:12px 20px;border-radius:22px;background:linear-gradient(135deg,#ff9a6b,#ff7a8a);color:#fff;font-weight:700;box-shadow:0 5px #e0605f,0 8px 16px #c8503c38;transition:transform .08s,box-shadow .08s}.endless-btn:after{content:"";position:absolute;left:14%;right:14%;top:5px;height:26%;border-radius:999px;background:#fff6;pointer-events:none}.endless-btn:active:not(:disabled){transform:translateY(5px);box-shadow:0 0 #e0605f,0 2px 4px #c8503c33}.endless-btn:disabled{background:var(--shade);color:var(--sub);box-shadow:0 5px #e3c6a6;cursor:default}.endless-btn:disabled:after{display:none}.endless-title{font-size:20px;letter-spacing:.06em}.endless-sub{font-size:12px;opacity:.95}.level-badge{padding:6px 12px;border-radius:999px;background:#6c8cff;color:#fff;font-weight:700;font-size:14px;white-space:nowrap;box-shadow:0 3px #4a67d6}.hearts.shake .level-badge{background:#ff6b6b;box-shadow:0 3px #d94b4b}.rules-card .rules-step{margin:0;font-size:13px;font-weight:700;color:var(--accent-dark)}.rules-card .rules-text{margin:12px 0 22px;color:var(--ink);line-height:1.75;text-align:left}.card .overlay-stats{white-space:pre-line;line-height:1.7}.hearts.pop{animation:pop-small .3s cubic-bezier(.2,1.8,.4,1)}.hammer-btn{--fill: 0%;overflow:hidden;min-width:128px;padding:10px 24px 10px 20px;gap:8px}.fever-gauge{--fill: 0%;overflow:hidden;min-width:128px;padding:10px 20px;cursor:default}.fever-gauge:active{transform:none;box-shadow:0 4px 0 var(--shade),0 6px 12px #a06e3c1f}.fever-gauge .fever-fill{position:absolute;left:0;top:0;bottom:0;width:var(--fill);background:linear-gradient(90deg,#ffb3dd,#ffe08a,#b5ebbf,#a9d6ff);transition:width .7s cubic-bezier(.2,.8,.3,1);pointer-events:none}.fever-gauge .fever-label{position:relative;font-size:15px}.fever-gauge.ready{animation:fever-glow .9s ease-in-out infinite}.fever-gauge.ready .fever-fill{background:linear-gradient(90deg,#ff8b8b,#ffd24d,#7fd48f,#71b8ff,#c39bff,#ff8b8b);background-size:200% 100%;animation:fever-rainbow 1.2s linear infinite}.fever-gauge.ready .fever-label{color:#fff;text-shadow:0 1px 2px rgba(120,60,20,.5)}.fever-gauge.pop{animation:pop .35s ease-out}#play:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(120deg,#ff8b8b,#ffd24d,#7fd48f,#71b8ff,#c39bff,#ff8bd0,#ff8b8b);background-size:300% 300%;-webkit-mask-image:radial-gradient(ellipse at center,transparent 45%,#000 100%);mask-image:radial-gradient(ellipse at center,transparent 45%,#000 100%);opacity:0;transition:opacity .45s}#play.fever:before{opacity:.55;animation:fever-bg 2.4s linear infinite}@keyframes fever-bg{0%{background-position:0% 50%}to{background-position:300% 50%}}@keyframes fever-rainbow{0%{background-position:0 0}to{background-position:200% 0}}@keyframes fever-glow{0%,to{box-shadow:0 4px 0 var(--shade),0 0 #ffc43cbf}50%{box-shadow:0 4px 0 var(--shade),0 0 0 8px #ffc43c00}}.hammer-btn .hammer-fill{position:absolute;left:0;top:0;bottom:0;width:var(--fill);background:linear-gradient(90deg,#ffe08a,#ffc94d);transition:width .7s cubic-bezier(.2,.8,.3,1);pointer-events:none}.hammer-btn .hammer-icon,.hammer-btn .hammer-count{position:relative}.hammer-count{min-width:2.2em;font-size:18px;text-align:left}.hammer-btn:not(.ready) .hammer-icon{opacity:.45;filter:grayscale(.6)}.hammer-btn.ready .hammer-icon{animation:hammer-wiggle 1.6s ease-in-out infinite}.hammer-btn.full{box-shadow:0 4px 0 var(--shade),0 0 0 3px #ffc94d,0 0 16px #ffbe3cb3}.hammer-btn.pop{animation:pop-small .35s cubic-bezier(.2,1.8,.4,1)}.hammer-btn.shake{animation:shake .35s}@keyframes hammer-wiggle{0%,70%,to{transform:rotate(0)}78%{transform:rotate(-14deg)}88%{transform:rotate(10deg)}}
