*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background:#7fd3ff;height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}canvas#app{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;color:#fff;position:fixed;inset:0}#hud.hidden .hud-play{display:none}.hud-top{padding:calc(env(safe-area-inset-top) + 10px) 14px 0;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.row{align-items:center;gap:10px;width:100%;max-width:520px;display:flex}.lvl{letter-spacing:.5px;text-shadow:0 2px #00000059;white-space:nowrap;font-size:14px;font-weight:900}.prog{background:#00000040;border:2px solid #ffffffbf;border-radius:6px;flex:1;height:10px;position:relative;overflow:visible}.prog>i{background:#fff;border-radius:4px;width:0;position:absolute;top:0;bottom:0;left:0}.prog>b{background:#f0b48a;border:3px solid #7d1d2c;border-radius:4px;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;left:0}.score{text-align:right;text-shadow:0 2px #00000059;min-width:64px;font-size:18px;font-weight:900}.meter{background:#140a1473;border:2px solid #ffffff8c;border-radius:14px;width:100%;max-width:520px;padding:6px 10px 7px}.meter .lab{letter-spacing:.6px;opacity:.95;justify-content:space-between;font-size:11px;font-weight:800;display:flex}.meter .stage{color:#ffe08a;font-size:15px;font-weight:900}.bar{background:#ffffff2e;border-radius:8px;height:14px;margin-top:4px;position:relative;overflow:hidden}.bar>i{background:linear-gradient(90deg,#ff9f43,#ff6b6b 40%,#c8102e 70%,#f2c230);width:0;transition:width .18s ease-out;position:absolute;top:0;bottom:0;left:0}.bar>s{background:#ffffffbf;width:2px;position:absolute;top:0;bottom:0}.pop{text-shadow:0 4px #00000059;white-space:nowrap;font-size:54px;font-weight:900;animation:.9s ease-out forwards pop;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.pop.small{font-size:28px;top:44%}.pop.stage{color:#ffe08a;font-size:34px;top:27%}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-50%)scale(1.1)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-90%)scale(1)}}.banner{letter-spacing:.5px;white-space:nowrap;background:#7d1d2c;border:3px solid #f3e6c4;border-radius:12px;padding:8px 16px;font-size:20px;font-weight:900;animation:.4s ease-out bannerIn;position:absolute;top:22%;left:50%;transform:translate(-50%)}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%)scale(.5)}to{opacity:1;transform:translate(-50%)scale(1)}}.overlay{padding:24px 18px calc(env(safe-area-inset-bottom) + 40px);text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:absolute;inset:0}.title{text-shadow:0 4px #7d1d2c,0 6px 14px #00000059;letter-spacing:1px;font-size:44px;font-weight:900;line-height:.95}.title small{letter-spacing:2px;text-shadow:0 2px #0006;color:#fff3d0;margin-top:8px;font-size:18px;display:block}.hint{background:#00000059;border-radius:999px;margin-top:18px;padding:10px 18px;font-size:18px;font-weight:800;animation:1.2s ease-in-out infinite pulse}.hint em{opacity:.85;margin-top:2px;font-size:12px;font-style:normal;font-weight:700;display:block}@keyframes pulse{50%{transform:scale(1.06)}}.results{justify-content:flex-end}.card{pointer-events:auto;background:#190a14b8;border:3px solid #f3e6c4;border-radius:22px;width:min(360px,100%);padding:16px 20px 18px;animation:.35s ease-out bannerIn2}@keyframes bannerIn2{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}.card h2{color:#ffe08a;letter-spacing:1px;margin:0 0 4px;font-size:30px;font-weight:900}.card .big{font-size:46px;font-weight:900}.card .lines{opacity:.9;margin:6px 0 12px;font-size:14px;font-weight:700;line-height:1.5}.card button{width:100%;font:inherit;color:#7d1d2c;cursor:pointer;letter-spacing:.5px;background:#f3e6c4;border:none;border-radius:16px;padding:16px;font-size:24px;font-weight:900;box-shadow:0 6px #b9a77c}.card button:active{transform:translateY(4px);box-shadow:0 2px #b9a77c}.mute{right:12px;bottom:calc(env(safe-area-inset-bottom) + 12px);pointer-events:auto;color:#fff;background:#0000004d;border:none;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800;position:absolute}.flash{opacity:0;background:#fff;transition:opacity .25s;position:absolute;inset:0}@media (width>=700px) and (height>=500px){.title{font-size:64px}}.jumphint{letter-spacing:.5px;color:#1b1b1b;white-space:nowrap;background:#ffd43b;border:3px solid #fff;border-radius:14px;padding:10px 18px;font-size:22px;font-weight:900;animation:.7s ease-in-out infinite alternate hintPulse;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}@keyframes hintPulse{0%{transform:translate(-50%)translateY(0)scale(1)}to{transform:translate(-50%)translateY(-8px)scale(1.06)}}
