Co-Branded Pages: give Fastigium a change of kind, not a bigger number
Once every member from Ascensus up could hold several pages, the Funnel Factory's differentiator became a count — the same quantity-not-kind flaw the upper tiers had. L6 now unlocks identity instead: a member's own name, monogram and accent colour on every page they build. Below Fastigium you have a page on the team site; at Fastigium it becomes yours. Three deliberate limits. NO IMAGE UPLOADS. A logo file uploaded by a member and served from rmcircle.team is an abuse surface — whatever they upload lives on our domain. The mark is a monogram generated from their brand name instead: real identity, nothing to moderate. Same reasoning that keeps Traffic Desk creative team-only. ACCENTS ARE A CURATED SET, not a colour picker. Every option is checked against the dark ground, so nobody can pick something that makes their own page unreadable and then wonder why it converts badly. THE DISCLAIMERS ARE NOT THEIRS TO BRAND. Branding replaces the header identity only; the footer — independent team resource, no income guaranteed, cryptocurrency risk — is rendered by us and cannot be removed or restyled. Co-branding, not white-labelling. Verified in the renderer. Branding is resolved against the LIVE contract level at render time, so a position that drops below Fastigium reverts to team identity on its own rather than keeping something it no longer holds. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+16
-1
@@ -164,6 +164,10 @@ function goldTail(text) {
|
||||
|
||||
function render(rec) {
|
||||
const a = ANGLES[rec.angle] || ANGLES.overview;
|
||||
// Co-branding is resolved by the caller and passed on the record, so this
|
||||
// module stays free of level logic. Absent = team identity, which is also
|
||||
// what a member who drops below L6 gets back automatically.
|
||||
const b = rec.brand || null;
|
||||
// The button and the QR go to DIFFERENT places on purpose.
|
||||
//
|
||||
// `?v=<angle>` is not a normal landing page — it is a SQUEEZE step that hides
|
||||
@@ -197,6 +201,14 @@ function render(rec) {
|
||||
// subhead — but NOT the story below, because centred long-form prose is
|
||||
// measurably harder to read: every line starts in a different place.
|
||||
'.pp .by,.pp h1,.pp .sub{text-align:center}' +
|
||||
// Co-branding (L6). The accent overrides --gold for THIS page only, so
|
||||
// every gold detail follows the member's colour without touching the
|
||||
// site stylesheet. The footer disclaimers are rendered below and keep
|
||||
// their own muted colour — branding never restyles the risk wording.
|
||||
(b ? ':root{--gold:' + b.accent + '}'
|
||||
+ '.brand .mono{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;'
|
||||
+ 'border-radius:50%;background:' + b.accentSoft + ';border:2px solid ' + b.accent + ';'
|
||||
+ 'color:' + b.accent + ';font-weight:900;font-size:15px;letter-spacing:.5px}' : '') +
|
||||
'.pp h1{font-size:clamp(30px,6vw,48px);line-height:1.06;letter-spacing:-.8px;margin:8px 0 12px;text-wrap:balance}' +
|
||||
'.pp h1 .gold{color:var(--gold)}' +
|
||||
'.pp .sub{color:#dbe6ef;font-size:clamp(19px,2.4vw,22px);line-height:1.55;margin:0 auto 24px;max-width:46ch}' +
|
||||
@@ -216,7 +228,10 @@ function render(rec) {
|
||||
'.pp .qr svg{width:100%;height:100%}' +
|
||||
'.pp .foot{margin-top:26px;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted);line-height:1.6;text-align:center}' +
|
||||
'</style></head><body>' +
|
||||
'<header class="wrap nav"><a class="brand" href="/"><img class="brand-mark" src="/logo.jpg" alt="The RM Circle" width="42" height="42"><span><span>RM Circle</span><small>A personal invitation</small></span></a></header>' +
|
||||
(b
|
||||
? '<header class="wrap nav"><span class="brand"><span class="mono">' + esc(b.monogram) + '</span>'
|
||||
+ '<span><span>' + esc(b.brandName) + '</span><small>' + esc(b.tagline || 'A personal invitation') + '</small></span></span></header>'
|
||||
: '<header class="wrap nav"><a class="brand" href="/"><img class="brand-mark" src="/logo.jpg" alt="The RM Circle" width="42" height="42"><span><span>RM Circle</span><small>A personal invitation</small></span></a></header>') +
|
||||
'<main class="pp">' +
|
||||
'<div class="by">Shared by <b>' + who + '</b> · Member #' + esc(rec.id) + '</div>' +
|
||||
'<h1>' + goldTail(c.headline || '') + '</h1>' +
|
||||
|
||||
Reference in New Issue
Block a user