*{margin:0;padding:0}html,body{overflow:hidden}.webgl{display:block;width:100%;height:100%;outline:none}.impact-frame{position:absolute;top:0;left:0;width:100%;height:100%;background-color:transparent;pointer-events:none;z-index:1000}.impact-frame.good{animation:impact-fade-good .7s ease-out forwards}.impact-frame.medium{animation:impact-fade-medium .7s ease-out forwards}.impact-frame.bad{animation:impact-fade-bad .7s ease-out forwards}@keyframes impact-fade-good{0%{background-color:#0f06}to{background-color:#0f00}}@keyframes impact-fade-medium{0%{background-color:#ff06}to{background-color:#ff00}}@keyframes impact-fade-bad{0%{background-color:#f006}to{background-color:#f000}}.score-display{position:fixed;top:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:0;z-index:1000;pointer-events:none}.score-display img{height:25vh;width:auto;display:block;margin-left:-3vw}.score-display img:first-child{margin-left:0}@keyframes digit-smash{0%{transform:scale(5);opacity:1}60%{transform:scale(.9);opacity:1}80%{transform:scale(1.05)}to{transform:scale(1)}}.score-display img.smash{animation:digit-smash .25s cubic-bezier(.2,.8,.4,1) forwards}#score-video-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1}#score-video-overlay video{width:100%;height:100%;object-fit:cover}#fg-video-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:500}#fg-video-overlay video{width:100%;height:100%;object-fit:cover}.beat-indicator{position:absolute;bottom:40px;left:50%;transform:translate(-50%);width:16px;height:16px;border-radius:50%;background:#ffffff40;z-index:1000;pointer-events:none}.beat-indicator.pulse{animation:beat-pulse .35s ease-out forwards}@keyframes beat-pulse{0%{background:#0f8;transform:translate(-50%) scale(2.2)}to{background:#ffffff40;transform:translate(-50%) scale(1)}}.timing-ring-wrap{position:absolute;bottom:80px;left:50%;transform:translate(-50%);width:60px;height:60px;pointer-events:none;z-index:1000}.timing-ring-inner,.timing-ring-outer{position:absolute;top:-50%;left:50%;border-radius:50%;transform:translate(-50%,-50%);box-sizing:border-box}.timing-ring-inner{width:130px;height:130px;border:10px solid rgb(255,0,0)}.timing-ring-outer{border:10px solid rgba(0,255,0,.8)}.start-bg-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:0}.start-logo{position:absolute;top:1vh;left:50%;transform:translate(-50%);width:27vw;max-width:500px;pointer-events:none;z-index:1}.start-body{margin:0;background:#fff;display:flex;align-items:center;justify-content:center;min-height:100vh;overflow:hidden;cursor:url(/graphic/Cursor.svg) 0 0,auto}h1{font-family:ruddy,sans-serif;font-weight:700;font-style:normal}.flow-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:5vh;background:#fff;opacity:0;pointer-events:none;transition:opacity .35s ease}.flow-screen.active{opacity:1;pointer-events:all}.room-code{font-size:4rem;font-weight:700;letter-spacing:.3em;color:#0f8;text-shadow:0 0 16px rgba(0,255,136,.5)}.flow-btn{background:none;border:none;cursor:url(/graphic/Cursor.svg) 0 0,pointer;position:relative;z-index:1}.btn-small .btn-normal,.btn-small .btn-hover,.btn-small .btn-pressed,.btn-small .btn-disabled{width:40vw;margin-bottom:5vh}.btn-large .btn-normal,.btn-large .btn-hover,.btn-large .btn-pressed,.btn-large .btn-disabled{width:46vw;margin-bottom:0vh}.btn-disabled{position:relative;opacity:1}.flow-btn:not(:disabled) .btn-disabled{opacity:0;position:absolute}.btn-normal,.btn-hover,.btn-pressed{position:absolute;top:0;left:0;opacity:0}.flow-btn:not(:disabled) .btn-normal{opacity:1;position:relative}.flow-btn:disabled .btn-normal{opacity:0;position:absolute}.flow-btn:not(:disabled):hover .btn-normal{opacity:0;position:absolute}.flow-btn:not(:disabled):hover .btn-hover{opacity:1;position:relative}.flow-btn:not(:disabled):active .btn-normal,.flow-btn:not(:disabled):active .btn-hover{opacity:0;position:absolute}.flow-btn:not(:disabled):active .btn-pressed{opacity:1;position:relative}.qr-pair{display:flex;gap:20vw;margin-bottom:5vh}.qr-slot{position:relative}.qr-connect-anim{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:130%;height:130%;object-fit:cover;pointer-events:none}.qr-pair canvas{border-radius:45px;border:1vh solid #000000;background-color:#efefef}.tutorial-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0}.tutorial-fullscreen #tutorial-video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;height:auto;z-index:0;border-radius:16px}.tutorial-label{position:absolute;bottom:6vh;left:50%;transform:translate(-50%);font-family:inherit;font-size:2rem;letter-spacing:.15em;text-transform:uppercase;color:#fff;pointer-events:none;z-index:1;display:none}.tutorial-nav-btn{position:absolute;background:none;border:none;cursor:pointer;padding:0;z-index:1}.tutorial-nav-btn img{display:none;width:100%;opacity:1;position:relative}.tutorial-nav-btn .btn-normal{display:block}.tutorial-nav-btn:hover .btn-normal{display:none}.tutorial-nav-btn:hover .btn-hover{display:block}.tutorial-back{top:4vh;left:4vw;width:8vw}.tutorial-prev{top:50%;left:3vw;transform:translateY(-50%);width:6vw}.tutorial-next{top:50%;right:3vw;transform:translateY(-50%);width:6vw}
