*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;background:#0a0a1a;overflow:hidden;font-family:Segoe UI,-apple-system,sans-serif;color:#eee;user-select:none;-webkit-user-select:none}.menu-screen{position:relative;width:100%;height:100vh;display:flex;align-items:center;justify-content:center}.menu-screen #bg-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.menu-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:28px;padding:20px;max-width:400px;width:100%}.logo-area{text-align:center;position:relative}.logo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:80px;background:radial-gradient(ellipse,rgba(255,107,107,.15) 0%,transparent 70%);pointer-events:none}.logo{font-size:3rem;font-weight:800;letter-spacing:-1px;font-family:"Baloo 2",Quicksand,cursive,sans-serif;background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:logoShine 3s ease-in-out infinite}@keyframes logoShine{0%,to{filter:brightness(1)}50%{filter:brightness(1.2)}}.deco-text{position:absolute;top:50%;font-size:5rem;font-weight:800;font-family:"Baloo 2",Quicksand,cursive,sans-serif;background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.1;white-space:nowrap;pointer-events:none;letter-spacing:2px;text-transform:uppercase}.deco-text.left{left:-20px;transform:translateY(-50%) rotate(-20deg);transform-origin:center center}.deco-text.right{right:-20px;transform:translateY(-50%) rotate(20deg);transform-origin:center center}.logo-sub{color:#555;font-size:.85rem;margin-top:4px}.logo-keys{color:#444;font-size:.75rem;margin-top:8px;letter-spacing:2px;font-family:monospace}.category-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;gap:0;border-radius:10px;overflow:hidden;border:1.5px solid #222}.category-tab{padding:14px 0;font-size:.85rem;font-weight:700;background:#111118;border:none;color:#555;cursor:pointer;transition:all .2s;letter-spacing:1px}.category-tab:not(:last-child){border-right:1px solid #222}.category-tab:hover{background:#16162a;color:#aaa}.category-tab.active{background:#1a1a30;color:#fff;box-shadow:inset 0 -3px #ff6b6b}.song-list{display:flex;flex-direction:column;gap:10px;width:100%;max-height:380px;overflow-y:auto;padding-right:4px}.song-list::-webkit-scrollbar{width:4px}.song-list::-webkit-scrollbar-track{background:transparent}.song-list::-webkit-scrollbar-thumb{background:#333;border-radius:4px}.song-list::-webkit-scrollbar-thumb:hover{background:#555}.song-btn{position:relative;padding:16px 18px;background:#111118;border:1.5px solid #222;border-radius:10px;color:#eee;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;transition:all .2s;overflow:hidden;flex-shrink:0}.song-btn:hover{border-color:#444;background:#16162a}.song-btn.selected{border-color:#ff6b6b88;background:#1a1a30;box-shadow:0 0 20px #ff6b6b0d}.song-btn .song-accent{position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px;opacity:0;transition:opacity .2s}.song-btn.selected .song-accent{opacity:1}.song-info{display:flex;flex-direction:column;gap:2px}.song-title{font-size:1rem;font-weight:700}.song-meta{font-size:.75rem;color:#666}.song-diff{font-size:1.1rem}.song-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.song-diff-label{font-size:.65rem;color:#555;letter-spacing:1px;font-weight:600}.menu-buttons{display:flex;gap:12px;align-items:center}.btn-primary{padding:14px 40px;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#ff6b6b,#ff9ff3);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:transform .15s,box-shadow .2s;box-shadow:0 4px 20px #ff6b6b33;display:flex;align-items:center;gap:8px}.btn-primary:hover{transform:scale(1.03);box-shadow:0 6px 30px #ff6b6b4d}.btn-primary:active{transform:scale(.98)}.btn-icon{font-size:.9rem}.btn-secondary{padding:12px 24px;font-size:.9rem;font-weight:600;background:#1a1a2e;color:#aaa;border:1px solid #333;border-radius:10px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#222240;color:#eee;border-color:#555}.menu-hint{color:#333;font-size:.7rem}.settings-screen{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:#0a0a1a;padding:20px}.settings-card{background:#111120;border:1px solid #222;border-radius:16px;padding:32px;max-width:380px;width:100%;display:flex;flex-direction:column;gap:20px}.settings-title{font-size:1.3rem;font-weight:700}.settings-desc{font-size:.8rem;color:#666;line-height:1.5}.key-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.key-grid.six{grid-template-columns:1fr 1fr 1fr}.settings-mode-tabs{display:flex;gap:8px}.mode-tab{padding:8px 20px;font-size:.85rem;font-weight:700;font-family:monospace;background:#0a0a1a;border:1px solid #333;border-radius:8px;color:#666;cursor:pointer;transition:all .2s}.mode-tab.active{border-color:#ff6b6b;color:#ff6b6b;background:#1a1020}.key-item{display:flex;flex-direction:column;align-items:center;gap:8px}.key-lane{font-size:.75rem;font-weight:600}.key-btn{width:60px;height:60px;border-radius:12px;background:#1a1a2e;border:2px solid #333;color:#eee;font-size:1.3rem;font-weight:800;cursor:pointer;transition:all .2s;font-family:monospace}.key-btn:hover{background:#222240}.key-btn.listening{animation:pulse .8s infinite;border-color:#feca57!important;color:#feca57}@keyframes pulse{0%,to{box-shadow:0 0 #feca574d}50%{box-shadow:0 0 0 8px #feca5700}}.settings-presets{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preset-label{font-size:.75rem;color:#666}.preset-btn{padding:6px 14px;font-size:.8rem;font-family:monospace;background:#1a1a2e;border:1px solid #333;border-radius:6px;color:#aaa;cursor:pointer;transition:all .2s}.preset-btn:hover{border-color:#555;color:#eee}.settings-actions{margin-top:8px}.sync-section{display:flex;flex-direction:column;gap:6px}.sync-btns{display:flex;gap:6px}#pause-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100}.pause-card{display:flex;flex-direction:column;align-items:center;gap:24px}.pause-title{font-size:2rem;font-weight:900;letter-spacing:4px;color:#fff}.pause-btns{display:flex;gap:12px}.game-screen{position:relative;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:#0a0a1a;overflow:hidden}.game-screen .deco-text{position:absolute;top:50%;font-size:5rem;font-weight:800;font-family:"Baloo 2",Quicksand,cursive,sans-serif;background:linear-gradient(135deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.12;white-space:nowrap;pointer-events:none;letter-spacing:2px;text-transform:uppercase}.game-screen .deco-text.left{left:40px;transform:translateY(-50%) rotate(-20deg)}.game-screen .deco-text.right{right:40px;transform:translateY(-50%) rotate(20deg)}.game-area{position:relative;width:320px;height:88vh;max-height:700px;border-left:1px solid #1a1a3e;border-right:1px solid #1a1a3e;box-shadow:0 0 80px #6432c80d,inset 0 0 40px #0000004d;border-radius:4px;overflow:hidden}.game-area canvas{display:block;width:100%;height:100%}.hearts{position:absolute;top:16px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:20}.heart{font-size:1.4rem;transition:all .3s}.heart.lost{opacity:.2;filter:grayscale(1);transform:scale(.8)}.mobile-btns{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:320px;display:flex;height:56px;z-index:10}.mobile-lane{flex:1;background:#ffffff05;border:none;border-top:2px solid;font-size:1.1rem;font-weight:900;cursor:pointer;transition:background .1s}.mobile-lane:active{background:#ffffff14}.result-screen{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:#0a0a1a;padding:20px}.result-card{background:#111120;border:1px solid #222;border-radius:16px;padding:36px;max-width:340px;width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.result-song{font-size:.9rem;color:#666}.result-status{font-size:1.4rem;font-weight:900;letter-spacing:2px}.result-card:has(.result-status) .result-status{color:#0f8}.result-rank{font-size:5rem;font-weight:900;line-height:1}.result-score{font-size:1.8rem;font-weight:700}.result-judges{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;margin-top:8px}.judge-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px;background:#0a0a1a;border-radius:8px}.judge-count{font-size:1.3rem;font-weight:700}.judge-label{font-size:.65rem;color:#555;letter-spacing:1px}.result-stats{font-size:.8rem;color:#555;margin-top:4px}
