:root {
–bg: #141016;
–card: #2a2230;
–rose: #ff6b8a;
–pink: #ffb3c7;
–gold: #ffe7a3;
–ink: #ffffff;
–muted: #ffffff;
–line: rgba(255,255,255,0.12);
–online: #5dffb0;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
background:
radial-gradient(900px 500px at 10% -10%, rgba(226,91,120,0.22), transparent 55%),
var(–bg);
color: #ffffff;
font-family: ‘DM Sans’, sans-serif;
line-height: 1.55;
}
.wrap { max-width: 760px; margin: 0 auto; padding: 28px 16px 80px; }
.app-top, .match, .finalist, .error, .inbox, .after {
background: #2a2230;
border: 1px solid var(–line);
border-radius: 18px;
padding: 16px;
margin-bottom: 12px;
color: #ffffff;
}
.app-top { border-radius: 22px; box-shadow: 0 18px 40px rgba(0,0,0,0.35); }
.brand { display: flex; justify-content: space-between; align-items: center; }
.brand h1 { font-family: ‘Playfair Display’, serif; font-size: 1.55rem; color: #ffffff; }
.brand h1 span { color: #ffb3c7; }
.pill { background: #4a2434; color: #ffd0dc; border-radius: 999px; font-size: 0.75rem; padding: 5px 10px; font-weight: 700; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.stat { background: #1a1520; border-radius: 14px; padding: 10px 8px; text-align: center; }
.stat b, .stat span { display: block; color: #ffffff; }
.stat span { font-size: 0.72rem; }
.status-bar { margin-top: 12px; background: #3a2430; border-radius: 12px; padding: 10px 12px; color: #ffe7a3; }
.intro { margin: 26px 4px 8px; color: #ffffff; font-size: 1.05rem; }
.intro p { margin-bottom: 12px; color: #ffffff; }
.section-title { margin: 28px 4px 12px; font-size: 0.82rem; letter-spacing: 0.14em; text-transform: uppercase; color: #ffb3c7; font-weight: 700; }
.match-head, .final-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.match h3, .finalist h3, .quote, .verdict, .meta, .bubble, .error p, .after p, .fine, .tags, .cap, figcaption { color: #ffffff; }
.pct { color: #ffe7a3; font-weight: 700; }
.meta, .quote { margin: 4px 0 8px; }
.quote { font-style: italic; }
.verdict { background: #1a1520; border-radius: 12px; padding: 8px 10px; }
.paxton-note { margin-top: 8px; color: #ffb3c7; }
.badge { display: inline-block; margin-top: 8px; border-radius: 999px; padding: 4px 10px; font-size: 0.75rem; font-weight: 700; color: #ffffff; }
.saved { background: #6a2840; }
.maybe { background: #5a4520; }
.pass { background: #3a3040; }
.photos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0 16px; }
.photos img, .paxton-photo { width: 100%; height: auto; display: block; border-radius: 16px; }
.photos figure, .shot { margin: 0; }
.photos figcaption, .cap { font-size: 0.78rem; color: #ffffff; margin-top: 6px; }
.dm { display: flex; margin: 8px 0; }
.bubble { background: #3a3044; border-radius: 14px; padding: 8px 11px; max-width: 92%; color: #ffffff; }
.bubble b { color: #ffb3c7; font-size: 0.78rem; display: block; }
.me { justify-content: flex-end; }
.me .bubble { background: #4a3040; }
.online::before { content: “”; display: inline-block; width: 7px; height: 7px; background: var(–online); border-radius: 50%; margin-right: 6px; }
.stamp { display: inline-block; border: 2px solid #ffb3c7; color: #ffffff; font-weight: 800; letter-spacing: 0.12em; padding: 3px 8px; border-radius: 6px; transform: rotate(-6deg); font-size: 0.72rem; }
.error { text-align: center; padding: 22px 16px; border-color: rgba(255,179,199,0.5); }
.error h3 { color: #ffffff; margin-bottom: 6px; }
.select-all { display: inline-block; margin-top: 12px; background: #ff6b8a; color: #ffffff; text-decoration: none; font-weight: 800; padding: 12px 22px; border-radius: 999px; }
.cta-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.cta-row a { text-decoration: none; color: #ffffff; background: #4a3040; border-radius: 999px; padding: 10px 14px; font-weight: 700; font-size: 0.88rem; }
.cta-row a.primary { background: #ff6b8a; }
.tags, .fine { margin-top: 18px; color: #ffffff; }
Granny’s Matches
Well, gentlemen… you certainly didn’t disappoint.
Granny put herself on the market, told you exactly what she was looking for, and apparently half the internet decided they qualified. This mature dating fantasy filled up overnight. The sexy granny dating profile did exactly what Paxton said it would.
Now comes the fun part: choosing. One man? Two? A shortlist? Or does Granny decide that narrowing things down was never really her style?
And yes — Paxton remembers the promise she made about helping Granny celebrate her lucky match. As promised, Paxton will be joining Grams for her gangbang adventures. Her holes are ready.
💘 Today’s Top Matches
Match #01 — “The Gentleman”
96% Match
“I know how to treat an experienced woman.”
PAXTON SAYS: “Grannyyyyy. Keep this one.”
Match #02 — “Trouble”
91% Match
“I don’t think you’re ready for me.”
PAXTON SAYS: “Cocky. I kind of like it.”
Match #03 — “Sunday Driver”
88% Match
“Slow hands. Long afternoon. I can wait my turn or take the first one.”
Match #04 — “The Line Cook”
84% Match
“Younger man, older woman. I already know where I belong.”
PAXTON SAYS: “Put him on the list. Grams deserves a view.”
Match #05 — “Quiet Money”
79% Match
“I don’t send essays. If you want company, say the time.”
Match #06 — “Too Sweet”
71% Match
“Would you like to get coffee and discuss literature?”
💌 The Inbox
💌 Granny’s Shortlist
The Gentleman
FINALIST
Sunday Driver
FINALIST
The Line Cook
FINALIST
⚠️ Selection Error
Granny attempted to choose one match.
Reason: User refuses to behave.
Suggested solution: Select multiple matches.
❤️ It’s a Match… or Several
Granny promised she’d choose her favorite. Nobody said she could only have one.
And Paxton? She’s already getting ready for the after-party. As promised, Paxton will be joining Grams for her gangbang adventures. Her holes are ready.
Gentlemen, check your inboxes. Somebody’s getting an invitation. Late applications may still be considered. Granny has been known to bend the rules.
Think you should’ve made the shortlist? The naughty mature woman is still scrolling. This dating app fantasy does not close early.