diff --git a/design/design_reference/logo/INTEGRATION.md b/design/design_reference/logo/INTEGRATION.md
new file mode 100644
index 0000000..09b9a06
--- /dev/null
+++ b/design/design_reference/logo/INTEGRATION.md
@@ -0,0 +1,149 @@
+# SoftLAN — Logo handoff
+
+The SoftLAN mark is a pixelated **“S”** (5×5 grid) that, at rest, is a static
+icon — but periodically and on hover it **comes alive**: it dissolves into a
+single segment that slithers across the board like the game *Snake*, then
+re-lays itself back into the S. Two shorter “glitch” flickers add variety.
+
+This folder is everything an engineer/agent needs to ship it.
+
+```
+logo_handoff/
+├── pixel-live.jsx ← the live React component (the deliverable)
+├── demo.html ← open in a browser to see it in motion + in context
+├── INTEGRATION.md ← this file
+└── assets/
+ ├── softlan-mark.svg static S, fill="currentColor" (inline use)
+ ├── softlan-mark-blue.svg static S, fixed #3b82f6 (img/favicon use)
+ ├── softlan-tile.svg rounded app-icon tile, gradient + white S
+ └── favicon.svg = tile (drop-in favicon)
+```
+
+---
+
+## 1. The live component — `pixel-live.jsx`
+
+A single React component, `LiveLogo`. No build step assumed in the demo (it’s
+loaded via Babel-in-browser), but the source is plain JSX — drop it into your
+normal React/TS toolchain and it compiles as-is.
+
+### Props
+
+| prop | type | default | notes |
+|-------------|----------|-------------|-------|
+| `accent` | string | `#3b82f6` | the S color (any CSS color). Wire this to your theme accent. |
+| `size` | number | `140` | rendered width/height in px (it’s a square SVG). |
+| `idleAuto` | boolean | `true` | when true, plays a random trick by itself every `idleMin`–`idleMax` ms. |
+| `idleMin` | number | `5000` | min ms between idle auto-plays. |
+| `idleMax` | number | `11000` | max ms between idle auto-plays. |
+
+### Behavior (built in)
+- **Rest:** renders the static pixel S in `accent`.
+- **Hover:** plays a random trick (snake-weighted).
+- **Click:** plays the snake trick.
+- **Idle:** if `idleAuto`, fires a random trick on a 5–11s jitter — but only
+ while the tab is visible (`document.hidden` guard), so background tabs stay quiet.
+- It never overlaps plays (a `playing` guard ignores triggers mid-animation).
+
+### Imperative API (ref)
+```jsx
+const logo = useRef(null);
+// ...
+
+// trigger a specific trick on demand:
+logo.current.play('snake'); // 'snake' | 'rgb' | 'glitch'
+logo.current.isPlaying(); // boolean
+```
+
+### Tricks
+- `snake` (~2.6s) — the headline animation. S → slither across the 5×5 board → S.
+- `rgb` (~1.35s) — chromatic-aberration split that settles back to clean.
+- `glitch` (~1.1s) — rows tear/kick sideways, then snap back.
+
+Edit the `POOL` array near the bottom of the file to change which tricks the
+random picker uses (and their weighting), and `TRICK_DUR` to retune durations.
+
+---
+
+## 2. Wiring it into the launcher
+
+The current brand mark in `launcher.jsx` is a placeholder div:
+
+```jsx
+// BEFORE — both the 'single' and 'two' topbar variants:
+
S
+```
+
+Replace each with the live component:
+
+```jsx
+// AFTER:
+
+```
+
+- Pass the existing `accent` tweak straight through — the mark recolors live.
+- `size={28}` matches the current 28px brand-mark box; adjust to taste.
+- Drop the old `.brand-mark` background/letter CSS (the SVG is self-contained).
+- The component is small and animates only on hover/idle, so it’s fine to mount
+ one instance per topbar. If you want the whole header to react to a single
+ event, share one `ref` and call `.play()`.
+
+Import at the top of the file (or via your bundler):
+```jsx
+import { LiveLogo } from './pixel-live'; // if you convert exports to ES modules
+```
+The file currently attaches `LiveLogo` to `window` for the no-build demo —
+swap the final `Object.assign(window, …)` line for `export { LiveLogo }` in a
+module build.
+
+---
+
+## 3. Static assets (`assets/`)
+
+For places that must be static — favicons, OS app icons, store listings,
+loading splash, OG images, anywhere JS isn’t running:
+
+- **`softlan-tile.svg`** — the rounded app-icon tile (gradient + white S). Use
+ this for the favicon, dock/taskbar icon, and installer art. `favicon.svg` is
+ an identical copy for convenient ``.
+- **`softlan-mark-blue.svg`** — just the S in brand blue, transparent bg. Use in
+ `` tags and anywhere you need a fixed color.
+- **`softlan-mark.svg`** — the S with `fill="currentColor"`. **Only inherits
+ color when inlined into the DOM** (inline `