:root{color:#1c1915;background:#10261f;font-family:Hiragino Maru Gothic ProN,Hiragino Sans,Yu Gothic UI,Yu Gothic,Noto Sans JP,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none}body{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% -10%,#245743,transparent 55%),#10261f}button,input{font:inherit;color:inherit}button{min-height:48px;border:0;border-radius:999px;background:#e23b2f;color:#fffaf3;padding:0 18px;font-weight:700;letter-spacing:.02em;cursor:pointer}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:wait}button.ghost{background:transparent;color:#1c1915;border:2px solid #1c1915}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #e09a2b;outline-offset:2px}#stage{position:relative;width:min(480px,100vw);height:100dvh;max-height:960px;display:flex;flex-direction:column;background:#f4efe6;overflow:hidden;box-shadow:0 0 0 1px #fffaf314}#hud,#play-bar{flex:none;padding:10px 14px calc(10px + env(safe-area-inset-bottom))}#hud{padding-bottom:8px;padding-top:calc(8px + env(safe-area-inset-top))}.hud-top,.hud-stats{display:flex;justify-content:space-between;align-items:center;gap:12px}#hud-text{margin:0;font-size:1.15rem;font-weight:800;letter-spacing:.04em}#mute{min-height:40px;min-width:48px;background:#1c1915}.hud-stats{margin-top:4px;color:#4d463e}.hud-stats p{margin:0}.hud-stats strong{color:#1c1915;font-size:1.35rem}#count.pop{display:inline-block;animation:pop .35s ease}@keyframes pop{40%{transform:scale(1.28);color:#e23b2f}}#hint{margin:6px 0 0;font-size:.85rem;color:#6d6458}#viewport{flex:1;min-height:0;display:grid;place-items:center}#game{touch-action:none;display:block;background:#f4efe6}#play-bar{padding-top:8px}#restart{width:100%;background:#1c1915}.sheet{position:absolute;inset:0;background:#f4efe6;z-index:3}.sheet-scroll{height:100%;overflow:auto;padding:calc(18px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom))}.lab{display:flex;align-items:center;gap:8px;margin:0 0 8px;color:#2f7d55;font-weight:700;letter-spacing:.08em}.cactus{width:18px;height:22px;background:radial-gradient(circle at 50% 30%,#2f7d55 0 7px,transparent 8px),linear-gradient(#2f7d55,#2f7d55) 50% 100% / 8px 14px no-repeat,linear-gradient(#c9843a,#c9843a) 50% 100% / 14px 5px no-repeat}h1{margin:0;font-size:clamp(2.4rem,12vw,3.4rem);line-height:1.05;letter-spacing:.02em}.lead{margin:10px 0 18px;font-size:1.05rem}.field{display:grid;gap:6px;font-size:.85rem;color:#4d463e}.field input{width:100%;min-height:56px;border:2px solid #1c1915;border-radius:14px;background:#fffaf3;padding:0 14px;font-size:1.35rem;font-weight:800;letter-spacing:.06em}.meta{display:flex;justify-content:space-between;margin:8px 2px 0;color:#6d6458;font-size:.9rem}.error{color:#e23b2f;font-weight:700;min-height:1.2em}.error[hidden]{display:none}.howto{margin:16px 0;padding-left:1.2em;color:#3a342c;line-height:1.55}#start{width:100%;font-size:1.1rem}#records{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:6px}#records li{display:flex;justify-content:space-between;background:#fffaf3b3;border-radius:10px;padding:8px 10px}#result h2{margin:0;font-size:1.6rem}.result-name{margin:8px 0 0;font-size:1.2rem;font-weight:800}.result-count{margin:4px 0 0;font-size:clamp(1.8rem,8vw,2.4rem);font-weight:900;color:#e23b2f;line-height:1.2}.result-best{margin:4px 0 10px;color:#4d463e}#preview{width:100%;height:auto;display:block;border-radius:12px;background:#fff;box-shadow:0 10px 28px #1c191514}.actions{display:grid;gap:8px;margin-top:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px}#x-link{display:grid;place-items:center;width:100%;min-height:48px;border-radius:999px;background:#1c1915;color:#fffaf3;text-decoration:none;font-weight:700}.note{margin:12px 0 0;padding:12px;border-radius:12px;background:#fffaf3;border:1px solid #e7dfd0;line-height:1.5}.shake{animation:shake .4s linear}@keyframes shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@media(prefers-reduced-motion:reduce){#count.pop,.shake{animation:none}}
