Commit graph

2 commits

Author SHA1 Message Date
Hound
ac28efffb0 site: fix mobile overflow at the cause, and give the header a hamburger
Joe opened the page on a phone and found what I could not: the install
commands pushed the layout sideways, and the header did the same.

ROOT CAUSE, and it was one thing behind both: grid and flex children
default to min-width:auto, so a box holding a long unbreakable string —
a curl command, a terminal block — refuses to shrink below that string
and pushes the whole PAGE sideways instead of scrolling inside itself.
`overflow-x: auto` on the inner element does nothing while its parent
will not shrink. min-width:0 on the children of every grid is the fix,
and it is why the page was fine at 1080px and broken at 390.

The copy blocks also had the button inside the scrolling region, so on a
narrow screen the one control anybody actually uses scrolled out of
reach. The command now scrolls in its own box, the button sits outside
it, and below 720px the command wraps instead of scrolling — the whole
thing visible at once, break-all because a URL has no useful break
points.

HEADER: hiding the nav links on small screens was never a fix, because
the theme switch and the call to action still competed for a 360px bar.
Below 760px the bar now holds the mark and one button, and everything
else moves into a panel: aria-expanded on the control, Escape closes it,
following a link closes it — a panel left open over the thing you just
asked to see is its own bug — and a resize past the breakpoint closes it
so rotating to landscape cannot strand a phone panel over a desktop
layout.

One regression I introduced and caught before it shipped: I had written
`#menu { display: contents }` to make the panel transparent on desktop.
An ID beats a class, so that quietly overrode nav.links's own flex
layout and margin-left:auto and unstuck the desktop navigation from the
right-hand side. The panel styles now live inside the breakpoint and
nowhere else.

I still cannot see this page — the browser here renders with CSS
disabled — so this was reasoned from the cause Joe's report pointed at
rather than from looking. Another pair of eyes on a phone would be worth
having.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 09:35:29 -05:00
Hound
fe49518383 site: houndav.com is live, and the install commands on it work
Phase 7's first half. A single self-contained page — no build step, no
framework, no dependencies — deployed to /srv/houndav/www and serving.
Downloads published to dl.houndav.com, and both install commands on the
page were run end to end from those public URLs before this commit.

The positioning is the one the product actually earns. It does not lead
with "antivirus", because at $89.95 that reads expensive next to ESET at
$40 and cheap next to JetBrains at $169 — and because the claim would be
wrong. It leads with the fact that turned out to be the whole thesis:

  97% of npm's OSV records are malicious packages, not vulnerabilities.

Alongside 235,577 indicators, 2 ms to refuse a binary at execve, and
0.8 ms added to a normal program starting. Every number on that page is
measured, and every one of them appears in a commit message here.

Themes: light is the bare :root, dark is layered twice — once for the
un-stamped "follow the system" state via prefers-color-scheme, once for
an explicit [data-theme="dark"] — so all three of auto/light/dark
resolve as complete sets rather than half a palette. The toggle persists
to localStorage inside try/catch, because a private window throws on
access and a theme switch must not take the page down with it.

The sticky header now sets an opaque background BEFORE the color-mix and
backdrop-filter enhancement, behind @supports. A sticky header that
falls back to transparent puts scrolling content underneath the
navigation, which is worse than having no blur at all.

WHAT I COULD NOT VERIFY, and it matters: the browser available to me
renders with CSS disabled — document.styleSheets.length is 0 with the
<style> element present, every computed style comes back unset and every
font resolves to Times. So I have confirmed the bytes are served
correctly, the CSS parses (balanced braces, no unterminated comments, no
undefined custom properties, no missing semicolons), the HTML tags
balance, the viewport meta is present and there are eight responsive
breakpoints — but I have NOT SEEN THIS PAGE. Somebody with eyes should
look before it is advertised anywhere.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 09:32:10 -05:00