*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;color:#222;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif}button{color:inherit}.staff-container[data-v-63ba88cc]{width:100%;max-width:600px;height:160px;position:relative}.staff-line[data-v-63ba88cc]{background:#ccc;width:100%;height:1px;position:absolute;left:0}.notes-row[data-v-63ba88cc]{grid-template-columns:repeat(5,1fr);place-items:flex-start center;display:grid;position:absolute;inset:0}.note-wrap[data-v-63ba88cc]{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.note[data-v-63ba88cc]{cursor:default;border:none;border-radius:50%;flex-shrink:0;width:28px;height:28px;padding:0;transition:transform .15s,opacity .15s;display:block}.note--fixed[data-v-63ba88cc]{background:#222}.note--filled[data-v-63ba88cc]{cursor:pointer;background:#333;transition:background .15s}.note--filled[data-v-63ba88cc]:hover:not(:disabled){background:#555}.note--filled[data-v-63ba88cc]:disabled{cursor:default}.note--empty[data-v-63ba88cc]{cursor:default;background:0 0;border:2px dashed #bbb}@keyframes correct-bounce-63ba88cc{0%{translate:0}25%{translate:0 -16px}65%{translate:0 -16px}to{translate:0}}@keyframes incorrect-shake-63ba88cc{0%{translate:0}20%{translate:-5px}40%{translate:5px}60%{translate:-3px}80%{translate:3px}to{translate:0}}.note-wrap--correct .note[data-v-63ba88cc]{background:#27ae60}.note-wrap--partial .note[data-v-63ba88cc]{background:#f39c12}.note-wrap--incorrect .note[data-v-63ba88cc]{background:#c0392b}.note-wrap--animate-correct[data-v-63ba88cc]{animation:.5s forwards correct-bounce-63ba88cc}.note-wrap--animate-incorrect[data-v-63ba88cc]{animation:.3s forwards incorrect-shake-63ba88cc}.note-label[data-v-63ba88cc]{color:#333;text-align:center;white-space:nowrap;text-wrap:auto;max-width:80px;font-size:.75rem;font-weight:500}.note-label--empty[data-v-63ba88cc]{color:#bbb}.option-grid[data-v-72ed4cf8]{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;display:grid}.option[data-v-72ed4cf8]{cursor:pointer;text-align:center;background:#fff;border:2px solid #555;border-radius:6px;min-height:44px;padding:10px 8px;font-size:.85rem;transition:background .15s}.option[data-v-72ed4cf8]:hover:not(:disabled){background:#e8e8e8}.option[data-v-72ed4cf8]:disabled{opacity:.35;cursor:not-allowed}.option-placeholder[data-v-72ed4cf8]{background:0 0;border-radius:6px;min-height:44px}.game-board[data-v-ac6e52d8]{flex-direction:column;align-items:center;gap:35px;width:100%;max-width:680px;padding:10px;display:flex}.btn-row[data-v-ac6e52d8]{align-items:center;gap:12px;display:flex}.ctrl-btn[data-v-ac6e52d8]{cursor:pointer;background:#fff;border:2px solid #555;border-radius:1.5em;padding:10px 20px;font-size:.9rem;font-weight:500;transition:background .15s}.ctrl-btn[data-v-ac6e52d8]:hover:not(:disabled){background:#e8e8e8}.ctrl-btn[data-v-ac6e52d8]:disabled{opacity:.4;cursor:not-allowed}.submit-btn[data-v-ac6e52d8]{color:#fff;cursor:pointer;background:#333;border:none;border-radius:1.5em;padding:10px 32px;font-size:1rem;font-weight:600;transition:background .15s}.submit-btn[data-v-ac6e52d8]:hover:not(:disabled){background:#555}.submit-btn[data-v-ac6e52d8]:disabled{opacity:.4;cursor:not-allowed}.audio-player[data-v-d4d3745c]{box-sizing:border-box;background:#fafafa;border:1px solid #ddd;border-radius:8px;align-items:center;gap:10px;width:100%;padding:6px 10px;display:flex}.audio-player.loading[data-v-d4d3745c]{opacity:.6;pointer-events:none}.play-btn[data-v-d4d3745c]{color:#fff;cursor:pointer;background:#333;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:background .15s;display:flex}.play-btn[data-v-d4d3745c]:hover:not(:disabled){background:#555}.play-btn[data-v-d4d3745c]:disabled{cursor:not-allowed;background:#bbb}.play-btn svg[data-v-d4d3745c]{width:16px;height:16px}.progress-track[data-v-d4d3745c]{cursor:pointer;background:#e0e0e0;border-radius:2px;flex:1;min-width:0;height:4px;position:relative}.progress-fill[data-v-d4d3745c]{pointer-events:none;background:#333;border-radius:2px;height:100%;transition:width .1s linear}.time[data-v-d4d3745c]{color:#666;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;font-size:.75rem}.volume-slider[data-v-d4d3745c]{accent-color:#333;cursor:pointer;flex-shrink:0;width:72px}@media (width<=500px){.volume-slider[data-v-d4d3745c]{display:none}}.hint-dots[data-v-7c75afd7]{flex-direction:column;align-items:center;gap:10px;width:min(680px,100vw - 32px);display:flex}.dots-row[data-v-7c75afd7]{align-items:center;gap:12px;display:flex}.dots-label[data-v-7c75afd7]{color:#333;margin-right:4px;font-size:.9rem}.dot[data-v-7c75afd7]{border:2px solid #333;border-radius:50%;flex-shrink:0;width:22px;height:22px;transition:transform .1s,border-color .15s;position:relative}.dot.filled[data-v-7c75afd7]{background:#333}.dot.empty[data-v-7c75afd7]{background:0 0;border-color:#ccc}.dot.hint-dot[data-v-7c75afd7]:after{content:"▶";pointer-events:none;font-size:8px;line-height:1;position:absolute;top:50%;left:52%;transform:translate(-50%,-50%)}.dot.hint-dot.filled[data-v-7c75afd7]:after{color:#fff}.dot.hint-dot.empty[data-v-7c75afd7]:after{color:#ccc}.dot.hint-dot.filled[data-v-7c75afd7]:not(.is-unlocked){cursor:pointer;border-style:dashed}.dot.hint-dot.filled[data-v-7c75afd7]:not(.is-unlocked):hover{transform:scale(1.15)}.dot.hint-dot.is-unlocked[data-v-7c75afd7]{cursor:pointer;border-style:solid}.dot.hint-dot.is-unlocked[data-v-7c75afd7]:hover{transform:scale(1.15)}.dot.is-active[data-v-7c75afd7]{outline-offset:2px;outline:2px solid #888}.hint-panel[data-v-7c75afd7]{z-index:50;background:#fff;border:1px solid #ddd;border-bottom:none;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px 32px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #00000014}.panel-label[data-v-7c75afd7]{color:#888;white-space:nowrap;flex-shrink:0;font-size:.8rem;font-weight:600}.hint-audio[data-v-7c75afd7]{flex:1;min-width:0}.confirm-text[data-v-7c75afd7]{color:#555;flex:1;font-size:.85rem}.confirm-btns[data-v-7c75afd7]{flex-shrink:0;gap:8px;display:flex}.confirm-btn[data-v-7c75afd7]{color:#a33;cursor:pointer;background:#fff;border:2px solid #a33;border-radius:6px;padding:4px 12px;font-size:.85rem;font-weight:600;transition:background .15s,color .15s}.confirm-btn[data-v-7c75afd7]:hover{color:#fff;background:#a33}.cancel-btn[data-v-7c75afd7]{cursor:pointer;background:#fff;border:2px solid #888;border-radius:6px;padding:4px 12px;font-size:.85rem;font-weight:500;transition:background .15s}.cancel-btn[data-v-7c75afd7]:hover{background:#f0f0f0}.hints-reveal[data-v-7c75afd7]{gap:8px;width:100%;display:grid}.reveal-item[data-v-7c75afd7]{background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.reveal-meta[data-v-7c75afd7]{flex-direction:column;flex:1;gap:2px;min-width:140px;font-size:.85rem;display:flex;overflow:hidden}.reveal-meta span[data-v-7c75afd7]:not(.panel-label),.reveal-meta strong[data-v-7c75afd7]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.no-preview[data-v-7c75afd7]{color:#999;font-size:.8rem;font-style:italic}.overlay[data-v-103b8aa4]{z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog[data-v-103b8aa4]{background:#fff;border-radius:10px;width:100%;max-width:600px;max-height:90vh;padding:32px;position:relative;overflow-y:auto;box-shadow:0 8px 32px #00000040}.close-btn[data-v-103b8aa4]{cursor:pointer;color:#555;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.2rem;line-height:1;position:absolute;top:16px;right:16px}.close-btn[data-v-103b8aa4]:hover{background:#eee}h2[data-v-103b8aa4]{margin:0 0 16px;font-size:1.5rem}h3[data-v-103b8aa4]{margin:20px 0 8px;font-size:1.1rem}p[data-v-103b8aa4]{color:#333;margin:0 0 12px;line-height:1.6}ul[data-v-103b8aa4]{margin:0 0 12px;padding-left:20px}li[data-v-103b8aa4]{color:#333;margin-bottom:8px;line-height:1.6}.chain-example[data-v-103b8aa4]{background:#f5f5f5;border-radius:6px;padding:12px 16px;font-family:monospace;font-size:.95rem}.winner-panel[data-v-ef9984e3]{flex-direction:column;align-items:center;gap:20px;width:min(680px,100vw - 32px);display:flex}.hints-reveal[data-v-ef9984e3]{gap:8px;width:100%;display:grid}.reveal-heading[data-v-ef9984e3]{color:#888;text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:.85rem;font-weight:600}.reveal-item[data-v-ef9984e3]{background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.reveal-meta[data-v-ef9984e3]{flex-direction:column;flex:1;gap:2px;min-width:140px;font-size:.85rem;display:flex;overflow:hidden}.hint-label[data-v-ef9984e3]{color:#888;font-size:.8rem;font-weight:600}.track-artists[data-v-ef9984e3],.track-name[data-v-ef9984e3]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hint-audio[data-v-ef9984e3]{flex:1;min-width:0}.no-preview[data-v-ef9984e3]{color:#999;font-size:.8rem;font-style:italic}.game-view[data-v-6c7426de]{flex-direction:column;justify-content:center;align-items:center;gap:16px;margin-bottom:140px;display:flex}.game-header[data-v-6c7426de]{background:#fff;border-bottom:1px solid #e8e8e8;justify-content:space-between;align-items:center;width:100%;height:52px;padding:0 20px;display:flex}.game-title[data-v-6c7426de]{color:#222;letter-spacing:-.01em;margin:0;font-size:1.1rem;font-weight:700}.how-to-btn[data-v-6c7426de]{cursor:pointer;background:#fff;border:2px solid #555;border-radius:6px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:background .15s}.how-to-btn[data-v-6c7426de]:hover{background:#e8e8e8}.win-heading[data-v-6c7426de]{flex-direction:column;align-items:center;gap:8px;display:flex}.win-dots[data-v-6c7426de]{gap:12px;display:flex}.win-dot[data-v-6c7426de]{border:2px solid #333;border-radius:50%;width:22px;height:22px}.win-dot.filled[data-v-6c7426de]{background:#333}.win-dot.empty[data-v-6c7426de]{background:0 0;border-color:#ccc}.win-label[data-v-6c7426de]{color:#222;margin:0;font-size:1.4rem;font-weight:700}.win-sub[data-v-6c7426de]{color:#666;margin:0;font-size:.9rem}.loss-heading[data-v-6c7426de]{flex-direction:column;align-items:center;gap:6px;display:flex}.loss-label[data-v-6c7426de]{color:#222;margin:0;font-size:1.4rem;font-weight:700}.loss-sub[data-v-6c7426de]{color:#666;margin:0;font-size:.9rem}.loading-state[data-v-6c7426de]{color:#888;padding:40px 0;font-size:.9rem}.already-played-notice[data-v-6c7426de]{color:#888;text-align:center;margin:0;font-size:.85rem}
