.whack-container{text-align:center}.game-title{margin-bottom:6px;font-size:28px;font-weight:800}.game-subtitle{color:var(--text-dim);margin-bottom:24px;font-size:14px}.game-stats{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:16px;display:flex}.stat{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;min-width:92px;padding:8px 14px}.stat-label{color:var(--text-dim);font-size:12px;display:block}.stat-value{font-size:16px;font-weight:700;display:inline-block}.stat-value.bump{animation:.25s bump}@keyframes bump{0%{transform:scale(1)}50%{transform:scale(1.28)}to{transform:scale(1)}}.game-actions{flex-wrap:nowrap;justify-content:center;gap:10px;margin-bottom:22px;display:flex}.btn{cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:999px;flex:none;padding:10px 18px;font-size:15px;font-weight:600;transition:transform .15s,background .2s,box-shadow .2s}.btn:active{transform:scale(.94)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:active{transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 14px #4f6ef759}.btn-ghost{background:var(--bg-card);color:var(--accent);border:1px solid var(--accent)}.btn-ghost:hover{background:var(--bg-hover)}.whack-board{background-color:#6cc24a;background-image:radial-gradient(3px 9px at 20% 30%,#fff3,#0000 70%),radial-gradient(3px 9px at 66% 72%,#387c1c57,#0000 70%),radial-gradient(3px 10px at 86% 26%,#ffffff24,#0000 70%),radial-gradient(3px 8px at 44% 88%,#387c1c47,#0000 70%),radial-gradient(3px at 40% 84%,#fff,#0000 55%),radial-gradient(3px at 76% 16%,#ffe680,#0000 55%),linear-gradient(#8ad35f 0%,#6cc24a 55%,#58b039 100%);background-repeat:repeat,repeat,repeat,repeat,repeat,repeat,no-repeat;background-size:72px 60px,84px 66px,90px 70px,96px 74px,130px 110px,150px 130px,auto;border-radius:26px;grid-template-columns:repeat(3,1fr);gap:4px 8px;max-width:460px;margin:0 auto 18px;padding:22px 16px 26px;display:grid;box-shadow:inset 0 2px #ffffff4d,inset 0 -24px 32px #2e5c1440,0 14px 26px #3c781e47}.hole{aspect-ratio:1;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:16px;position:relative;overflow:hidden}.hole-mound{z-index:3;filter:drop-shadow(0 5px 6px #2654104d);background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='56'%20viewBox='0%200%20100%2056'%20preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient%20id='m'%20x1='0'%20y1='0'%20x2='0'%20y2='1'%3E%3Cstop%20offset='0'%20stop-color='%23a8784b'/%3E%3Cstop%20offset='0.45'%20stop-color='%238a5c33'/%3E%3Cstop%20offset='1'%20stop-color='%235f3a1c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d='M3%2055%20C3%2042%2010%2034%2020%2036%20C24%2024%2036%2020%2045%2026%20C52%2016%2066%2020%2071%2032%20C82%2030%2097%2040%2097%2055%20Z'%20fill='url(%23m)'/%3E%3Cg%20fill='%234a2c12'%20opacity='0.35'%3E%3Ccircle%20cx='28'%20cy='46'%20r='1.5'/%3E%3Ccircle%20cx='40'%20cy='50'%20r='1.3'/%3E%3Ccircle%20cx='55'%20cy='45'%20r='1.5'/%3E%3Ccircle%20cx='66'%20cy='50'%20r='1.2'/%3E%3Ccircle%20cx='47'%20cy='40'%20r='1.2'/%3E%3Ccircle%20cx='33'%20cy='52'%20r='1.1'/%3E%3C/g%3E%3Cg%20fill='%23d9a86e'%20opacity='0.35'%3E%3Ccircle%20cx='24'%20cy='44'%20r='1.2'/%3E%3Ccircle%20cx='60'%20cy='42'%20r='1.2'/%3E%3Ccircle%20cx='72'%20cy='48'%20r='1.1'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:100% 100%;height:40%;position:absolute;bottom:2%;left:3%;right:3%}.target{z-index:1;justify-content:center;align-items:center;height:72%;display:flex;position:absolute;bottom:16%;left:0;right:0;transform:translateY(120%)}.mole{aspect-ratio:1;background:radial-gradient(circle at 32% 26%,#e4a76f,#c47f46 58%,#9c5f2f);border:3px solid #46230a2e;border-radius:50% 50% 44% 44%;justify-content:center;align-items:flex-start;width:74%;max-width:130px;padding-top:10%;display:flex;position:relative;box-shadow:inset 0 -10px 14px #0000002e,0 6px 10px #0000001f}.mole-emoji{filter:drop-shadow(0 2px 2px #00000029);font-size:clamp(30px,10vw,42px);line-height:1}.mole:before{content:attr(data-badge);z-index:2;filter:drop-shadow(0 1px 2px #0003);font-size:22px;animation:.3s badge-pop;display:none;position:absolute;top:-6%;right:-4%}.mole[data-badge]:not([data-badge=""]):before{display:block}@keyframes badge-pop{0%{transform:scale(0)rotate(-40deg)}70%{transform:scale(1.3)rotate(10deg)}to{transform:scale(1)rotate(0)}}.hole.type-gold .mole{background:radial-gradient(circle at 32% 26%,#ffe066,#ffc312 58%,#e2a100);border-color:#ffaa0080}.hole.type-diamond .mole{background:radial-gradient(circle at 32% 26%,#f2fbff,#cdeefb 58%,#96d9f2);border-color:#78c8ff99}.hole.type-bomb .mole{background:radial-gradient(circle at 32% 26%,#7c828c,#434850 58%,#2b2f36);border-color:#00000059}.hole.has-target .target{animation:.32s ease-out forwards mole-pop}@keyframes mole-pop{0%{transform:translateY(120%)}62%{transform:translateY(-7%)}to{transform:translateY(0)}}.hole.type-gold.has-target .target{animation:.4s ease-out forwards gold-pop}.hole.type-gold.has-target .mole{animation:.4s ease-out gold-glow}@keyframes gold-pop{0%{transform:translateY(120%)scale(.8)}62%{transform:translateY(-9%)scale(1.08)}to{transform:translateY(0)scale(1)}}@keyframes gold-glow{0%{box-shadow:0 0 #ffd70000,inset 0 -10px 14px #0000002e}45%{box-shadow:0 0 24px 10px #ffd700d9,inset 0 -10px 14px #0000002e}to{box-shadow:0 0 8px 3px #ffd70073,inset 0 -10px 14px #0000002e}}.hole.type-diamond.has-target .target{animation:.42s ease-out forwards diamond-pop}.hole.type-diamond.has-target .mole{animation:.45s ease-out diamond-shine}@keyframes diamond-pop{0%{transform:translateY(120%)scale(.85)}60%{transform:translateY(-8%)scale(1.06)}to{transform:translateY(0)scale(1)}}@keyframes diamond-shine{0%{filter:brightness(1.9)saturate(.5)}to{filter:none}}.hole.type-bomb.has-target .target{animation:.3s ease-out forwards bomb-pop}.hole.type-bomb.has-target:before{content:"💨";z-index:4;font-size:20px;animation:.5s ease-out smoke-puff;position:absolute;bottom:36%;right:16%}@keyframes bomb-pop{0%{transform:translateY(120%)scale(.9)}70%{transform:translateY(-6%)}to{transform:translateY(0)}}@keyframes smoke-puff{0%{opacity:0;transform:translate(0)scale(.5)}40%{opacity:.85}to{opacity:0;transform:translate(8px,-16px)scale(1.4)}}.mole-bandage,.mole-dizzy{z-index:3;display:none;position:absolute}.mole-bandage{font-size:22px;animation:.9s ease-in-out infinite bandage-bob;top:-4%;right:-8%;transform:rotate(18deg)}.mole-dizzy{font-size:26px;animation:.9s linear infinite dizzy-spin;bottom:2%;left:50%;transform:translate(-50%)}.hole.injured .mole{animation:.55s ease-in-out infinite injured-wobble;box-shadow:0 0 12px 2px #3b82f68c}.hole.injured .mole-bandage,.hole.injured .mole-dizzy{display:block}@keyframes bandage-bob{0%,to{transform:rotate(18deg)translateY(0)}50%{transform:rotate(10deg)translateY(-3px)}}@keyframes dizzy-spin{0%{transform:translate(-50%)rotate(0)}to{transform:translate(-50%)rotate(360deg)}}@keyframes injured-wobble{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-4deg)scale(1.03)}75%{transform:rotate(4deg)scale(1.03)}}.hole.dead .target{animation:.5s ease-out forwards mole-die}@keyframes mole-die{0%{opacity:1;transform:translateY(0)rotate(0)}30%{opacity:1;transform:translateY(-16%)rotate(-9deg)}to{opacity:0;transform:translateY(-46%)rotate(15deg)}}.hole.dead.type-normal:after{content:"💫";z-index:5;font-size:26px;animation:.55s ease-out forwards spin-out;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}@keyframes spin-out{0%{opacity:0;transform:translate(-50%,-20%)scale(.4)rotate(0)}35%{opacity:1}to{opacity:0;transform:translate(-50%,-130%)scale(1.5)rotate(300deg)}}.hole.dead.type-gold .target{animation:.62s ease-out forwards gold-die}@keyframes gold-die{0%{opacity:1;transform:translateY(0)scale(1)rotate(0)}25%{opacity:1;transform:translateY(-14%)scale(1.28)rotate(-7deg)}to{opacity:0;transform:translateY(-50%)scale(.55)rotate(18deg)}}.hole.dead.type-gold:after{content:"✨🌟✨";color:gold;z-index:5;font-size:30px;animation:.62s ease-out forwards gold-burst;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}@keyframes gold-burst{0%{opacity:0;transform:translate(-50%,-10%)scale(.3)rotate(0)}30%{opacity:1;transform:translate(-50%,-60%)scale(1.25)rotate(20deg)}to{opacity:0;transform:translate(-50%,-140%)scale(1.7)rotate(-30deg)}}.hole.dead.type-diamond .target{animation:.58s ease-out forwards diamond-die}@keyframes diamond-die{0%{opacity:1;transform:translateY(0)scale(1)}30%{transform:translateY(-10%)scale(1.18)}to{opacity:0;transform:translateY(-34%)scale(.4)}}.hole.dead.type-diamond:after{content:"💎✨💎";z-index:5;font-size:30px;animation:.6s ease-out forwards shard-out;position:absolute;top:36%;left:50%;transform:translate(-50%,-50%)}@keyframes shard-out{0%{opacity:0;transform:translate(-50%,-10%)scale(.4)rotate(0)}40%{opacity:1}to{opacity:0;transform:translate(-30%,-130%)scale(1.5)rotate(60deg)}}.hole.dead.type-bomb .target{animation:.48s ease-out forwards bomb-boom}@keyframes bomb-boom{0%{opacity:1;transform:translateY(0)scale(1)}45%{opacity:1;transform:translateY(-6%)scale(1.4)}to{opacity:0;transform:translateY(-2%)scale(2.1)}}.hole.dead.type-bomb:after{content:"💥";z-index:5;font-size:44px;animation:.48s ease-out forwards boom-flash;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.hole.dead.type-bomb:before{content:"💨";z-index:4;font-size:30px;animation:.55s ease-out forwards smoke-rise;position:absolute;bottom:30%;right:14%}@keyframes boom-flash{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(0)}30%{opacity:1;transform:translate(-50%,-55%)scale(1.3)rotate(15deg)}to{opacity:0;transform:translate(-50%,-60%)scale(1.7)rotate(-20deg)}}@keyframes smoke-rise{0%{opacity:.9;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(10px,-24px)scale(1.6)}}.hole.escape .target{animation:.18s ease-in forwards mole-escape}.hole.escape.type-gold .target,.hole.escape.type-diamond .target{animation:.4s ease-in forwards mole-escape-slow}@keyframes mole-escape{0%{opacity:1;transform:translateY(0)}to{opacity:1;transform:translateY(120%)}}@keyframes mole-escape-slow{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:1;transform:translateY(120%)rotate(-6deg)}}.float-text{z-index:6;pointer-events:none;white-space:nowrap;opacity:0;font-size:20px;font-weight:800;animation:.95s ease-out forwards float-up;position:absolute;top:-8%;left:50%;transform:translate(-50%)}.float-text.ft-plus{color:#16a34a}.float-text.ft-gold{color:#f59e0b;text-shadow:0 0 10px #f59e0bb3;font-size:24px}.float-text.ft-diamond{color:#7c3aed;text-shadow:0 0 12px #7c3aedbf,0 0 26px #7c3aed66;font-size:28px}.float-text.ft-minus{color:#dc2626}.float-text.ft-ding{color:#2563eb;font-size:22px}@keyframes float-up{0%{opacity:0;transform:translate(-50%)translateY(6px)}18%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-52px)}}.legend{color:var(--text-dim);flex-wrap:wrap;justify-content:center;gap:8px 14px;font-size:13px;display:flex}.legend span{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;padding:4px 12px}.legend em{color:var(--accent);font-size:12px;font-style:normal}.modal-overlay{z-index:200;background:#1f29378c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-overlay[hidden]{display:none}.modal-overlay.show{animation:.25s fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.whack-modal{background:var(--bg-card);text-align:center;border-radius:22px;width:100%;max-width:380px;padding:32px 28px 26px;animation:.35s modal-in;position:relative;overflow:hidden;box-shadow:0 20px 50px #1f29374d}.confetti{pointer-events:none;z-index:0;position:absolute;inset:0}.confetti-piece{opacity:0;border-radius:2px;width:8px;height:14px;animation:1.8s ease-in infinite confetti-fall;position:absolute;top:-14px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-14px)rotate(0)}to{opacity:.6;transform:translateY(380px)rotate(560deg)}}.modal-emoji{z-index:1;margin-bottom:6px;font-size:56px;animation:.5s bounce-in;position:relative}@keyframes bounce-in{0%{transform:scale(0)rotate(-20deg)}60%{transform:scale(1.3)rotate(8deg)}to{transform:scale(1)rotate(0)}}.modal-title{z-index:1;margin-bottom:4px;font-size:24px;position:relative}.modal-score{color:var(--accent);z-index:1;margin:2px 0;font-size:40px;font-weight:800;position:relative}.modal-record{color:var(--accent);z-index:1;min-height:20px;margin-bottom:14px;font-size:15px;font-weight:700;animation:.6s record-pop;position:relative}@keyframes record-pop{0%{transform:scale(0)}55%{transform:scale(1.25)}to{transform:scale(1)}}.modal-stats{text-align:left;z-index:1;background:#f6f8fd;border-radius:14px;margin-bottom:20px;padding:12px 16px;position:relative}.ms-row{border-bottom:1px dashed var(--border);justify-content:space-between;padding:4px 2px;font-size:14px;display:flex}.ms-row:last-child{border-bottom:none}.ms-row b{color:var(--accent)}.whack-modal .btn{z-index:1;position:relative}@keyframes modal-in{0%{opacity:0;transform:scale(.8)translateY(24px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (width>=640px){.game-title{font-size:32px}.game-subtitle{font-size:15px}.whack-board{gap:6px 10px;max-width:520px}.stat-value{font-size:17px}}@media (width<=400px){.game-actions{gap:8px}.btn{padding:9px 13px;font-size:14px}.stat{min-width:80px;padding:8px 10px}}
