:root{--ink:#1d4f91;--blue:#2f7fe0;--butter:#ffd451;--panel:#fffffff0;font-family:ui-rounded,Arial Rounded MT Bold,Nunito,Trebuchet MS,system-ui,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:#58aef5;height:100%;margin:0;overflow:hidden}#app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:fixed;inset:0}#stage{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}#hud{pointer-events:none;position:absolute;inset:0}#hud [hidden]{display:none!important}#hud button{pointer-events:auto;font:inherit;cursor:pointer;border:0}.hud-labels{position:absolute;inset:0;overflow:hidden}.float-label{color:#fff;white-space:nowrap;will-change:transform, opacity;--o:#1f5fc0;text-shadow:0 0 0 var(--o), 2px 0 0 var(--o), -2px 0 0 var(--o), 0 2px 0 var(--o), 0 -2px 0 var(--o), 2px 2px 0 var(--o), -2px 2px 0 var(--o), 2px -2px 0 var(--o), -2px -2px 0 var(--o), 0 5px 0 #143c8273;flex-direction:column;align-items:center;font-weight:900;line-height:1;display:flex;position:absolute;top:0;left:0}.float-label span{letter-spacing:.5px;font-size:30px}.float-label b{color:var(--butter)}.float-label em{margin-top:2px;font-size:26px;font-style:normal}.fl-plain em{font-size:24px}.fl-milestone span{--o:#c48a00;font-size:28px}.fl-combo{--o:#c46a00}.fl-combo span{font-size:34px}.fl-combo em{color:var(--butter);font-size:30px}.fl-sad{--o:#4a5f80}.fl-sad span{color:#e4ecf7;font-size:36px}.hud-flash{opacity:0;background:radial-gradient(#ffe67800 45%,#ffd6508c 85%,#ffc828cc 100%);position:absolute;inset:0}.hud-vignette{opacity:0;background:radial-gradient(#1e2d5000 40%,#1e2d508c 100%);transition:opacity .5s;position:absolute;inset:0}.hud-vignette.on{opacity:1}#stage{transition:filter .6s}#stage.sad{filter:saturate(.4)brightness(.9)}.hud-score{top:max(14px, env(safe-area-inset-top));transform-origin:50% 40%;color:#fff;--o:#1f5fc0;text-shadow:3px 0 0 var(--o), -3px 0 0 var(--o), 0 3px 0 var(--o), 0 -3px 0 var(--o), 2px 2px 0 var(--o), -2px 2px 0 var(--o), 2px -2px 0 var(--o), -2px -2px 0 var(--o), 0 6px 0 #143c8266;font-variant-numeric:tabular-nums;font-size:clamp(44px,11vmin,64px);font-weight:900;line-height:1;position:absolute;left:50%;transform:translate(-50%)}.hud-controls{top:max(8px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));gap:8px;display:flex;position:absolute}.hud-btn{width:48px;height:48px;color:var(--ink);background:#fffc;border-radius:50%;place-items:center;padding:0;display:grid}.hud-btn svg{fill:currentColor;width:24px;height:24px;transition:transform 80ms}.hud-btn:active svg{transform:scale(.86)}.hud-btn:focus-visible,.res-retry:focus-visible{outline-offset:2px;outline:3px solid #fff}.hud-hint{left:50%;bottom:max(28px, calc(env(safe-area-inset-bottom) + 18px));filter:drop-shadow(0 4px #1d4f9138);width:88px;height:88px;position:absolute;transform:translate(-50%)}.hud-hint svg{width:100%;height:100%;display:block;overflow:visible}.hint-hand{transform-origin:32px 44px;animation:1.8s ease-in-out infinite hint-hand}.hint-fill{transform-origin:28px 24px;animation:1.8s linear infinite hint-fill}.hint-core{transform-origin:28px 24px;animation:1.8s ease-in-out infinite hint-core}.hint-rays{transform-origin:28px 24px;animation:1.8s ease-out infinite hint-rays}@keyframes hint-hand{0%{transform:translate(5px,7px)rotate(8deg)}12%,66%{transform:translate(0)scale(.94)}74%{transform:translate(3px,6px)rotate(6deg)scale(1.02)}to{transform:translate(5px,7px)rotate(8deg)}}@keyframes hint-fill{0%,12%{opacity:.5;transform:scale(.15)}68%{opacity:1;transform:scale(1)}74%{opacity:1;transform:scale(1.06)}86%,to{opacity:0;transform:scale(.15)}}@keyframes hint-core{0%,12%{transform:scale(.6)}66%{transform:scale(1.2)}74%,to{transform:scale(.6)}}@keyframes hint-rays{0%,68%{opacity:0;transform:scale(.7)}72%{opacity:1;transform:scale(.9)}84%,to{opacity:0;transform:scale(1.25)}}.hud-results{background:var(--panel);min-width:220px;color:var(--ink);text-align:center;border-radius:26px;flex-direction:column;align-items:center;gap:4px;padding:18px 26px 20px;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px #1d4f912e}.res-title{font-size:22px;font-weight:900}.hud-results.pop{animation:.45s cubic-bezier(.2,1.6,.4,1) card-pop}@keyframes card-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.res-badge{background:var(--butter);border-radius:999px;padding:3px 12px;font-size:14px;font-weight:800}.res-value{font-variant-numeric:tabular-nums;font-size:clamp(52px,14vmin,76px);font-weight:900;line-height:1.05}.res-best{opacity:.75;font-size:16px;font-weight:700}.res-retry{background:var(--blue);color:#fff;border-radius:999px;min-width:160px;min-height:52px;margin-top:10px;padding:0 28px;font-size:20px;font-weight:800;box-shadow:0 4px #1d58a8}.res-credit{opacity:.55;margin-top:6px;font-size:11px;font-weight:600}.res-retry:active{transform:translateY(3px);box-shadow:0 1px #1d58a8}.hud-overlay{color:#fff;pointer-events:auto;background:#1d4f91d9;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.ov-title{font-size:30px;font-weight:800}.ov-sub{opacity:.9;text-align:center;padding:0 24px;font-size:17px;font-weight:700}#debug{color:#fff;white-space:pre;pointer-events:none;background:#0000008c;border-radius:4px;padding:4px 6px;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;position:absolute;bottom:6px;left:6px}@media (max-height:420px){.hud-score{top:max(8px, env(safe-area-inset-top));font-size:40px}.hud-results{flex-flow:wrap;justify-content:center;gap:2px 14px;max-width:440px;padding:10px 22px 12px;top:52%}.res-value{font-size:44px}.res-retry{min-height:48px;margin-top:4px}.res-credit{flex-basis:100%;margin-top:2px}.hud-hint{left:max(14px, env(safe-area-inset-left));bottom:max(10px, env(safe-area-inset-bottom));width:72px;height:72px;transform:none}}
