:root{--cyan:#33e6ff;--magenta:#ff3ea5;--red:#ff4455;--bg:#04050d;--font:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,"Liberation Mono",monospace;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);overscroll-behavior:none;position:fixed;top:0;right:0;bottom:0;left:0;font-family:var(--font);color:#e8f6ff}#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;outline:none}#ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;touch-action:none}#ui button{font-family:inherit}.pd-touch{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.pd-touch.hidden{display:none}.pd-zone{position:absolute;top:0;bottom:0;pointer-events:auto;touch-action:none}.pd-zone.l{left:0;width:50%}.pd-zone.r{right:0;width:50%}.pd-hint{position:absolute;color:#78dcff38;font-size:12px;letter-spacing:.2em;text-transform:uppercase;pointer-events:none;text-align:center}.pd-hint.l{left:calc(25% - 60px);width:120px;bottom:calc(18% + var(--sab))}.pd-hint.r{right:calc(25% - 60px);width:120px;bottom:calc(18% + var(--sab))}.pd-stick{position:absolute;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;border:2px solid rgba(51,230,255,.5);background:#33e6ff12;box-shadow:0 0 18px #33e6ff40;opacity:0;transition:opacity .15s;pointer-events:none}.pd-stick.on{opacity:1}.pd-knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#bff6ff,#33e6ff 70%);box-shadow:0 0 16px #33e6ff}.pd-swipe{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--magenta);box-shadow:0 0 14px var(--magenta);opacity:0;pointer-events:none;transition:opacity .2s}.pd-swipe.on{opacity:.7}.pd-roll{position:absolute;bottom:calc(22px + var(--sab));width:68px;height:68px;border-radius:50%;pointer-events:auto;touch-action:none;display:flex;align-items:center;justify-content:center;font-size:32px;line-height:1;color:#ffd1ec;background:#ff3ea51f;border:2px solid rgba(255,62,165,.6);box-shadow:0 0 16px #ff3ea54d}.pd-roll.a{right:calc(100px + var(--sar))}.pd-roll.b{right:calc(20px + var(--sar));bottom:calc(60px + var(--sab))}.pd-roll.down{background:#ff3ea566;transform:scale(.94)}.pd-hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;transition:opacity .25s}.pd-hud.hidden{opacity:0;visibility:hidden}.pd-hud *{text-shadow:0 0 8px currentColor}.pd-tl{position:absolute;top:calc(10px + var(--sat));left:calc(12px + var(--sal))}.pd-dist{font-size:clamp(20px,6vw,30px);font-weight:700;color:var(--cyan);letter-spacing:.04em}.pd-pips{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap;max-width:46vw}.pd-pip{width:14px;height:8px;border-radius:2px;background:#39ff9a;box-shadow:0 0 8px #39ff9a;transition:background .2s,box-shadow .2s,opacity .2s}.pd-pip.low{background:var(--red);box-shadow:0 0 8px var(--red)}.pd-pip.off{background:#222a38;box-shadow:none;opacity:.6}.pd-cubes{position:absolute;top:calc(12px + var(--sat));left:50%;transform:translate(-50%);font-size:clamp(13px,3.8vw,18px);font-weight:700;color:#fff;letter-spacing:.08em;white-space:nowrap;margin-left:12px}.pd-cubes b{color:var(--magenta);font-weight:700}.pd-cubes.pop{animation:pdpop .35s ease-out}.pd-cubes.hurt{animation:pdhurt .45s ease-out}@keyframes pdpop{0%{transform:translate(-50%) scale(1)}35%{transform:translate(-50%) scale(1.3);color:var(--cyan)}to{transform:translate(-50%) scale(1)}}@keyframes pdhurt{0%,60%{color:var(--red);transform:translate(-50%) scale(1.15)}to{color:#fff;transform:translate(-50%) scale(1)}}.pd-btns{position:absolute;top:calc(10px + var(--sat));right:calc(12px + var(--sar));display:flex;gap:8px}.pd-btn{pointer-events:auto;width:38px;height:38px;border-radius:10px;border:1px solid rgba(51,230,255,.45);background:#060e1c8c;color:var(--cyan);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;touch-action:manipulation}.pd-btn:active{background:#33e6ff40}.pd-btn.muted{color:#667;border-color:#445}.pd-toasts{position:absolute;top:calc(64px + var(--sat));left:0;right:0;z-index:6;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}.pd-toast{font-size:clamp(18px,5vw,26px);font-weight:700;letter-spacing:.1em;text-shadow:0 0 12px currentColor;animation:pdtoast 1.1s ease-out forwards}@keyframes pdtoast{0%{opacity:0;transform:translateY(8px) scale(.9)}15%{opacity:1;transform:translateY(0) scale(1.08)}30%{transform:scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.pd-flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:0}.pd-flash.go{animation:pdflash .2s ease-out}@keyframes pdflash{0%{opacity:.5}to{opacity:0}}.pd-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:auto;display:flex;align-items:center;justify-content:center;padding:calc(16px + var(--sat)) calc(16px + var(--sar)) calc(16px + var(--sab)) calc(16px + var(--sal));background:radial-gradient(ellipse at center,#080a1e99,#02030ae0);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:pdfade .4s ease-out;overflow-y:auto;touch-action:none}.pd-overlay.out{opacity:0;transition:opacity .2s}@keyframes pdfade{0%{opacity:0}to{opacity:1}}.pd-card{max-width:520px;width:100%;text-align:center;animation:pdrise .55s cubic-bezier(.2,.9,.3,1.2);margin:auto}@keyframes pdrise{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}.pd-title{font-size:clamp(34px,11vw,68px);font-weight:900;letter-spacing:.14em;margin:0 0 8px;color:#fff;text-shadow:0 0 12px var(--cyan),0 0 32px var(--cyan),3px 0 var(--magenta)}.pd-title.bad{text-shadow:0 0 12px var(--red),0 0 30px var(--red);font-size:clamp(26px,8vw,48px)}.pd-sub{color:#a9c8dd;font-size:clamp(13px,3.6vw,16px);margin:0 0 20px;line-height:1.5}.pd-help{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;text-align:left;font-size:clamp(12px,3.3vw,14px);color:#c9e6f5;margin:0 auto 24px;padding:14px 16px;border:1px solid rgba(51,230,255,.25);border-radius:12px;background:#0a142880;width:fit-content;max-width:100%}.pd-help .k{color:var(--cyan);font-weight:700;white-space:nowrap}.pd-big{pointer-events:auto;cursor:pointer;font-size:clamp(18px,5vw,24px);font-weight:800;letter-spacing:.2em;color:#04050d;background:linear-gradient(135deg,var(--cyan),#7affd4);border:0;border-radius:12px;padding:14px 44px;box-shadow:0 0 24px #33e6ff99;animation:pdpulse 1.6s ease-in-out infinite;touch-action:manipulation}.pd-big.m{background:linear-gradient(135deg,var(--magenta),#ff8a5c);box-shadow:0 0 24px #ff3ea599}@keyframes pdpulse{50%{transform:scale(1.05)}}.pd-stats{display:grid;grid-template-columns:1fr auto;gap:8px 20px;text-align:left;margin:0 auto 22px;padding:14px 18px;max-width:340px;border:1px solid rgba(255,62,165,.35);border-radius:12px;background:#14081880;font-size:clamp(13px,3.8vw,16px)}.pd-stats .v{text-align:right;color:#fff;font-weight:700}.pd-stats .best{color:#8aa}.pd-newbest{color:#ffe14d;font-weight:800;letter-spacing:.2em;margin:-8px 0 16px;text-shadow:0 0 12px #ffe14d;animation:pdpulse 1s infinite}.pd-pause .pd-title{font-size:clamp(28px,8vw,48px)}
