:root{--bg: #fdf6ec;--surface: #ffffff;--fg: #2d2a26;--muted: #6b6459;--border: #e2d9c8;--accent: #1d6fae;--success: #1e7e46;--warning: #b45309;--error: #c0392b;--star: #b45309;--radius: 16px;--shadow: 0 4px 12px rgb(0 0 0 / .08);--tap: 48px;--gap: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);touch-action:manipulation;-webkit-text-size-adjust:100%;overflow-x:hidden;overscroll-behavior:none}body{min-height:100dvh;display:flex;flex-direction:column}button,.btn{min-width:var(--tap);min-height:var(--tap);padding:10px 20px;font-size:1.1rem;font-weight:700;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);cursor:pointer;box-shadow:var(--shadow)}button:active{transform:scale(.97)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.success{background:var(--success);border-color:var(--success);color:#fff}button.quiet{background:transparent;box-shadow:none;color:var(--muted);border-color:transparent;min-width:44px}button.danger{background:var(--error);border-color:var(--error);color:#fff}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}#game{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:8px;padding:var(--gap);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;width:100%}.game-bar,.home-bar{position:sticky;top:0;z-index:50;background:var(--bg)}.game-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px;border-bottom:2px solid var(--border)}@media(max-width:380px){.game-bar [data-action=back]{font-size:.95rem;padding:8px 10px}.game-bar [data-role=level]{font-size:.9rem}}.game-bar [data-role=level]{font-size:1rem;white-space:nowrap}.game-bar button{padding:8px 12px}.home-bar{text-align:center;padding:12px 12px 0}.starbar{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-bottom:10px}.home-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:12px}.start-overlay,.win-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:76px 12px 16px}.start-overlay{background:#ffffffd1}.win-overlay{background:#00000059}.start-card{background:var(--surface);border-radius:24px;padding:22px 18px;text-align:center;box-shadow:var(--shadow);width:min(92vw,420px);display:flex;flex-direction:column;align-items:center;gap:10px}.start-card p{font-size:1.2rem;font-weight:700;margin:0}.start-overlay .start-card>button,.win-overlay .start-card>button{width:100%;font-size:1.2rem}.start-icon{font-size:3.2rem;line-height:1}.level-pill{background:#fef3c7;border-radius:999px;padding:4px 14px;font-weight:800}.win-title{font-size:1.4rem}.fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;overflow:hidden}.fx-bit{position:absolute;top:-10%;font-size:1.5rem;animation:fx-fall 1s ease-in forwards}.fx-spark,.fx-mark{position:fixed;z-index:70;pointer-events:none;font-weight:900;font-size:1.6rem;transform:translate(-50%,-50%);animation:fx-rise .55s ease forwards}@keyframes fx-fall{to{transform:translateY(78vh) rotate(160deg);opacity:0}}@keyframes fx-rise{to{transform:translate(-50%,-160%);opacity:0}}.hole{position:relative;min-height:104px;border-radius:18px;background:#8d6e63;border:4px solid #6d4c41;overflow:hidden;font-size:3rem;display:flex;align-items:center;justify-content:center;padding:0}.mole{display:block;transform:translateY(130%);transition:transform .12s ease;line-height:1}.mole.show{transform:translateY(0)}.stars{font-size:2rem;letter-spacing:4px;color:var(--star)}.stars .off{color:var(--border)}.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:12px;flex-direction:column;color:var(--muted);font-size:1.1rem;background:var(--bg);z-index:5}.loading .spinner{width:56px;height:56px;border-radius:50%;border:6px solid var(--border);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.grid{display:grid;gap:var(--gap);width:100%;max-width:720px;margin:0 auto}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.shake{animation:shake .3s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.pop{animation:pop .25s ease}.hint{display:flex;align-items:center;gap:var(--gap);padding:var(--gap);font-size:1.05rem;color:var(--muted);justify-content:center}
