diff --git a/index.html b/index.html
index 26a995c..59cc4b0 100644
--- a/index.html
+++ b/index.html
@@ -239,6 +239,9 @@
justify-content: center;
max-width: 720px;
}
+ .controls.locked {
+ opacity: 0.35;
+ }
button {
background: var(--color-surface);
diff --git a/src/main.ts b/src/main.ts
index a56c814..1374b58 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -775,10 +775,13 @@ class MotifApp {
// collapse results when selected/generated
this.resultsSection.classList.toggle('collapsed', state === 'selected');
- // Search affordances: hidden after generation (no choice)
- const hideSearch = state === 'generated';
- this.controlsEl.style.display = hideSearch ? 'none' : '';
- this.status.style.display = hideSearch ? 'none' : '';
+ // Keep search visible so you can scroll back up, but lock it during generated mode.
+ const lockSearch = state === 'generated';
+ this.controlsEl.classList.toggle('locked', lockSearch);
+ this.songInput.disabled = lockSearch;
+ this.searchBtn.disabled = lockSearch;
+ // Keep status visible for layout continuity; just de-emphasize content in generated mode.
+ if (lockSearch) this.status.textContent = '';
// Selected pre-generation content
const showPreGen = state === 'selected';