carlos / movement Public

The second ink builds, everywhere

Third verdict cleared the three regressions and three of the four partials.
What was left were the reviewer's own named single-property fixes.

The stamp's struck bar was in screen blend, so in the one place the system
lets ink cross ink it LIGHTENED rather than built — the opposite of what
theme.css says the second ink does, and the reason it read as a misaligned
duplicate rectangle rather than a strike. Multiply, and inset to the label
so it stops overhanging the edge.

The imprint's 3px underline sat about ten pixels above the perforation,
making a short doubled rule at the right of the head row. In that row the
link carries weight and colour instead.

And the tab addresses were breaking mid-domain on the phone and starting at
three different x positions. They stack now, one left edge, no break inside
a hostname.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Paul Campbell 6386215248168a5cb85c489f6574b02181e386fa parent efa02f4
1 file changed, +17 −11
  • internal/movement/static/bill.css +17 −11
diff --git a/internal/movement/static/bill.css b/internal/movement/static/bill.css
index d27c396..76a4368 100644
--- a/internal/movement/static/bill.css
+++ b/internal/movement/static/bill.css
@@ -62,6 +62,12 @@ body {
margin: 0;
font-size: 0.875rem;
}
+/* No underline here: a 3px rule ten pixels above the perforation reads as a
+ doubled rule, not as a link. */
+.bill__slug .bill__out {
+ border-bottom: 0;
+ color: var(--bill-blue);
+}
/* ─────────────────────────────────────────────────────────────────────
The shout
@@ -207,7 +213,8 @@ body {
font-size: 0.8125rem;
font-weight: 700;
color: var(--bill-blue);
- word-break: break-all;
+ overflow-wrap: anywhere;
+ word-break: normal;
}
.tab__word {
@@ -361,13 +368,12 @@ body {
.stamp::after {
content: "";
position: absolute;
- left: 0;
- right: 0;
- top: 58%;
+ left: 1.15rem;
+ right: 1.15rem;
+ top: 56%;
height: 7px;
background: var(--bill-cyan);
- mix-blend-mode: screen;
- opacity: 0.55;
+ mix-blend-mode: multiply;
transform: translateY(1px);
pointer-events: none;
}
@@ -468,17 +474,17 @@ body {
min-height: 0;
border-right: 0;
border-bottom: 2px dashed var(--bill-ink);
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
- gap: 0.85rem;
- padding: 0.95rem 0.25rem;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.2rem;
+ padding: 0.85rem 0.25rem;
}
.tab:last-child {
border-bottom: 0;
}
.tab__word {
font-size: 1.5rem;
+ min-height: 0;
}
.tab:hover,
.tab:focus-visible {