diff --git a/.agents/skills/impeccable/scripts/live-inject.mjs b/.agents/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.agents/skills/impeccable/scripts/live-inject.mjs +++ b/.agents/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.claude/skills/impeccable/scripts/live-inject.mjs b/.claude/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.claude/skills/impeccable/scripts/live-inject.mjs +++ b/.claude/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.cursor/skills/impeccable/scripts/live-inject.mjs b/.cursor/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.cursor/skills/impeccable/scripts/live-inject.mjs +++ b/.cursor/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.gemini/skills/impeccable/scripts/live-inject.mjs b/.gemini/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.gemini/skills/impeccable/scripts/live-inject.mjs +++ b/.gemini/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.github/skills/impeccable/scripts/live-inject.mjs b/.github/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.github/skills/impeccable/scripts/live-inject.mjs +++ b/.github/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.kiro/skills/impeccable/scripts/live-inject.mjs b/.kiro/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.kiro/skills/impeccable/scripts/live-inject.mjs +++ b/.kiro/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.opencode/skills/impeccable/scripts/live-inject.mjs b/.opencode/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.opencode/skills/impeccable/scripts/live-inject.mjs +++ b/.opencode/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.pi/skills/impeccable/scripts/live-inject.mjs b/.pi/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.pi/skills/impeccable/scripts/live-inject.mjs +++ b/.pi/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.rovodev/skills/impeccable/scripts/live-inject.mjs b/.rovodev/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.rovodev/skills/impeccable/scripts/live-inject.mjs +++ b/.rovodev/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.trae-cn/skills/impeccable/scripts/live-inject.mjs b/.trae-cn/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.trae-cn/skills/impeccable/scripts/live-inject.mjs +++ b/.trae-cn/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.trae/skills/impeccable/scripts/live-inject.mjs b/.trae/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.trae/skills/impeccable/scripts/live-inject.mjs +++ b/.trae/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/public/index.html b/public/index.html index e159aac80..6c638efcc 100644 --- a/public/index.html +++ b/public/index.html @@ -724,8 +724,9 @@ - -
+ + +
@@ -734,118 +735,27 @@
-
@@ -860,18 +770,19 @@ ΒΆ

Work with me.

-

Impeccable is built by Renaissance Geek. I work with enterprise teams on rollouts, integrations, and training.

+

Impeccable is built by Renaissance Geek. Rollouts, integrations, training.

Work
with me.

-

Impeccable is built by Renaissance Geek. I work with enterprise teams on large-scale rollouts, custom integrations, and training for designers and developers.

+

Impeccable is built by Renaissance Geek. Large-scale rollouts, custom integrations, and training for teams raising the bar on AI-generated design.

- + + @@ -921,6 +832,7 @@ + diff --git a/public/privacy.html b/public/privacy.html index 4139e711e..2bb9a7e2b 100644 --- a/public/privacy.html +++ b/public/privacy.html @@ -78,6 +78,7 @@

Questions about this policy? Open an issue on GitHub or reach out to @pbakaus.

+ diff --git a/source/skills/impeccable/scripts/live-inject.mjs b/source/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/source/skills/impeccable/scripts/live-inject.mjs +++ b/source/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' );