.ps-root{touch-action:none;font-family:var(--font-mono,monospace);--ps-safe-top:env(safe-area-inset-top);--ps-safe-bottom:env(safe-area-inset-bottom);background:#0a0e1f;position:absolute;inset:0;overflow:hidden}.ps-canvas{position:absolute;inset:0}.ps-canvas canvas{width:100%!important;height:100%!important;display:block!important}.ps-ui{z-index:3;pointer-events:none;color:#eaf3ff;position:absolute;inset:0}.ps-mute{top:max(8px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));color:#eaf3ff;cursor:pointer;pointer-events:auto;z-index:5;background:#101636e6;border:1px solid #4ecdc488;border-radius:8px;place-items:center;width:44px;height:44px;font-size:18px;line-height:1;display:grid;position:absolute}.ps-hud{top:max(8px,env(safe-area-inset-top));letter-spacing:.09em;text-align:center;background:#0a0e1fd9;border:1px solid #4ecdc455;border-radius:8px;grid-template-columns:repeat(4,1fr);gap:6px;padding:7px 9px;font-size:9px;display:grid;position:absolute;left:10px;right:60px;box-shadow:0 8px 20px #0006}.ps-hud span{justify-items:center;gap:3px;display:grid}.ps-hud b{color:#fff;font-size:clamp(13px,3.6vw,18px)}.ps-hud .is-active b{color:#ffe66d;text-shadow:0 0 10px #ffb23f}.ps-controls{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));pointer-events:auto;gap:8px;display:flex;position:absolute}.ps-guide{right:max(10px,env(safe-area-inset-right));color:#ffe66d;max-width:min(330px,100% - 20px);font:700 10px/1.35 var(--font-mono,monospace);letter-spacing:.04em;text-align:right;pointer-events:none;background:#101636ed;border:1px solid #ffe66d88;border-radius:6px;margin:0;padding:6px 8px;position:absolute;bottom:64px}.ps-controls button{color:#eaf3ff;min-width:96px;min-height:44px;font:700 11px var(--font-mono,monospace);letter-spacing:.1em;cursor:pointer;background:#101636e6;border:1px solid #4ecdc488;border-radius:8px;padding:9px 14px}.ps-controls button:disabled{opacity:.4;cursor:default}.ps-overlay{pointer-events:auto;background:#080c26c9;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.ps-card{text-align:center;background:#101636f2;border:1px solid #4ecdc488;border-radius:12px;justify-items:center;gap:10px;width:min(340px,100% - 24px);padding:clamp(18px,6vw,30px);display:grid;box-shadow:0 18px 60px #000b,0 0 32px #4ecdc433}.ps-card h2{color:#eaf3ff;font:700 clamp(20px,7vw,32px) var(--font-display,sans-serif);letter-spacing:.12em;margin:0}.ps-card p{color:#b7c4ea;letter-spacing:.06em;margin:0;font-size:11px;line-height:1.65}.ps-card strong{color:#ffe66d;font-size:44px}.ps-card strong.is-zero{color:#ff6b6b}.ps-results{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;margin:0;display:grid}.ps-results div{gap:2px;display:grid}.ps-results dt{color:#8fa0cf;letter-spacing:.08em;font-size:9px}.ps-results dd{color:#eaf3ff;margin:0;font-size:16px;font-weight:700}.ps-new-best{color:#4ecdc4;letter-spacing:.08em;margin:0;font-size:12px;font-weight:800}.ps-next-goal{color:#a78bfa;letter-spacing:.06em;margin:0;font-size:11px;font-weight:700}.ps-card small{color:#a7b6de;letter-spacing:.1em}.ps-card button.ps-play{color:#08122a;min-height:46px;font:800 12px var(--font-mono,monospace);letter-spacing:.14em;cursor:pointer;background:#4ecdc4;border:0;border-radius:6px;padding:11px 24px}.ps-controls button:active,.ps-card button.ps-play:active{filter:brightness(1.18);transform:translateY(1px)}@media (orientation:landscape) and (height<=500px){.ps-hud{grid-template-columns:repeat(4,minmax(0,1fr));font-size:8px}.ps-guide{display:none}.ps-card{max-width:520px}.ps-overlay{align-items:start;overflow-y:auto}}.ps-booting{color:#8fa0cf;font:700 11px/1 var(--font-mono,monospace);letter-spacing:.12em;pointer-events:none;grid-auto-flow:column;place-items:center;gap:8px;display:grid;position:absolute;inset:0}.ps-booting-dot{background:#4ecdc4;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite ps-booting-pulse}@keyframes ps-booting-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}@media (prefers-reduced-motion:reduce){.ps-booting-dot{animation:none}}
