@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--bg-primary:#f8f9fa;--bg-secondary:#fff;--bg-tertiary:#e9ecef;--text-primary:#212529;--text-secondary:#495057;--text-muted:#6c757d;--accent-primary:#4dabf7;--accent-secondary:#339af0;--accent-dark:#228be6;--beat-normal:#adb5bd;--beat-left:#4dabf7;--beat-right:#ff8787;--beat-accent:#9b59b6;--beat-flam:#f08c00;--beat-active:#40c057;--border-color:#dee2e6;--shadow:0 2px 8px #0000001a;--shadow-lg:0 4px 16px #00000026}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#0f3460;--text-primary:#eaeaea;--text-secondary:#a0a0a0;--text-muted:#6c757d;--accent-primary:#4dabf7;--accent-secondary:#74c0fc;--accent-dark:#339af0;--beat-normal:#495057;--beat-left:#4dabf7;--beat-right:#ff8787;--beat-accent:#b084c9;--beat-flam:#ffd43b;--beat-active:#69db7c;--border-color:#343a40;--shadow:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #0006}}:root[data-theme=dark]{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#0f3460;--text-primary:#eaeaea;--text-secondary:#a0a0a0;--text-muted:#6c757d;--accent-primary:#4dabf7;--accent-secondary:#74c0fc;--accent-dark:#339af0;--beat-normal:#495057;--beat-left:#4dabf7;--beat-right:#ff8787;--beat-accent:#b084c9;--beat-flam:#ffd43b;--beat-active:#69db7c;--border-color:#343a40;--shadow:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #0006}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Space Grotesk,sans-serif;transition:background-color .3s,color .3s}#app{min-height:100vh}.gap-training[data-v-bbeb1ec2]{background:var(--bg-tertiary);border:2px solid #0000;border-radius:8px;flex-direction:column;gap:.75rem;padding:1rem;transition:border-color .2s;display:flex}.gap-header[data-v-bbeb1ec2]{justify-content:space-between;align-items:center;display:flex}.gap-label[data-v-bbeb1ec2]{color:var(--text-primary);font-size:1rem;font-weight:600}.toggle-switch[data-v-bbeb1ec2]{cursor:pointer;width:50px;height:26px;display:inline-block;position:relative}.toggle-switch input[data-v-bbeb1ec2]{opacity:0;width:0;height:0}.toggle-switch input:checked+.toggle-slider[data-v-bbeb1ec2]{background:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider[data-v-bbeb1ec2]:before{transform:translate(24px)}.toggle-slider[data-v-bbeb1ec2]{cursor:pointer;background:var(--beat-normal);border-radius:26px;transition:all .2s;position:absolute;inset:0}.toggle-slider[data-v-bbeb1ec2]:before{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:all .2s;position:absolute;bottom:3px;left:3px}.gap-controls[data-v-bbeb1ec2]{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.gap-input-group[data-v-bbeb1ec2]{flex-direction:column;flex:1;gap:.25rem;min-width:120px;display:flex}.gap-input-label[data-v-bbeb1ec2]{color:var(--text-secondary);font-size:.75rem}.gap-input[data-v-bbeb1ec2]{text-align:center;background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-primary);border-radius:8px;width:100%;padding:.5rem;font-size:1.2rem}.gap-input[data-v-bbeb1ec2]:focus{border-color:var(--accent-primary);outline:none}.gap-divider[data-v-bbeb1ec2]{color:var(--text-muted);padding-bottom:.5rem;font-size:1.2rem}.gap-description[data-v-bbeb1ec2]{color:var(--text-secondary);margin:0;font-size:.875rem;font-style:italic}.pattern-input[data-v-fd5ad084]{flex-direction:column;gap:.5rem;display:flex}.pattern-label[data-v-fd5ad084]{color:var(--text-primary);font-weight:600}.pattern-input-wrapper[data-v-fd5ad084]{justify-content:center;align-items:center;display:flex;position:relative}.pattern-field[data-v-fd5ad084]{background:var(--bg-secondary);border:2px solid var(--border-color);width:100%;color:var(--text-primary);text-transform:uppercase;letter-spacing:.1em;border-radius:8px;padding:.75rem 2.5rem .75rem 1rem;font-family:monospace;font-size:1.25rem}.pattern-field[data-v-fd5ad084]:focus{border-color:var(--accent-primary);outline:none}.pattern-field.has-error[data-v-fd5ad084]{border-color:var(--beat-accent)}.clear-button[data-v-fd5ad084]{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 .5rem;font-size:1.5rem;transition:color .2s;position:absolute;right:.5rem}.clear-button[data-v-fd5ad084]:hover{color:var(--beat-accent)}.error-message[data-v-fd5ad084]{color:var(--beat-accent);padding:.25rem 0;font-size:.875rem}.pattern-help[data-v-fd5ad084]{color:var(--text-primary);background:var(--bg-tertiary);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem;font-size:1.2rem;font-weight:600;display:flex}.help-key[data-v-fd5ad084]{color:#fff;border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;font-size:1rem;display:inline-grid}.help-key.left[data-v-fd5ad084]{border:2px solid var(--beat-left)}.help-key.right[data-v-fd5ad084]{border:2px solid var(--beat-right)}.help-key.accent[data-v-fd5ad084]{border:2px solid var(--beat-accent)}.help-key.flam[data-v-fd5ad084]{border:2px solid var(--beat-flam)}.pattern-preview[data-v-fd5ad084]{background:var(--bg-tertiary);border-radius:8px;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;padding:.75rem;display:flex}.beat-char[data-v-fd5ad084]{background:var(--beat-normal);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;font-weight:700;transition:transform .2s;display:flex}.beat-char.is-left[data-v-fd5ad084]{background:var(--beat-left)}.beat-char.is-right[data-v-fd5ad084]{background:var(--beat-right)}.beat-char.is-accent[data-v-fd5ad084]{background:var(--beat-accent);box-shadow:0 0 8px var(--beat-accent);transform:scale(1.1)}.polyrhythm[data-v-82ee774e]{background:var(--bg-tertiary);border:2px solid #0000;border-radius:8px;flex-direction:column;gap:.75rem;padding:1rem;transition:border-color .2s;display:flex}.poly-header[data-v-82ee774e]{justify-content:space-between;align-items:center;display:flex}.poly-label[data-v-82ee774e]{color:var(--text-primary);font-size:1rem;font-weight:600}.toggle-switch[data-v-82ee774e]{cursor:pointer;width:50px;height:26px;display:inline-block;position:relative}.toggle-switch input[data-v-82ee774e]{opacity:0;width:0;height:0}.toggle-switch input:checked+.toggle-slider[data-v-82ee774e]{background:var(--accent-primary)}.toggle-switch input:checked+.toggle-slider[data-v-82ee774e]:before{transform:translate(24px)}.toggle-slider[data-v-82ee774e]{cursor:pointer;background:var(--beat-normal);border-radius:26px;transition:all .2s;position:absolute;inset:0}.toggle-slider[data-v-82ee774e]:before{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:all .2s;position:absolute;bottom:3px;left:3px}.poly-controls[data-v-82ee774e]{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=640px){.poly-controls[data-v-82ee774e]{grid-template-columns:1fr}}.poly-input-group[data-v-82ee774e]{flex-direction:column;gap:.25rem;display:flex}.poly-input-label[data-v-82ee774e]{color:var(--text-primary);font-size:.875rem;font-weight:600}.poly-input[data-v-82ee774e]{background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-primary);text-transform:uppercase;letter-spacing:.1em;border-radius:8px;padding:.75rem;font-family:monospace;font-size:1rem}.poly-input[data-v-82ee774e]:focus{border-color:var(--accent-primary);outline:none}.poly-hint[data-v-82ee774e]{color:var(--text-muted);font-size:.75rem}.poly-description[data-v-82ee774e]{color:var(--text-secondary);margin:0;font-size:.875rem;font-style:italic}.poly-description strong[data-v-82ee774e]{color:var(--text-primary)}.preset-selector[data-v-5d7aa23b]{flex-direction:column;gap:.5rem;display:flex}.preset-label[data-v-5d7aa23b]{color:var(--text-primary);font-weight:600}.preset-grid[data-v-5d7aa23b]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;display:grid}.preset-button[data-v-5d7aa23b]{background:var(--bg-secondary);border:2px solid var(--border-color);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;padding:.75rem;transition:all .2s;display:flex}.preset-button[data-v-5d7aa23b]:hover{border-color:var(--accent-primary);background:var(--bg-tertiary);transform:translateY(-2px)}.preset-name[data-v-5d7aa23b]{color:var(--text-primary);font-size:.9rem;font-weight:600}.preset-desc[data-v-5d7aa23b]{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.sticking-settings[data-v-17f5e48d]{background:var(--bg-tertiary);border-radius:8px;flex-wrap:wrap;align-items:end;gap:.75rem;padding:.75rem;display:flex}.sticking-settings label[data-v-17f5e48d]{color:var(--text-secondary);gap:.25rem;font-size:.875rem;font-weight:600;display:grid}.sticking-settings select[data-v-17f5e48d]{min-width:8rem;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:.5rem}.sticking-settings select[data-v-17f5e48d]:focus{border-color:var(--accent-primary);outline:none}.sticking-settings .color-preview[data-v-17f5e48d]{gap:.5rem;padding-bottom:.25rem;display:flex}.sticking-settings .color-preview span[data-v-17f5e48d]{border:2px solid var(--bg-secondary);width:1.5rem;height:1.5rem;box-shadow:0 0 0 1px var(--border-color);border-radius:50%}.sticking-settings .color-preview .left[data-v-17f5e48d]{background:var(--beat-left)}.sticking-settings .color-preview .right[data-v-17f5e48d]{background:var(--beat-right)}.sticking-settings .color-preview .accent[data-v-17f5e48d]{background:var(--beat-accent)}.sticking-settings .color-preview .flam[data-v-17f5e48d]{background:var(--beat-flam)}.sticking-settings .color-preview .active[data-v-17f5e48d]{background:var(--beat-active)}.tempo-control[data-v-7245cca1]{background:var(--bg-secondary);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.tempo-top-row[data-v-7245cca1]{justify-content:space-between;align-items:center;gap:1rem;display:flex}.tempo-display[data-v-7245cca1]{--tempo-control-size:clamp(2.75rem, 14vw, 4rem);justify-content:center;align-items:center;gap:.5rem;display:flex}.tempo-step-buttons[data-v-7245cca1]{gap:.25rem;display:flex}.tempo-step-buttons button[data-v-7245cca1]{width:var(--tempo-control-size);height:var(--tempo-control-size);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;border-radius:4px;padding:0;font-size:1.2rem;font-weight:700;transition:background .2s,transform .1s}.tempo-step-buttons button[data-v-7245cca1]:hover{background:var(--accent-primary);color:#fff}.tempo-step-buttons button[data-v-7245cca1]:active{transform:scale(.95)}.tempo-input[data-v-7245cca1]{width:calc(var(--tempo-control-size) * 2);height:var(--tempo-control-size);text-align:center;border:2px solid var(--border-color);color:var(--text-primary);background:0 0;border-radius:8px;padding:.25rem;font-size:clamp(2rem,7vw,3rem);font-weight:700}.tempo-input[data-v-7245cca1]:focus{border-color:var(--accent-primary);outline:none}.slider-container[data-v-7245cca1]{padding-bottom:1.2rem;position:relative}.tempo-slider[data-v-7245cca1]{appearance:none;background:var(--bg-tertiary);z-index:2;border-radius:4px;outline:none;width:100%;height:8px;position:relative}.tempo-slider[data-v-7245cca1]::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);cursor:pointer;z-index:3;border-radius:50%;width:24px;height:24px;transition:transform .1s,background .2s;position:relative}.tempo-slider[data-v-7245cca1]::-webkit-slider-thumb:hover{background:var(--accent-secondary);transform:scale(1.1)}.tempo-slider[data-v-7245cca1]::-moz-range-thumb{background:var(--accent-primary);cursor:pointer;z-index:3;border:none;border-radius:50%;width:24px;height:24px}.tempo-marks[data-v-7245cca1]{pointer-events:none;height:40px;position:absolute;top:12px;left:12px;right:12px}.tempo-mark[data-v-7245cca1]{cursor:pointer;pointer-events:auto;background:0 0;border:none;flex-direction:column;align-items:center;gap:.25rem;padding:0;transition:all .2s;display:flex;position:absolute;transform:translate(-50%)}.tempo-mark[data-v-7245cca1]:hover{transform:translate(-50%)translateY(-2px)}.tempo-mark.is-active .mark-tick[data-v-7245cca1]{background:var(--accent-primary);height:16px}.tempo-mark.is-active .mark-label[data-v-7245cca1]{color:var(--accent-primary);font-weight:600}.tempo-mark:hover .mark-tick[data-v-7245cca1]{background:var(--accent-secondary);height:14px}.tempo-mark:hover .mark-label[data-v-7245cca1]{color:var(--accent-secondary)}.mark-tick[data-v-7245cca1]{background:var(--text-muted);width:2px;height:10px;transition:all .2s}.mark-label[data-v-7245cca1]{color:var(--text-muted);white-space:nowrap;font-size:.65rem;transition:all .2s}.tempo-range[data-v-7245cca1]{color:var(--text-muted);justify-content:space-between;margin-top:-1rem;padding-bottom:.6rem;font-size:1.25rem;font-weight:600;display:flex}.rhythm-settings[data-v-7245cca1]{width:100%}.clicks-control[data-v-7245cca1]{gap:.5rem;display:grid}.clicks-header[data-v-7245cca1],.clicks-range[data-v-7245cca1]{justify-content:space-between;display:flex}.clicks-header[data-v-7245cca1]{color:var(--text-secondary);align-items:center;font-size:.875rem;font-weight:600}.clicks-header output[data-v-7245cca1]{color:#fff;background:var(--accent-primary);border-radius:4px;padding:.25rem .5rem;font-size:.875rem}.subdivision-slider-container[data-v-7245cca1]{padding-bottom:2.5rem;position:relative}.subdivision-slider[data-v-7245cca1]{appearance:none;background:var(--bg-tertiary);cursor:pointer;border-radius:4px;width:100%;height:8px}.subdivision-slider[data-v-7245cca1]::-webkit-slider-thumb{appearance:none;background:var(--accent-primary);cursor:pointer;z-index:3;border-radius:50%;width:24px;height:24px;transition:transform .1s,background .2s;position:relative}.subdivision-slider[data-v-7245cca1]::-webkit-slider-thumb:hover{background:var(--accent-secondary);transform:scale(1.1)}.subdivision-slider[data-v-7245cca1]::-moz-range-thumb{background:var(--accent-primary);cursor:pointer;border:0;border-radius:50%;width:24px;height:24px}.subdivision-marks[data-v-7245cca1]{pointer-events:none;height:40px;position:absolute;top:12px;left:12px;right:12px}.subdivision-mark[data-v-7245cca1]{color:var(--text-muted);cursor:pointer;pointer-events:auto;background:0 0;border:0;flex-direction:column;align-items:center;gap:.25rem;padding:0;display:flex;position:absolute;transform:translate(-50%)}.subdivision-mark:hover .subdivision-tick[data-v-7245cca1],.subdivision-mark.is-active .subdivision-tick[data-v-7245cca1]{background:var(--accent-primary);height:16px}.subdivision-mark:hover .subdivision-label[data-v-7245cca1],.subdivision-mark.is-active .subdivision-label[data-v-7245cca1]{color:var(--accent-primary);font-weight:600}.subdivision-tick[data-v-7245cca1]{background:var(--text-muted);width:2px;height:10px;transition:height .2s,background .2s}.subdivision-label[data-v-7245cca1]{color:var(--text-muted);white-space:nowrap;font-size:.65rem;transition:color .2s}.tap-button[data-v-7245cca1]{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:1rem 2rem;font-size:1rem;font-weight:600;transition:all .2s;position:relative}.tap-button[data-v-7245cca1]:hover{background:var(--accent-secondary);transform:translateY(-2px)}.tap-button[data-v-7245cca1]:active{transform:translateY(0)}.tap-message[data-v-7245cca1]{background:var(--bg-tertiary);color:var(--text-primary);white-space:nowrap;border-radius:4px;padding:.25rem .75rem;font-size:.875rem;position:absolute;top:-30px;left:50%;transform:translate(-50%)}@media (width<=640px){.tempo-control[data-v-7245cca1]{padding:1rem}.tempo-top-row[data-v-7245cca1]{flex-direction:column;align-items:stretch;gap:.75rem}.tempo-display[data-v-7245cca1]{--tempo-control-size:clamp(2.25rem, 12vw, 2.75rem);justify-content:space-between;gap:.25rem;width:100%}.tempo-step-buttons[data-v-7245cca1]{gap:2px}.tempo-input[data-v-7245cca1]{min-width:0;width:calc(var(--tempo-control-size) * 2);font-size:clamp(1.75rem,10vw,2.5rem)}.tap-button[data-v-7245cca1]{width:100%;padding:.75rem}.slider-container[data-v-7245cca1]{padding-bottom:0}.tempo-marks[data-v-7245cca1],.subdivision-marks[data-v-7245cca1]{display:none}.subdivision-slider-container[data-v-7245cca1]{padding-bottom:0}.tempo-range[data-v-7245cca1]{margin-top:0;font-size:1rem}.tap-message[data-v-7245cca1]{top:auto;bottom:calc(100% + .5rem)}}.theme-toggle[data-v-90c8f9b3]{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:3px;display:flex}.theme-toggle button[data-v-90c8f9b3]{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.theme-toggle button[data-v-90c8f9b3]:hover{color:var(--text-primary)}.theme-toggle button.is-active[data-v-90c8f9b3]{color:#fff;background:var(--accent-primary)}.visualizer[data-v-a67d6b6f]{background:var(--bg-secondary);box-shadow:var(--shadow);border-radius:12px;padding:2rem;transition:background-color .2s;position:relative}.visualizer.is-in-gap[data-v-a67d6b6f]{background:rgba(var(--bg-secondary), .5)}.beats-per-row-control[data-v-a67d6b6f],.beat-size-control[data-v-a67d6b6f]{gap:.25rem;display:grid;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.beats-per-row-control>span[data-v-a67d6b6f],.beat-size-control>span[data-v-a67d6b6f]{color:var(--text-muted);text-align:center;text-transform:uppercase;writing-mode:vertical-rl;justify-self:center;font-size:.65rem;font-weight:700}.beats-per-row-control>div[data-v-a67d6b6f],.beat-size-control>div[data-v-a67d6b6f]{border:1px solid var(--border-color);border-radius:4px;display:grid;overflow:hidden}.beats-per-row-control button[data-v-a67d6b6f],.beat-size-control button[data-v-a67d6b6f]{width:2rem;height:2rem;color:var(--text-secondary);background:var(--bg-tertiary);border:0;border-bottom:1px solid var(--border-color);cursor:pointer;font-weight:700}.beats-per-row-control button[data-v-a67d6b6f]:last-child,.beat-size-control button[data-v-a67d6b6f]:last-child{border-bottom:0}.beats-per-row-control button[data-v-a67d6b6f]:hover,.beats-per-row-control button.is-active[data-v-a67d6b6f],.beat-size-control button[data-v-a67d6b6f]:hover,.beat-size-control button.is-active[data-v-a67d6b6f]{color:#fff;background:var(--accent-primary)}.beat-size-control[data-v-a67d6b6f]{border:1px solid var(--border-color);border-radius:4px;grid-template-columns:repeat(2,1fr);display:none;inset:auto auto .75rem .75rem;overflow:hidden;transform:none}.beat-size-control button[data-v-a67d6b6f]{width:2rem;height:2rem;color:var(--text-secondary);background:var(--bg-tertiary);border:0;border-right:1px solid var(--border-color);cursor:pointer;font-size:1.2rem;font-weight:700}.beat-size-control button[data-v-a67d6b6f]:last-child{border-right:0}.beat-size-control button[data-v-a67d6b6f]:hover:not(:disabled){color:#fff;background:var(--accent-primary)}.beat-size-control button[data-v-a67d6b6f]:disabled{cursor:not-allowed;opacity:.45}.gap-indicator[data-v-a67d6b6f]{border-bottom:1px solid var(--border-color);margin-bottom:1rem;padding-bottom:1rem}.gap-status[data-v-a67d6b6f]{text-align:center;color:var(--beat-active);background:rgba(var(--beat-active), .1);border-radius:8px;margin-bottom:.5rem;padding:.5rem;font-size:1rem;font-weight:700}.gap-status.in-gap[data-v-a67d6b6f]{color:var(--text-muted);background:rgba(var(--text-muted), .1)}.gap-progress-bar[data-v-a67d6b6f]{justify-content:center;gap:4px;height:8px;display:flex}.gap-progress-segment[data-v-a67d6b6f]{background:var(--bg-tertiary);border-radius:4px;flex:1;max-width:40px;height:100%;transition:background-color .2s}.gap-progress-segment.is-past[data-v-a67d6b6f]{background:var(--beat-active)}.gap-progress-segment.is-current[data-v-a67d6b6f]{background:var(--accent-primary);box-shadow:0 0 8px var(--accent-primary)}.gap-progress-segment.is-gap[data-v-a67d6b6f]{background:rgba(var(--text-muted), .3)}.gap-progress-segment.is-gap.is-past[data-v-a67d6b6f]{background:var(--text-muted)}.gap-progress-segment.is-gap.is-current[data-v-a67d6b6f]{background:var(--beat-accent)}.visualizer-container[data-v-a67d6b6f]{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;min-height:120px;padding:.5rem;display:flex}.visualizer-container.is-multiline[data-v-a67d6b6f]{grid-template-columns:repeat(var(--beats-per-row), var(--beat-size,64px));justify-content:center;display:grid}.beat-indicator[data-v-a67d6b6f]{width:var(--beat-size,64px);height:var(--beat-size,64px);font-size:var(--beat-font-size,1.5rem);background:var(--beat-normal);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;transition:transform .16s ease-out,opacity .16s ease-out;display:flex;position:relative}.beat-indicator[data-v-a67d6b6f]:before{content:"";opacity:0;pointer-events:none;border:3px solid;border-color:var(--beat-active);box-shadow:0 0 25px var(--beat-active);border-radius:50%;transition:opacity .16s ease-out;position:absolute;inset:-4px}.beat-indicator.small[data-v-a67d6b6f]{width:48px;height:48px;font-size:1.2rem}.beat-indicator.left[data-v-a67d6b6f]{background:var(--beat-left)}.beat-indicator.right[data-v-a67d6b6f]{background:var(--beat-right)}.beat-indicator.accent[data-v-a67d6b6f]{background:var(--beat-accent);box-shadow:0 0 15px var(--beat-accent);transform:scale(1.1)}.beat-indicator.flam[data-v-a67d6b6f]{background:var(--beat-flam);box-shadow:0 0 12px var(--beat-flam)}.beat-indicator.is-active[data-v-a67d6b6f]{transform:scale(1.2)}.beat-indicator.is-active[data-v-a67d6b6f]:before{opacity:1}.beat-indicator.is-active.accent[data-v-a67d6b6f]{transform:scale(1.3)}.beat-indicator.is-next[data-v-a67d6b6f]:not(.is-active){transform:scale(1.1)}.beat-indicator.is-playing[data-v-a67d6b6f]{opacity:.6}.beat-indicator.is-active[data-v-a67d6b6f]{opacity:1}.beat-indicator.is-muted[data-v-a67d6b6f]{opacity:.3;filter:grayscale()}.empty-pattern[data-v-a67d6b6f]{color:var(--text-muted);text-align:center;font-style:italic}.polyrhythm-visualizer[data-v-a67d6b6f]{flex-direction:column;gap:1rem;display:flex}.hand-pattern[data-v-a67d6b6f]{flex-direction:column;gap:.5rem;display:flex}.hand-label[data-v-a67d6b6f]{color:var(--text-primary);font-size:.875rem;font-weight:600}.hand-beats[data-v-a67d6b6f]{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}@media (width<=640px){.visualizer[data-v-a67d6b6f]{padding:1rem}.visualizer-container[data-v-a67d6b6f]{gap:.5rem;min-height:80px}.beats-per-row-control[data-v-a67d6b6f]{right:.25rem}.beats-per-row-control button[data-v-a67d6b6f]{width:1.75rem;height:1.75rem}.beat-indicator.small[data-v-a67d6b6f]{width:40px;height:40px;font-size:1rem}}@media (width>=768px){.beat-size-control[data-v-a67d6b6f]{display:grid}}@media (width>=1201px){.visualizer-container[data-v-a67d6b6f],.hand-beats[data-v-a67d6b6f]{gap:1.1rem}}.metronome[data-v-f888a661]{max-width:800px;min-height:100vh;margin:0 auto;padding:1.5rem}.metronome-header[data-v-f888a661]{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.metronome-main[data-v-f888a661]{flex-direction:column;gap:1.5rem;display:flex}.title[data-v-f888a661]{color:var(--text-primary);margin-bottom:.5rem;font-size:2rem;font-weight:700}.header-controls[data-v-f888a661]{align-items:center;gap:.5rem;display:flex}.subtitle[data-v-f888a661]{color:var(--text-secondary);font-size:1rem}.control-section[data-v-f888a661],.visualizer-section[data-v-f888a661],.pattern-section[data-v-f888a661],.presets-section[data-v-f888a661],.features-section[data-v-f888a661]{width:100%}.visualizer-section[data-v-f888a661]{position:relative}.keyboard-shortcuts[data-v-f888a661]{display:none}.settings-section[data-v-f888a661]{flex-direction:column;gap:1rem;display:flex}.settings-toggle[data-v-f888a661]{cursor:pointer;width:100%;color:var(--text-primary);background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;display:flex}.settings-toggle h2[data-v-f888a661]{font-size:1.25rem}.settings-toggle svg[data-v-f888a661]{transition:transform .2s}.settings-toggle .is-open[data-v-f888a661]{transform:rotate(180deg)}.settings-content[data-v-f888a661]{flex-direction:column;gap:1rem;display:flex}.play-button[data-v-f888a661]{background:var(--beat-active);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;padding:0;transition:all .2s;display:flex}.play-button[data-v-f888a661]:hover:not(.is-disabled){box-shadow:var(--shadow-lg);transform:scale(1.1)}.play-button[data-v-f888a661]:active:not(.is-disabled){transform:scale(1)}.play-button.is-playing[data-v-f888a661]{background:var(--beat-accent)}.play-button.is-playing[data-v-f888a661]:hover{background:#ff5252}.play-button.is-disabled[data-v-f888a661]{background:var(--beat-normal);cursor:not-allowed;opacity:.5}.play-hint[data-v-f888a661]{text-align:center;color:var(--text-muted);margin-top:-1rem;font-size:.875rem}@media (width<=640px){.metronome[data-v-f888a661]{padding:1rem}.metronome-header[data-v-f888a661]{margin-bottom:1.5rem}.title[data-v-f888a661]{font-size:1.5rem}.subtitle[data-v-f888a661]{font-size:.875rem}.play-button[data-v-f888a661]{width:52px;height:52px}}@media (width>=768px){.metronome[data-v-f888a661]{padding:2rem}.title[data-v-f888a661]{font-size:2.5rem}}@media (width>=1201px){.keyboard-shortcuts[data-v-f888a661]{width:12rem;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:8px;gap:1rem;padding:1rem;display:grid;position:absolute;top:50%;left:calc(100% + 2rem);transform:translateY(-50%)}.shortcuts-heading[data-v-f888a661]{gap:.25rem;display:grid}.shortcuts-title[data-v-f888a661]{color:var(--text-primary);font-size:1rem;font-weight:700}.shortcuts-description[data-v-f888a661]{color:var(--text-muted);font-size:.75rem;line-height:1.35}.shortcuts-list[data-v-f888a661]{border-top:1px solid var(--border-color);gap:.5rem;padding-top:.75rem;display:grid}.shortcut[data-v-f888a661]{align-items:center;gap:.75rem;font-size:.875rem;display:flex}kbd[data-v-f888a661]{min-width:3.25rem;min-height:2.25rem;color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-color);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--text-muted) 30%, transparent);border-radius:4px;place-items:center;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;font-weight:700;display:inline-grid}}
