{
  "id": "frost-index-front",
  "name": "Data Front",
  "theme": "frost-index",
  "category": "Landing",
  "description": "A marketing page for a data product that shows the actual data as the hero, at the density the product ships, rather than a simplified cartoon of it.",
  "layout": "A short centred headline block above a full-bleed live table that is deliberately cut off by the fold, followed by a four-column coverage band of pure counts.",
  "modules": [
    {
      "key": "nav",
      "name": "Navigation",
      "html": "\n<header class=\"nv\"><span class=\"br\">Frost Index</span><nav><a href=\"#\">Coverage</a><a href=\"#\">Methodology</a><a href=\"#\">API</a><a href=\"#\">Pricing</a></nav><a class=\"cta\" href=\"#\">Request access</a></header>"
    },
    {
      "key": "head",
      "name": "Headline",
      "html": "\n<div class=\"hd\"><h1>Every number, with the revision history attached.</h1><p>Thirty-two markets, eleven series, back to 1994. When a statistical office revises a print we keep both, and the API tells you which one you would have seen on the day.</p><div class=\"act\"><a class=\"go\" href=\"#\">Request access</a><a class=\"lnk\" href=\"#\">Read the methodology</a></div></div>"
    },
    {
      "key": "preview",
      "name": "Data preview",
      "html": "\n<section class=\"pv\"><table>\n  <thead><tr><th>Series</th><th>Market</th><th>Period</th><th>First print</th><th>Current</th><th>Revisions</th><th>Vintage</th></tr></thead>\n  <tbody>\n    <tr><td>CPI YoY</td><td>GB</td><td>2026-08</td><td class=\"n\">3.5</td><td class=\"n\">3.4</td><td class=\"n\">1</td><td class=\"n\">2026-09-02</td></tr>\n    <tr><td>CPI YoY</td><td>US</td><td>2026-08</td><td class=\"n\">2.9</td><td class=\"n\">2.9</td><td class=\"n\">0</td><td class=\"n\">2026-09-01</td></tr>\n    <tr><td>GDP QoQ</td><td>GB</td><td>2026-Q2</td><td class=\"n\">0.4</td><td class=\"n\">0.6</td><td class=\"n\">3</td><td class=\"n\">2026-08-29</td></tr>\n    <tr><td>Unemployment</td><td>DE</td><td>2026-08</td><td class=\"n\">5.9</td><td class=\"n\">5.9</td><td class=\"n\">0</td><td class=\"n\">2026-09-01</td></tr>\n    <tr><td>PPI YoY</td><td>JP</td><td>2026-07</td><td class=\"n\">1.8</td><td class=\"n\">2.1</td><td class=\"n\">2</td><td class=\"n\">2026-08-22</td></tr>\n    <tr><td>Retail sales</td><td>FR</td><td>2026-07</td><td class=\"n\">(0.2)</td><td class=\"n\">0.1</td><td class=\"n\">1</td><td class=\"n\">2026-08-30</td></tr>\n  </tbody>\n</table><div class=\"fade\"></div></section>"
    },
    {
      "key": "coverage",
      "name": "Coverage band",
      "html": "\n<section class=\"cv\">\n  <div><b>32</b><span class=\"k\">markets</span></div>\n  <div><b>11</b><span class=\"k\">series per market</span></div>\n  <div><b>1994</b><span class=\"k\">earliest vintage</span></div>\n  <div><b>18 min</b><span class=\"k\">median lag after release</span></div>\n</section>"
    }
  ],
  "moduleCount": 4,
  "reorderable": true,
  "meta": {
    "id": "frost-index-front",
    "model": "Claude Opus 5",
    "author": "Claude Code",
    "createdAt": "2026-09-01T19:53:43+09:00",
    "updatedAt": "2026-09-01T19:53:43+09:00",
    "version": "1.0.0",
    "isNew": false
  },
  "link": "/api/v1/designs/frost-index-front.json",
  "structure": "A short centred headline block above a full-bleed live table that is deliberately cut off by the fold, followed by a four-column coverage band of pure counts.",
  "html": "<div class=\"dz dz-frost-index-front\" data-design=\"frost-index-front\" data-theme=\"frost-index\">\n<section class=\"dz-mod\" data-mod=\"nav\" aria-label=\"Navigation\">\n<header class=\"nv\"><span class=\"br\">Frost Index</span><nav><a href=\"#\">Coverage</a><a href=\"#\">Methodology</a><a href=\"#\">API</a><a href=\"#\">Pricing</a></nav><a class=\"cta\" href=\"#\">Request access</a></header></section>\n<section class=\"dz-mod\" data-mod=\"head\" aria-label=\"Headline\">\n<div class=\"hd\"><h1>Every number, with the revision history attached.</h1><p>Thirty-two markets, eleven series, back to 1994. When a statistical office revises a print we keep both, and the API tells you which one you would have seen on the day.</p><div class=\"act\"><a class=\"go\" href=\"#\">Request access</a><a class=\"lnk\" href=\"#\">Read the methodology</a></div></div></section>\n<section class=\"dz-mod\" data-mod=\"preview\" aria-label=\"Data preview\">\n<section class=\"pv\"><table>\n  <thead><tr><th>Series</th><th>Market</th><th>Period</th><th>First print</th><th>Current</th><th>Revisions</th><th>Vintage</th></tr></thead>\n  <tbody>\n    <tr><td>CPI YoY</td><td>GB</td><td>2026-08</td><td class=\"n\">3.5</td><td class=\"n\">3.4</td><td class=\"n\">1</td><td class=\"n\">2026-09-02</td></tr>\n    <tr><td>CPI YoY</td><td>US</td><td>2026-08</td><td class=\"n\">2.9</td><td class=\"n\">2.9</td><td class=\"n\">0</td><td class=\"n\">2026-09-01</td></tr>\n    <tr><td>GDP QoQ</td><td>GB</td><td>2026-Q2</td><td class=\"n\">0.4</td><td class=\"n\">0.6</td><td class=\"n\">3</td><td class=\"n\">2026-08-29</td></tr>\n    <tr><td>Unemployment</td><td>DE</td><td>2026-08</td><td class=\"n\">5.9</td><td class=\"n\">5.9</td><td class=\"n\">0</td><td class=\"n\">2026-09-01</td></tr>\n    <tr><td>PPI YoY</td><td>JP</td><td>2026-07</td><td class=\"n\">1.8</td><td class=\"n\">2.1</td><td class=\"n\">2</td><td class=\"n\">2026-08-22</td></tr>\n    <tr><td>Retail sales</td><td>FR</td><td>2026-07</td><td class=\"n\">(0.2)</td><td class=\"n\">0.1</td><td class=\"n\">1</td><td class=\"n\">2026-08-30</td></tr>\n  </tbody>\n</table><div class=\"fade\"></div></section></section>\n<section class=\"dz-mod\" data-mod=\"coverage\" aria-label=\"Coverage band\">\n<section class=\"cv\">\n  <div><b>32</b><span class=\"k\">markets</span></div>\n  <div><b>11</b><span class=\"k\">series per market</span></div>\n  <div><b>1994</b><span class=\"k\">earliest vintage</span></div>\n  <div><b>18 min</b><span class=\"k\">median lag after release</span></div>\n</section></section>\n</div>",
  "css": "\n.dz-frost-index-front { background: var(--background); color: var(--foreground); font-family: var(--pv-body); }\n.dz-frost-index-front .nv { display: flex; align-items: center; gap: 26px; padding: 16px 24px; border-bottom: var(--pv-bw) solid var(--border); }\n.dz-frost-index-front .br { font-family: var(--pv-display); font-size: 18px; font-weight: 600; letter-spacing: -.02em; }\n.dz-frost-index-front .nv nav { display: flex; gap: 20px; margin-left: 16px; }\n.dz-frost-index-front .nv a { font-size: 13px; color: var(--muted-foreground); text-decoration: none; }\n.dz-frost-index-front .nv a:hover { color: var(--foreground); }\n.dz-frost-index-front .cta { margin-left: auto; font-size: 12.5px; background: var(--primary); color: var(--primary-foreground) !important; border-radius: var(--pv-radius-md); padding: 8px 15px; }\n.dz-frost-index-front .hd { max-width: 66ch; margin: 0 auto; padding: 44px 24px 30px; text-align: center; }\n.dz-frost-index-front .hd h1 { font-family: var(--pv-display); font-size: 40px; font-weight: 600; line-height: 1.1; letter-spacing: -.03em; margin: 0 0 14px; }\n.dz-frost-index-front .hd p { font-size: 15.5px; line-height: 1.62; color: var(--muted-foreground); margin: 0 0 22px; }\n.dz-frost-index-front .act { display: flex; gap: 18px; justify-content: center; align-items: center; }\n.dz-frost-index-front .go { font-size: 14px; background: var(--primary); color: var(--primary-foreground); border-radius: var(--pv-radius-md); padding: 11px 22px; text-decoration: none; }\n.dz-frost-index-front .lnk { font-size: 13.5px; color: var(--accent); }\n.dz-frost-index-front .pv { position: relative; border-top: var(--pv-bw) solid var(--border); max-height: 230px; overflow: hidden; }\n.dz-frost-index-front table { width: 100%; border-collapse: collapse; }\n.dz-frost-index-front th { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-foreground); text-align: right; padding: 10px 16px; border-bottom: var(--pv-bw) solid var(--border); background: var(--card); }\n.dz-frost-index-front th:first-child, .dz-frost-index-front th:nth-child(2) { text-align: left; }\n.dz-frost-index-front td { padding: 0 16px; height: 34px; font-size: 13px; border-bottom: var(--pv-bw) solid var(--border); }\n.dz-frost-index-front .n { font-family: var(--pv-mono); font-feature-settings: \"tnum\" 1, \"zero\" 1; text-align: right; }\n.dz-frost-index-front .fade { position: absolute; inset: auto 0 0 0; height: 90px; background: linear-gradient(transparent, var(--background)); pointer-events: none; }\n.dz-frost-index-front .cv { display: grid; grid-template-columns: repeat(4, 1fr); border-top: var(--pv-bw) solid var(--border); }\n.dz-frost-index-front .cv div { padding: 24px 20px; border-right: var(--pv-bw) solid var(--border); display: flex; flex-direction: column; gap: 6px; }\n.dz-frost-index-front .cv div:last-child { border-right: 0; }\n.dz-frost-index-front .cv b { font-family: var(--pv-mono); font-size: 34px; font-weight: 600; letter-spacing: -.03em; color: var(--primary); }\n.dz-frost-index-front .k { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted-foreground); }\n@media (prefers-reduced-motion: reduce) { .dz-frost-index-front *, .dz-frost-index-front *::before, .dz-frost-index-front *::after { transition-duration: 1ms !important; animation-duration: 1ms !important; } }",
  "requiredTheme": "/api/v1/themes/frost-index.json",
  "googleFontsHref": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap"
}