# template-email — the Postie email skeleton

**Copy** the whole folder (`index.html`, `ds-base.js`) into your project; the file is send-ready as-is.
**Edit** only the six `<!-- slot: … -->` regions — `masthead` (leave the word "Postie"), `kicker`, `heading`, `body`, `primary-action` (one, ever), `footer` — plus the `href`s, the preheader `<div>`, and the one `const base = '../..';` line in `ds-base.js` so a browser preview finds the bound pack. Mail clients strip the script; it is preview-only.
**Never change** the values in the header token map (they are the working token set, transcribed — a change is a fork), the masthead ground `#1F1D1E` (theme-invariant, same in every email), or the ground split: charcoal band above, paper `#FBFAFA` below, footer as a raised `#EEEDED` step. No separator borders, no shadows, no `#E4606C` on paper, no oxblood running text.
**Outlook constraints** (why it looks the way it does): nested `<table role="presentation">` only — no flex, no grid, no `<div>` layout; every style inline; 600px fixed width with an MSO-conditional wrapper table; the button is a VML `<v:roundrect arcsize="50%">` for Outlook and an `<a>` pill for everyone else, so edit its label and `href` in BOTH places; `border-radius` and web fonts are ignored by Outlook — the fallback is a square corner and Arial, both accepted; `mso-line-height-rule:exactly` keeps the 64px masthead honest.
**Dark-mode clients**: `color-scheme: light` is declared so Gmail/Outlook do not invert the paper; the masthead is already dark and needs nothing.
**Test** in Outlook desktop, Gmail web + iOS, Apple Mail before the first send; the P2 board proved the layout, not the clients.
