diff --git a/app.js b/app.js
new file mode 100644
index 0000000..00ce90a
--- /dev/null
+++ b/app.js
@@ -0,0 +1,62 @@
+// Scarf landing page — minimal client behavior.
+// No dependencies. Runs after defer-parse.
+
+(function () {
+ const root = document.documentElement;
+ const STORAGE_KEY = 'scarf-theme';
+
+ function applyTheme(theme) {
+ if (theme === 'light' || theme === 'dark') {
+ root.setAttribute('data-theme', theme);
+ } else {
+ root.removeAttribute('data-theme');
+ }
+ }
+
+ // Hydrate stored preference (if any) — runs after DOMContentLoaded since the
+ //
+
+