{
  "id": "sprint-board-leaderboard",
  "name": "Live Leaderboard",
  "theme": "sprint-board",
  "category": "Dashboard",
  "description": "The signature board: 76px rank rows with a 96px numeral column, sized so the standings are legible from the far side of a room rather than at reading distance.",
  "layout": "A four-figure header band over full-width 76px rank rows; the leader’s row is filled chartreuse rather than merely outlined.",
  "modules": [
    {
      "key": "band",
      "name": "Race band",
      "html": "\n<header class=\"rb\"><div><span class=\"k\">Event</span><b>Kilcarn 10K</b></div><div><span class=\"k\">Elapsed</span><b class=\"n\">00:34:12</b></div><div><span class=\"k\">Finished</span><b class=\"n\">412</b></div><div><span class=\"k\">On course</span><b class=\"n\">1,088</b></div></header>"
    },
    {
      "key": "rows",
      "name": "Rank rows",
      "html": "\n<ol class=\"rr\">\n  <li class=\"lead\"><span class=\"rk n\">1</span><div class=\"who\"><b>Marisol Duarte</b><span class=\"cl\">Kilcarn Harriers · F 25–29</span></div><span class=\"dl n\">—</span><span class=\"tm n\">31:04</span></li>\n  <li><span class=\"rk n\">2</span><div class=\"who\"><b>Femi Adeyemi</b><span class=\"cl\">Beckton AC · M 30–34</span></div><span class=\"dl n up\">+1</span><span class=\"tm n\">31:22</span></li>\n  <li><span class=\"rk n\">3</span><div class=\"who\"><b>Hana Ostrowski</b><span class=\"cl\">Unattached · F 20–24</span></div><span class=\"dl n dn\">−1</span><span class=\"tm n\">31:40</span></li>\n  <li><span class=\"rk n\">4</span><div class=\"who\"><b>Tomás Feld</b><span class=\"cl\">Mill Bridge Runners · M 35–39</span></div><span class=\"dl n\">—</span><span class=\"tm n\">32:11</span></li>\n  <li class=\"note\"><span class=\"rk n\">5</span><div class=\"who\"><b>Ivy Ekwueme</b><span class=\"cl\">Kilcarn Harriers · F 30–34</span></div><span class=\"dl n up\">+3</span><span class=\"tm n\">32:44</span></li>\n  <li><span class=\"rk n\">6</span><div class=\"who\"><b>Anwen Prys</b><span class=\"cl\">Beckton AC · F 25–29</span></div><span class=\"dl n dn\">−2</span><span class=\"tm n\">33:02</span></li>\n</ol>"
    },
    {
      "key": "note",
      "name": "Board note",
      "html": "\n<footer class=\"bn\"><span class=\"vb\"></span><p><b>Ivy Ekwueme</b> is running under a corrected chip number after a timing mat failure at 5 km. Her split has been reconstructed from the 7 km mat and is provisional.</p></footer>"
    }
  ],
  "moduleCount": 3,
  "reorderable": true,
  "meta": {
    "id": "sprint-board-leaderboard",
    "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-leaderboard.json",
  "structure": "A four-figure header band over full-width 76px rank rows; the leader’s row is filled chartreuse rather than merely outlined.",
  "html": "<div class=\"dz dz-sprint-board-leaderboard\" data-design=\"sprint-board-leaderboard\" data-theme=\"sprint-board\">\n<section class=\"dz-mod\" data-mod=\"band\" aria-label=\"Race band\">\n<header class=\"rb\"><div><span class=\"k\">Event</span><b>Kilcarn 10K</b></div><div><span class=\"k\">Elapsed</span><b class=\"n\">00:34:12</b></div><div><span class=\"k\">Finished</span><b class=\"n\">412</b></div><div><span class=\"k\">On course</span><b class=\"n\">1,088</b></div></header></section>\n<section class=\"dz-mod\" data-mod=\"rows\" aria-label=\"Rank rows\">\n<ol class=\"rr\">\n  <li class=\"lead\"><span class=\"rk n\">1</span><div class=\"who\"><b>Marisol Duarte</b><span class=\"cl\">Kilcarn Harriers · F 25–29</span></div><span class=\"dl n\">—</span><span class=\"tm n\">31:04</span></li>\n  <li><span class=\"rk n\">2</span><div class=\"who\"><b>Femi Adeyemi</b><span class=\"cl\">Beckton AC · M 30–34</span></div><span class=\"dl n up\">+1</span><span class=\"tm n\">31:22</span></li>\n  <li><span class=\"rk n\">3</span><div class=\"who\"><b>Hana Ostrowski</b><span class=\"cl\">Unattached · F 20–24</span></div><span class=\"dl n dn\">−1</span><span class=\"tm n\">31:40</span></li>\n  <li><span class=\"rk n\">4</span><div class=\"who\"><b>Tomás Feld</b><span class=\"cl\">Mill Bridge Runners · M 35–39</span></div><span class=\"dl n\">—</span><span class=\"tm n\">32:11</span></li>\n  <li class=\"note\"><span class=\"rk n\">5</span><div class=\"who\"><b>Ivy Ekwueme</b><span class=\"cl\">Kilcarn Harriers · F 30–34</span></div><span class=\"dl n up\">+3</span><span class=\"tm n\">32:44</span></li>\n  <li><span class=\"rk n\">6</span><div class=\"who\"><b>Anwen Prys</b><span class=\"cl\">Beckton AC · F 25–29</span></div><span class=\"dl n dn\">−2</span><span class=\"tm n\">33:02</span></li>\n</ol></section>\n<section class=\"dz-mod\" data-mod=\"note\" aria-label=\"Board note\">\n<footer class=\"bn\"><span class=\"vb\"></span><p><b>Ivy Ekwueme</b> is running under a corrected chip number after a timing mat failure at 5 km. Her split has been reconstructed from the 7 km mat and is provisional.</p></footer></section>\n</div>",
  "css": "\n.dz-sprint-board-leaderboard { background: var(--background); color: var(--foreground); font-family: var(--pv-body); padding: 22px 26px 26px; }\n.dz-sprint-board-leaderboard .k { text-transform: uppercase; letter-spacing: .16em; font-size: 10.5px; font-weight: 700; color: var(--muted-foreground); display: block; }\n.dz-sprint-board-leaderboard .n { font-family: var(--pv-mono); font-variant-numeric: tabular-nums; letter-spacing: -.04em; }\n.dz-sprint-board-leaderboard .rb { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 18px; }\n.dz-sprint-board-leaderboard .rb div { background: var(--card); border-radius: var(--pv-radius-md); padding: 16px; }\n.dz-sprint-board-leaderboard .rb b { display: block; font-family: var(--pv-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 30px; margin-top: 6px; }\n.dz-sprint-board-leaderboard .rb .n { font-weight: 700; }\n.dz-sprint-board-leaderboard .rr { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }\n.dz-sprint-board-leaderboard .rr li { display: grid; grid-template-columns: 96px 1fr 90px 150px; align-items: center; height: 76px; background: var(--card); border-radius: var(--pv-radius-md); padding: 0 20px; }\n.dz-sprint-board-leaderboard .rr .lead { background: var(--primary); color: var(--primary-foreground); }\n.dz-sprint-board-leaderboard .rk { font-size: 44px; font-weight: 700; }\n.dz-sprint-board-leaderboard .who b { display: block; font-family: var(--pv-display); text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 22px; }\n.dz-sprint-board-leaderboard .cl { font-size: 12.5px; color: var(--muted-foreground); }\n.dz-sprint-board-leaderboard .lead .cl { color: var(--primary-foreground); opacity: .78; }\n.dz-sprint-board-leaderboard .dl { font-size: 17px; font-weight: 700; text-align: center; color: var(--muted-foreground); }\n.dz-sprint-board-leaderboard .dl.up { color: var(--primary); }\n.dz-sprint-board-leaderboard .lead .dl { color: var(--primary-foreground); }\n.dz-sprint-board-leaderboard .tm { font-size: 40px; font-weight: 700; text-align: right; }\n.dz-sprint-board-leaderboard .note { border-left: 4px solid var(--accent); padding-left: 16px; }\n.dz-sprint-board-leaderboard .bn { display: grid; grid-template-columns: 4px 1fr; gap: 14px; margin-top: 18px; }\n.dz-sprint-board-leaderboard .vb { background: var(--accent); }\n.dz-sprint-board-leaderboard .bn p { margin: 0; font-size: 13.5px; line-height: 1.5; max-width: 58ch; }\n@media (prefers-reduced-motion: reduce) { .dz-sprint-board-leaderboard *, .dz-sprint-board-leaderboard *::before, .dz-sprint-board-leaderboard *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }\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"
}