TEAM SWAGTRON — creator giveaway campaign
Campaign
The campaign design work for the TEAM SWAGTRON creator giveaway. Two voices share one token set; this is the second — VISCERAL · KINETIC · RAW, Burton late-90s poster energy, creator and giveaway pages only. The tokens never change between the voices. Scale, crop, density and imagery do.
COMPLIANT-pending-counsel. Nothing on this page is certified. All sweepstakes and consent language is draft pending counsel review. Counsel placeholders stay bracketed — [END DATE], [OFFICIAL-RULES-URL], [RESPONSE WINDOW] and the rest are unfilled by design and must not be guessed. Rules and eligibility language here is not legal advice.
- Roster count
- Addenda A–H
- Sequential model
- Flow states
- Comparison module
- Email modules
- Codes & permalinks
- Open gates
The roster count is unreconciled — 7 or 8
CANNOT-VERIFY: whether the creator roster is 7 or 8. Two dated sources on the same day disagree and neither supersedes the other in writing. This page renders both rather than silently picking one.
Seven — the vault flows master
(giveaway-flows-master-2026-08-29.md, revised by LAR-1423 at 14:44) is
unambiguous: "seven separate UrbanCruise giveaways, one per creator page, one winner each",
with Austin Mollno as the pilot. Its winners-page opener is
"[n] of 7 TEAM SWAGTRON creator giveaway winners have been announced so far." Ground
truth was re-read live from the authenticated playbook, subtitled "Seven creator giveaways ·
one operating guide".
Eight — the later design verification (LAR-1437 at 16:47) records the
applied build rendering a [TOTAL=8] prop and an eight-name roster carrying
per-creator codes: DYLONN, HECTOR, REDSHOGO, REX, TALLON, TSG, TYLER, WOLFIE
— plus a separate TBA card. Austin Mollno does not appear in that eight.
Unblock owner: the operator / campaign owner. The reconciliation needed is
whether Austin is a pilot outside the eight-name roster (making the total 9
surfaces, 8 announced), whether the roster was expanded from 7 to 8 after LAR-1423, or
whether the eight names are creator pages and seven are giveaways. Until
that is answered in writing, do not hard-set a total in any shipping
copy — the design already renders it as a [TOTAL] prop, which is the
correct hedge.
Addenda A–H
The campaign design was assembled as a sequence of paste-ready addenda, each produced by a deterministic audit against a named ground truth.
| Addendum | Scope | Source |
|---|---|---|
| A | The entry flow — the giveaway entry surface and its capture. A standalone newsletter block is explicitly excluded because it would compete with that capture. | LAR-1409 |
| B | Second-wave element ports, including the lookbook / shop-the-look port and the hover-to-colour card revision. The lookbook port depends on the hotspot keyframe, which has no colour specified. | LAR-1409 → LAR-1415 |
| C | Native motion + blocks. The stock Concept components we already own but had never written down — 21 register entries covering 29 distinct native items. Four items in § 0 are corrections, not additions. | LAR-1415 |
| D–F | Not sourced on this board. No comment on LAR-1409 / 1415 / 1423 / 1427 / 1437 names an Addendum D, E or F. They exist, if at all, only inside the Claude Design project turns. | — |
| G | The sequential giveaway model. Converts every surface from a single simultaneous multi-winner event to per-creator cycles run one at a time. G-0 … G-8 below. | LAR-1423 |
| H | Flow ↔ design-system conformance fixes. 16 sequential fixes, 6 token-conformance fixes, 4 email fixes, 2 flow-completeness fixes, 2 ViralSweep fixes. | LAR-1427 |
CANNOT-VERIFY: the scope of Addenda D, E and F. The issue brief asks for an "Addenda A–H summary", but a scan of every completion comment on LAR-1409, 1415, 1423, 1427 and 1437 returns no mention of a D, E or F. They are listed above as not-sourced rather than invented.
The sequential model — Addendum G
G-0 · LAW. The campaign is separate UrbanCruise giveaways — one per creator page, one winner each — opened, drawn, verified, and announced SEQUENTIALLY. Each is its own ViralSweep campaign with its own entry period, draw, verification, and per-winner W-9/1099 filing (ARV over $600, via the managed-services vendor). No surface, state, copy line, flow card, or calendar beat may assert a single simultaneous multi-winner event. There is no "the N are in" moment.
| Rule | What it fixes |
|---|---|
| G-1 | Entry module scoped per creator giveaway. Each creator page's module reflects only that creator's giveaway. Four states, replacing the three-state global model. |
| G-2 | Hub roster per-card status chip. Each creator card carries its own chip — never one global campaign state. The winner-label styling (ink on #ffddbf, 13.9:1) is reused per-card when that card reaches WINNER ANNOUNCED. |
| G-3 | Winners page is a single ROLLING roster. One canonical page that fills one winner at a time as each cycle completes. Cycles not yet drawn show no card and no name. Transparency note: "Each winner was selected at random from that giveaway's eligible entries and verified under its Official Rules." |
| G-4 | Countdown binds to the active giveaway only, and is removed entirely after that giveaway's close. No hub-level global countdown. No invented urgency. |
| G-5 | Per-state filing / eligibility note slot. Every module state carries a COMPLIANT-pending-counsel slot for that creator's state-by-state eligibility, entry period, and W-9/1099 handling. Never store tax identity in Shopify. |
| G-6 | 2h-6 revision confirmed correct. "2h-7" in the v2 prompt was artboard-numbering drift — 2h-7 remains the EMAIL TOUCHPOINT spec card and is unchanged. |
| G-7 | Texture slot law. Reserve a background-texture layer on the hub and each creator page — subtle, token-compatible, sits behind content, never carries load-bearing text, never blocks or gates anything. An empty reserved layer until the operator supplies packs. |
| G-8 | Imagery bindings stay swappable. Plate bindings remain swappable placeholders; the operator hand-picks final images. Do not hard-bake picks. |
Winner lifecycle — per creator cycle
"D0" is that creator's own close date, not a shared one. Other creator pages are unaffected.
| Relative time | State and action |
|---|---|
| D-3 to D-1 | Last-chance messages for THIS creator's giveaway; that page's counter uses its own actual [END DATE/TIME]. |
| D0 close | Freeze THIS creator's entries per its Official Rules; the page publishes "Entries are closed. Drawing and verification are next." Do not name anyone. |
| D0 → draw | Export and audit this cycle's eligible entries, account for permitted alternate (AMOE) entry methods, lock the anti-fraud and disqualification log. ViralSweep random draw creates this cycle's candidate. No public content. |
| [DRAW DATE] | Contact this cycle's candidate privately. Give [RESPONSE WINDOW] and required affidavit / W-9 / eligibility instructions. Alternates ranked for this cycle only. |
| +24 / +48h | Chases only to this cycle's non-responder. If failed, declined or expired: record the reason and activate this cycle's next ranked alternate. |
| After verified | Obtain release and approved name usage; add ONE card to the rolling roster; announce this creator's winner. Do not wait for the other cycles. |
| +1 to +21d | Non-winner closure for this cycle's entrants, fulfillment updates, this winner's story beat, then per-cycle nurture handoff. |
Never post a name, tag, DM, or ship before verification and approved release. Neither the candidate email nor the SMS fallback says "you are definitely a winner" until all eligibility is validated. On failure, mark the disposition, preserve the audit record, and move to the next ranked candidate.
Entry and popup flow states
The four entry-module states (G-1)
- 1 · UPCOMING
Teaser copy for this creator's giveaway. "Opens [START DATE]." No form yet.
- 2 · OPEN
Entry form + Rules link + three separate consents. Countdown bound to THIS giveaway's [END DATE].
- 3 · CLOSED / VERIFYING
Form disabled. Headline "ENTRIES ARE CLOSED. WE'RE VERIFYING THE WINNER." Body: "We'll announce the verified winner after [DRAW DATE]. No reply or purchase is required to remain eligible." No countdown after the actual close.
- 4 · WINNER ANNOUNCED
Form replaced with "THE WINNER IS IN" and CTA "Meet the winner". Keep Rules, winner-list process, privacy and support links.
Hub roster per-card status chips (G-2)
Each creator card carries its own chip — never one global campaign state.
- UPCOMING
- LIVE NOW
- VERIFYING
- WINNER ANNOUNCED
- TBA — no giveaway module until announced
Consent — three unbundled decisions
Entry, email consent, and SMS consent are three distinct, optional choices. No box is prechecked. No marketing permission gates entry. A phone number alone never qualifies a person for SMS. Every SMS carries "Reply STOP to opt out". Verified in the build: consent never pre-checked, never bundled, never gating.
Verification and embed states
| State | Behaviour | Status |
|---|---|---|
| 2h-1 errored | Per-field validation. Message tied to its field. Form never clears; focus moves to the first errored field. Error token pair #be123c on #fff1f2. | designed |
| 2h-2 pending | Email double opt-in unverified. "Resend the email" + "Wrong email? Edit it". | designed |
| 2h-2 expired | Verification link expired at 48h → resend path. Added by H-FLW-01. | designed (v5) |
| 2h-4 unconfirmed | SMS double opt-in sent, no YES received → re-prompt / lapse. No marketing before confirmation. Added by H-FLW-02. | designed (v5) |
| 2h-6 closed | Embed closed state; hands off into verifying → announced. | designed |
| 2h-7 | Email touchpoint spec card — annotation level. Unchanged; not a flow state (G-6). | annotation |
| ViralSweep loading | Embed-scoped loading state, not the generic image-grid shimmer. Added by H-VS-02. | designed (v5) |
| ViralSweep fallback | Widget-fails-to-load fallback. Added by H-VS-02. | designed (v5) |
| Anti-abuse | CAPTCHA, one-entry-per-person / duplicate detection, IP throttling named in the customization zone. Added by H-VS-01. | designed (v5) |
Popup states 2p-1 … 2p-6
All six present and verified in the applied build, and correctly absent on the TBA card — a creator with no announced giveaway carries no popup and no code module.
Structural dependency. The popup is built from
blocks/popup-link with nested blocks/accordion +
blocks/_accordion-row — the cleanest native way to hang a rules / FAQ / T&C
modal off the giveaway CTA without custom Liquid. It must be registered in
sections/overlay-group.json or it cannot be added in the theme editor at
all. The driving accordion-details opens height
summaryHeight → scrollHeight in 0.25s ease, then fades content in over 0.15s at
a −0.1s offset; close reverses.
Comparison-module spec
A semantic <table>, not a grid of divs. Every flag below was verified
present in the applied build (LAR-1437 § 4).
| Requirement | Rule |
|---|---|
| Contradiction flag | Where a competitor's own published figures disagree with each other, the cell carries a CONTRADICT flag rather than a silently-chosen number. Applied to the Heybike row. |
| Configurable-class flag | Where a competitor's class rating is user-configurable rather than fixed, say so — "configurable Class 3". Applied to the Vorsa row. |
| Not-published cells | A figure the competitor does not publish renders as "not published". It never renders as a blank, a dash, or an inferred value. NEVER INVENT CONTENT. |
| Dated re-verify disclosure | The module carries a dated re-verify-at-build note. Competitor specs move; a comparison table is a perishable artifact and must say when it was read. |
| Semantic table | Real <table> markup with header cells. <comparison-highlight> is the theme's own row-highlight control. |
| Our own figures | 48V 15.6Ah (about 749 Wh) · 60+ miles pedal-assist · aluminium alloy frame · Class 3 28 MPH ceiling · 330 lb payload · UL 2849 compliant e-bike system, UL 2271 compliant battery. |
Product guardrail — three banned figures. Do not state 70 miles, do not state 22Ah, and never use the word "certified" — the sanctioned word is "compliant". All three verified at zero occurrences across the build. The single sanctioned legality line is "Class 3 rules vary by state and trail; check your local riding rules before use." — never "legal enough to ride without worry".
Prices and specs are not owned by this design system. Verify against
product-specs-canonical.md (specs) and pricing-sku-canonical.md
(prices) before anything ships. Those files win every conflict.
The email module set
Email is the fourth surface and the one that cannot resolve the token layer.
It is sent from Klaviyo as custom-coded HTML recompiled through MJML before send: 600px single
column, no JS, no hover, and inline literal values, because no email client resolves
var(). That makes email the only place where a token value is transcribed
rather than referenced — and therefore the only place where a stale token silently survives a
token correction. Re-check every email literal against tokens.css after
any token change.
Status: specified, not built. The emails exist as copy cards plus annotation-level touchpoints (2h-7), every one flagged [KLAVIYO BUILD — separate track]. Because no email module is rendered, the mapping's module → section rules cannot be conformed against a build. H-EML-01 is the instruction to build them as artboards.
| Module | Concept section | Notes |
|---|---|---|
| Preheader strip | announcement-bar | — |
| Logo bar | header | Wordmark only. SWAGTRON is always all caps — the only all-caps element in the system. |
| Hero | image-with-text-overlay | Live heading and CTA over an image cell. VML fallback required. |
| Statement | highlight-text | #ffddbf marker span. |
| Product grid | featured-collection | 2-up desktop / 1-up at ≤600px. |
| Single product | featured-product | — |
| Personal codes | — (no section) | Klaviyo profile props in #ffddbf highlight capsules. Carried as a flagged mapping exception, not faked (H-EML-03). |
| Trust strip | multicolumn-with-icons | 28px hosted PNG icons — icons are brand, drawn for real, never grey plates. |
| Editorial teaser | blog-posts | — |
| CTA block | email-signup | Inverted. |
| Footer | footer | Legally required and currently unbuilt. {% unsubscribe %} + {% manage_preferences %} + physical address. ink-72, 12px minimum, never hidden (H-EML-02). |
Three things cannot cross the channel and are flagged as exceptions rather than faked: the countdown, the scrolling marquee, and the scribble marks. In-email titles, headers and banners take Title Case; body stays sentence case (H-EML-04).
Campaign disclosure on every marketing message (counsel to approve): NO PURCHASE NECESSARY. Ends [END DATE]. Open to eligible residents [AGE/GEOGRAPHY]. Void where prohibited. Rules: [OFFICIAL-RULES-URL]. Full sender / unsubscribe / address content goes in the production footer; the compact version is for SMS only where counsel approves it.
Code module and permalink laws
The two-code model
Every creator carries a primary code plus an -X universal code.
The -X variant is universal across the catalogue; the primary is the creator's
own. Verified applied across the full roster.
- DYLONN-X
- HECTOR-X
- REDSHOGO-X
- REX-X
- TALLON-X
- TSG-X
- TYLER-X
- WOLFIE-X
The TBA card carries no code module and no popup. A creator with no announced giveaway gets no giveaway surface at all — verified: "NOT rendered on the TBA", "NO giveaway module until announced".
Live discount configuration
Live as of 2026-08-29. Public offer data.
| Product | Offer price | Note |
|---|---|---|
| UrbanCruise | $999.99 | MSRP $1,499.99 per pricing-sku-canonical.md (2026-07-31 live cart check). Max saving $500 — confirm MSRP before hard-setting the "up to $500 off" headline. |
| GlideX | $329.99 | — |
| GlideX Pro | $379.99 | — |
| Shipping | Free ground | Free-shipping minimum now $300. |
Permalink law
Product CTAs use the tokenized cart-permalink pattern, never a raw naked URL:
https://swagtron.com/discount/{CODE}?redirect=/cart/{VARIANT}
Entry CTAs are NEVER discount-linked and never land in a cart. This is the hard separation: a purchase must never look like it improves giveaway odds, and the entry path must never route through checkout. Verified applied — the only literal URLs anywhere in the build are competitor comparison-table source citations, not buttons.
Copy mechanics
Write real language, never lorem. Banned from all email, SMS and social copy:
"vibes", "for any adventure",
"all-day comfort", superlative "pinnacle" adjectives, and
?!?! punctuation. Verified at zero occurrences — the only hit in
the build is the rule-definition card listing the prohibitions themselves.
Operator and counsel gates — must resolve before live
- Roster count — 7 or 8, and where Austin Mollno sits. See above.
- Official Rules — eligible geography, age, dates / times / time zone, ARV, alternate free-entry method, referral mechanics and caps, disqualification and fraud rules, winner-list process, taxes, releases, shipping restrictions, exact draw and response window.
- Prize decision — individual UrbanCruise units, exact ARV, delivery and assembly, insurance, tax paperwork, and what happens if inventory changes.
- Consent legal review — full email footer and address, SMS terms / privacy / disclosure, mobile program name and frequency, regions excluded, retention, and whether any entry-administration email is treated as transactional.
- ViralSweep configuration — random-draw method, verification fields, mail-in / alternate method reconciliation, native-notification decision, export and audit owner.
- Winner publicity — written release, display-name convention, city precision, minors policy, photo/video usage, story compensation and rights, approvals.
- Consolation offer — whether one exists; amount, eligibility, expiry and margin approval. It must not imply a prize or influence odds.
- Page ownership — who changes the entry module at close / draw / reveal, who publishes the roster, and a fraud / escalation contact.
buttons_hover— currentlystandard. The "invert on hover" rule is only reachable if this is right. Confirm before any button spec is signed off.
CANNOT-VERIFY: that the applied Claude Design build currently on
159fe8a1… matches what this page describes. This page is transcribed from the
LAR-1423 / LAR-1427 / LAR-1437 completion comments, which were accurate at their read times
on 2026-08-29. Two annotation-level fixes (FIX-1 banned-neutral literals in prose, FIX-2 the
ASR-provenance bracket on the Austin Q2 quote) and the 18-bracket
[GATED] discount lift were delegated to LAR-1439 and their
application has not been re-verified here.