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>
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 { |