:root{--ink:#1b1418;--paper:#fff4dc;--yellow:#ffd23c;--red:#e8453c;--teal:#2fb9a8;--pink:#ff8fc0;--title-font:"Luckiest Guy", "Bangers", "Impact", system-ui, sans-serif;--comic-font:"Bangers", "Luckiest Guy", "Impact", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--ink);font-family:var(--comic-font);-webkit-user-select:none;user-select:none;touch-action:none;background:#1b1418;margin:0;overflow:hidden}#app{position:fixed;inset:0}#c{width:100%;height:100%;display:block;position:absolute;inset:0}.hidden{display:none!important}.panel{background:var(--paper);border:4px solid var(--ink);box-shadow:5px 5px 0 var(--ink);border-radius:14px}#hud{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 12px max(14px, env(safe-area-inset-left));position:absolute;inset:0}#hearts{top:max(14px, env(safe-area-inset-top));left:max(14px, env(safe-area-inset-left));gap:6px;display:flex;position:absolute}#hearts svg{width:40px;height:40px;filter:drop-shadow(3px 3px 0 var(--ink));transition:transform .2s}#hearts svg.empty path{fill:#6b5c66}#hearts svg.pop{animation:.5s heartpop}@keyframes heartpop{0%{transform:scale(1)}30%{transform:scale(1.6)rotate(-15deg)}to{transform:scale(1)}}#score-box{top:max(12px, env(safe-area-inset-top));text-align:center;min-width:150px;padding:4px 22px 6px;position:absolute;left:50%;transform:translate(-50%)rotate(-2deg)}#score{letter-spacing:2px;color:var(--red);-webkit-text-stroke:2px var(--ink);font-size:40px;line-height:1}#dist{letter-spacing:1px;font-size:18px}#combo{color:var(--yellow);-webkit-text-stroke:2px var(--ink);text-shadow:3px 3px 0 var(--ink);opacity:0;font-size:34px;transition:opacity .2s;position:absolute;top:96px;left:50%;transform:translate(-50%)rotate(3deg)}#combo.on{opacity:1;animation:.45s ease-in-out infinite alternate bounce}@keyframes bounce{0%{transform:translate(-50%)rotate(3deg)scale(1)}to{transform:translate(-50%)rotate(-3deg)scale(1.12)}}#powers{top:70px;left:max(14px, env(safe-area-inset-left));flex-direction:column;gap:8px;display:flex;position:absolute}.power{letter-spacing:1px;border:3px solid var(--ink);width:132px;box-shadow:3px 3px 0 var(--ink);color:var(--ink);border-radius:10px;padding:3px 10px;font-size:20px;position:relative;overflow:hidden}.power .bar{background:var(--ink);height:5px;position:absolute;bottom:0;left:0}.power.shield{background:#8fe3ff}.power.rapid{background:#ffb347}.power.spread{background:#c6a4ff}.power.turbo{background:#ff7a7a}#speed{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));text-align:center;padding:2px 14px 6px;position:absolute;transform:rotate(3deg)}#speed-val{font-size:36px;line-height:1;display:block}#speed small{letter-spacing:2px;font-size:14px}#hud-buttons{top:max(12px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));pointer-events:auto;gap:8px;display:flex;position:absolute}.round{border:4px solid var(--ink);background:var(--yellow);width:46px;height:46px;font-family:var(--comic-font);color:var(--ink);box-shadow:3px 3px 0 var(--ink);cursor:pointer;border-radius:50%;font-size:20px}.round:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.round.off{background:#aaa;text-decoration:line-through}#popups{pointer-events:none;position:absolute;inset:0;overflow:hidden}.pop{font-family:var(--comic-font);letter-spacing:2px;white-space:nowrap;-webkit-text-stroke:2.5px var(--ink);text-shadow:4px 4px 0 var(--ink);will-change:transform, opacity;font-size:44px;position:absolute;top:0;left:0}.pop.small{-webkit-text-stroke:2px var(--ink);text-shadow:3px 3px 0 var(--ink);font-size:28px}.pop.burst{background:var(--yellow);clip-path:polygon(50% 0%,61% 22%,86% 8%,78% 34%,100% 42%,80% 56%,94% 82%,66% 72%,56% 100%,44% 76%,18% 94%,24% 66%,0% 58%,18% 44%,4% 18%,34% 26%);color:var(--red);-webkit-text-stroke:2px var(--ink);text-shadow:none;padding:18px 26px}.screen{background:radial-gradient(circle,#1b141838 1.5px,#0000 1.6px) 0 0/10px 10px,radial-gradient(#ffd23c26,#1b14188c);justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.card{background:var(--paper);border:6px solid var(--ink);box-shadow:10px 10px 0 var(--ink);text-align:center;border-radius:26px;width:100%;max-width:640px;max-height:100%;padding:22px 30px 20px;animation:.5s cubic-bezier(.3,1.6,.5,1) cardin;overflow:auto}.card.small{max-width:440px}@keyframes cardin{0%{opacity:0;transform:scale(.4)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.logo{font-family:var(--title-font);flex-direction:column;align-items:center;margin:0;font-weight:400;line-height:.9;display:flex}.logo span{-webkit-text-stroke:3px var(--ink);text-shadow:6px 6px 0 var(--ink);animation:.87s ease-in-out infinite alternate hose;display:inline-block}.logo .l1{color:var(--yellow);font-size:clamp(44px,11vw,86px)}.logo .l2{color:var(--red);font-size:clamp(50px,13vw,104px);animation-delay:-.43s}@keyframes hose{0%{transform:rotate(-3deg)scaleY(.94)skew(4deg)}to{transform:rotate(3deg)scaleY(1.06)skew(-4deg)}}.tag{letter-spacing:1px;color:#6b4a2e;margin:10px 0 14px;font-size:22px}.big-btn{font-family:var(--title-font);color:var(--ink);background:var(--yellow);border:5px solid var(--ink);box-shadow:6px 6px 0 var(--ink);cursor:pointer;border-radius:999px;padding:10px 44px 4px;font-size:38px;animation:.87s ease-in-out infinite alternate pulse}.big-btn:hover{background:#ffe27a}.big-btn:active{box-shadow:2px 2px 0 var(--ink);transform:translate(4px,4px)}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.07)}}.link-btn{font-family:var(--comic-font);cursor:pointer;color:var(--ink);background:0 0;border:none;margin:14px auto 0;font-size:20px;text-decoration:underline;display:block}#best-line{letter-spacing:1px;color:var(--red);margin-top:12px;font-size:22px}.controls{color:#4a3a30;margin-top:12px;font-family:system-ui,sans-serif;font-size:14px;line-height:1.6}.controls b{font-family:var(--comic-font);letter-spacing:1px;border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:6px;padding:0 5px;font-size:16px}.ctl.mobile{display:none}body.touch .ctl.mobile{display:block}body.touch .ctl.desktop{display:none}.legend{text-align:left;color:#4a3a30;grid-template-columns:1fr 1fr;gap:4px 14px;margin-top:12px;font-family:system-ui,sans-serif;font-size:13px;display:grid}.legend b{font-family:var(--comic-font);letter-spacing:1px;color:var(--red)}.dot{border:2px solid var(--ink);vertical-align:-2px;border-radius:50%;width:14px;height:14px;margin-right:6px;display:inline-block}.dot.crack{background:#d79c62}.dot.metal{background:#6f6a78}.dot.star{background:#ffe14a}.dot.lotus{background:#ff8fc0}h2{font-family:var(--title-font);color:var(--yellow);-webkit-text-stroke:2.5px var(--ink);text-shadow:5px 5px 0 var(--ink);margin:0 0 10px;font-size:46px;font-weight:400}.wobble{animation:.6s ease-in-out infinite alternate hose}#go-newbest{color:var(--red);font-size:30px;animation:.3s infinite alternate pulse}.stats{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 20px;display:grid}.stats div{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:12px;padding:6px}.stats span{letter-spacing:2px;color:#6b4a2e;font-size:15px;display:block}.stats b{color:var(--red);font-size:30px;font-weight:400}#countdown{font-family:var(--title-font);color:var(--yellow);-webkit-text-stroke:5px var(--ink);text-shadow:8px 8px 0 var(--ink);pointer-events:none;font-size:140px;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}#countdown.go{animation:.6s cubic-bezier(.3,1.8,.5,1) countpop}@keyframes countpop{0%{transform:translate(-50%,-50%)scale(.2)rotate(-20deg)}to{transform:translate(-50%,-50%)scale(1)rotate(0)}}#stick{pointer-events:none;background:#fff4dc59;border:4px solid #1b1418b3;border-radius:40px;width:130px;height:64px;margin:-32px 0 0 -65px;display:none;position:absolute}#stick-nub{background:var(--yellow);border:4px solid var(--ink);border-radius:50%;width:52px;height:52px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#fire-btn{right:max(22px, env(safe-area-inset-right));bottom:max(90px, calc(env(safe-area-inset-bottom) + 80px));border:5px solid var(--ink);background:var(--red);color:#fff;width:104px;height:104px;font-family:var(--title-font);-webkit-text-stroke:1.5px var(--ink);box-shadow:5px 5px 0 var(--ink);touch-action:none;border-radius:50%;font-size:28px;display:none;position:absolute}#fire-btn.down{box-shadow:2px 2px 0 var(--ink);transform:translate(3px,3px)scale(.95)}body.touch.playing #fire-btn{display:block}@media (max-width:640px){#hearts svg{width:30px;height:30px}#score{font-size:30px}#score-box{min-width:110px;padding:2px 12px 4px}#combo{font-size:26px;top:84px}.pop{font-size:32px}.legend{grid-template-columns:1fr}.card{padding:16px}.big-btn{font-size:30px}#powers{top:auto;bottom:max(16px, env(safe-area-inset-bottom));flex-direction:column-reverse}.power{width:108px;font-size:16px}}@media (max-height:520px){.legend,.tag{display:none}.logo .l1{font-size:44px}.logo .l2{font-size:54px}}.style-pick{justify-content:center;align-items:center;gap:10px;max-width:420px;margin:14px auto 0;display:flex}.style-pick .round{flex:none;width:40px;height:40px;font-size:16px}.style-label{border:3px solid var(--ink);min-width:0;box-shadow:3px 3px 0 var(--ink);background:#fff;border-radius:12px;flex:1;padding:4px 10px 6px}.style-label small{letter-spacing:2px;color:#6b4a2e;font-size:12px;display:block}.style-label kbd{font-family:var(--comic-font);border:1.5px solid var(--ink);border-radius:4px;padding:0 3px}.style-label b{letter-spacing:1px;color:var(--red);font-size:24px;font-weight:400;display:block}.style-label span{color:#4a3a30;white-space:nowrap;text-overflow:ellipsis;font-family:system-ui,sans-serif;font-size:12px;display:block;overflow:hidden}#score.bump{animation:.35s cubic-bezier(.3,1.8,.5,1) scorebump}@keyframes scorebump{0%{color:var(--yellow);transform:scale(1.5)rotate(-6deg)}to{transform:scale(1)rotate(0)}}#score{display:inline-block}@media (min-width:1000px) and (min-aspect-ratio:5/4){#title.screen{background:radial-gradient(circle,#1b14182e 1.5px,#0000 1.6px) 0 0/10px 10px,linear-gradient(90deg,#1b141873,#1b141800 60%);justify-content:flex-start;padding-left:5vw}#title .card{max-width:560px}}
