.harmonize-page .labs-hero{position:relative;overflow:hidden}.harmonize-page .labs-hero:before{content:"";pointer-events:none;background:radial-gradient(40% 36% at 18% 20%,#00e5ff1f 0%,#0000 70%),radial-gradient(46% 40% at 82% 70%,#b14bff21 0%,#0000 70%);position:absolute;inset:0}.harmonize-page .labs-hero-inner{z-index:1;position:relative}.harmonize-page .ai-eyebrow .dot{background:var(--ai-cyan);width:7px;height:7px;box-shadow:0 0 8px var(--ai-cyan);-webkit-background-clip:border-box;background-clip:border-box;border-radius:50%;flex-shrink:0}.harmonize-page .meta-pill{background:var(--bg-elevated);border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-muted);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.harmonize-page .meta-pill b{color:var(--ink)}.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:linear-gradient(180deg, var(--bg-sunken), var(--bg-elevated));min-height:92px;color:var(--ink);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 14px;transition:border-color .2s,transform .2s;display:flex;position:relative;overflow:hidden}.harmonize-page .epoch-tile:hover{border-color:var(--line-strong);transform:translateY(-2px)}.harmonize-page .epoch-tile.active{background:linear-gradient(var(--bg-elevated), var(--bg-elevated)) padding-box, conic-gradient(from 0deg, var(--ai-cyan), var(--ai-violet), var(--ai-magenta), var(--ai-cyan)) border-box;border:2px solid #0000}.harmonize-page .epoch-tile .title{letter-spacing:-.01em;font-size:14px;font-weight:500}.harmonize-page .epoch-tile .composers{font-family:var(--font-mono);color:var(--ink-subtle);margin-top:auto;font-size:10px}.harmonize-page .harmonize-cta{flex-direction:column;align-items:center;gap:12px;padding-top:8px;display:flex}.harmonize-page .cta-sub{font-family:var(--font-mono);color:var(--ink-subtle);font-size:12px}.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{grid-template-columns:90px 1fr;align-items:center;gap:16px;display:grid}.harmonize-page .staff-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);text-align:right;font-size:11px}.harmonize-page .staff-card{background:var(--bg-sunken);border:1px solid var(--line);border-radius:12px;padding:8px 12px;overflow:hidden}.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:linear-gradient(135deg, var(--ai-cyan), var(--ai-violet));color:#fff;height:40px;font-family:var(--font-sans);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s;display:inline-flex}.harmonize-page .play-button:hover{transform:translateY(-1px);box-shadow:0 8px 24px -10px #00e5ff99}.harmonize-page .play-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.harmonize-page .chord-row{grid-template-columns:repeat(4,1fr);gap:12px;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:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;transition:border-color .2s,background .2s,transform .2s;display:flex}.harmonize-page .chord-card:hover{border-color:var(--accent-amber-line,#f2ba534d);background:var(--bg-elevated-2);transform:translateY(-2px)}@supports (color:lab(0% 0 0)){.harmonize-page .chord-card:hover{border-color:var(--accent-amber-line,lab(79.1911% 13.3651 58.6741/.3))}}.harmonize-page .chord-card .bar{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle);font-size:10px}.harmonize-page .chord-card .symbol{font-family:var(--font-display);color:var(--ink);font-size:30px;font-style:italic;line-height:1}.harmonize-page .chord-card .notes{font-family:var(--font-mono);color:var(--ink-muted);font-size:11px}.harmonize-page .chord-card .play-mini{color:var(--accent);align-self:flex-start;align-items:center;gap:5px;margin-top:6px;font-size:11px;display:inline-flex}.harmonize-page .input-mode-section{border-bottom:1px solid var(--line);padding:24px 32px}.harmonize-page .input-mode-inner{max-width:1100px;margin:0 auto}.harmonize-page .input-mode-toggle{border:1px solid var(--line);background:var(--bg-sunken);border-radius:12px;gap:4px;padding:4px;display:inline-flex}.harmonize-page .input-mode-toggle button{color:var(--ink-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:9px 18px;font-size:13px;font-weight:500;transition:background .2s,color .2s}.harmonize-page .input-mode-toggle button:hover{color:var(--ink)}.harmonize-page .input-mode-toggle button.active{background:var(--bg-elevated-2);color:var(--ink)}.harmonize-page .piano-section{border-bottom:1px solid var(--line);padding:32px}.harmonize-page .piano-section-inner{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;display:flex}.harmonize-page .piano-input{flex-direction:column;gap:16px;display:flex}.harmonize-page .piano-input-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.harmonize-page .piano-input-tabs .tabs-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-subtle);margin-left:4px;font-size:11px;font-weight:500}.harmonize-page .measure-tab{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;font-weight:500;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.harmonize-page .measure-tab:hover:not(:disabled){color:var(--ink);border-color:var(--line-strong)}.harmonize-page .measure-tab.active{color:var(--accent);background:#b14bff14;border-color:#b14bff80}.harmonize-page .measure-tab .tab-beats{font-family:var(--font-mono);color:var(--ink-subtle);font-size:10px}.harmonize-page .measure-tab .tab-beats.full{color:var(--ok)}.harmonize-page .measure-tab .tab-beats.over{color:var(--bad)}.harmonize-page .measure-tool{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;transition:border-color .2s,color .2s;display:inline-flex}.harmonize-page .measure-tool:hover:not(:disabled){color:var(--ink);border-color:var(--line-strong)}.harmonize-page .measure-tool:disabled{opacity:.5;cursor:not-allowed}.harmonize-page .measure-tool.dashed{border-style:dashed}.harmonize-page .measure-tool.danger:hover:not(:disabled){color:var(--bad);border-color:color-mix(in oklab, var(--bad) 40%, transparent)}.harmonize-page .piano-input-hint{color:var(--accent);background:#b14bff1a;border:1px solid #b14bff47;border-radius:8px;padding:8px 12px;font-size:12px}.harmonize-page .piano-input-durations{flex-direction:column;gap:8px;display:flex}.harmonize-page .duration-pills{flex-wrap:wrap;gap:6px;display:flex}.harmonize-page .duration-pill{border:1px solid var(--line);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.harmonize-page .duration-pill:hover:not(:disabled){color:var(--ink);border-color:var(--line-strong)}.harmonize-page .duration-pill.active{color:var(--accent);background:#b14bff14;border-color:#b14bff80}.harmonize-page .duration-pill .short{font-family:var(--font-mono);font-size:11px;font-weight:500}.harmonize-page .piano-input-help{color:var(--ink-subtle);margin:0;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-pro{background:linear-gradient(135deg, var(--ai-cyan), var(--ai-violet));color:#fff;height:40px;font-family:var(--font-sans);border-radius:999px;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s;display:inline-flex}.harmonize-page .paywall-cta-pro:hover{transform:translateY(-1px);box-shadow:0 8px 24px -10px #00e5ff99}.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,.harmonize-page .input-mode-section,.harmonize-page .piano-section{padding:24px 18px}.harmonize-page .epoch-grid{grid-template-columns:1fr 1fr}.harmonize-page .chord-row{grid-template-columns:repeat(2,1fr)}.harmonize-page .chord-card .symbol{font-size:26px}.harmonize-page .staff-row{grid-template-columns:1fr;gap:6px}.harmonize-page .staff-label{text-align:left}.harmonize-page .paywall-section{padding:20px 18px}.harmonize-page .paywall-card{gap:18px;padding:24px 22px}.harmonize-page .paywall-head h2{font-size:22px}}
