{
  "id": "craft-zine-launch-note",
  "name": "Launch Note",
  "theme": "craft-zine",
  "category": "Landing",
  "description": "A landing page shaped like a letter — one column, a real signature, and no section that is not a paragraph.",
  "layout": "Single 36rem column centred on the page with wide rules top and bottom; the only non-prose elements are an inline subscribe row and a signature block flush right.",
  "modules": [
    {
      "key": "head",
      "name": "Letter head",
      "html": "\n<header class=\"lh\"><span class=\"lh-from\">The Offcut</span><span class=\"lh-date\">14 June</span></header>"
    },
    {
      "key": "letter",
      "name": "Letter body",
      "html": "\n<article class=\"letter\">\n  <h1>A note before issue 12</h1>\n  <p>We nearly did not print this one. The paper we use went out of stock in April and the replacement takes ink differently — everything came out half a shade warm.</p>\n  <p>We printed it anyway. You will notice on the Renn interview especially, where the terracotta has gone almost brick. It is not what we specified. It is what the shop could make in June.</p>\n  <p>If you have been on the waiting list since March, your copy goes out first. If you are new here, this is the kind of thing we tell you about.</p>\n</article>"
    },
    {
      "key": "signup",
      "name": "Inline signup",
      "html": "\n<form class=\"su\" onsubmit=\"return false\">\n  <label for=\"cz-ln-email\">Get the next one</label>\n  <div class=\"su-row\"><input id=\"cz-ln-email\" type=\"email\" placeholder=\"you@example.com\" autocomplete=\"email\"><button type=\"submit\">Join</button></div>\n  <p class=\"su-fine\">Four issues a year. Unsubscribe in one click. We never share the list.</p>\n</form>"
    },
    {
      "key": "sign",
      "name": "Signature",
      "html": "\n<footer class=\"sig\"><span class=\"sig-mark\">A.R.</span><span class=\"sig-name\">Ada Renn, editor</span></footer>"
    }
  ],
  "moduleCount": 4,
  "reorderable": true,
  "meta": {
    "id": "craft-zine-launch-note",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-08-29T18:14:56+09:00",
    "updatedAt": "2026-08-29T18:14:56+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/craft-zine-launch-note.json",
  "structure": "Single 36rem column centred on the page with wide rules top and bottom; the only non-prose elements are an inline subscribe row and a signature block flush right.",
  "html": "<div class=\"dz dz-craft-zine-launch-note\" data-design=\"craft-zine-launch-note\" data-theme=\"craft-zine\">\n<section class=\"dz-mod\" data-mod=\"head\" aria-label=\"Letter head\">\n<header class=\"lh\"><span class=\"lh-from\">The Offcut</span><span class=\"lh-date\">14 June</span></header></section>\n<section class=\"dz-mod\" data-mod=\"letter\" aria-label=\"Letter body\">\n<article class=\"letter\">\n  <h1>A note before issue 12</h1>\n  <p>We nearly did not print this one. The paper we use went out of stock in April and the replacement takes ink differently — everything came out half a shade warm.</p>\n  <p>We printed it anyway. You will notice on the Renn interview especially, where the terracotta has gone almost brick. It is not what we specified. It is what the shop could make in June.</p>\n  <p>If you have been on the waiting list since March, your copy goes out first. If you are new here, this is the kind of thing we tell you about.</p>\n</article></section>\n<section class=\"dz-mod\" data-mod=\"signup\" aria-label=\"Inline signup\">\n<form class=\"su\" onsubmit=\"return false\">\n  <label for=\"cz-ln-email\">Get the next one</label>\n  <div class=\"su-row\"><input id=\"cz-ln-email\" type=\"email\" placeholder=\"you@example.com\" autocomplete=\"email\"><button type=\"submit\">Join</button></div>\n  <p class=\"su-fine\">Four issues a year. Unsubscribe in one click. We never share the list.</p>\n</form></section>\n<section class=\"dz-mod\" data-mod=\"sign\" aria-label=\"Signature\">\n<footer class=\"sig\"><span class=\"sig-mark\">A.R.</span><span class=\"sig-name\">Ada Renn, editor</span></footer></section>\n</div>",
  "css": "\n.dz-craft-zine-launch-note { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 40px 0 44px; }\n.dz-craft-zine-launch-note .lh { max-width: 36rem; margin: 0 auto 30px; display: flex; justify-content: space-between; padding-bottom: 10px; border-bottom: 3px solid var(--foreground); font-family: var(--pv-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }\n.dz-craft-zine-launch-note .letter { max-width: 36rem; margin: 0 auto; }\n.dz-craft-zine-launch-note .letter h1 { font-family: var(--pv-display); font-size: 34px; line-height: 1.08; letter-spacing: -.03em; font-weight: 800; margin: 0 0 18px; }\n.dz-craft-zine-launch-note .letter p { margin: 0 0 15px; font-size: 16px; line-height: 1.74; }\n.dz-craft-zine-launch-note .su { max-width: 36rem; margin: 30px auto 0; padding: 20px 0; border-top: var(--pv-bw) solid var(--border); border-bottom: var(--pv-bw) solid var(--border); }\n.dz-craft-zine-launch-note .su label { display: block; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted-foreground); margin-bottom: 10px; }\n.dz-craft-zine-launch-note .su-row { display: flex; gap: 0; }\n.dz-craft-zine-launch-note .su-row input { flex: 1; min-width: 0; font: inherit; font-size: 15px; padding: 11px 13px; background: var(--card); color: var(--foreground); border: var(--pv-bw) solid var(--input); border-right: 0; border-radius: var(--pv-radius-sm) 0 0 var(--pv-radius-sm); }\n.dz-craft-zine-launch-note .su-row input:focus-visible { outline: 2px solid var(--ring); outline-offset: -2px; }\n.dz-craft-zine-launch-note .su-row button { font: inherit; font-size: 14px; font-weight: 600; padding: 11px 22px; background: var(--primary); color: var(--primary-foreground); border: var(--pv-bw) solid var(--primary); border-radius: 0 var(--pv-radius-sm) var(--pv-radius-sm) 0; cursor: pointer; transition: background var(--dur) var(--ease); }\n.dz-craft-zine-launch-note .su-row button:hover { background: var(--foreground); border-color: var(--foreground); }\n.dz-craft-zine-launch-note .su-fine { margin: 10px 0 0; font-size: 12px; color: var(--muted-foreground); }\n.dz-craft-zine-launch-note .sig { max-width: 36rem; margin: 24px auto 0; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }\n.dz-craft-zine-launch-note .sig-mark { font-family: var(--pv-display); font-size: 30px; font-weight: 800; color: var(--primary); letter-spacing: -.04em; }\n.dz-craft-zine-launch-note .sig-name { font-size: 12px; color: var(--muted-foreground); }\n@media (prefers-reduced-motion: reduce) { .dz-craft-zine-launch-note *, .dz-craft-zine-launch-note *::before, .dz-craft-zine-launch-note *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }",
  "requiredTheme": "/api/v1/themes/craft-zine.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700&family=Public+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap"
}