diff --git a/loop-start.mp3 b/loop-start.mp3
index 17ad6a34..2fdba326 100644
Binary files a/loop-start.mp3 and b/loop-start.mp3 differ
diff --git a/neode-ui/src/components/SplashScreen.vue b/neode-ui/src/components/SplashScreen.vue
index c966d6b7..79eac0b0 100644
--- a/neode-ui/src/components/SplashScreen.vue
+++ b/neode-ui/src/components/SplashScreen.vue
@@ -51,19 +51,19 @@
>
- >
+ >
{{ displayLine1 }}
- >
+ >
{{ displayLine2 }}
- >
+ >
{{ displayLine3 }}
- >
+ >
{{ displayLine4 }}
@@ -521,13 +521,13 @@ onBeforeUnmount(() => {
min-width: 0;
}
-/* Intro typing cursor - block style, cyan blink (matches original typing-text caret) */
+/* Intro typing cursor - block style, yellow blink (Archipelago style) */
.intro-typing-caret {
display: inline-block;
width: 4px;
min-width: 4px;
height: 1.2em;
- background: #00ffff;
+ background: #fbbf24;
margin-left: 2px;
vertical-align: text-bottom;
animation: intro-caret-blink 0.5s step-end infinite;
diff --git a/neode-ui/src/composables/useControllerNav.ts b/neode-ui/src/composables/useControllerNav.ts
index 2c022b79..9689cb0f 100644
--- a/neode-ui/src/composables/useControllerNav.ts
+++ b/neode-ui/src/composables/useControllerNav.ts
@@ -201,6 +201,17 @@ export function useControllerNav(containerRef?: { value: HTMLElement | null }) {
const el = focusable[currentIndex] as HTMLElement
if (el.hasAttribute('data-controller-container')) {
+ // Marketplace: Enter = install (click install button)
+ if (el.hasAttribute('data-controller-install')) {
+ const installBtn = el.querySelector