*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#000;font-family:system-ui,-apple-system,sans-serif;color:#fff;user-select:none;-webkit-user-select:none;touch-action:none}
#c{position:fixed;inset:0;width:100%;height:100%;display:block}
.panel{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(#0d1a3a,#000 75%);text-align:center;padding:20px;z-index:20;overflow:auto}
h1{font-size:clamp(40px,11vw,90px);margin:0;color:#ffd21f;text-shadow:4px 4px 0 #d61a1a,8px 8px 0 #1a4fd6;letter-spacing:2px}
.sub{opacity:.85;max-width:520px}.help{font-size:13px;opacity:.7}
#levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;width:min(560px,100%);margin:14px 0}
#levels button,.panel button{padding:14px 10px;border:0;border-radius:10px;background:#ffd21f;color:#111;font-weight:800;font-size:15px;cursor:pointer}
#levels button:disabled{background:#333;color:#777}
#ach{color:#7fe3ff;font-weight:700;min-height:1em}
#hud{position:fixed;top:env(safe-area-inset-top,0);left:0;padding:10px;z-index:5;pointer-events:none;text-shadow:0 1px 3px #000}
#store{font-weight:800;color:#ffd21f}#list{margin:4px 0;padding-left:18px;font-size:14px}#list .got{text-decoration:line-through;opacity:.5}
#status{font-weight:700;color:#ff8080;min-height:1.2em}#meter{width:140px;height:8px;background:#0008;border-radius:4px;overflow:hidden}#meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#3c3,#fd2,#e22)}
#cross{position:fixed;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:#fff8;z-index:5}
#touch{position:fixed;inset:0;z-index:6}.stick{position:absolute;bottom:30px;width:130px;height:130px;border-radius:50%;background:#fff1;border:2px solid #fff3}
#sl{left:20px}#sr{right:20px}.stick b{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:#fff5}
#touch button{position:absolute;right:30px;bottom:180px;width:70px;height:70px;border-radius:50%;border:0;background:#1a4fd6cc;color:#fff;font-weight:800}
#touch #bRun{right:110px;bottom:170px;width:56px;height:56px;background:#d61a1acc}#touch button.on{background:#ffd21f;color:#000}
#catch{position:fixed;inset:0;z-index:10}
#bubble{position:absolute;left:50%;top:12%;transform:translateX(-50%);width:min(560px,88vw);background:#fff;color:#111;border-radius:22px;padding:16px 20px;font-size:clamp(17px,4.6vw,24px);box-shadow:0 6px 0 #1a4fd6;animation:pop .3s}
#bubble:after{content:"";position:absolute;bottom:-18px;left:40%;border:12px solid transparent;border-top:12px solid #fff}
#bubble b{display:block;color:#1a4fd6;font-size:14px}@keyframes pop{from{transform:translateX(-50%) scale(.6)}}
#skip,#retry{position:absolute;bottom:40px;right:30px;padding:14px 22px;border:0;border-radius:10px;background:#eee;color:#111;font-weight:800;font-size:16px;transition:left .15s,top .15s}
#retry{left:50%;right:auto;transform:translateX(-50%);background:#ffd21f}
#nice{position:absolute;bottom:110px;width:100%;text-align:center;font-weight:800;color:#ffd21f;text-shadow:0 2px 4px #000}
#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);background:#111e;border:2px solid #7fe3ff;padding:12px 18px;border-radius:12px;z-index:30;font-weight:700;text-align:center}
[hidden]{display:none!important}
#stam{width:140px;height:5px;background:#0008;border-radius:3px;overflow:hidden;margin-top:4px}#stam i{display:block;height:100%;width:100%;background:#7fe3ff}
#touch #bList{right:auto;left:30px;bottom:180px;width:60px;height:60px;background:#f4e9c8cc;color:#333}
#fight{position:fixed;z-index:12;left:50%;transform:translateX(-50%);bottom:24px;padding:14px 26px;border:3px solid #fff;border-radius:40px;background:#d61a1a;color:#fff;font-weight:900;font-size:20px;box-shadow:0 4px 0 #700;animation:throb .6s infinite alternate}
@keyframes throb{to{transform:translateX(-50%) scale(1.08)}}
#pow{position:fixed;z-index:11;left:50%;top:40%;transform:translate(-50%,-50%) rotate(-8deg);font:900 clamp(60px,18vw,150px) Impact,Arial Black,sans-serif;color:#ffd21f;-webkit-text-stroke:4px #111;text-shadow:6px 6px 0 #d61a1a;pointer-events:none;animation:boom .35s}
@keyframes boom{from{transform:translate(-50%,-50%) rotate(-8deg) scale(.2)}}
@media (max-width:700px){#fight{bottom:auto;top:58%}}
