diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 928fda0..0e7aac1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -44,6 +44,20 @@ jobs: mkdir -p site/simulations cp landing/simulations/index.html site/simulations/index.html 2>/dev/null || true + - name: Copy landing favicon and assets + # Landing index.html references /favicon.svg, /favicon.ico, + # /apple-touch-icon.png, and /assets/og-image.png. Without these + # the X/Twitter share preview 404s and the browser tab falls back + # to the MkDocs Material favicon. Merge into the existing + # site/assets dir rather than replacing it (Material ships its + # own assets there). + run: | + cp landing/favicon.svg site/favicon.svg + cp landing/favicon.ico site/favicon.ico + cp landing/apple-touch-icon.png site/apple-touch-icon.png + mkdir -p site/assets + cp -R landing/assets/. site/assets/ + - name: Install selectools (for builder assembly) run: pip install -e . diff --git a/.gitignore b/.gitignore index 764a777..55a48e9 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ mypy_output.txt # Hypothesis test artifacts .hypothesis/ + +.playwright-mcp/ diff --git a/landing/apple-touch-icon.png b/landing/apple-touch-icon.png new file mode 100644 index 0000000..495dcbd Binary files /dev/null and b/landing/apple-touch-icon.png differ diff --git a/landing/favicon.ico b/landing/favicon.ico new file mode 100644 index 0000000..0edcd8a Binary files /dev/null and b/landing/favicon.ico differ diff --git a/landing/index.html b/landing/index.html index 223e9bb..a810f98 100644 --- a/landing/index.html +++ b/landing/index.html @@ -7,22 +7,8 @@ - + + @@ -33,6 +19,7 @@ + @@ -3907,61 +3894,12 @@ } /* ════════════════════════════════════════════════════════════════ - OVERDRIVE FUSED — wordmarks (3 switchable variants) - The body carries data-logo="1|2|3" set on load by reading the - ?logo= URL param (default "1"). Each variant renders inside the - nav-logo slot; only the active one is displayed. + OVERDRIVE FUSED — wordmark (terminal banner art) + Single variant: 3-row box-drawing wordmark in the nav-logo slot. ════════════════════════════════════════════════════════════════ */ - .wm { display: none; align-items: center; } - [data-logo="1"] .wm--1, - [data-logo="2"] .wm--2, - [data-logo="3"] .wm--3 { display: inline-flex; } - - /* Variant 1 — [•] selectools */ - .wm--1 { - gap: 8px; - font-family: var(--font-ui); - font-weight: 800; - font-size: 17px; - color: #fff; - letter-spacing: -0.03em; - } - .wm--1__brackets { - font-family: var(--font-mono); - font-weight: 600; - color: var(--exec-color); - font-size: 16px; - display: inline-flex; - align-items: center; - gap: 3px; - } - .wm--1__brackets::before { content: "["; } - .wm--1__brackets::after { content: "]"; } - .wm--1__brackets .exec-dot { width: 6px; height: 6px; } - - /* Variant 2 — s▌electools (cursor inside the word) */ - .wm--2 { - font-family: var(--font-ui); - font-weight: 800; - font-size: 17px; - color: #fff; - letter-spacing: -0.03em; - gap: 0; - } - .wm--2__pre, - .wm--2__post { display: inline-block; } - .wm--2__caret { - display: inline-block; - width: 0.18em; - height: 0.95em; - background: var(--exec-color); - box-shadow: 0 0 6px var(--exec-glow); - vertical-align: text-bottom; - animation: exec-blink 1.05s steps(2, jump-none) infinite; - margin: 0 1px; - } + .wm { display: inline-flex; align-items: center; } - /* Variant 3 — terminal banner art (3-row box-drawing) */ + /* Terminal banner art (3-row box-drawing) */ .wm--3 { font-family: var(--font-mono); color: var(--exec-color); @@ -4351,8 +4289,7 @@ .exec-caret { animation: none; opacity: 1; } .exec-scan.in-view::after { animation: none; display: none; } - /* OVERDRIVE FUSED — wordmarks: kill blink + scan animations */ - .wm--2__caret { animation: none !important; opacity: 1; } + /* OVERDRIVE FUSED — wordmark: kill scan animation */ .wm--3__banner.is-typing { mask-image: none !important; -webkit-mask-image: none !important; } /* OVERDRIVE FUSED — #faq: kill answer fade-in */ @@ -4417,16 +4354,7 @@