.harmonize-page .harmonize-grid{grid-template-columns:1fr}.harmonize-page .alt-upload{color:var(--ink-subtle);font-size:11px;font-family:var(--font-mono);cursor:pointer;text-align:left;background:0 0;border:0;margin-top:6px;padding:0}.harmonize-page .alt-upload:hover:not(:disabled){color:var(--accent)}.harmonize-page .alt-upload:disabled{opacity:.5;cursor:not-allowed}.harmonize-page .harmonize-controls{border-bottom:1px solid var(--line);padding:32px}.harmonize-page .harmonize-controls-inner{flex-direction:column;gap:22px;max-width:1100px;margin:0 auto;display:flex}.harmonize-page .meta-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.harmonize-page .meta-pill .bpm{color:var(--ink-subtle);margin-left:6px;font-size:11px}.harmonize-page .quant-field{align-items:center;gap:8px;display:inline-flex}.harmonize-page .quant-field label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px;font-weight:500}.harmonize-page .quant-field select{border:1px solid var(--line-input);background:var(--bg-sunken);height:30px;color:var(--ink);font-size:12px;font-family:var(--font-sans);border-radius:8px;outline:none;padding:0 10px}.harmonize-page .epoch-row{flex-direction:column;gap:10px;display:flex}.harmonize-page .epoch-row .caption{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px;font-weight:500}.harmonize-page .epoch-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.harmonize-page .epoch-tile{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;transition:border-color .2s,background .2s;display:flex}.harmonize-page .epoch-tile:hover{border-color:var(--line-strong)}.harmonize-page .epoch-tile.active{background:#b14bff14;border-color:#b14bff80}.harmonize-page .epoch-tile .title{font-size:14px;font-weight:500}.harmonize-page .epoch-tile .composers{color:var(--ink-subtle);font-size:11px}.harmonize-page .harmonize-cta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.harmonize-page .gate-notice{color:var(--ink);background:#b14bff1a;border:1px solid #b14bff4d;border-radius:12px;align-items:center;gap:10px;max-width:640px;padding:12px 16px;font-size:13px;line-height:1.5;display:flex}.harmonize-page .gate-notice .login-link{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.harmonize-page .harmonize-result{padding:48px 32px}.harmonize-page .harmonize-result-inner{flex-direction:column;gap:18px;max-width:1100px;margin:0 auto;display:flex}.harmonize-page .result-staves{flex-direction:column;gap:14px;display:flex}.harmonize-page .staff-row{flex-direction:column;gap:6px;display:flex}.harmonize-page .staff-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:11px;font-weight:500}.harmonize-page .staff-card{background:var(--bg-sunken);border:1px solid var(--line);border-radius:14px;padding:8px}.harmonize-page .playback-cluster{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.harmonize-page .play-mode{border:1px solid var(--line);background:var(--bg-sunken);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.harmonize-page .play-mode button{color:var(--ink-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .2s,color .2s}.harmonize-page .play-mode button:hover{color:var(--ink)}.harmonize-page .play-mode button.active{background:var(--bg-elevated-2);color:var(--ink)}.harmonize-page .play-button{background:var(--accent);height:36px;color:var(--accent-foreground);font-family:var(--font-sans);cursor:pointer;border:0;border-radius:10px;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:600;transition:background .2s;display:inline-flex}.harmonize-page .play-button:hover{background:color-mix(in oklab, var(--accent) 92%, white)}.harmonize-page .play-button:disabled{opacity:.55;cursor:not-allowed}.harmonize-page .chord-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.harmonize-page .chord-card{border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;transition:border-color .2s,background .2s;display:flex}.harmonize-page .chord-card:hover{background:var(--bg-elevated-2);border-color:#b14bff73}.harmonize-page .chord-card .bar{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:10px;font-weight:500}.harmonize-page .chord-card .symbol{font-family:var(--font-display);color:var(--accent);font-size:28px;font-style:italic;line-height:1}.harmonize-page .chord-card .notes{font-family:var(--font-mono);color:var(--ink-muted);font-size:12px}.harmonize-page .paywall-section{justify-content:center;padding:32px;display:flex}.harmonize-page .paywall-card{border:1px solid var(--line);background:var(--bg-elevated);border-radius:18px;flex-direction:column;gap:22px;width:100%;max-width:720px;padding:32px;display:flex;box-shadow:inset 0 1px #ffffff05,0 24px 60px -32px #0000008c}.harmonize-page .paywall-head{align-items:center;gap:16px;display:flex}.harmonize-page .paywall-head .ai-badge{width:52px;height:52px;font-family:var(--font-display);color:var(--accent);background:#b14bff1a;border:1px solid #b14bff4d;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:28px;line-height:1;display:inline-flex}.harmonize-page .paywall-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-subtle);margin-bottom:4px;font-size:11px;font-weight:500;display:block}.harmonize-page .paywall-head h2{font-family:var(--font-display);margin:0;font-size:26px;font-weight:500;line-height:1.15}.harmonize-page .paywall-head h2 em{font-style:italic}.harmonize-page .paywall-text{color:var(--ink-muted);margin:0;font-size:14px;line-height:1.6}.harmonize-page .paywall-bullets{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.harmonize-page .paywall-bullets li{color:var(--ink);align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.harmonize-page .paywall-bullets .check{width:20px;height:20px;color:var(--accent);background:#b14bff1f;border:1px solid #b14bff47;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:11px;font-weight:600;display:inline-flex}.harmonize-page .paywall-actions{flex-wrap:wrap;align-items:center;gap:14px;padding-top:4px;display:flex}.harmonize-page .paywall-cta{background:var(--accent);height:40px;color:var(--accent-foreground);font-family:var(--font-sans);border-radius:10px;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.harmonize-page .paywall-cta:hover{background:color-mix(in oklab, var(--accent) 92%, white);transform:translateY(-1px)}.harmonize-page .paywall-cta-disabled{background:var(--bg-sunken);border:1px dashed var(--line-strong);height:40px;color:var(--ink-muted);font-family:var(--font-sans);cursor:not-allowed;border-radius:10px;align-items:center;padding:0 20px;font-size:14px;font-weight:500;display:inline-flex}.harmonize-page .paywall-note{color:var(--ink-subtle);font-size:12px;font-family:var(--font-mono)}.harmonize-page .paywall-back{color:var(--ink-subtle);font-size:12px;font-family:var(--font-mono);align-self:flex-start;margin-top:8px;text-decoration:none;transition:color .2s}.harmonize-page .paywall-back:hover{color:var(--accent)}@media (max-width:900px){.harmonize-page .harmonize-controls,.harmonize-page .harmonize-result{padding:24px 18px}.harmonize-page .epoch-grid{grid-template-columns:1fr 1fr}.harmonize-page .chord-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.harmonize-page .chord-card .symbol{font-size:24px}.harmonize-page .paywall-section{padding:20px 18px}.harmonize-page .paywall-card{gap:18px;padding:24px 22px}.harmonize-page .paywall-head h2{font-size:22px}}
