{
  "id": "supper-club-guest",
  "name": "Guest Book",
  "theme": "supper-club",
  "category": "Profile & Social",
  "description": "A returning guest’s record kept as a maître d’ would keep it: previous visits, what they ate set as leadered lines, and notes written as sentences.",
  "layout": "A centred name at display size, a mono visit history, then each past service rendered in the same course typography as the live menu.",
  "modules": [
    {
      "key": "name",
      "name": "Guest name",
      "html": "\n<header class=\"gn\"><span class=\"k\">Guest since October 2023</span><h1>Devlin, M.</h1><p class=\"mn\">14 visits · usually two · prefers the counter · no allergies recorded</p></header>"
    },
    {
      "key": "note",
      "name": "House note",
      "html": "\n<section class=\"hn\"><span class=\"k\">House note</span><p>Comes in early, often alone on a Tuesday. Does not drink red. Once sent back the plaice, correctly — it was underdone and we said so.</p></section>"
    },
    {
      "key": "last",
      "name": "Last visit",
      "html": "\n<section class=\"cs\"><h2 class=\"ch\">Last Visit · 28 February</h2>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Bread and cultured butter</span><span class=\"ld\"></span><span class=\"pz\">5</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Chicory, walnut, blue cheese</span><span class=\"ld\"></span><span class=\"pz\">11</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Whole plaice, brown butter, capers</span><span class=\"ld\"></span><span class=\"pz\">24</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Two glasses, the Alsace riesling</span><span class=\"ld\"></span><span class=\"pz\">18</span></p></div>\n</section>"
    },
    {
      "key": "prev",
      "name": "Earlier visits",
      "html": "\n<section class=\"pv\"><h2 class=\"ch\">Earlier</h2><ul><li><b class=\"mn\">14 Feb</b> Two, 20.15, table 6. Hogget and the custard.</li><li><b class=\"mn\">31 Jan</b> One, 18.30, counter. Barley, cheese, no dessert.</li><li><b class=\"mn\">09 Jan</b> Four, 19.45, table 2. Set menu, one vegetarian.</li><li><b class=\"mn\">19 Dec</b> Two, 21.00, counter. Late, stayed for the last pour.</li></ul></section>"
    }
  ],
  "moduleCount": 4,
  "reorderable": true,
  "meta": {
    "id": "supper-club-guest",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-02T01:20:59+09:00",
    "updatedAt": "2026-09-02T01:20:59+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/supper-club-guest.json",
  "structure": "A centred name at display size, a mono visit history, then each past service rendered in the same course typography as the live menu.",
  "html": "<div class=\"dz dz-supper-club-guest\" data-design=\"supper-club-guest\" data-theme=\"supper-club\">\n<section class=\"dz-mod\" data-mod=\"name\" aria-label=\"Guest name\">\n<header class=\"gn\"><span class=\"k\">Guest since October 2023</span><h1>Devlin, M.</h1><p class=\"mn\">14 visits · usually two · prefers the counter · no allergies recorded</p></header></section>\n<section class=\"dz-mod\" data-mod=\"note\" aria-label=\"House note\">\n<section class=\"hn\"><span class=\"k\">House note</span><p>Comes in early, often alone on a Tuesday. Does not drink red. Once sent back the plaice, correctly — it was underdone and we said so.</p></section></section>\n<section class=\"dz-mod\" data-mod=\"last\" aria-label=\"Last visit\">\n<section class=\"cs\"><h2 class=\"ch\">Last Visit · 28 February</h2>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Bread and cultured butter</span><span class=\"ld\"></span><span class=\"pz\">5</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Chicory, walnut, blue cheese</span><span class=\"ld\"></span><span class=\"pz\">11</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Whole plaice, brown butter, capers</span><span class=\"ld\"></span><span class=\"pz\">24</span></p></div>\n<div class=\"it\"><p class=\"dish\"><span class=\"nm\">Two glasses, the Alsace riesling</span><span class=\"ld\"></span><span class=\"pz\">18</span></p></div>\n</section></section>\n<section class=\"dz-mod\" data-mod=\"prev\" aria-label=\"Earlier visits\">\n<section class=\"pv\"><h2 class=\"ch\">Earlier</h2><ul><li><b class=\"mn\">14 Feb</b> Two, 20.15, table 6. Hogget and the custard.</li><li><b class=\"mn\">31 Jan</b> One, 18.30, counter. Barley, cheese, no dessert.</li><li><b class=\"mn\">09 Jan</b> Four, 19.45, table 2. Set menu, one vegetarian.</li><li><b class=\"mn\">19 Dec</b> Two, 21.00, counter. Late, stayed for the last pour.</li></ul></section></section>\n</div>",
  "css": "\n.dz-supper-club-guest { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 40px; }\n.dz-supper-club-guest .k { text-transform: uppercase; letter-spacing: .22em; font-size: 10.5px; font-weight: 600; color: var(--muted-foreground); }\n.dz-supper-club-guest .mn { font-family: var(--pv-mono); font-size: 13px; }\n.dz-supper-club-guest .gn { max-width: 58ch; margin: 0 auto 28px; text-align: center; }\n.dz-supper-club-guest h1 { font-family: var(--pv-display); font-weight: 300; font-size: 72px; line-height: 1.02; letter-spacing: -.02em; margin: 12px 0 10px; }\n.dz-supper-club-guest .gn .mn { color: var(--muted-foreground); margin: 0; }\n.dz-supper-club-guest .hn { max-width: 58ch; margin: 0 auto; border: 1px solid var(--border); border-radius: 2px; padding: 28px; }\n.dz-supper-club-guest .hn p { margin: 8px 0 0; font-size: 16.5px; line-height: 1.66; }\n.dz-supper-club-guest .cs, .dz-supper-club-guest .pv { max-width: 58ch; margin: 0 auto; }\n.dz-supper-club-guest .ch { text-transform: uppercase; letter-spacing: .22em; font-size: 10.5px; font-weight: 600; text-align: center; margin: 64px 0 30px; color: var(--muted-foreground); border-top: 1px solid var(--border); padding-top: 30px; }\n.dz-supper-club-guest .it { margin-bottom: 14px; }\n\n.dz-supper-club-guest .dish { display: flex; align-items: baseline; gap: 10px; }\n.dz-supper-club-guest .dish .nm { flex: none; }\n.dz-supper-club-guest .dish .ld { flex: 1; border-bottom: 1px dotted var(--border); transform: translateY(-4px); }\n.dz-supper-club-guest .dish .pz { flex: none; color: var(--accent); }\n.dz-supper-club-guest .ds { margin: 4px 0 0; font-size: 14px; line-height: 1.55; color: var(--muted-foreground); width: 80%; }\n.dz-supper-club-guest .dish { font-family: var(--pv-body); font-size: 16.5px; }\n.dz-supper-club-guest .pv ul { list-style: none; margin: 0; padding: 0; }\n.dz-supper-club-guest .pv li { padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 15px; }\n.dz-supper-club-guest .pv b { color: var(--muted-foreground); font-weight: 400; margin-right: 14px; }\n@media (prefers-reduced-motion: reduce) { .dz-supper-club-guest *, .dz-supper-club-guest *::before, .dz-supper-club-guest *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }\n",
  "requiredTheme": "/api/v1/themes/supper-club.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Cardo:wght@400;500;600;700&family=Xanh+Mono:wght@400;500;600;700&display=swap"
}