: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{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}.footer{display:flex;justify-content:center;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}.menu-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.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}
