!DOCTYPE html html lang=en head meta charset=UTF-8 title😔 Not Mad, Just Disappointed – Greeting Card Geniustitle meta name=viewport content=width=device-width, initial-scale=1.0 meta name=description content=The classic guilt-trip in card form. For when someone really let you down. meta name=keywords content=disappointed, not mad, guilt trip, emotional card, passive aggressive card link rel=icon href=assetsfavicon.jpg type=imagejpeg link href=httpscdn.jsdelivr.netnpmtailwindcss@2.2.19disttailwind.min.css rel=stylesheet meta name=title content=Not Mad Just Disappointed Greeting Card Genius meta property=ogtitle content=😔 Not Mad, Just Disappointed meta property=ogdescription content=Classic guilt delivery system. meta property=ogurl content=httpswww.greetingcardgenius.com.autemplatesnotmadjustdisappointed.html head body class=bg-gray-900 text-white font-sans !-- Header -- header class=p-6 border-b border-gray-700 text-center bg-black shadow div class=flex flex-col items-center space-y-2 img src=assetslogo.jpg alt=Greeting Card Genius Logo class=h-16 w-16 rounded shadow a href= class=text-2xl font-bold hoverunderline text-whiteGreeting Card Geniusa p class=text-sm text-gray-400AI-generated cards for the real onesp div header !-- Main -- main class=max-w-xl mx-auto p-8 text-center h1 class=text-3xl font-extrabold text-yellow-200 mb-4😔 Not Mad, Just Disappointedh1 p class=mb-6This card hits different. Perfect for when words just aren't enough—but you still want them to feel the sting.p img src=previewsnotmadjustdisappointed.jpg alt=Not Mad Just Disappointed Card Preview class=mx-auto rounded shadow mb-6 max-w-xs form id=cardForm class=space-y-4 input name=senderName placeholder=Your name class=w-full p-2 border rounded text-black required textarea name=customMessage placeholder=Optional extra guilt... rows=4 class=w-full p-2 border rounded text-blacktextarea input type=email name=toEmail placeholder=Recipient's email class=w-full p-2 border rounded text-black required input type=hidden name=subject value=Disappointment Delivered input type=hidden name=templateName value=notmadjustdisappointed-card.html button type=submit class=bg-yellow-300 text-black px-6 py-2 rounded hoverbg-yellow-200 Buy & Send – $1.99 AUD button form p id=responseMessage class=text-green-400 mt-4 hiddenp main !-- Footer -- footer class=mt-12 text-center text-sm text-gray-500 p-4 border-t border-gray-700 p© 2025 Greeting Card Genius · A division of a href=httpsquantumnova.com.au target=_blank class=text-yellow-300 hoverunderlineQUANTUMNOVAap pRegistered in Australia ABN 43686016526p p class=mt-2 a href=privacy.html class=hoverunderlinePrivacy Policya a href=refund.html class=hoverunderlineRefund Policya a href=terms.html class=hoverunderlineTerms & Conditionsa p footer script const form = document.getElementById('cardForm'); const msg = document.getElementById('responseMessage'); form.addEventListener('submit', async (e) = { e.preventDefault(); const data = new FormData(form); const body = Object.fromEntries(data.entries()); msg.classList.add('hidden'); try { const res = await fetch('apicreate-stripe-session', { method 'POST', headers { 'Content-Type' 'applicationjson' }, body JSON.stringify(body) }); const json = await res.json(); if (json.payment_url) window.location.href = json.payment_url; else throw new Error(json.error 'Failed to create session'); } catch (err) { msg.textContent = `⚠️ ${err.message}`; msg.classList.remove('hidden'); msg.classList.replace('text-green-400', 'text-red-400'); } }); script body html