:root{--wm-grass-1: #7bc24a;--wm-grass-2: #57a531;--wm-grass-top: #a9e26a;--wm-frame: #7a5734;--wm-frame-dark: #5c3f22;--wm-flower-a: #ffd94a;--wm-flower-b: #ff8fb1;--wm-flower-c: #ffffff;--wm-blade: rgba(30, 90, 25, .16);--wm-dirt: #8a5a38;--wm-dirt-light: #ab7047;--wm-dirt-dark: #5a3921;--wm-hole: #241309;--wm-rim: #bb8052;--wm-title-1: #3f9e3a;--wm-title-2: #1f8a55;--wm-btn-1: #ff9a44;--wm-btn-2: #f26a1e;--wm-btn-shadow: #c14e14;--wm-c-green-1: #58c24a;--wm-c-green-2: #2f9a3a;--wm-c-orange-1: #ffb43d;--wm-c-orange-2: #f2741e;--wm-c-gold-1: #ffd257;--wm-c-gold-2: #e6a521;--wm-panel: rgba(255, 255, 255, .28)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--wm-grass-1: #2f6b34;--wm-grass-2: #1f4a27;--wm-grass-top: #3f8a45;--wm-frame: #4a3420;--wm-frame-dark: #2f2114;--wm-flower-a: #ffcf3f;--wm-flower-b: #e78aad;--wm-flower-c: #eae0cf;--wm-blade: rgba(0, 0, 0, .22);--wm-dirt: #5f3d27;--wm-dirt-light: #7a4e31;--wm-dirt-dark: #331f12;--wm-hole: #0c0603;--wm-rim: #855432;--wm-title-1: #5fd06a;--wm-title-2: #46c092;--wm-panel: rgba(0, 0, 0, .22)}}:root[data-theme=dark]{--wm-grass-1: #2f6b34;--wm-grass-2: #1f4a27;--wm-grass-top: #3f8a45;--wm-frame: #4a3420;--wm-frame-dark: #2f2114;--wm-flower-a: #ffcf3f;--wm-flower-b: #e78aad;--wm-flower-c: #eae0cf;--wm-blade: rgba(0, 0, 0, .22);--wm-dirt: #5f3d27;--wm-dirt-light: #7a4e31;--wm-dirt-dark: #331f12;--wm-hole: #0c0603;--wm-rim: #855432;--wm-title-1: #5fd06a;--wm-title-2: #46c092;--wm-panel: rgba(0, 0, 0, .22)}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:manipulation}#app{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.game{position:relative;width:min(92vw,440px);display:flex;flex-direction:column;gap:14px}.crumb{font-size:14px}.crumb a{color:var(--accent);text-decoration:none;font-weight:700}.crumb a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.title{font-size:clamp(26px,8vw,44px);font-weight:900;line-height:1;letter-spacing:-1px;background:linear-gradient(160deg,var(--wm-title-1),var(--wm-title-2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.14))}.scores{display:flex;gap:8px}.score-box{border-radius:12px;padding:6px 12px;text-align:center;min-width:56px;color:#fff;box-shadow:0 3px #00000029,inset 0 1px #ffffff59}.score-box:nth-child(1){background:linear-gradient(180deg,var(--wm-c-green-1),var(--wm-c-green-2))}.score-box:nth-child(2){background:linear-gradient(180deg,var(--wm-c-orange-1),var(--wm-c-orange-2))}.score-box:nth-child(3){background:linear-gradient(180deg,var(--wm-c-gold-1),var(--wm-c-gold-2))}.score-box .label{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:800;color:#ffffffeb;text-shadow:0 1px 1px rgba(0,0,0,.18)}.score-box .value{font-size:20px;font-weight:900;line-height:1.1;text-shadow:0 1px 1px rgba(0,0,0,.22)}.grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(6px,2.4vw,12px);padding:clamp(12px,4vw,20px);border-radius:22px;background:radial-gradient(circle 3px at 18% 26%,var(--wm-flower-a) 0 3px,transparent 4px),radial-gradient(circle 3px at 82% 20%,var(--wm-flower-c) 0 3px,transparent 4px),radial-gradient(circle 3px at 30% 72%,var(--wm-flower-b) 0 3px,transparent 4px),radial-gradient(circle 3px at 72% 82%,var(--wm-flower-a) 0 3px,transparent 4px),radial-gradient(circle 3px at 54% 48%,var(--wm-flower-c) 0 3px,transparent 4px),repeating-linear-gradient(74deg,transparent 0 10px,var(--wm-blade) 10px 11px),radial-gradient(120% 96% at 50% -8%,var(--wm-grass-top),transparent 62%),linear-gradient(180deg,var(--wm-grass-1),var(--wm-grass-2));border:4px solid var(--wm-frame);box-shadow:inset 0 2px #ffffff2e,inset 0 0 0 2px var(--wm-frame-dark),0 12px 26px #00000038}.hole{position:relative;aspect-ratio:1 / 1;background:transparent;border:none;border-radius:14px;overflow:hidden;padding:0;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 42 42'%3E%3Cg transform='rotate(-32 21 21)'%3E%3Crect x='18' y='14' width='6' height='24' rx='2.5' fill='rgb(158,102,58)' stroke='rgb(92,58,32)' stroke-width='1.5'/%3E%3Crect x='9' y='5' width='24' height='12' rx='3' fill='rgb(126,76,44)' stroke='rgb(80,48,26)' stroke-width='2'/%3E%3Crect x='11' y='7' width='20' height='3' rx='1.5' fill='rgba(255,255,255,0.28)'/%3E%3C/g%3E%3C/svg%3E") 21 8,pointer}.hole:before{content:"";position:absolute;left:6%;right:6%;bottom:4%;height:62%;border-radius:50% 50% 46% 46%/62% 62% 40% 40%;background:radial-gradient(ellipse 58% 42% at 50% 22%,var(--wm-hole) 0%,var(--wm-hole) 34%,rgba(0,0,0,0) 64%),radial-gradient(ellipse 120% 120% at 50% 128%,var(--wm-dirt-light) 0%,var(--wm-dirt) 58%,var(--wm-dirt-dark) 100%);box-shadow:inset 0 7px 12px #00000073,0 5px 7px #00000038;z-index:1}.hole .dirt{position:absolute;left:6%;right:6%;bottom:4%;height:24%;border-radius:50%;background:radial-gradient(ellipse at 50% 6%,var(--wm-rim) 0%,var(--wm-dirt) 46%,var(--wm-dirt-dark) 100%);box-shadow:inset 0 3px 3px #ffffff38,0 2px 4px #00000040;z-index:3}.hole .mole{position:absolute;left:0;right:0;bottom:20%;z-index:2;text-align:center;font-size:clamp(28px,12.5vw,58px);line-height:1;transform:translateY(130%);transition:transform .15s ease-in;filter:drop-shadow(0 3px 2px rgba(0,0,0,.28));user-select:none;-webkit-user-select:none}.hole.up .mole{animation:wm-pop .28s cubic-bezier(.34,1.56,.64,1) both,wm-idle 1.7s ease-in-out .3s infinite}.hole.bonk .mole{transform:translateY(12%) scale(.78) rotate(-9deg);transition:transform 70ms ease;animation:none}.hole:active{transform:scale(.98)}.hole .mole:before,.hole .mole:after{content:"";position:absolute;left:50%;top:26%;transform:translate(-50%,-50%) scale(0);pointer-events:none;opacity:0}.hole .mole:before{width:74%;aspect-ratio:1;border-radius:50%;border:4px solid rgba(255,255,255,.92)}.hole.bonk .mole:before{animation:wm-ring .22s ease-out both}.hole.bonk .mole:after{content:"✨";top:-6%;font-size:.62em;animation:wm-stars .22s ease-out both}@keyframes wm-pop{0%{transform:translateY(122%) scale(.9)}62%{transform:translateY(-9%) scale(1.06)}to{transform:translateY(0) scale(1)}}@keyframes wm-idle{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6%) rotate(3deg)}}@keyframes wm-ring{0%{transform:translate(-50%,-50%) scale(.2);opacity:.9}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}@keyframes wm-stars{0%{transform:translate(-50%,-50%) scale(0) rotate(0);opacity:0}35%{opacity:1}to{transform:translate(-50%,-50%) scale(1.35) rotate(24deg);opacity:0}}@media(prefers-reduced-motion:reduce){.hole.up .mole{animation:none;transform:translateY(0)}.hole .mole{transition:transform 90ms ease-out}}.controls{display:flex;align-items:center;justify-content:space-between;gap:10px}.how{font-size:13px;flex:1;color:var(--text);opacity:.9;background:var(--wm-panel);border-radius:10px;padding:8px 10px}.how b{font-weight:800}.btn{background:linear-gradient(180deg,var(--wm-btn-1),var(--wm-btn-2));color:#fff;border:none;border-radius:999px;padding:11px 22px;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 0 var(--wm-btn-shadow),0 7px 12px #00000038;transition:transform 90ms ease,filter .12s ease,box-shadow 90ms ease}.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--wm-btn-shadow),0 3px 6px #00000038}.overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;background:var(--overlay-bg);z-index:10;opacity:0;pointer-events:none;transition:opacity .2s ease}.overlay.show{opacity:1;pointer-events:auto}.overlay .msg{font-size:clamp(28px,9vw,44px);font-weight:900;background:linear-gradient(160deg,var(--wm-title-1),var(--wm-title-2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.14))}.overlay.show .msg{animation:wm-pop-in .32s cubic-bezier(.34,1.56,.64,1) both}.overlay .sub{font-size:15px;opacity:.9}.overlay .actions{margin-top:8px}@keyframes wm-pop-in{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
