*{box-sizing:border-box;margin:0;padding:0}html,body{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#07040c;width:100%;height:100%;overflow:hidden}body,#app{position:fixed;inset:0}#stage{transform-origin:0 0;position:fixed;top:0;left:0;overflow:hidden}#stage.flipping{transition:transform .4s cubic-bezier(.3,.8,.3,1)}canvas{display:block}#ui{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:10;color:#fff;text-shadow:0 2px #00000073;font-family:Silkscreen,ui-monospace,monospace;position:absolute;inset:0}.hidden{display:none!important}#hud{top:calc(14px + var(--sa-t,0px));left:calc(18px + var(--sa-l,0px));letter-spacing:1px;align-items:center;gap:18px;font-size:15px;animation:.6s both fadeIn;display:flex;position:absolute}#hud .stat{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a06146b;border:1px solid #ffffff1f;border-radius:3px;align-items:center;gap:7px;padding:6px 12px 6px 10px;display:flex}#hud .stat.time{opacity:.8;justify-content:center;min-width:92px}#hud .ico,.e-stats .ico{filter:drop-shadow(0 1px #00000080);display:inline-flex}#hud .stat.bump{animation:.45s bump}@keyframes bump{0%{transform:scale(1)}30%{transform:scale(1.3)}to{transform:scale(1)}}#hint{letter-spacing:1.5px;opacity:0;white-space:nowrap;white-space:pre;background:#08041080;border:1px solid #ffffff1a;border-radius:3px;padding:10px 18px;font-size:14px;transition:opacity .4s,transform .4s;position:absolute;bottom:7%;left:50%;transform:translate(-50%,12px)}#hint.show{opacity:1;transform:translate(-50%)}#hint b{color:#ffd98a;font-weight:400}#toast{letter-spacing:6px;opacity:0;white-space:nowrap;text-shadow:0 0 18px #ffffff8c,0 2px #0006;font-family:Cinzel,serif;font-size:30px;transition:opacity .35s,transform .35s;position:absolute;top:22%;left:50%;transform:translate(-50%,10px)scale(.95)}#toast.show{opacity:1;transform:translate(-50%)scale(1)}#card{flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}#card .card-ch{letter-spacing:8px;opacity:0;color:#d9c8ff;font-size:14px}#card .card-line{background:linear-gradient(90deg,#0000,#fff,#0000);width:0;height:1px}#card .card-name{letter-spacing:4px;font-family:Cinzel,serif;font-size:54px;font-weight:500}#card .card-name span{opacity:0;filter:blur(6px);display:inline-block;transform:translateY(14px)}#card.in .card-ch{animation:.8s 50ms both fadeIn}#card.in .card-line{animation:1.2s cubic-bezier(.2,.8,.2,1) .15s both grow}#card.in .card-name span{animation:.9s cubic-bezier(.2,.8,.2,1) both letter}#card.out{animation:.55s both fadeOut}@keyframes grow{0%{width:0}to{width:360px}}@keyframes letter{to{opacity:1;filter:none;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;transform:scale(1.03)}}#title,#end{flex-direction:column;justify-content:center;align-items:center;animation:2s both fadeIn;display:flex;position:absolute;inset:0}.t-sub,.e-sub{letter-spacing:6px;opacity:.85;color:#ffe6f2;margin-bottom:6px;font-size:13px}.t-main,.e-main{letter-spacing:.22em;background:linear-gradient(#fff 0%,#ffe3f0 45%,#ff9fc2 100%);color:#0000;filter:drop-shadow(0 0 30px #ff96c873)drop-shadow(0 4px #280a2880);text-shadow:none;-webkit-background-clip:text;background-clip:text;margin-right:-.22em;font-family:Cinzel,serif;font-size:clamp(64px,13vw,150px);font-weight:700;line-height:1}.t-press{letter-spacing:3px;margin-top:34px;font-size:15px;animation:1.6s ease-in-out infinite blink}.t-press b,.t-keys b{color:#ffd98a;font-weight:400}@keyframes blink{0%,to{opacity:1}50%{opacity:.35}}.t-keys{letter-spacing:2px;opacity:.75;grid-template-columns:repeat(2,auto);gap:8px 36px;margin-top:40px;font-size:11px;display:grid}.t-keys .pad{opacity:.6}.e-stats{letter-spacing:2px;gap:34px;margin-top:26px;font-size:18px;display:flex}.e-stats>div{align-items:center;gap:8px;display:flex}.e-stats svg{width:18px;height:18px}#pause{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0804108c;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.p-title{letter-spacing:12px;font-family:Cinzel,serif;font-size:48px}.p-opts{letter-spacing:2px;opacity:.8;font-size:13px}body.touch-mode .kb,body:not(.touch-mode) .tc,body:not(.touch-mode) .tc-inline,body:not(.rotated) .only-rotated{display:none!important}body.touch-mode #hint{bottom:auto;top:calc(14px + var(--sa-t,0px));font-size:12px}body.touch-mode #hud{gap:10px;font-size:12px}body.touch-mode .t-press{margin-top:22px}.t-touch{letter-spacing:2px;opacity:.75;margin-top:22px;font-size:11px}.t-touch b,.t-ios b{color:#ffd98a;font-weight:400}.t-ios{letter-spacing:1.5px;opacity:.55;margin-top:12px;font-size:10px}#pause{pointer-events:auto}.p-btns{flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px;padding:0 20px;display:flex}.p-btns button{pointer-events:auto;letter-spacing:1.5px;color:#fff;cursor:pointer;text-shadow:0 2px #0006;background:#ffffff14;border:1px solid #ffffff40;border-radius:4px;padding:11px 18px;font-family:Silkscreen,ui-monospace,monospace;font-size:13px}.p-btns button:active{background:#ffffff40;transform:scale(.96)}.p-btns button b{color:#ffd98a;font-weight:400}#touch{z-index:5;touch-action:none;position:absolute;inset:0}#touch.off{display:none}#touch.menu .t-btn,#touch.menu .t-stick-base,#touch.menu .t-pause{opacity:0!important}.t-btn,.t-stick-base,.t-pause{pointer-events:none;transition:opacity .3s;position:absolute}.t-btn{color:#ffffffd9;letter-spacing:1px;text-shadow:0 1px #00000080;background:#ffffff12;border:2px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;font-family:Silkscreen,ui-monospace,monospace;transition:transform 60ms,background .1s,border-color .15s,box-shadow .15s,opacity .3s;display:flex;box-shadow:0 4px 18px #00000040,inset 0 0 12px #ffffff0f}.t-btn span{pointer-events:none;text-align:center;line-height:1.1}.t-jump{background:#ffffff1a;border-color:#ffffff73}.t-dash{border-color:#ff6e828c}.t-btn.pressed{background:#ffffff4d;transform:scale(.9)}.t-dash.pressed{background:#ff5a7866}.t-grab.on{color:#fff;background:#6ee6ff47;border-color:#7ff2ff;box-shadow:0 0 18px #6ee6ff8c,inset 0 0 10px #6ee6ff4d}.t-stick-base{opacity:.45;background:#ffffff0a;border:2px solid #ffffff40;border-radius:50%}.t-stick-base.live{opacity:1;border-color:#fff6}.t-stick-knob{background:#ffffff59;border:2px solid #fff9;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.t-pause{background:#0a06146b;border:1px solid #ffffff2e;border-radius:6px;justify-content:center;align-items:center;gap:18%;display:flex}.t-pause i{background:#ffffffd9;border-radius:1px;width:14%;height:42%;display:block}.t-pause.pressed{background:#ffffff40}#rotate-hint{z-index:100;-webkit-backdrop-filter:blur(6px);color:#fff;text-align:center;background:#06030cd1;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:30px;font-family:Silkscreen,ui-monospace,monospace;animation:.4s both fadeIn;display:flex;position:fixed;inset:0}#rotate-hint.passive{pointer-events:none;background:#06030c99}#rotate-hint.passive .rh-tap{display:none}.rh-phone{border:3px solid #fff;border-radius:10px;width:54px;height:92px;margin-bottom:18px;animation:2.4s cubic-bezier(.5,0,.3,1) infinite rh-turn;position:relative}.rh-screen{background:linear-gradient(#ff9fc2,#6a3f8a);border-radius:3px;position:absolute;inset:6px 4px 12px}@keyframes rh-turn{0%,20%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}.rh-text{letter-spacing:3px;font-size:16px}.rh-sub{letter-spacing:2px;opacity:.6;font-size:10px}.rh-tap{letter-spacing:3px;color:#ffd98a;margin-top:18px;font-size:12px;animation:1.6s ease-in-out infinite blink}
