*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:#e8dcc0;font-family:Georgia,'Times New Roman',serif;line-height:1.7;font-size:17px;background:#2b1d12;background-image:radial-gradient(ellipse at 20% 0%,#3a2818 0%,transparent 60%),radial-gradient(ellipse at 80% 100%,#241610 0%,transparent 55%)}
h1,h2,h3{line-height:1.25;font-weight:700}
a{color:#e8c874;text-decoration:none}
a:hover{text-decoration:underline;color:#f4df9e}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.brass-text{background:linear-gradient(135deg,#b08d3e,#e8c874 60%,#b08d3e);-webkit-background-clip:text;background-clip:text;color:transparent}
.site-header{background:#1d120a;border-bottom:2px solid #b08d3e;position:sticky;top:0;z-index:50}
.site-header .wrap{display:flex;align-items:center;gap:20px;padding:12px 24px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#e8dcc0;font-size:23px;font-weight:700;letter-spacing:.5px}
.brand:hover{text-decoration:none;color:#e8c874}
.brand svg{width:40px;height:40px}
.nav{display:flex;gap:2px;flex-wrap:wrap;margin-left:auto;align-items:center}
.nav a{text-decoration:none;color:#d8c9a3;font-size:15px;padding:9px 14px;border:1px solid transparent}
.nav a:hover{color:#e8c874;border-color:#6b5326;background:#241708;text-decoration:none}
.nav a.cta{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;font-weight:700;border:1px solid #e8c874}
.nav a.cta:hover{background:linear-gradient(135deg,#c49a48,#f0d284);color:#2b1d12}
.rivets{height:16px;background-color:#1d120a;background-image:radial-gradient(circle,#e8c874 2.6px,rgba(232,200,116,0) 3.2px);background-size:26px 16px;background-repeat:repeat-x;background-position:center}
.hero{padding:56px 0 10px;position:relative;overflow:hidden}
.hero-gears{position:absolute;right:-30px;top:20px;opacity:.28;pointer-events:none}
.hero-gears svg{width:220px;height:220px;animation:spin 40s linear infinite}
.hero-gears svg.small{width:130px;height:130px;animation-direction:reverse;animation-duration:28s;margin-left:-40px;vertical-align:top}
@keyframes spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hero-gears svg{animation:none}}
.hero-inner{position:relative;max-width:70ch}
.eyebrow{display:inline-block;border:1px solid #b08d3e;color:#e8c874;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;padding:7px 18px;margin-bottom:18px;background:#241708}
.hero h1{font-size:clamp(36px,5.4vw,58px);margin:0 0 16px;color:#f4ead2}
.lede{color:#c9b891;font-size:18px}
.tool-frame{background:#1d120a;border:2px solid #b08d3e;margin:32px 0 12px;box-shadow:0 0 0 6px #241708,0 0 0 7px #6b5326,0 24px 60px rgba(0,0,0,.5)}
.tool-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 26px;background:linear-gradient(135deg,#3a2818,#2b1d12);border-bottom:1px solid #6b5326}
.tool-head h2{margin:0;font-size:25px;color:#f4ead2}
.privacy-chip{margin-left:auto;display:inline-flex;align-items:center;gap:8px;border:1px solid #e8c874;color:#e8c874;font-size:13px;letter-spacing:1px;padding:8px 16px;background:#241708;font-family:inherit}
.privacy-chip svg{width:16px;height:16px}
.tool-body{padding:28px 26px;background:linear-gradient(180deg,#f1e6cc,#e9d9b8);color:#2b1d12}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-bottom:24px}
.opt{background:rgba(255,255,255,.35);border:1px solid #b08d3e;padding:18px}
.opt-label{display:block;font-weight:700;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:#7a5c22;margin-bottom:12px;font-family:Georgia,serif}
.opt-hint{font-size:13.5px;color:#6b5a3e;margin:10px 0 0}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{border:1px solid #a8873f;background:#fbf6e9;color:#2b1d12;padding:8px 15px;font-size:13.5px;cursor:pointer;font-family:Georgia,serif}
.seg button:hover{border-color:#7a5c22}
.seg button[aria-pressed="true"]{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;border-color:#7a5c22;font-weight:700}
.num-row{display:flex;align-items:center;gap:12px}
.num-row input[type=range]{flex:1;accent-color:#b08d3e}
.num-row input[type=number]{width:70px;border:1px solid #a8873f;padding:8px 10px;font-size:15px;font-family:Georgia,serif;background:#fbf6e9;color:#2b1d12}
.count-val{font-weight:700;color:#7a5c22;font-size:20px;min-width:40px;text-align:center}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.btn{border:2px solid #7a5c22;background:transparent;color:#5c4419;padding:12px 26px;font-weight:700;font-size:15px;cursor:pointer;font-family:Georgia,serif;display:inline-flex;align-items:center;gap:9px;text-decoration:none}
.btn:hover{background:#e9d9b8;text-decoration:none}
.btn.primary{background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;border-color:#7a5c22}
.btn.primary:hover{filter:brightness(1.06)}
.btn svg{width:17px;height:17px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.copy-note{font-size:14px;font-weight:700;color:#5c6e1f}
.output{margin-top:20px;background:#fbf6e9;border:1px solid #b08d3e;min-height:130px;padding:20px}
.output ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.output li{background:#fffdf6;border:1px solid #d8c9a3;border-left:5px solid #b08d3e;padding:13px 18px;cursor:pointer;display:flex;gap:14px;align-items:flex-start;box-shadow:2px 2px 0 rgba(122,92,34,.15)}
.output li:hover{background:#fdf8ea}
.output li .idx{flex:none;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#b08d3e,#e8c874);color:#2b1d12;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:15px}
.output li .txt{min-width:0}
.output li .nm{display:block;font-weight:700;font-size:18px;color:#2b1d12}
.output li .ds{display:block;font-size:14px;color:#5c4f38}
.output li .rl{display:block;font-size:13px;color:#7a5c22;font-style:italic;margin-top:3px}
.output li .mini-copy{margin-left:auto;flex:none;font-size:12px;font-weight:700;color:#7a5c22;border:1px dashed #a8873f;padding:5px 12px;align-self:center;letter-spacing:1px}
.output .placeholder{color:#a08c62;text-align:center;margin:32px 0;font-size:15px;font-style:italic}
.output-meta{margin-top:12px;font-size:13.5px;color:#6b5a3e}
.limits{margin-top:22px;background:#fbf6e9;border:2px dashed #a8873f;padding:20px 22px;color:#2b1d12}
.limits h3{margin:0 0 10px;font-size:20px;color:#7a5c22;display:flex;align-items:center;gap:10px}
.limits h3 svg{width:22px;height:22px;flex:none}
.limits ul{margin:0;padding-left:20px;font-size:15px;color:#5c4f38}
.limits li{margin-bottom:7px}
.section{padding:52px 0 8px}
.section h2{font-size:clamp(28px,3.6vw,40px);margin:0 0 14px;color:#f4ead2}
.sub{color:#c9b891;max-width:68ch;margin:0 0 24px}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}
.card{background:linear-gradient(180deg,#f1e6cc,#e9d9b8);color:#2b1d12;padding:24px;display:flex;flex-direction:column;border:1px solid #a8873f;box-shadow:4px 4px 0 rgba(0,0,0,.35)}
.card h3{margin:0 0 10px;font-size:20px;color:#3a2a12}
.card p{margin:0 0 14px;color:#5c4f38;font-size:15px;flex:1}
.card .icon{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#b08d3e,#e8c874);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.card .icon svg{width:24px;height:24px}
.card a.more{font-weight:700;font-size:15px;color:#7a5c22}
.prose{max-width:74ch}
.prose p{margin:0 0 16px;color:#d8c9a3}
.prose h2{margin:36px 0 12px;font-size:27px;color:#f4ead2}
.prose h3{margin:28px 0 10px;font-size:20px;color:#e8c874}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px;color:#d8c9a3}
.prose li{margin-bottom:8px}
.prose table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15.5px}
.prose th{background:#3a2818;color:#e8c874;text-align:left;padding:10px 14px;border:1px solid #6b5326}
.prose td{padding:10px 14px;border:1px solid #6b5326;color:#d8c9a3}
.prose strong{color:#f4ead2}
.callout{background:#3a2818;border-left:5px solid #e8c874;padding:18px 22px;margin:20px 0;color:#d8c9a3}
.callout p{margin:0}
.faq-item{background:#241708;border:1px solid #6b5326;padding:18px 22px;margin-bottom:14px}
.faq-item h3{margin:0 0 8px;font-size:19px;color:#e8c874}
.faq-item p{margin:0;color:#c9b891;font-size:15.5px}
.site-footer{background:#1d120a;border-top:2px solid #b08d3e;margin-top:70px;padding:44px 0 30px}
.site-footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:26px}
.site-footer h4{color:#e8c874;margin:0 0 12px;font-size:16px;letter-spacing:1px}
.site-footer a{color:#a8935f;font-size:14.5px;display:block;margin-bottom:8px}
.site-footer a:hover{color:#e8c874}
.site-footer .fine{grid-column:1/-1;font-size:13px;color:#7a6647;border-top:1px solid #3a2818;padding-top:18px;margin-top:6px}
.breadcrumb{font-size:13.5px;color:#a8935f;margin:22px 0 0}
.breadcrumb a{color:#e8c874}
.page-hero{padding:44px 0 6px}
.page-hero h1{font-size:clamp(32px,4.6vw,48px);margin:0 0 14px;color:#f4ead2}
.gear-deco{width:64px;height:64px}
@media(max-width:700px){.tool-body{padding:20px 16px}.output li{flex-wrap:wrap}.nav{margin-left:0}.hero-gears{display:none}}
Free Offer Name Generator
The right name makes the sale. Forge yours here.
DealDrafter is a free offer name generator that mints catchy promotional campaign names in seconds: alliterative sale names, power-word headlines, urgency-driven titles, rhyming hooks, and playful event names, with optional seasonal themes. No signup, no cost, and every gear turns entirely in your browser.
What makes a great offer name
A good promotion name does promotional work: it gets noticed, remembered, and repeated. Five principles separate names that pull from names that sit there, covered in our naming guide .
How to name a sale Clarity, relevance, creativity, simplicity, and emotional appeal: the five principles of promotion naming, with a step-by-step method.
Read the guide
Power words for offers A field guide to the words that move shoppers: urgency words, value words, exclusivity words, and emotional words, with usage notes.
Browse the words
Sale name examples Dozens of example campaign names across seasonal sales, clearance events, flash sales, loyalty offers, and holiday promotions.
See examples
Naming use cases Which naming style fits which campaign: launches, holiday pushes, clearance, loyalty events, and referral programs.
Explore use cases
Naming FAQ How long should a sale name be? Can two campaigns share a name? Should the discount go in the title? Answered.
Read the FAQ
How the engine works
DealDrafter holds banks of name fragments: alliterative word pairs, power words, urgency openers, rhyming pairs, playful phrases, and seasonal theme words. When you strike the forge, your browser's secure random generator (crypto.getRandomValues) assembles fragments in your chosen style into complete campaign names, each stamped with a short naming tip.
There is no account and no server. Names are generated on your device, and nothing you draft is transmitted or stored anywhere. Forge a few batches, copy the ones that fit your brand register, and run your favorite through a trademark search before it goes on a banner.