[hidden]{display:none!important}:root{--paper:#f6f0e4;--ink:#1d1a17;--accent:#c2412d;--card:#fffaf0;--gold:#f2c43c}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;font-family:ui-rounded,Trebuchet MS,system-ui,sans-serif;overflow:hidden}canvas{cursor:crosshair;width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:var(--ink);background:var(--card);border:2px solid var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);touch-action:manipulation;border-radius:999px;padding:6px 12px;transition:transform 80ms}button:active{box-shadow:none;transform:translate(2px,2px)}button.primary{background:var(--accent);color:#fff;padding:9px 24px;font-size:19px;font-weight:800}button.daily{background:var(--gold);font-weight:800}button.link{box-shadow:none;background:0 0;border:0;margin-top:8px;text-decoration:underline}.hud{top:max(10px, env(safe-area-inset-top));z-index:3;pointer-events:none;align-items:center;gap:6px;display:flex;position:fixed;left:10px;right:10px}.hud>*{pointer-events:auto}.hud.idle .level,.hud.idle .clock,.hud.idle #hint{visibility:hidden}.back{background:var(--card);border:2px solid var(--ink);width:38px;height:38px;color:var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:50%;flex:0 0 38px;place-items:center;font-weight:800;text-decoration:none;display:grid}.level{background:var(--card);border:2px solid var(--ink);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;min-width:0;padding:6px 12px;font-size:16px;font-weight:800;overflow:hidden}.clock{flex-direction:column;align-items:center;margin-left:auto;line-height:1;display:flex}.timer{font-variant-numeric:tabular-nums;background:var(--ink);color:var(--paper);border-radius:999px;padding:7px 12px;font-weight:800}.timer.bump{animation:.35s ease-out bump}.par{background:#fffaf0d9;border-radius:6px;margin-top:2px;padding:1px 5px;font-size:11px;font-weight:800}.hint-btn{white-space:nowrap;padding:6px 10px}.hint-btn.glow{background:#fff1c9;animation:1s ease-in-out infinite alternate glow}@keyframes glow{to{transform:scale(1.1)rotate(-4deg)}}.round{flex:0 0 38px;width:38px;height:38px;padding:0}#mute.off{opacity:.55;text-decoration:line-through}@keyframes bump{40%{transform:scale(1.3)rotate(-4deg)}}.coach{left:50%;top:calc(max(10px, env(safe-area-inset-top)) + 62px);z-index:4;pointer-events:none;text-align:center;background:var(--card);border:2px solid var(--ink);max-width:90vw;box-shadow:3px 3px 0 var(--ink);border-radius:16px;padding:8px 16px;font-size:16px;font-weight:800;animation:.35s cubic-bezier(.3,1.6,.5,1) coach-in;position:fixed;transform:translate(-50%)}@keyframes coach-in{0%{opacity:0;transform:translate(-50%)scale(.6)}}.banner{z-index:4;pointer-events:none;text-align:center;position:fixed;top:32%;left:0;right:0}.banner b{color:#fff;-webkit-text-stroke:3px var(--ink);text-shadow:4px 4px 0 var(--ink);font-size:clamp(34px,10vw,68px);font-weight:900;display:block}.banner small{background:var(--ink);color:#fff;border-radius:999px;margin-top:6px;padding:4px 14px;font-size:16px;font-weight:800;display:inline-block}.banner.show{animation:1.3s ease-out forwards banner}@keyframes banner{0%{opacity:0;transform:scale(.3)rotate(-8deg)}15%{opacity:1;transform:scale(1.12)rotate(2deg)}25%{transform:scale(1)rotate(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.targets{left:0;right:0;bottom:max(26px, calc(env(safe-area-inset-bottom) + 22px));z-index:3;pointer-events:none;justify-content:center;gap:8px;padding:0 10px;display:flex;position:fixed}.target{background:var(--card);border:3px solid var(--ink);width:min(80px,17.5vw);height:min(80px,17.5vw);box-shadow:3px 3px 0 var(--ink);border-radius:16px;flex:none;transition:transform .25s,background .25s;animation:.4s cubic-bezier(.3,1.4,.5,1) both card-in;position:relative}.target:nth-child(2){animation-delay:60ms}.target:nth-child(3){animation-delay:.12s}.target:nth-child(4){animation-delay:.18s}.target:nth-child(5){animation-delay:.24s}.target img{object-fit:contain;width:82%;height:82%;position:absolute;top:9%;left:9%}.target.found{background:#fff1c9}.target.found img{animation:.45s ease-in-out infinite alternate dance}.target.found:after{content:"✓";background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-weight:900;animation:.4s ease-out stamp;display:grid;position:absolute;top:-10px;right:-8px}.target.pulse{animation:.6s ease-in-out 3 pulse}@keyframes stamp{0%{opacity:0;transform:scale(2.4)}to{opacity:1;transform:scale(1)}}@keyframes pulse{50%{transform:scale(1.15)}}@keyframes dance{0%{transform:translateY(0)rotate(-7deg)}to{transform:translateY(-5px)rotate(7deg)}}.screen{z-index:5;touch-action:pan-y;background:#f6f0e4d6;grid-template-columns:minmax(0,1fr);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:hidden auto}.screen>.card{min-width:0}.screen.see-through{background:#f6f0e44d}.card{background:var(--card);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);text-align:center;border-radius:22px;width:100%;max-width:540px;padding:18px;animation:.35s cubic-bezier(.3,1.4,.5,1) card-in}@keyframes card-in{0%{opacity:0;transform:translateY(24px)scale(.94)}}.logo{letter-spacing:1px;margin:0;font-size:clamp(44px,12vw,70px);line-height:.95}.logo span{display:inline-block}.logo span:last-child{color:var(--accent);animation:2.4s ease-in-out infinite lean}@keyframes lean{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(1.08)rotate(-3deg)}}.card h2{margin:0 0 6px;font-size:30px}.card h3{margin:12px 0 6px}.sub{margin:8px 0 12px;font-size:16px;line-height:1.4}.row{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.best{opacity:.85;margin:10px 0 6px}.levels{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:4px 0 6px;display:grid}.levels button{box-shadow:2px 2px 0 var(--ink);border-radius:12px;flex-direction:column;align-items:center;gap:1px;min-width:0;padding:6px 2px;display:flex}.levels button b{font-size:18px}.levels button small{opacity:.8;min-height:2.2em;font-size:10px;line-height:1.1}.levels button span{letter-spacing:1px;font-size:11px}.levels button.next{background:#fff1c9;animation:1.4s ease-in-out infinite wiggle}.levels button[disabled]{opacity:.45;cursor:default}@keyframes wiggle{0%,70%,to{transform:none}80%{transform:rotate(-4deg)}90%{transform:rotate(4deg)}}@media (width<=420px){.levels{grid-template-columns:repeat(5,minmax(0,1fr))}.levels button small{display:none}}.stars{justify-content:center;gap:6px;margin:2px 0;display:flex}.stars span{color:#d6ccb8;font-size:46px;line-height:1}.stars span.on{color:var(--gold);-webkit-text-stroke:2px var(--ink);animation:.5s cubic-bezier(.3,1.8,.5,1) both star-pop}@keyframes star-pop{0%{transform:scale(.1)rotate(-60deg)}}.win-time{margin:4px 0 10px;font-weight:800}.win-time.new{color:var(--accent)}.medals{justify-content:center;gap:8px;margin:10px 0 4px;display:flex}.medals:empty{display:none}.medal{border:2px solid var(--ink);opacity:.45;background:#efe7d6;border-radius:14px;width:70px;padding:4px 0}.medal span{font-size:26px;line-height:1.1;display:block}.medal small{font-size:10px;font-weight:800}.medal.ever{opacity:.7}.medal.got{opacity:1;background:#fff1c9}.medal.pop{animation:.5s cubic-bezier(.3,1.8,.5,1) medal-pop}@keyframes medal-pop{0%{transform:scale(.2)rotate(-30deg)}}.tally{grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 4px;display:grid}.tally div{background:#f3ead8;border-radius:12px;padding:6px 2px}.tally b{font-size:20px;display:block}.tally small{opacity:.8;font-size:11px}.share{margin:10px 0}.share pre{white-space:pre-wrap;-webkit-user-select:text;user-select:text;background:#f3ead8;border-radius:12px;margin:0 0 6px;padding:8px;font:14px/1.4 ui-monospace,Menlo,monospace}.met-h{margin-top:14px}.met{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.met div{border:2px solid var(--ink);background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:11px;line-height:1.15;animation:.4s cubic-bezier(.3,1.4,.5,1) both card-in;display:flex}.met img{object-fit:contain;width:auto;max-width:100%;height:64px}.met a{color:var(--accent);font-size:12px;font-weight:800}.shop-all{color:var(--ink);margin-top:12px;font-weight:800;display:inline-block}@media (width<=400px){.tally{grid-template-columns:repeat(2,1fr)}.medal{width:62px}.stars span{font-size:40px}}.steps{text-align:left;flex-direction:column;gap:8px;margin:8px 0 14px;display:flex}.steps>div{background:#f3ead8;border-radius:14px;align-items:center;gap:10px;padding:6px 10px;animation:.4s cubic-bezier(.3,1.4,.5,1) both card-in;display:flex}.steps>div:nth-child(2){animation-delay:80ms}.steps>div:nth-child(3){animation-delay:.16s}.steps>div:nth-child(4){animation-delay:.24s}.steps>div:nth-child(5){animation-delay:.32s}.steps p{margin:0;font-size:15px;line-height:1.35}.pics{flex:0 0 72px;justify-content:center;align-items:center;height:52px;display:flex}.pics img{object-fit:contain;max-width:24px;max-height:46px;animation:.6s ease-in-out infinite alternate dance}.pics img:nth-child(2){animation-delay:.15s}.pics img:nth-child(3){animation-delay:.3s}.pics.emoji{font-size:34px}.credit{bottom:max(4px, env(safe-area-inset-bottom));text-align:center;z-index:4;pointer-events:none;font-size:13px;position:fixed;left:0;right:0}.credit a{color:var(--ink);pointer-events:auto;font-weight:700}@media (width<=420px){.hud{gap:4px}.level{padding:6px 8px;font-size:13px}.hint-btn{padding:6px 7px}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
