site/deviant/brand/social/twitter-header-deviation-1500x500.svg
Local Dev 3879b05dfb Sweep: mobile Ariadne updates, Deviant brand + sites, Hephaestus bootstrap, snappymail
Broad-scope commit sweeping in work from parallel sessions plus this session's
dev-only utilities. No single unifying theme — this is the "commit everything
that's ready" pass. Grouped by area below.

AriadneResolver / mobile
* Small updates to BchFetcher, Bns, MainActivity, AriadneVpnService, and the
  Android manifest — from a parallel mobile-resolver session.
* AriadneResolver/mobile/webpreview/ — new local dev webview (index.html +
  server.mjs) for iterating on the mobile UI without a device.

Email / SnappyMail
* Email/snappymail-plugin/silentmode-addresses — new SnappyMail plugin
  (README, CSS, PHP entry, JS) for surfacing @silentmode.st address
  management inside the webmail UI.

Hephaestus (Forgejo + auth-proxy)
* auth-proxy/src/oidc.ts + docker-compose.yml updates.
* scripts/bootstrap-auth.sh — idempotent script that registers the wallet
  auth-proxy as Forgejo's OIDC provider after `docker compose up -d`. All
  secrets read from .env — no literals in the script.

TheseusNavigator / dev tools
* dev/list-tlds.mjs — enumerate every registered BNS name grouped by TLD via
  our own indexer.
* dev/show-tlds-bch.mjs — dump the full records payload of the legacy
  tlds.bch name (kept as a diagnostic for the list-in-one-NFT era).

Deviant sites + brand
* site/deviant/ — new microsites (anthemus, potidaea, brand, mindmap, main
  index) plus the full brand kit under site/deviant/brand/ (logos, icons,
  palette, social exports as SVG source + PNG renders).
* site-sirius-x/portal.html — updates.

Coordination
* _coordination/sessions/mobile-resolver.md — parallel-session notes.

Deliberately excluded from this commit:
* scratchpad/ — this session's temp drafts (Sia doc mockups, tlds UPD payloads).
* TheseusNavigator/_prev/ — ~372 MB of prior release binaries; belongs in
  a separate artefacts store, not the git tree. Add to .gitignore next pass.
2026-08-30 10:38:49 +02:00

85 lines
4.7 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" width="1500" height="500" viewBox="0 0 1500 500" role="img" aria-label="Deviant — A response to a default trajectory">
<defs>
<style type="text/css">
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&amp;family=DM+Sans:wght@400;500;600;700&amp;family=JetBrains+Mono:wght@500&amp;display=swap');
.display { font-family: 'Fraunces', Georgia, serif; }
.body { font-family: 'DM Sans', -apple-system, 'Segoe UI', Roboto, sans-serif; }
.mono { font-family: 'JetBrains Mono', ui-monospace, monospace; }
</style>
<radialGradient id="sky" cx="28%" cy="30%" r="92%">
<stop offset="0%" stop-color="#0c1220"/>
<stop offset="55%" stop-color="#070d1a"/>
<stop offset="100%" stop-color="#02040a"/>
</radialGradient>
<filter id="acid-glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="4" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
<filter id="node-glow" x="-100%" y="-100%" width="300%" height="300%">
<feGaussianBlur stdDeviation="10" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Same avatar-safe policy: keep critical copy right of x≈340. -->
<rect width="1500" height="500" fill="url(#sky)"/>
<!-- Sparse starfield -->
<g fill="#ffffff">
<circle cx="220" cy="80" r="1.6" opacity="0.5"/>
<circle cx="380" cy="120" r="1.2" opacity="0.35"/>
<circle cx="560" cy="60" r="1.4" opacity="0.4"/>
<circle cx="740" cy="90" r="1.6" opacity="0.45"/>
<circle cx="920" cy="60" r="1.3" opacity="0.4"/>
<circle cx="1100" cy="90" r="1.5" opacity="0.45"/>
<circle cx="1280" cy="60" r="1.7" opacity="0.5"/>
<circle cx="1420" cy="110" r="1.4" opacity="0.4"/>
<circle cx="480" cy="440" r="1.3" opacity="0.35"/>
<circle cx="700" cy="460" r="1.5" opacity="0.4"/>
<circle cx="920" cy="440" r="1.6" opacity="0.45"/>
<circle cx="1140" cy="460" r="1.2" opacity="0.35"/>
<circle cx="1360" cy="440" r="1.5" opacity="0.4"/>
</g>
<!-- Copy: wordmark + tagline (left, past avatar overlap) -->
<text class="display" x="360" y="220" font-weight="500" font-size="120" fill="#f1f4fa" letter-spacing="-2">Deviant</text>
<text class="body" x="362" y="270" font-weight="600" font-size="24" fill="#d6ff3d" letter-spacing="5">POWER YOUR IDEAS.</text>
<text class="display" x="360" y="340" font-style="italic" font-weight="400" font-size="26" fill="#b8c2d4">A response to a default trajectory.</text>
<!-- Deviation chart: exact geometry from the site hero (viewBox 380×240),
transformed to sit on the right side of the banner. Scale 1.85x places it
from roughly x=730..1420, y=115..400. -->
<g transform="translate(708 34) scale(1.85)">
<defs>
<!-- Visible curves: exact hero geometry from deviant_website.html:679-681 -->
<path id="path-default" d="M 12 70 C 110 96, 150 120, 200 138 C 255 158, 305 176, 368 198"/>
<path id="path-deviation" d="M 200 138 C 250 120, 300 84, 368 44"/>
<!-- Text-baseline offsets: parallel copies shifted perpendicular to each
curve so labels sit BELOW the default (down-drift) and ABOVE the
deviation (up-lift). Same control-point shape, y shifted uniformly. -->
<path id="path-default-below" d="M 12 86 C 110 112, 150 136, 200 154 C 255 174, 305 192, 368 214"/>
<path id="path-deviation-above" d="M 200 122 C 250 104, 300 68, 368 28"/>
</defs>
<!-- Default trajectory: dashed, muted, curves down-right -->
<use href="#path-default" stroke="#6a7488" stroke-width="1.8" fill="none" opacity="0.75"
stroke-dasharray="4 8" stroke-linecap="round"/>
<!-- Branch dot at the divergence -->
<circle cx="200" cy="138" r="4" fill="#6a7488"/>
<!-- Deviation: solid, acid, curves up-right -->
<use href="#path-deviation" stroke="#d6ff3d" stroke-width="3" fill="none" stroke-linecap="round"
filter="url(#acid-glow)"/>
<!-- Terminal acid node -->
<circle cx="368" cy="44" r="6" fill="#d6ff3d" filter="url(#node-glow)"/>
<!-- Labels run parallel to their respective curves via textPath. Start offsets
chosen so labels sit near the mid/end of each curve. -->
<text class="mono" font-size="10" fill="#6a7488" letter-spacing="2.5">
<textPath href="#path-default-below" startOffset="4%">DEFAULT TRAJECTORY</textPath>
</text>
<text class="mono" font-size="10" fill="#d6ff3d" letter-spacing="2.5">
<textPath href="#path-deviation-above" startOffset="30%">DEVIATION</textPath>
</text>
</g>
</svg>