{
  "id": "sprint-board-athlete",
  "name": "Athlete Record",
  "theme": "sprint-board",
  "category": "Profile & Social",
  "description": "An athlete page whose identity is four personal bests at 96px, with everything else — clubs, history, notes — deliberately set as small print beneath them.",
  "layout": "A four-across personal-best band at full numeral size, then a two-column split of a season results table and a violet-barred coach note.",
  "modules": [
    {
      "key": "who",
      "name": "Athlete head",
      "html": "\n<header class=\"ah\"><div><span class=\"k\">Kilcarn Harriers · F 25–29 · since 2019</span><h1>Marisol Duarte</h1></div><span class=\"bib n\">A-104</span></header>"
    },
    {
      "key": "pbs",
      "name": "Personal bests",
      "html": "\n<section class=\"pb\">\n  <div><span class=\"k\">5K</span><b class=\"n\">15:02</b><span class=\"w\">Beckton, 2026</span></div>\n  <div><span class=\"k\">10K</span><b class=\"n\">31:04</b><span class=\"w\">Kilcarn, 2026</span></div>\n  <div><span class=\"k\">Half</span><b class=\"n\">1:09:44</b><span class=\"w\">Mill Bridge, 2025</span></div>\n  <div><span class=\"k\">Marathon</span><b class=\"n\">2:31:18</b><span class=\"w\">Riverside, 2025</span></div>\n</section>"
    },
    {
      "key": "season",
      "name": "Season results",
      "html": "\n<section class=\"sr\"><h2>This season</h2>\n<table><thead><tr><th>Date</th><th>Race</th><th>Distance</th><th>Time</th><th>Pos</th><th>Note</th></tr></thead>\n<tbody>\n<tr class=\"pbr\"><td class=\"n\">14.06</td><td>Kilcarn 10K</td><td>10 km</td><td class=\"n\">31:04</td><td class=\"n\">1</td><td class=\"p\">PB · course record</td></tr>\n<tr><td class=\"n\">02.05</td><td>Beckton Park 5K</td><td>5 km</td><td class=\"n\">15:02</td><td class=\"n\">1</td><td class=\"p\">PB</td></tr>\n<tr><td class=\"n\">19.04</td><td>Mill Bridge Relays</td><td>4 × 3 km</td><td class=\"n\">9:11</td><td class=\"n\">2</td><td>Leg 3</td></tr>\n<tr><td class=\"n\">08.03</td><td>County Cross Country</td><td>8 km</td><td class=\"n\">29:40</td><td class=\"n\">4</td><td>Heavy underfoot</td></tr>\n<tr><td class=\"n\">18.01</td><td>Riverside Half</td><td>21.1 km</td><td class=\"n\">1:10:22</td><td class=\"n\">1</td><td>Windy</td></tr>\n</tbody></table></section>"
    },
    {
      "key": "coach",
      "name": "Coach note",
      "html": "\n<aside class=\"cn\"><h2>Coach note</h2><p>Four weeks of specific work before Kilcarn, all of it on the climb between four and five kilometres. The 17-second loss there in 2025 was the whole margin; this year it was the whole win.</p><p class=\"w\">— T. Feld, 14 June</p></aside>"
    }
  ],
  "moduleCount": 4,
  "reorderable": false,
  "meta": {
    "id": "sprint-board-athlete",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-02T00:00:34+09:00",
    "updatedAt": "2026-09-02T00:00:34+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/sprint-board-athlete.json",
  "structure": "A four-across personal-best band at full numeral size, then a two-column split of a season results table and a violet-barred coach note.",
  "html": "<div class=\"dz dz-sprint-board-athlete\" data-design=\"sprint-board-athlete\" data-theme=\"sprint-board\">\n<section class=\"dz-mod\" data-mod=\"who\" aria-label=\"Athlete head\">\n<header class=\"ah\"><div><span class=\"k\">Kilcarn Harriers · F 25–29 · since 2019</span><h1>Marisol Duarte</h1></div><span class=\"bib n\">A-104</span></header></section><section class=\"dz-mod\" data-mod=\"pbs\" aria-label=\"Personal bests\">\n<section class=\"pb\">\n  <div><span class=\"k\">5K</span><b class=\"n\">15:02</b><span class=\"w\">Beckton, 2026</span></div>\n  <div><span class=\"k\">10K</span><b class=\"n\">31:04</b><span class=\"w\">Kilcarn, 2026</span></div>\n  <div><span class=\"k\">Half</span><b class=\"n\">1:09:44</b><span class=\"w\">Mill Bridge, 2025</span></div>\n  <div><span class=\"k\">Marathon</span><b class=\"n\">2:31:18</b><span class=\"w\">Riverside, 2025</span></div>\n</section></section><div class=\"split\"><section class=\"dz-mod\" data-mod=\"season\" aria-label=\"Season results\">\n<section class=\"sr\"><h2>This season</h2>\n<table><thead><tr><th>Date</th><th>Race</th><th>Distance</th><th>Time</th><th>Pos</th><th>Note</th></tr></thead>\n<tbody>\n<tr class=\"pbr\"><td class=\"n\">14.06</td><td>Kilcarn 10K</td><td>10 km</td><td class=\"n\">31:04</td><td class=\"n\">1</td><td class=\"p\">PB · course record</td></tr>\n<tr><td class=\"n\">02.05</td><td>Beckton Park 5K</td><td>5 km</td><td class=\"n\">15:02</td><td class=\"n\">1</td><td class=\"p\">PB</td></tr>\n<tr><td class=\"n\">19.04</td><td>Mill Bridge Relays</td><td>4 × 3 km</td><td class=\"n\">9:11</td><td class=\"n\">2</td><td>Leg 3</td></tr>\n<tr><td class=\"n\">08.03</td><td>County Cross Country</td><td>8 km</td><td class=\"n\">29:40</td><td class=\"n\">4</td><td>Heavy underfoot</td></tr>\n<tr><td class=\"n\">18.01</td><td>Riverside Half</td><td>21.1 km</td><td class=\"n\">1:10:22</td><td class=\"n\">1</td><td>Windy</td></tr>\n</tbody></table></section></section><section class=\"dz-mod\" data-mod=\"coach\" aria-label=\"Coach note\">\n<aside class=\"cn\"><h2>Coach note</h2><p>Four weeks of specific work before Kilcarn, all of it on the climb between four and five kilometres. The 17-second loss there in 2025 was the whole margin; this year it was the whole win.</p><p class=\"w\">— T. Feld, 14 June</p></aside></section></div>\n</div>",
  "css": "\n.dz-sprint-board-athlete { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 24px 26px; }\n.dz-sprint-board-athlete .k { text-transform: uppercase; letter-spacing: .16em; font-size: 10.5px; font-weight: 700; color: var(--muted-foreground); display: block; }\n.dz-sprint-board-athlete .n { font-family: var(--pv-mono); font-variant-numeric: tabular-nums; letter-spacing: -.04em; }\n.dz-sprint-board-athlete .ah { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 16px; border-bottom: 2px solid var(--border); margin-bottom: 22px; }\n.dz-sprint-board-athlete h1 { font-family: var(--pv-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 44px; margin: 6px 0 0; }\n.dz-sprint-board-athlete .bib { background: var(--primary); color: var(--primary-foreground); font-family: var(--pv-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 26px; padding: 10px 20px; border-radius: var(--pv-radius-md); }\n.dz-sprint-board-athlete .pb { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 26px; }\n.dz-sprint-board-athlete .pb div { background: var(--card); border-radius: var(--pv-radius-md); padding: 18px; }\n.dz-sprint-board-athlete .pb b { display: block; font-size: 56px; font-weight: 700; line-height: 1; margin: 8px 0 6px; }\n.dz-sprint-board-athlete .w { font-size: 12px; color: var(--muted-foreground); }\n.dz-sprint-board-athlete .split { display: grid; grid-template-columns: 1fr 300px; gap: 26px; align-items: start; }\n.dz-sprint-board-athlete h2 { font-family: var(--pv-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 22px; margin: 0 0 12px; }\n.dz-sprint-board-athlete table { width: 100%; border-collapse: collapse; }\n.dz-sprint-board-athlete th { text-transform: uppercase; letter-spacing: .16em; font-size: 10.5px; font-weight: 700; color: var(--muted-foreground); text-align: left; padding: 0 12px 10px 0; border-bottom: 2px solid var(--border); }\n.dz-sprint-board-athlete td { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--border); font-size: 14.5px; }\n.dz-sprint-board-athlete td.n { font-size: 17px; font-weight: 700; }\n.dz-sprint-board-athlete tr.pbr td { background: var(--primary); color: var(--primary-foreground); }\n.dz-sprint-board-athlete .p { text-transform: uppercase; letter-spacing: .16em; font-size: 10.5px; font-weight: 700; color: var(--muted-foreground); color: var(--primary); }\n.dz-sprint-board-athlete tr.pbr .p { color: var(--primary-foreground); }\n.dz-sprint-board-athlete .cn { border-left: 4px solid var(--accent); padding-left: 18px; }\n.dz-sprint-board-athlete .cn p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.55; }\n",
  "requiredTheme": "/api/v1/themes/sprint-board.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=League+Spartan:wght@400;500;600;700&family=Epilogue:wght@400;500;600;700&family=Chivo+Mono:wght@400;500;600;700&display=swap"
}