Design handoff
PartyRiff — design handoff (master brief, 5 Sep 2026)
Status: design + interactive prototypes. Production frontend, backend, auth, payments, networking and deployment follow review. Everything marked [sim] is simulated in the browser.
What was kept, changed, removed, deferred
Kept: purple/pink identity, avatars (your 89 looks in four packs), classic game names, central prompt, FX vocabulary, room settings, host-covers-room idea.
Changed: shared stage + phones is first-class (Connected, Alibi); quick start = group size · device · heat, Party Mix recommended first; unlimited neutral Pass; one heat vocabulary (Chill / Spicy / Wild / After Dark) with per-card ratings; result-specific moments with a signature gate; three identities (guest / member / paying host) and Friends; commerce as three annotated alternatives (monthly / packs / 48h pass); All-looks avatar default; text-field notches match containers; disabled primary CTAs replaced by readable dim + inline validation.
Removed: fake social proof, Chaos Dice, skip counters and "chickening out" copy, drink-based rankings and "room energy", credits, overlapping Plus/Pro plans, full-screen flash, victory FX on navigation, side-panel Imposter topic, harmful dares.
Deferred (P2): Story/Sketch Relay, Bluff Lab, Group Chat Court, Who Said It, photo games, Club Emergency, shared TV display, further locales, native shells, subscriptions beyond the annotated variant.
Screens
| File | Route | Role |
|---|---|---|
PartyPulse Landing.dc.html | / | Proposition, See-a-round demo, Party Mix, game families (counts · duration · device · energy · heat), device explanation, free vs host access, FAQ |
PartyPulse Play.dc.html | /play | Shared-device room: Quick start → 10 games, Party Mix strip + transitions + finale, settings sheet, empty/exhausted/set-end states |
PartyPulse Connected.dc.html | /connect | Stage + phone + phone-host: lobby (QR/code/lock/min), Read the Room (canonical), Same Brain / Dead Heat, set result, finale, save/host-next/continue; 10 recovery scenarios; account-required comparison variant |
PartyPulse Alibi.dc.html | /connect/alibi | Connected creative writing: write → anonymous ballot → author reveal; blank/dupe/late/left/too-few |
PartyPulse Account.dc.html | /account | Identities, Profile (username, friend code, profile QR), Friends (lookup, requests, invite, remove, block), Free & access + 3 offer variants + checkout states |
PartyPulse FX Kit.dc.html | /moments | Moment Studio: L0–L3, six hero moments (ordinary/highlight/signature, storyboard, contract), coordination rules, vocabulary, Pulse Rush, backlog |
PPNav.dc.html | — | Shared top bar (M3 TopAppBar pattern, 48dp targets, hamburger < 1024) |
pp-data.js | — | Avatars, packs, heat ladder, offers, entitlements — the backend contract |
pp-fx.js | — | Sound/particles/motion engine with motion pref, hard mute, cancelAll, signature gate |
Content — 24 edited originals (prototype set, per-card metadata)
Metadata: { family, heat 1–4, topics[disclosure|dating|roast|performance|media], players, device, locale:en }. Every card is rated on its own; the category name never decides suitability.
| # | Family · heat | Card |
|---|---|---|
| 1 | Most Likely · Chill | Who could turn a two-minute story into a full documentary? |
| 2 | WYR · Chill | Always arrive ten minutes early, or always have the perfect excuse for being late? |
| 3 | NHIE · Chill | Never have I ever rehearsed a conversation that never happened. |
| 4 | Act It Out · Chill | A weather presenter reporting on the contents of your fridge. |
| 5 | Alibi · Chill | You arrived at your own birthday party dressed for the wrong theme. Your excuse? |
| 6 | Read the Room · Chill | A group holiday needs a minute-by-minute plan: comforting or exhausting? |
| 7 | Discussion · Spicy | Which harmless habit makes someone instantly more attractive to you? |
| 8 | Read the Room · Spicy | A first date sends a voice note instead of a text: charming or too much? |
| 9 | Hot Seat · Spicy | What tiny gesture would make you want a second date? |
| 10 | WYR · Spicy | Your date remembers every detail, or makes you laugh at every awkward moment? |
| 11 | NHIE · Spicy | Never have I ever reread a message because I liked the person who sent it. |
| 12 | Alibi · Spicy | Your dating-profile hobby is "competitive relaxing." Defend it in one sentence. |
| 13 | Performance · Wild | Give a 20-second acceptance speech for your most ridiculous dating decision. |
| 14 | Dare · Wild | Pitch your worst habit as the main attraction in a dating advert. |
| 15 | Hot Seat · Wild | What dating rule have you confidently given friends and then broken yourself? |
| 16 | Group Chat Court · Wild | Defend the fictional charge of sending "on my way" before getting dressed. |
| 17 | Performance · Wild | Deliver a dramatic breakup speech to your least favourite household chore. |
| 18 | Truth · Wild | What romantic grand gesture would impress you and embarrass you equally? |
| 19 | Voluntary truth · After Dark | What turns you on that nobody here would guess? |
| 20 | Discussion · After Dark | What helps you feel comfortable talking about what you want intimately? |
| 21 | Hot Seat · After Dark | Is there an intimate fantasy you'd enjoy discussing, with no expectation of acting on it? |
| 22 | Discussion · After Dark | What is something people assume is sexy that does nothing for you? |
| 23 | Voluntary truth · After Dark | When have you changed your mind about what you find sexually attractive? |
| 24 | Discussion · After Dark | What is an intimate boundary you wish people communicated more clearly? |
Rules: read aloud before shipping; no ex-texting filler, gender/relationship assumptions, humiliating refusal, outsider contact, posting from another account. Every card needs an equally polished lower-exposure alternative. States per card: Favorite, Pass (neutral, unlimited), Report (reason chips, hides for this party), seen / skipped / reported tracked per deck cycle; exhaustion → explicit reshuffle only. Custom cards private to the party with preview / edit / delete / test.
Game contracts (prototype rules — not validated balance)
| Game | Players (rec) | Device | Phases | Scoring | Ties / edge |
|---|---|---|---|---|---|
| Never Have I Ever | 3–12 (4–8) | one screen | play → done | optional tally, +1 voluntary | no confession leaderboard |
| Sip or Skip | 3–12 | one screen | play → done | outcome only | drinks never scored |
| Most Likely To | 4–12 | one screen (secret pass) / phones | pass → vote → ready → revealed | +1 top | ties both score; no self-vote |
| Would You Rather | 3–12 | one screen / phones | pass → vote → ready → revealed | none (discussion) | prediction = separate variant |
| Read the Room (connected, canonical) | 4–8 | stage + phones | predict+pick (private, editable) → lock → reveal | +1 correct majority/tie prediction | pass excluded; <4 valid → cancel |
| Read the Room (shared) | 4–12 | one screen | predict exact split → picks → reveal | +2 exact / +1 within one | labelled variant; Nailed It only here |
| Imposter | 4–8 | phones / concealable handoff | brief → discuss (60s) → vote → revealed | caught: +1 correct voters; escaped/split: +3 imposter | accidental reveal → restart, no victory |
| Truth or Dare | 3–10 | one screen | choose → play (30s) → done | Truth +1 / Dare +2 | Pass free; one redraw |
| Dare Deck | 3–10 | one screen | play → done | +2 | variant of ToD |
| Hot Seat | 3–10 | one screen | 3 questions per volunteer | +1 each | pass any; fair rotation |
| Act It Out | 4–12 | one screen | teams → leg A (45s) → leg B → result | +1 per correct; winning team +1 | tie stays unless both accept tiebreak |
| Alibi Club | 4–8 | phones only | write → anonymous vote → reveal | +1 per vote to entry | tied highest share; <3 entries cancel |
| Pulse Rush | 4–12 | one screen | invite → teams → 2 × 30s → result → back to Mix | +1 per correct | no multipliers; quieter finale alternative |
Public / private surfaces
- Stage: names, joined/ready/submitted/away, prompt, phase, revealed result, per-game scores.
- Phone: own pick / prediction / role / text, submission state, "look up" cue.
- Phone host: stage controls only; never answers.
- Nothing private is written to history or recap before
revealed. Identical private confirmation for every role.
Identity & commerce
- Guest seat (room-scoped id) · Free member (email, favorites, look, username, friends) · Paying host (entitlement). Nickname ≠ username ≠ room code ≠ room QR ≠ profile QR.
- Host access covers the active room; guests never pay. Offers evaluated separately: monthly $4.99 ($59.88/yr stated), permanent packs $2.99–4.99, 48h pass $7.99. Purchase states: confirm / declined / pending / success / restore, returning to the same party.
- Retained data:
pp.room(crew, name, heat, drinks, occasion),pp.user(name, email, owned[], av),pp.motion. Never answers, ballots, passes, drink counts.
Moments — contracts
Level 0 response 80–180ms · 1 result 200–500ms · 2 highlight 0.8–1.5s · 3 signature 1.5–2.5s. Triggers: Same Brain (≥4, all submitted, 0 passes/away, identical), Plot Twist / Caught (resolved Imposter outcome; split → "Imposter escapes"), Crown Steal (new sole leader after completed scored round; not first score), On a Roll (3 consecutive correct predictions, disclosed), Pulse Rush ready (3 distinct completed sets), Night Finale (completion or End). One signature per set, ~60s spacing else badge; cancel on context change; no leaks; fairness outside animation; shake 2–4px/120–180ms on decorative frames only; no strobe; hard mute; reduced motion = equal composition.
Recovery inventory (designed in Connected / Alibi)
Guest refresh (same seat by id) · wrong/expired code · locked room · duplicate/long name · late join (spectator this round) · missing input (announced timeout/abstain) · disconnected (away, not a vote) · host loss (pause, host return default) · double tap (one award) · stale event after round change (ignored) · role on resume (own only) · heat change at safe boundary · no compatible cards (explicit) · exhausted deck (reshuffle) · insufficient players/devices (compatible alternative) · player leaves (per-game rule) · checkout cancelled/pending (return to party) · share cancelled · End (resolve then recap).
Needs real-group testing
Timings (30/45/60s), counts (4–8 vs 9–12), prices and model, whether WYR needs any scoring, repeated exposure to signatures, reduced-motion parity, Quick start median (target ~30s; public copy "Start in moments").
Everything marked [sim] in the prototypes is simulated in the browser.