{
  "id": "curtain-call-season",
  "name": "Season Bill",
  "theme": "curtain-call",
  "category": "Landing",
  "description": "A season announcement where the whole programme is one dated list and the date column is a fixed typographic gutter you can run your eye down without reading a word.",
  "layout": "Full-bleed duotone hero, then a single-column bill at 1320px where every row hangs its date in a 92px mono gutter to the left of a hairline rule.",
  "modules": [
    {
      "key": "hero",
      "name": "Season hero",
      "html": "\n<header class=\"hd\"><img src=\"{{ART hero}}\" alt=\"{{ARTALT hero}}\">\n<div class=\"hd-t\"><span class=\"k\">Season 2027</span><h1>Everything Ends<br>Somewhere Warm</h1><p>Eleven productions between February and November. Members book from 4 January; general booking opens a fortnight later.</p><div class=\"hd-a\"><a class=\"btn\" href=\"#\">Become a member</a><a class=\"lk\" href=\"#\">See the whole bill</a></div></div></header>"
    },
    {
      "key": "bill",
      "name": "Dated bill",
      "html": "\n<section class=\"bl\">\n  <ol>\n    <li><time>12 Feb<br><i>— 06 Mar</i></time><div><h3>The Cherry Orchard</h3><p>A new translation by Nadia Oyelaran. Directed by Femi Adeyemi.</p></div><span class=\"av\">Few seats</span></li>\n    <li><time>19 Mar<br><i>— 04 Apr</i></time><div><h3>Kaidan, or The Long Hallway</h3><p>Kōbō Theatre Company. Japanese with English surtitles.</p></div><span class=\"av ok\">Booking</span></li>\n    <li class=\"has\"><time>22 Apr<br><i>— 16 May</i></time><div><h3>Sunday in the Park with George</h3><p>Concert staging with the Marlowe Sinfonia.</p></div><span class=\"av yours\">Your seats</span></li>\n    <li><time>04 Jun<br><i>— 27 Jun</i></time><div><h3>A Number</h3><p>Two actors, sixty minutes, no interval.</p></div><span class=\"av ok\">Booking</span></li>\n    <li><time>09 Jul<br><i>— 01 Aug</i></time><div><h3>The Rite of Spring</h3><p>Danced by Company Sørensen to a live percussion score.</p></div><span class=\"av\">Sold out</span></li>\n  </ol>\n</section>"
    },
    {
      "key": "note",
      "name": "Members note",
      "html": "\n<aside class=\"nt\"><h2>What a membership actually gets you</h2><div class=\"nt-g\">\n  <div><span class=\"n\">01</span><p>Two weeks of priority booking before every general release, on every production.</p></div>\n  <div><span class=\"n\">02</span><p>Seats held in the centre stalls until the Friday before opening.</p></div>\n  <div><span class=\"n\">03</span><p>Exchanges up to four hours before curtain, without a fee, twice a season.</p></div>\n</div></aside>"
    },
    {
      "key": "foot",
      "name": "Closing note",
      "html": "\n<footer class=\"ft\"><p>Marlowe Playhouse · Cross Quay · Opens 90 minutes before curtain</p><p class=\"m\">Access performances are listed on every production page. Captioned and audio-described dates are set at the point of announcement, not on request.</p></footer>"
    }
  ],
  "moduleCount": 4,
  "reorderable": true,
  "meta": {
    "id": "curtain-call-season",
    "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-season.json",
  "structure": "Full-bleed duotone hero, then a single-column bill at 1320px where every row hangs its date in a 92px mono gutter to the left of a hairline rule.",
  "html": "<div class=\"dz dz-curtain-call-season\" data-design=\"curtain-call-season\" data-theme=\"curtain-call\">\n<section class=\"dz-mod\" data-mod=\"hero\" aria-label=\"Season hero\">\n<header class=\"hd\"><img src=\"https://designlookbook.dev/assets/img/curtain-call-hero.webp\" alt=\"An empty auditorium seen from the stage, house lights at half\">\n<div class=\"hd-t\"><span class=\"k\">Season 2027</span><h1>Everything Ends<br>Somewhere Warm</h1><p>Eleven productions between February and November. Members book from 4 January; general booking opens a fortnight later.</p><div class=\"hd-a\"><a class=\"btn\" href=\"#\">Become a member</a><a class=\"lk\" href=\"#\">See the whole bill</a></div></div></header></section>\n<section class=\"dz-mod\" data-mod=\"bill\" aria-label=\"Dated bill\">\n<section class=\"bl\">\n  <ol>\n    <li><time>12 Feb<br><i>— 06 Mar</i></time><div><h3>The Cherry Orchard</h3><p>A new translation by Nadia Oyelaran. Directed by Femi Adeyemi.</p></div><span class=\"av\">Few seats</span></li>\n    <li><time>19 Mar<br><i>— 04 Apr</i></time><div><h3>Kaidan, or The Long Hallway</h3><p>Kōbō Theatre Company. Japanese with English surtitles.</p></div><span class=\"av ok\">Booking</span></li>\n    <li class=\"has\"><time>22 Apr<br><i>— 16 May</i></time><div><h3>Sunday in the Park with George</h3><p>Concert staging with the Marlowe Sinfonia.</p></div><span class=\"av yours\">Your seats</span></li>\n    <li><time>04 Jun<br><i>— 27 Jun</i></time><div><h3>A Number</h3><p>Two actors, sixty minutes, no interval.</p></div><span class=\"av ok\">Booking</span></li>\n    <li><time>09 Jul<br><i>— 01 Aug</i></time><div><h3>The Rite of Spring</h3><p>Danced by Company Sørensen to a live percussion score.</p></div><span class=\"av\">Sold out</span></li>\n  </ol>\n</section></section>\n<section class=\"dz-mod\" data-mod=\"note\" aria-label=\"Members note\">\n<aside class=\"nt\"><h2>What a membership actually gets you</h2><div class=\"nt-g\">\n  <div><span class=\"n\">01</span><p>Two weeks of priority booking before every general release, on every production.</p></div>\n  <div><span class=\"n\">02</span><p>Seats held in the centre stalls until the Friday before opening.</p></div>\n  <div><span class=\"n\">03</span><p>Exchanges up to four hours before curtain, without a fee, twice a season.</p></div>\n</div></aside></section>\n<section class=\"dz-mod\" data-mod=\"foot\" aria-label=\"Closing note\">\n<footer class=\"ft\"><p>Marlowe Playhouse · Cross Quay · Opens 90 minutes before curtain</p><p class=\"m\">Access performances are listed on every production page. Captioned and audio-described dates are set at the point of announcement, not on request.</p></footer></section>\n</div>",
  "css": "\n.dz-curtain-call-season { background: var(--background); color: var(--foreground); font-family: var(--pv-body); display: grid; gap: 56px; }\n.dz-curtain-call-season .hd { position: relative; }\n.dz-curtain-call-season .hd img { width: 100%; height: 460px; object-fit: cover; filter: var(--img-filter); display: block; }\n.dz-curtain-call-season .hd-t { max-width: 1320px; margin: -96px auto 0; padding: 0 30px; position: relative; }\n.dz-curtain-call-season .k { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--muted-foreground); }\n.dz-curtain-call-season .hd h1 { font-family: var(--pv-display); font-weight: 400; letter-spacing: -.015em; font-size: 78px; line-height: 1.04; margin: 10px 0 16px; }\n.dz-curtain-call-season .hd p { max-width: 62ch; margin: 0; color: var(--muted-foreground); }\n.dz-curtain-call-season .hd-a { display: flex; gap: 18px; align-items: center; margin-top: 26px; }\n.dz-curtain-call-season .btn { background: var(--primary); color: var(--primary-foreground); padding: 13px 22px; border-radius: var(--pv-radius-sm); text-decoration: none; font-weight: 600; }\n.dz-curtain-call-season .lk { color: var(--foreground); text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 2px; }\n.dz-curtain-call-season .bl { max-width: 1320px; margin: 0 auto; padding: 0 30px; width: 100%; }\n.dz-curtain-call-season .bl ol { list-style: none; margin: 0; padding: 0; }\n.dz-curtain-call-season .bl li { display: grid; grid-template-columns: 92px 1fr auto; gap: 24px; align-items: baseline; padding: 22px 0; border-top: 1px solid var(--border); }\n.dz-curtain-call-season .bl li.has { background: color-mix(in oklab, var(--card) 70%, transparent); }\n.dz-curtain-call-season time { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--muted-foreground); line-height: 1.5; }\n.dz-curtain-call-season time i { font-style: normal; opacity: .7; }\n.dz-curtain-call-season .bl h3 { font-family: var(--pv-display); font-weight: 400; letter-spacing: -.015em; font-size: 23px; margin: 0 0 4px; }\n.dz-curtain-call-season .bl p { margin: 0; font-size: 13px; color: var(--muted-foreground); }\n.dz-curtain-call-season .av { font-size: 12px; color: var(--muted-foreground); white-space: nowrap; }\n.dz-curtain-call-season .av.ok { color: var(--foreground); }\n.dz-curtain-call-season .av.yours { color: var(--accent); font-weight: 600; }\n.dz-curtain-call-season .nt { max-width: 1320px; margin: 0 auto; padding: 28px 30px; width: 100%; background: var(--card); border-radius: var(--pv-radius); }\n.dz-curtain-call-season .nt h2 { font-family: var(--pv-display); font-weight: 400; letter-spacing: -.015em; font-size: 23px; margin: 0 0 20px; }\n.dz-curtain-call-season .nt-g { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }\n.dz-curtain-call-season .n { font-family: var(--pv-mono); font-size: 13px; letter-spacing: .01em; color: var(--accent); display: block; margin-bottom: 6px; }\n.dz-curtain-call-season .nt-g p { margin: 0; font-size: 14px; }\n.dz-curtain-call-season .ft { max-width: 1320px; margin: 0 auto; padding: 0 30px 40px; width: 100%; border-top: 1px solid var(--border); padding-top: 22px; }\n.dz-curtain-call-season .ft p { margin: 0 0 6px; font-size: 13px; }\n.dz-curtain-call-season .ft .m { color: var(--muted-foreground); max-width: 62ch; }\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"
}