*{box-sizing:border-box;margin:0;padding:0}#app{width:100%;height:calc(var(--vh,1vh) * 100);background:#00008b;flex-direction:column;display:flex;overflow:hidden}#game-container{touch-action:none;background-color:#00008b;flex:1;width:100%;min-height:0;overflow:hidden}#game-container canvas{touch-action:none;display:block}.floating-notes-container{pointer-events:none;z-index:1;contain:strict;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.floating-note{-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:0;will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:7s linear infinite floatNote;position:absolute;bottom:-40px;transform:translateZ(0)}@keyframes floatNote{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.8)}15%{opacity:.55}75%{opacity:.55}to{opacity:0;transform:translateY(-105vh)rotate(180deg)scale(1.1)}}.splash-icon-wrapper{z-index:2;justify-content:center;align-items:center;width:90px;height:90px;margin-bottom:24px;display:flex;position:relative}.splash-sound-wave{pointer-events:none;will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:2px solid #8ca0ff99;border-radius:50%;width:70px;height:70px;animation:2.4s ease-out infinite soundWavePulse;position:absolute}.splash-sound-wave:nth-child(2){animation-delay:.8s}.splash-sound-wave:nth-child(3){animation-delay:1.6s}@keyframes soundWavePulse{0%{opacity:.85;transform:scale(.7)translateZ(0)}to{opacity:0;transform:scale(2.2)translateZ(0)}}.splash-music-icon{-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;filter:drop-shadow(0 4px 12px #6478ff99);font-size:64px;line-height:1;animation:2.2s ease-in-out infinite musicIconBounce;display:inline-block;position:relative;transform:translateZ(0)}@keyframes musicIconBounce{0%,to{transform:translate(0,0)rotate(0)scale(1)}25%{transform:translateY(-7px)rotate(-5deg)scale(1.06)}50%{transform:translate(0,0)rotate(0)scale(1)}75%{transform:translateY(-5px)rotate(5deg)scale(1.04)}}.splash-title{color:#fff;text-align:center;letter-spacing:.5px;z-index:2;text-shadow:0 2px 10px #7896ff66;margin:0 0 10px;font-family:Arial,sans-serif;font-size:22px;font-weight:700}.splash-loading-box{z-index:2;flex-direction:column;align-items:center;margin-top:10px;display:flex}.splash-equalizer{justify-content:center;align-items:flex-end;gap:6px;height:28px;margin-bottom:14px;display:flex}.splash-eq-bar{transform-origin:bottom;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:3px;width:6px;animation:1.2s ease-in-out infinite eqBounce}.splash-eq-bar:first-child{background:linear-gradient(#b794f4,#6b46c1);height:14px;animation-delay:.1s}.splash-eq-bar:nth-child(2){background:linear-gradient(#63b3ed,#3182ce);height:24px;animation-delay:.3s}.splash-eq-bar:nth-child(3){background:linear-gradient(#f6e05e,#d69e2e);height:18px;animation-delay:.5s}.splash-eq-bar:nth-child(4){background:linear-gradient(#68d391,#38a169);height:26px;animation-delay:.2s}.splash-eq-bar:nth-child(5){background:linear-gradient(#fc8181,#e53e3e);height:16px;animation-delay:.4s}@keyframes eqBounce{0%,to{transform:scaleY(.35)translateZ(0)}50%{transform:scaleY(1.15)translateZ(0)}}.splash-loading-text{color:#fff;opacity:.9;letter-spacing:1px;align-items:center;font-family:Arial,sans-serif;font-size:16px;display:flex}.splash-dot{opacity:0;will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:1.4s ease-in-out infinite dotPulse;display:inline-block}.splash-dot:first-child{animation-delay:.2s}.splash-dot:nth-child(2){animation-delay:.4s}.splash-dot:nth-child(3){animation-delay:.6s}@keyframes dotPulse{0%,to{opacity:.2;transform:translate(0,0)}50%{opacity:1;transform:translateY(-2px)}}.splash-start-btn{color:#fff;cursor:pointer;letter-spacing:1px;z-index:2;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(135deg,#44c,#22a);border:2px solid #66f;border-radius:12px;padding:16px 48px;font-family:Arial,sans-serif;font-size:18px;font-weight:700;transition:transform .15s,box-shadow .15s;animation:2s ease-in-out infinite startBtnPulse;transform:translateZ(0);box-shadow:0 4px 20px #6464ff80}.splash-start-btn:hover{background:linear-gradient(135deg,#55d,#33b);transform:scale(1.06)translateY(-2px);box-shadow:0 6px 28px #7878ffd9}.splash-start-btn:active{transform:scale(.98)translateZ(0)}@keyframes startBtnPulse{0%,to{transform:scale(1)translateZ(0)}50%{transform:scale(1.04)translateZ(0)}}.splash-small-screen-warning{color:#ffd54f;text-align:center;white-space:pre-line;z-index:2;text-shadow:-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000,0 1px 3px #000000e6;-webkit-text-stroke:.4px #000;letter-spacing:.2px;max-width:320px;margin:22px 16px 0;font-family:Fira Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:max(14px,min(4vw,17px));font-weight:700;line-height:1.4}@media (prefers-reduced-motion:reduce){.floating-note,.splash-sound-wave,.splash-music-icon,.splash-eq-bar,.splash-dot,.splash-start-btn{opacity:1!important;animation:none!important;transform:none!important}.floating-notes-container{display:none}}.sampler-overlay{z-index:99999;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#040918;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.sampler-iframe{background-color:#000;border:none;width:100%;height:100%;display:block}.sampler-close-btn{top:max(14px, env(safe-area-inset-top,14px));right:max(14px, env(safe-area-inset-right,14px));z-index:100005;color:#fff;letter-spacing:.5px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background-color:#040918d9;border:2px solid #00bfff;border-radius:24px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 18px;font-family:Arial,Fira Sans,sans-serif;font-size:15px;font-weight:700;transition:background-color .2s,border-color .2s,transform .15s,box-shadow .2s;display:inline-flex;position:absolute;box-shadow:0 4px 16px #0009,0 0 12px #00bfff66}.sampler-close-btn:hover{color:#040918;background-color:#00bfff;border-color:#66d9ff;transform:scale(1.05);box-shadow:0 6px 20px #00bfff99}.sampler-close-btn:active{transform:scale(.96)}.sampler-close-icon{font-size:18px;line-height:1}.sampler-loader{z-index:100001;pointer-events:none;opacity:1;background-color:#040918;flex-direction:column;justify-content:center;align-items:center;gap:20px;transition:opacity .3s ease-out;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.sampler-loader.fade-out{opacity:0}.sampler-spinner{border:4px solid #00bfff2e;border-top-color:#00bfff;border-radius:50%;width:58px;height:58px;animation:.8s linear infinite sampler-spinner-rotate;box-shadow:0 0 16px #00bfff4d}@keyframes sampler-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sampler-loading-text{color:#fff;letter-spacing:.6px;text-shadow:0 2px 8px #000000e6;align-items:center;gap:2px;font-family:Arial,Fira Sans,sans-serif;font-size:17px;font-weight:700;display:flex}.sampler-dot{opacity:0;animation:1.4s infinite sampler-dots}.sampler-dot:first-child{animation-delay:0s}.sampler-dot:nth-child(2){animation-delay:.2s}.sampler-dot:nth-child(3){animation-delay:.4s}@keyframes sampler-dots{0%,20%{opacity:0}40%{opacity:1}80%,to{opacity:0}}.sampler-error-container{text-align:center;z-index:100003;box-sizing:border-box;background-color:#081126;border:2px solid #00bfff;border-radius:20px;width:90%;max-width:440px;padding:32px 24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 32px #000c,0 0 20px #00bfff4d}.sampler-error-icon{margin-bottom:12px;font-size:40px}.sampler-error-title{color:#fff;margin:0 0 10px;font-family:Arial,Fira Sans,sans-serif;font-size:20px;font-weight:800}.sampler-error-text{color:#c0d8f0;margin:0 0 24px;font-family:Arial,sans-serif;font-size:15px;line-height:1.5}.sampler-error-actions{justify-content:center;gap:12px;display:flex}.sampler-btn{cursor:pointer;touch-action:manipulation;border:none;border-radius:12px;padding:10px 20px;font-family:Arial,Fira Sans,sans-serif;font-size:15px;font-weight:700;transition:transform .15s,background-color .2s}.sampler-btn:active{transform:scale(.96)}.sampler-btn-retry{color:#fff;background:linear-gradient(135deg,#00bfff 0%,#0077b6 100%);box-shadow:0 4px 12px #00bfff66}.sampler-btn-retry:hover{background:linear-gradient(135deg,#3cf 0%,#0099e6 100%);transform:scale(1.04)}.sampler-btn-close{color:#fff;background-color:#ffffff1f;border:1px solid #ffffff4d}.sampler-btn-close:hover{background-color:#ffffff38}
