{
  "id": "curtain-call-member",
  "name": "Member Account",
  "theme": "curtain-call",
  "category": "Profile & Social",
  "description": "A member account page where the history of what you have seen is the main content, because that is the thing a member is actually proud of.",
  "layout": "A 300px identity well beside a chronological attendance list grouped by season, with the current holdings raised to the top in a lighter card.",
  "modules": [
    {
      "key": "who",
      "name": "Identity well",
      "html": "\n<aside class=\"iw\">\n  <span class=\"av\">PR</span>\n  <h1>Priya Raghunathan</h1>\n  <p class=\"tier\">Associate since 2019</p>\n  <dl><div><dt>Seen</dt><dd class=\"mono\">61</dd></div><div><dt>This season</dt><dd class=\"mono\">7</dd></div><div><dt>Exchanges left</dt><dd class=\"mono\">2</dd></div></dl>\n  <a class=\"lk\" href=\"#\">Manage membership</a>\n</aside>"
    },
    {
      "key": "holding",
      "name": "Current holdings",
      "html": "\n<section class=\"hd2\"><h2>You are holding</h2>\n<ul><li><time>Thu 11 Jun<br><i>19:30</i></time><div><b>A Number</b><span>Row A, seats 3 and 4 · £92.00</span></div><a class=\"lk\" href=\"#\">Exchange</a></li>\n<li><time>Sat 04 Jul<br><i>14:00</i></time><div><b>The Rite of Spring</b><span>Row C, seat 11 · £34.00</span></div><a class=\"lk\" href=\"#\">Exchange</a></li></ul></section>"
    },
    {
      "key": "seen",
      "name": "Attendance history",
      "html": "\n<section class=\"sn\"><h2>What you have seen</h2>\n<div class=\"yr\"><h3>Season 2026</h3><ol>\n  <li><time>14 Nov</time><span>Uncle Vanya</span><i>Row B, seat 7</i></li>\n  <li><time>02 Oct</time><span>The Winter's Tale</span><i>Row A, seat 4</i></li>\n  <li><time>18 Aug</time><span>Marlowe Sessions: New Writing</span><i>Unreserved</i></li>\n  <li><time>21 May</time><span>Machinal</span><i>Row C, seat 12</i></li>\n</ol></div>\n<div class=\"yr\"><h3>Season 2025</h3><ol>\n  <li><time>30 Nov</time><span>The Glass Menagerie</span><i>Row A, seat 3</i></li>\n  <li><time>09 Sep</time><span>Blood Wedding</span><i>Row D, seat 9</i></li>\n</ol></div></section>"
    }
  ],
  "moduleCount": 3,
  "reorderable": false,
  "meta": {
    "id": "curtain-call-member",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-01T23:32:27+09:00",
    "updatedAt": "2026-09-01T23:32:27+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/curtain-call-member.json",
  "structure": "A 300px identity well beside a chronological attendance list grouped by season, with the current holdings raised to the top in a lighter card.",
  "html": "<div class=\"dz dz-curtain-call-member\" data-design=\"curtain-call-member\" data-theme=\"curtain-call\">\n<div class=\"cols\"><section class=\"dz-mod\" data-mod=\"who\" aria-label=\"Identity well\">\n<aside class=\"iw\">\n  <span class=\"av\">PR</span>\n  <h1>Priya Raghunathan</h1>\n  <p class=\"tier\">Associate since 2019</p>\n  <dl><div><dt>Seen</dt><dd class=\"mono\">61</dd></div><div><dt>This season</dt><dd class=\"mono\">7</dd></div><div><dt>Exchanges left</dt><dd class=\"mono\">2</dd></div></dl>\n  <a class=\"lk\" href=\"#\">Manage membership</a>\n</aside></section><div class=\"main\"><section class=\"dz-mod\" data-mod=\"holding\" aria-label=\"Current holdings\">\n<section class=\"hd2\"><h2>You are holding</h2>\n<ul><li><time>Thu 11 Jun<br><i>19:30</i></time><div><b>A Number</b><span>Row A, seats 3 and 4 · £92.00</span></div><a class=\"lk\" href=\"#\">Exchange</a></li>\n<li><time>Sat 04 Jul<br><i>14:00</i></time><div><b>The Rite of Spring</b><span>Row C, seat 11 · £34.00</span></div><a class=\"lk\" href=\"#\">Exchange</a></li></ul></section></section><section class=\"dz-mod\" data-mod=\"seen\" aria-label=\"Attendance history\">\n<section class=\"sn\"><h2>What you have seen</h2>\n<div class=\"yr\"><h3>Season 2026</h3><ol>\n  <li><time>14 Nov</time><span>Uncle Vanya</span><i>Row B, seat 7</i></li>\n  <li><time>02 Oct</time><span>The Winter's Tale</span><i>Row A, seat 4</i></li>\n  <li><time>18 Aug</time><span>Marlowe Sessions: New Writing</span><i>Unreserved</i></li>\n  <li><time>21 May</time><span>Machinal</span><i>Row C, seat 12</i></li>\n</ol></div>\n<div class=\"yr\"><h3>Season 2025</h3><ol>\n  <li><time>30 Nov</time><span>The Glass Menagerie</span><i>Row A, seat 3</i></li>\n  <li><time>09 Sep</time><span>Blood Wedding</span><i>Row D, seat 9</i></li>\n</ol></div></section></section></div></div>\n</div>",
  "css": "\n.dz-curtain-call-member { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 30px; }\n.dz-curtain-call-member .cols { display: grid; grid-template-columns: 300px 1fr; gap: 34px; align-items: start; }\n.dz-curtain-call-member .iw { background: color-mix(in oklab, var(--background) 84%, black); border-radius: var(--pv-radius); padding: 24px; }\n.dz-curtain-call-member .av { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; background: var(--primary); color: var(--primary-foreground); font-family: var(--pv-display); font-size: 23px; margin-bottom: 16px; }\n.dz-curtain-call-member .iw h1 { font-family: var(--pv-display); font-weight: 400; letter-spacing: -.015em; font-size: 26px; margin: 0 0 4px; }\n.dz-curtain-call-member .tier { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--accent); margin: 0 0 20px; }\n.dz-curtain-call-member .iw dl { margin: 0 0 20px; }\n.dz-curtain-call-member .iw div { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 13px; }\n.dz-curtain-call-member dt { color: var(--muted-foreground); margin: 0; }\n.dz-curtain-call-member dd { margin: 0; }\n.dz-curtain-call-member .mono { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; }\n.dz-curtain-call-member .lk { color: var(--foreground); text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 1px; font-size: 13px; }\n.dz-curtain-call-member .main { display: grid; gap: 30px; }\n.dz-curtain-call-member h2 { font-family: var(--pv-display); font-weight: 400; letter-spacing: -.015em; font-size: 23px; margin: 0 0 14px; }\n.dz-curtain-call-member .hd2 { background: var(--card); border-radius: var(--pv-radius); padding: 22px; }\n.dz-curtain-call-member .hd2 ul { list-style: none; margin: 0; padding: 0; }\n.dz-curtain-call-member .hd2 li { display: grid; grid-template-columns: 92px 1fr auto; gap: 18px; align-items: center; padding: 14px 0; border-top: 1px solid var(--border); }\n.dz-curtain-call-member .hd2 li:first-child { border-top: 0; }\n.dz-curtain-call-member time { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--muted-foreground); line-height: 1.5; }\n.dz-curtain-call-member time i { font-style: normal; opacity: .7; }\n.dz-curtain-call-member .hd2 b { display: block; font-size: 15px; }\n.dz-curtain-call-member .hd2 span { font-size: 12px; color: var(--muted-foreground); }\n.dz-curtain-call-member .yr { margin-bottom: 22px; }\n.dz-curtain-call-member .yr h3 { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--muted-foreground); font-weight: 400; margin: 0 0 8px; }\n.dz-curtain-call-member .yr ol { list-style: none; margin: 0; padding: 0; }\n.dz-curtain-call-member .yr li { display: grid; grid-template-columns: 92px 1fr auto; gap: 18px; padding: 9px 0; border-top: 1px solid var(--border); font-size: 14px; align-items: baseline; }\n.dz-curtain-call-member .yr i { font-style: normal; font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--muted-foreground); }\n@media (prefers-reduced-motion: reduce) { .dz-curtain-call-member *, .dz-curtain-call-member *::before, .dz-curtain-call-member *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }\n",
  "requiredTheme": "/api/v1/themes/curtain-call.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=Gloock:wght@400;500;600;700&family=Cabin:wght@400;500;600;700&family=Cutive+Mono:wght@400;500;600;700&display=swap"
}