diff --git a/docs/architecture/index.html b/docs/architecture/index.html index 0de54b7..54f4713 100644 --- a/docs/architecture/index.html +++ b/docs/architecture/index.html @@ -90,7 +90,9 @@ --hero-stat-b:#f3eedd; --hero-stat-span:#b9b8cb; --wire-line: rgba(212,175,55,.5); --wire-end-bg:#182050; --code-bg:#0a0e26; --code-ink:#cdd0ea; --code-key:#d4af37; --code-str:#8fd0e0; --code-num:#e6c454; - --orn-opacity: .16; + /* .16 read as noise directly behind small prose (66px hex6 tile, high edge density); + cut toward the enso/vine baseline that never got a legibility complaint (see docs/the-fleet/). */ + --orn-opacity: .07; } :root[data-theme="japanese"]{ --bg:#f4efe4; --surface:#efe8d8; --surface-2:#e9e0cc; @@ -124,7 +126,9 @@ --hero-stat-b:#f7ead0; --hero-stat-span:#d2b48c; --wire-line: rgba(232,160,32,.5); --wire-end-bg:#421a21; --code-bg:#210a0d; --code-ink:#f7ead0; --code-key:#e8a020; --code-str:#2bb3ad; --code-num:#f0b840; - --orn-opacity: .17; + /* .17 was the densest overlap of any theme (64px tile, six large overlapping + circles) -- cut toward the enso/vine baseline that never got a legibility complaint. */ + --orn-opacity: .07; } :root[data-theme="codex"]{ --bg:#ece0c0; --surface:#e4d5ad; --surface-2:#dccb9c; @@ -158,7 +162,9 @@ --hero-stat-b:#f0e6d2; --hero-stat-span:#c2b294; --wire-line: rgba(201,150,60,.5); --wire-end-bg:#0e403c; --code-bg:#04201e; --code-ink:#cdeae4; --code-key:#c9963c; --code-str:#2fb3a6; --code-num:#e0ba6a; - --orn-opacity: .17; + /* .17 on a 72px tile of bold rotated squares -- straight edges at many angles + compete hard with letterforms; cut toward the enso/vine baseline. */ + --orn-opacity: .07; } :root[data-theme="terminal"]{ --bg:#080b0a; --surface:#0d120f; --surface-2:#111814; @@ -175,7 +181,10 @@ --hero-stat-b:#c9d6c9; --hero-stat-span:#7f9a83; --wire-line: rgba(72,208,106,.5); --wire-end-bg:#111814; --code-bg:#050807; --code-ink:#c9d6c9; --code-key:#48d06a; --code-str:#59d0c0; --code-num:#8fe0a0; - --orn-opacity: .1; + /* .1 is already low, but the scan tile repeats every 5px -- close to a text + stroke's own width, so it reads as noise regardless of opacity. Widened the + tile below (see #scan) and trimmed opacity a little further to match. */ + --orn-opacity: .05; } html{scroll-behavior:smooth} @@ -415,6 +424,11 @@ .orn-g{stroke:var(--accent);stroke-opacity:var(--orn-opacity);stroke-width:1;fill:none} .orn-scan-a{fill:var(--accent);fill-opacity:calc(var(--orn-opacity) * .5)} .orn-scan-b{fill:var(--accent);fill-opacity:var(--orn-opacity)} +/* legibility backstop for the four densest motifs (hex6/jaali/star8/scan), same fix as + docs/the-fleet/: everything in .col/.mod/.inspector/.stage/.stepdesc/.tabs/.msg/.judge/.dec + already sits on an opaque --surface and doesn't need this -- only the bare section + intros/headings and the footer provenance line sit directly over the ornament layer. */ +:root:is([data-theme="arabic"],[data-theme="indian"],[data-theme="andalus"],[data-theme="terminal"]) :is(section h2,p.intro,p.prov){text-shadow:0 0 2px var(--bg),0 0 4px var(--bg),0 0 7px var(--bg)} /* switcher lives inline in the sticky nav, not fixed -- the nav already claims that strip */ .theme-switcher{position:relative;margin-left:auto;flex:none} @@ -482,9 +496,10 @@ - - - + + + diff --git a/docs/the-fleet/index.html b/docs/the-fleet/index.html index b9a54c8..42b296e 100644 --- a/docs/the-fleet/index.html +++ b/docs/the-fleet/index.html @@ -56,11 +56,16 @@ :root[data-theme="arabic"] { --ground:#0d1233; --ground-2:#131a45; --ground-3:#182050; --hair:rgba(212,175,55,.18); --hair-2:rgba(212,175,55,.09); - --bone:#ece7d6; --bone-dim:#b9b8cb; --bone-faint:#7d7f9c; + --bone:#ece7d6; --bone-dim:#b9b8cb; + /* lifted from #7d7f9c: at .07 orn-opacity that still only cleared 4.24:1 worst-case + against the pattern's own color -- short of AA on the math alone, halo notwithstanding. */ + --bone-faint:#8688a3; --gold:#d4af37; --gold-deep:#a8862a; --jade:#4fb0c4; --flare:#c1523f; --merged:#6bab7d; --display: "Futura", "Century Gothic", "Avenir Next", "Segoe UI", sans-serif; --display-tracking: .02em; - --orn-opacity: .16; + /* .16 read as noise directly behind small prose (66px hex6 tile, high edge density); + cut toward the enso/vine baseline that never got a legibility complaint. */ + --orn-opacity: .07; } /* Japanese -- sumi-e minimalism, ma (negative space), washi ground, single vermillion seal */ :root[data-theme="japanese"] { @@ -77,11 +82,15 @@ :root[data-theme="indian"] { --ground:#2a0f14; --ground-2:#37151b; --ground-3:#421a21; --hair:rgba(232,160,32,.20); --hair-2:rgba(232,160,32,.1); - --bone:#f7ead0; --bone-dim:#d2b48c; --bone-faint:#96806a; + --bone:#f7ead0; --bone-dim:#d2b48c; + /* lifted from #96806a: 4.25:1 worst-case pre-fix, short of AA on the math alone. */ + --bone-faint:#a0886f; --gold:#e8a020; --gold-deep:#c07f14; --jade:#2bb3ad; --flare:#c81d3a; --merged:#5a9d5f; --display: "Didot", "Bodoni MT", "Playfair Display", Georgia, "Times New Roman", serif; --display-tracking: 0; - --orn-opacity: .17; + /* .17 was the densest overlap of any theme (64px tile, six large overlapping + circles) -- cut toward the enso/vine baseline that never got a legibility complaint. */ + --orn-opacity: .07; } /* Codex -- illuminated manuscript, parchment + rubrication + blackletter, its own deliberate world */ :root[data-theme="codex"] { @@ -98,21 +107,32 @@ :root[data-theme="andalus"] { --ground:#062a28; --ground-2:#0a3532; --ground-3:#0e403c; --hair:rgba(201,150,60,.18); --hair-2:rgba(201,150,60,.09); - --bone:#f0e6d2; --bone-dim:#c2b294; --bone-faint:#8d8267; + --bone:#f0e6d2; --bone-dim:#c2b294; + /* lifted from #8d8267: only 3.66:1 worst-case pre-fix -- the biggest gap of the four. */ + --bone-faint:#a3967a; --gold:#c9963c; --gold-deep:#a2761f; --jade:#2fb3a6; --flare:#c1633f; --merged:#5f9d6e; --display: "Avenir Next", "Century Gothic", "Futura", sans-serif; --display-tracking: .01em; - --orn-opacity: .17; + /* .17 on a 72px tile of bold rotated squares -- straight edges at many angles + compete hard with letterforms; cut toward the enso/vine baseline. */ + --orn-opacity: .07; } /* The Terminal -- now : CRT phosphor green on near-black, monospace everywhere */ :root[data-theme="terminal"] { --ground:#080b0a; --ground-2:#0d120f; --ground-3:#111814; --hair:rgba(80,220,120,.16); --hair-2:rgba(80,220,120,.08); - --bone:#c9d6c9; --bone-dim:#7f9a83; --bone-faint:#4f6654; + --bone:#c9d6c9; --bone-dim:#7f9a83; + /* lifted from #4f6654: only 2.98:1 worst-case pre-fix -- the token that started this + follow-up. The 5px->6x10 scan widening in #scan below still helps, but this value + now clears AA on the color math alone, independent of the halo. */ + --bone-faint:#6e8772; --gold:#48d06a; --gold-deep:#33a552; --jade:#59d0c0; --flare:#e0574a; --merged:#48d06a; --display: var(--mono); --display-tracking: -.02em; - --orn-opacity: .1; + /* .1 is already low, but the scan tile repeats every 5px -- close to a text + stroke's own width, so it reads as noise regardless of opacity. Widened the + tile below (see #scan) and trimmed opacity a little further to match. */ + --orn-opacity: .05; } * { box-sizing: border-box; } @@ -149,6 +169,16 @@ .orn-scan-a { fill: var(--gold); fill-opacity: calc(var(--orn-opacity) * .5); } .orn-scan-b { fill: var(--gold); fill-opacity: var(--orn-opacity); } + /* legibility backstop for the four densest motifs (hex6/jaali/star8/scan): a tight + ground-colored halo on the prose that has no card behind it (everything inside + .role/.chan/.callout/.manifest/.laws-sec already sits on an opaque --ground-2 and + doesn't need this). Lower --orn-opacity above does most of the work; this covers + the residual edges right at the glyph boundary where density alone won't. */ + :root:is([data-theme="arabic"], [data-theme="indian"], [data-theme="andalus"], [data-theme="terminal"]) + :is(.lede-h, h2, .section-lede, .inc .idx, .inc h3, .inc .refs, .inc p, .inc .law, .standdown .final, .sig, footer) { + text-shadow: 0 0 2px var(--ground), 0 0 4px var(--ground), 0 0 7px var(--ground); + } + /* prose self-caps at --measure; the section shell is wider so multi-column blocks breathe */ .wrap { max-width: 62rem; margin-inline: auto; padding-inline: var(--edge); } @@ -507,9 +537,10 @@ - - - + + + diff --git a/docs/the-fleet/night-two/index.html b/docs/the-fleet/night-two/index.html index 54b5b39..f829e42 100644 --- a/docs/the-fleet/night-two/index.html +++ b/docs/the-fleet/night-two/index.html @@ -56,11 +56,16 @@ :root[data-theme="arabic"] { --ground:#0d1233; --ground-2:#131a45; --ground-3:#182050; --hair:rgba(212,175,55,.18); --hair-2:rgba(212,175,55,.09); - --bone:#ece7d6; --bone-dim:#b9b8cb; --bone-faint:#7d7f9c; + --bone:#ece7d6; --bone-dim:#b9b8cb; + /* lifted from #7d7f9c: at .07 orn-opacity that still only cleared 4.24:1 worst-case + against the pattern's own color -- short of AA on the math alone, halo notwithstanding. */ + --bone-faint:#8688a3; --gold:#d4af37; --gold-deep:#a8862a; --jade:#4fb0c4; --flare:#c1523f; --merged:#6bab7d; --display: "Futura", "Century Gothic", "Avenir Next", "Segoe UI", sans-serif; --display-tracking: .02em; - --orn-opacity: .16; + /* .16 read as noise directly behind small prose (66px hex6 tile, high edge density); + cut toward the enso/vine baseline that never got a legibility complaint. */ + --orn-opacity: .07; } /* Japanese -- sumi-e minimalism, ma (negative space), washi ground, single vermillion seal */ :root[data-theme="japanese"] { @@ -77,11 +82,15 @@ :root[data-theme="indian"] { --ground:#2a0f14; --ground-2:#37151b; --ground-3:#421a21; --hair:rgba(232,160,32,.20); --hair-2:rgba(232,160,32,.1); - --bone:#f7ead0; --bone-dim:#d2b48c; --bone-faint:#96806a; + --bone:#f7ead0; --bone-dim:#d2b48c; + /* lifted from #96806a: 4.25:1 worst-case pre-fix, short of AA on the math alone. */ + --bone-faint:#a0886f; --gold:#e8a020; --gold-deep:#c07f14; --jade:#2bb3ad; --flare:#c81d3a; --merged:#5a9d5f; --display: "Didot", "Bodoni MT", "Playfair Display", Georgia, "Times New Roman", serif; --display-tracking: 0; - --orn-opacity: .17; + /* .17 was the densest overlap of any theme (64px tile, six large overlapping + circles) -- cut toward the enso/vine baseline that never got a legibility complaint. */ + --orn-opacity: .07; } /* Codex -- illuminated manuscript, parchment + rubrication + blackletter, its own deliberate world */ :root[data-theme="codex"] { @@ -98,21 +107,32 @@ :root[data-theme="andalus"] { --ground:#062a28; --ground-2:#0a3532; --ground-3:#0e403c; --hair:rgba(201,150,60,.18); --hair-2:rgba(201,150,60,.09); - --bone:#f0e6d2; --bone-dim:#c2b294; --bone-faint:#8d8267; + --bone:#f0e6d2; --bone-dim:#c2b294; + /* lifted from #8d8267: only 3.66:1 worst-case pre-fix -- the biggest gap of the four. */ + --bone-faint:#a3967a; --gold:#c9963c; --gold-deep:#a2761f; --jade:#2fb3a6; --flare:#c1633f; --merged:#5f9d6e; --display: "Avenir Next", "Century Gothic", "Futura", sans-serif; --display-tracking: .01em; - --orn-opacity: .17; + /* .17 on a 72px tile of bold rotated squares -- straight edges at many angles + compete hard with letterforms; cut toward the enso/vine baseline. */ + --orn-opacity: .07; } /* The Terminal -- now : CRT phosphor green on near-black, monospace everywhere */ :root[data-theme="terminal"] { --ground:#080b0a; --ground-2:#0d120f; --ground-3:#111814; --hair:rgba(80,220,120,.16); --hair-2:rgba(80,220,120,.08); - --bone:#c9d6c9; --bone-dim:#7f9a83; --bone-faint:#4f6654; + --bone:#c9d6c9; --bone-dim:#7f9a83; + /* lifted from #4f6654: only 2.98:1 worst-case pre-fix -- the token that started this + follow-up. The 5px->6x10 scan widening in #scan below still helps, but this value + now clears AA on the color math alone, independent of the halo. */ + --bone-faint:#6e8772; --gold:#48d06a; --gold-deep:#33a552; --jade:#59d0c0; --flare:#e0574a; --merged:#48d06a; --display: var(--mono); --display-tracking: -.02em; - --orn-opacity: .1; + /* .1 is already low, but the scan tile repeats every 5px -- close to a text + stroke's own width, so it reads as noise regardless of opacity. Widened the + tile below (see #scan) and trimmed opacity a little further to match. */ + --orn-opacity: .05; } * { box-sizing: border-box; } @@ -149,6 +169,16 @@ .orn-scan-a { fill: var(--gold); fill-opacity: calc(var(--orn-opacity) * .5); } .orn-scan-b { fill: var(--gold); fill-opacity: var(--orn-opacity); } + /* legibility backstop for the four densest motifs (hex6/jaali/star8/scan): a tight + ground-colored halo on the prose that has no card behind it (everything inside + .role/.chan/.callout/.manifest/.laws-sec already sits on an opaque --ground-2 and + doesn't need this). Lower --orn-opacity above does most of the work; this covers + the residual edges right at the glyph boundary where density alone won't. */ + :root:is([data-theme="arabic"], [data-theme="indian"], [data-theme="andalus"], [data-theme="terminal"]) + :is(.lede-h, h2, .section-lede, .inc .idx, .inc h3, .inc .refs, .inc p, .inc .law, .standdown .final, .sig, footer) { + text-shadow: 0 0 2px var(--ground), 0 0 4px var(--ground), 0 0 7px var(--ground); + } + /* prose self-caps at --measure; the section shell is wider so multi-column blocks breathe */ .wrap { max-width: 62rem; margin-inline: auto; padding-inline: var(--edge); } @@ -508,9 +538,10 @@ - - - + + +