Index: src/routes/paid.js
===================================================================
--- src/routes/paid.js	(revision 9a00f283dea4b5647c585540cdef7d52ced93298)
+++ src/routes/paid.js	(revision a29c8c80c88a8dc5fb77c5de84e44c7b69d84a2d)
@@ -54,5 +54,5 @@
   if (!payload || payload.purpose !== 'patron' || payload.siteId !== r.site.id) {
     return renderPage(req, res, 'pages/paid-result', {
-      pageTitleKey: 'pres.t', bodyClass: 'on-special', ok: false, reason: 'expired',
+      pageTitleKey: 'pres.t', bodyClass: 'on-post', ok: false, reason: 'expired',
     });
   }
@@ -60,5 +60,5 @@
   const code = String(req.query.code || '');
   if (req.query.error || !code) {
-    return renderPage(req, res, 'pages/paid-result', { pageTitleKey: 'pres.t', bodyClass: 'on-special', ok: false, reason: 'declined', postSlug: payload.post, patronUrl });
+    return renderPage(req, res, 'pages/paid-result', { pageTitleKey: 'pres.t', bodyClass: 'on-post', ok: false, reason: 'declined', postSlug: payload.post, patronUrl });
   }
   const membership = await PaidPatreon.verifyPatron(r.site.id, code, baseUrl(req) + '/paid/callback').catch(() => null);
@@ -67,5 +67,5 @@
   if (!active || cents < payload.cents) {
     return renderPage(req, res, 'pages/paid-result', {
-      pageTitleKey: 'pres.t', bodyClass: 'on-special', ok: false,
+      pageTitleKey: 'pres.t', bodyClass: 'on-post', ok: false,
       reason: active ? 'tier' : 'notpatron', neededCents: payload.cents, haveCents: cents, postSlug: payload.post, patronUrl,
     });
@@ -76,5 +76,5 @@
   const blob = signBlob({ purpose: 'reg', siteId: r.site.id, cents, challenge: options.challenge }, 900);
   renderPage(req, res, 'pages/paid-passkey', {
-    pageTitleKey: 'ppk.t', bodyClass: 'on-special',
+    pageTitleKey: 'ppk.t', bodyClass: 'on-post',
     optionsJson: JSON.stringify(options), regBlob: blob, postSlug: payload.post,
   });
