All 9 placements captured on the iPhone 17 Pro simulator by the committed PaywallScreenshotTests harness — 9/9 passed. Sheet sizing is now per-placement (commit 75af88fe): full decision moments take the whole screen; contextual gates open shorter (still draggable to full, content scrolls, sticky CTA always visible).
Final onboarding step (+ free exit)
Settings → Plan & Billing
Tap a locked episode / upgrade banner
At show-limit but minutes left → new show
Tap the attach-document button
Pick daily/weekdays
(no trigger yet — needs a source-monitoring feature)
Chat Create send, out of credits/minutes
Tap Remix
default offering for prices. Enforcement stays OFF — tests where paywalls appear, not payments. Compact (0.65) action gates intentionally leave the create screen visible behind; say the word if you'd prefer them taller.Harness: LissinAppUITests/PaywallScreenshotTests (#309). Detent mapping in PaywallView.swift. Build 126 IPA ready for TestFlight.