{
  "name": "Twenty One Run Brand Hub",
  "version": "2026-06-18",
  "primaryOrigin": "https://twentyonerunbrandhub.lovable.app",
  "customOrigin": "https://brandhub.twentyonerun.com",
  "aiEntrypoints": {
    "manifest": "https://twentyonerunbrandhub.lovable.app/brand-assets.json",
    "inlineManifest": "https://twentyonerunbrandhub.lovable.app/brand-assets-inline.json",
    "bundleZip": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/43619e93-f4ab-4f53-9be8-a37f907fccca/brand-assets-bundle.zip",
    "brandGuideMarkdown": "https://twentyonerunbrandhub.lovable.app/brand-guide.md",
    "llms": "https://twentyonerunbrandhub.lovable.app/llms.txt",
    "humanAssetsPage": "https://twentyonerunbrandhub.lovable.app/assets",
    "humanBrandGuide": "https://twentyonerunbrandhub.lovable.app/brand-guide"
  },
  "usageNotes": [
    "Use the direct URLs in this manifest instead of scraping the React page.",
    "Coach image variants are pre-rendered files: original, square, and transparent PNG circle.",
    "If a custom domain is blocked in your sandbox, use the primaryOrigin lovable.app URLs. The same paths also work on the customOrigin.",
    "If your sandbox cannot fetch any external URLs, fetch brand-assets-inline.json once — every logo and coach circle is embedded as a base64 dataUri usable directly in <img src>.",
    "For one-shot offline use, bundleZip is a single ~28 MB ZIP with logos/, coaches/{slug}/{original,square,circle}, events/, and email/."
  ],
  "logos": [
    { "id": "tor-full-mark-black", "title": "Full Mark — Black", "format": "svg", "usage": "Primary lockup for light backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-full-mark-black.svg" },
    { "id": "tor-full-mark-white", "title": "Full Mark — White", "format": "svg", "usage": "Primary lockup for dark backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-full-mark-white.svg" },
    { "id": "tor-mark-black", "title": "Mark — Black", "format": "svg", "usage": "Standalone mark for light backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-mark-black.svg" },
    { "id": "tor-mark-white", "title": "Mark — White", "format": "svg", "usage": "Standalone mark for dark backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-mark-white.svg" },
    { "id": "xxi-full-black", "title": "XXI Full — Black", "format": "svg", "usage": "XXI full lockup for light backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/xxi-full-black.svg" },
    { "id": "xxi-full-white", "title": "XXI Full — White", "format": "svg", "usage": "XXI full lockup for dark backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/xxi-full-white.svg" },
    { "id": "xxi-mark-black", "title": "XXI Mark — Black", "format": "svg", "usage": "Condensed XXI mark for light backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/xxi-mark-black.svg" },
    { "id": "xxi-mark-white", "title": "XXI Mark — White", "format": "svg", "usage": "Condensed XXI mark for dark backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/xxi-mark-white.svg" },
    { "id": "tor-wordmark-black", "title": "Wordmark — Black", "format": "svg", "usage": "Text-only mark for light backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-wordmark-black.svg" },
    { "id": "tor-wordmark-white", "title": "Wordmark — White", "format": "svg", "usage": "Text-only mark for dark backgrounds", "url": "https://twentyonerunbrandhub.lovable.app/logos/tor-wordmark-white.svg" }
  ],
  "coaches": [
    {
      "slug": "allie-kolaski",
      "name": "Allie Kolaski",
      "role": "Vertical Edge",
      "classes": ["Vertical Edge"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/41d422b6-4275-4023-9d83-b4755f9ff004/allie-kolaski-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/dd1b022b-cac3-4ad2-86e0-a974f39564ee/allie-kolaski-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/1ec5bf32-40ee-4ab5-b6ac-bc66d17c0a67/allie-kolaski-circle.png"
      }
    },
    {
      "slug": "jeremy-ranck",
      "name": "Jeremy Ranck",
      "role": "Personal Training / Strength Coach",
      "classes": ["Personal Training", "Strength Coach"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/0032a792-a994-4d8e-b6fc-0c0d8297baaf/jeremy-ranck-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/5762f581-5442-4aa3-ab4d-384a789134a8/jeremy-ranck-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/c4e64149-7ac9-4663-b277-ff39df04bd53/jeremy-ranck-circle.png"
      }
    },
    {
      "slug": "jordan-maddocks",
      "name": "Jordan Maddocks",
      "role": "Speed Edge & Threshold Edge — 6am, 7:15am",
      "classes": ["Speed Edge — 6am, 7:15am", "Threshold Edge — 6am, 7:15am"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/a2fa8c4e-0afe-4524-9e9e-9f732f2e4090/jordan-maddocks-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/6c12174a-3f4e-4f10-a6fe-f54b5bf4a683/jordan-maddocks-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/bb6ffdd3-72ec-4a4d-b232-dcfd7a2e1dc7/jordan-maddocks-circle.png"
      }
    },
    {
      "slug": "katie-greenwood",
      "name": "Katie Greenwood",
      "role": "Speed Edge — Monday 6pm",
      "classes": ["Speed Edge — Monday 6pm"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/fd5175b0-4d9c-4025-a375-fde91dc97f6b/katie-greenwood-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/f68e4949-b26f-43fd-8b6c-b6f8fcae2d21/katie-greenwood-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/63856d13-18b9-4a03-8f44-7be25fcbf6d0/katie-greenwood-circle.png"
      }
    },
    {
      "slug": "matt-chaus",
      "name": "Matt Chaus",
      "role": "Speed Edge — Tuesday 6pm",
      "classes": ["Speed Edge — Tuesday 6pm"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/de843e8f-3a55-4727-9907-707238c4c8af/matt-chaus-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/c9455932-557e-4c9d-a520-147e1d4aad94/matt-chaus-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/6b03c819-8eef-4a5e-be83-1017e00fdffb/matt-chaus-circle.png"
      }
    },
    {
      "slug": "saige-schuller",
      "name": "Saige Schuller",
      "role": "Threshold Edge — 6am",
      "classes": ["Threshold Edge — 6am"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/b18fefe9-e67d-4010-80a6-589d0ebc2dab/saige-schuller-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/72b920ef-c1b0-440b-a5ac-840312b45afe/saige-schuller-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/63f66252-1b0c-405b-9360-853ff436632d/saige-schuller-circle.png"
      }
    },
    {
      "slug": "sophie-meyer",
      "name": "Sophie Meyer",
      "role": "Threshold Edge — 6pm",
      "classes": ["Threshold Edge — 6pm"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/b8d522b4-081e-4259-803f-b8dded780982/sophie-meyer-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/a1d77ac9-e5b3-4a38-a828-9d4934902785/sophie-meyer-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/c9b5fe2b-2af9-4d23-baa7-55be835dee02/sophie-meyer-circle.png"
      }
    },
    {
      "slug": "staci-king",
      "name": "Staci King",
      "role": "Threshold Edge — Thursday 6pm",
      "classes": ["Threshold Edge — Thursday 6pm"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/381b6918-79ab-4a2d-ad92-84593a6a5427/staci-king-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/14c424b9-f91c-438c-9514-120a9b687f02/staci-king-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/05a01618-00ff-4d7a-a345-b5b6ad661862/staci-king-circle.png"
      }
    },
    {
      "slug": "sylvia-bedford",
      "name": "Sylvia Bedford",
      "role": "Speed Edge — Mon 6am, 7:15am · Wed 7:15am",
      "classes": ["Speed Edge — Monday 6am", "Speed Edge — Monday 7:15am", "Speed Edge — Wednesday 7:15am"],
      "images": {
        "original": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/6fc3cd27-a9b8-4bac-8530-b816f7995206/sylvia-bedford-original.png",
        "square": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/fb7c325d-76a5-4001-9999-f71fc4056b60/sylvia-bedford-square.png",
        "circle": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/858735fb-1076-45bb-a4f7-b19c10e70b9d/sylvia-bedford-circle.png"
      }
    }
  ],
  "events": [
    {
      "id": "inhouse-ultra-2025-banner",
      "event": "In-House Ultra",
      "year": 2025,
      "title": "In-House Ultra 2025 — Banner",
      "description": "Event banner hanging in the treadmill room — '#1 InHouse Ultra' rainbow gradient on red.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/9ede7461-8213-4db3-bda4-01baa9b0edce/inhouse-ultra-2025-banner.png"
    },
    {
      "id": "inhouse-ultra-2025-treadmills",
      "event": "In-House Ultra",
      "year": 2025,
      "title": "In-House Ultra 2025 — Treadmills",
      "description": "Athletes running on treadmills during the In-House Ultra 2025 event.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/0cd76c4e-03c1-4056-8492-4ab28332c7ae/inhouse-ultra-2025-treadmills.png"
    },
    {
      "id": "inhouse-ultra-2026-banner-treadmills",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Banner & Treadmills",
      "description": "Rainbow 'InHouse Ultra' banner above the empty Woodway treadmill row, blue LED ceiling strip.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/3d2eb845-4a1f-4638-b256-a876e22d6688/inhouse-ultra-2026-banner-treadmills.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-treadmill-row-banner",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Treadmill Row & Banner",
      "description": "Lone runner on the Woodway row under daylight with the InHouse Ultra banner in the background.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/c94b6f2d-2066-43e2-bb25-fa429c84862a/inhouse-ultra-2026-treadmill-row-banner.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-runner-treadmill-pink",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Runner, Pink Lights",
      "description": "Shirtless athlete with headband running on a Woodway under pink and blue club lighting.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/f8dfd78d-101c-4ade-9f32-445da4fea932/inhouse-ultra-2026-runner-treadmill-pink.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-runner-side",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Runner, Side Profile",
      "description": "Side-profile action shot of a runner mid-stride on a Woodway treadmill under pink lighting.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/fba008c2-1b42-40d2-8854-d83f11dff960/inhouse-ultra-2026-runner-side.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-three-runners-bw",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Three Runners (B&W)",
      "description": "Black-and-white grainy edit of three runners on Woodway treadmills, event posters on the wall.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/6ef78259-7f45-441b-859c-e7e6e83522ec/inhouse-ultra-2026-three-runners-bw.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-group-selfie",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Group Selfie",
      "description": "Selfie in an XXI InHouse Ultra tee with the crew and red event lighting in the background.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/58dd7ea4-1cbf-4ef6-853a-b2a364738fca/inhouse-ultra-2026-group-selfie.jpeg"
    },
    {
      "id": "inhouse-ultra-2026-athlete-banner-pose",
      "event": "In-House Ultra",
      "year": 2026,
      "title": "In-House Ultra 2026 — Athlete Banner Pose",
      "description": "Athlete in an orange Redmond Re-Lyt tee posing in front of the XXI InHouse Ultra step-and-repeat banner.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/7d67789f-f167-44e7-82a6-af4da5c9fdee/inhouse-ultra-2026-athlete-banner-pose.jpeg"
    }
  ],
  "email": [
    {
      "id": "email-ironman-coeur-dalene",
      "title": "Ironman 70.3 Coeur d'Alene",
      "description": "Athlete couple photo at Ironman 70.3 Coeur d'Alene finish arch — race-day email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/b47fb9c9-bd47-4da8-ac46-1480eb078371/ironman-coeur-dalene.png"
    },
    {
      "id": "email-group-run-storefront",
      "title": "Group Run — Storefront",
      "description": "Group photo at the Twenty One Run storefront after a community run — community email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/8af1e794-73e9-43e5-ae82-ddea92a530c0/group-run-storefront.jpeg"
    },
    {
      "id": "email-group-run-july-11-2026",
      "title": "Group Run — July 11, 2026",
      "description": "Group photo at the Twenty One Run storefront for the July 11th, 2026 community run — community email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/4b4c023d-93af-468e-ac3a-23f6d71df534/group-run-july-11-2026.jpeg"
    },
    {
      "id": "email-fauja-singh",
      "title": "Fauja Singh",
      "description": "Fauja Singh running with Edinburgh skyline in the background — inspirational email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/ae33c358-bda2-413b-badc-6620b10e0acb/fauja-singh.png"
    },
    {
      "id": "email-storefront-4th-of-july",
      "title": "Storefront — 4th of July",
      "description": "Twenty One Run storefront with patriotic American flag signage — Independence Day email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/fe45bc9a-fb28-4e7d-b8e3-8890ad77d4f6/storefront-4th-of-july.png"
    },
    {
      "id": "email-member-highlights-july-12-2026",
      "title": "Member Highlights — July 12, 2026",
      "description": "Member milestone highlights collage featuring Aaron Foy (300 classes), Logan England (200 classes), Melissa Cantwell (10 classes), and Raina Prohaska (10 classes) — member recognition email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/f7470409-4c10-46d3-ac6f-b847fe990cfb/member-highlights-july-12-2026.jpeg"
    },
    {
      "id": "email-ashley-paulson",
      "title": "Ashley Paulson",
      "description": "Ashley Paulson in a gold sequin outfit dancing in the Twenty One Run studio — event/promotion email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/83067b7d-1442-4ebc-b47d-52fb2aa3a7cc/ashley-paulson.png"
    },
    {
      "id": "email-des-news",
      "title": "DES News",
      "description": "Two elite marathoners crossing the finish line together at a Des Moines-area road race — DES News email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/26d31adf-073a-486f-9dfc-4f461f400d91/des-news.png"
    },
    {
      "id": "email-long-run-edge",
      "title": "Long Run Edge",
      "description": "Long Run Edge™ promotional hero with Madalyn Edwards — class/program email hero.",
      "url": "https://twentyonerunbrandhub.lovable.app/__l5e/assets-v1/4ee84f8b-b29e-4bb4-a030-5686b16e28f5/long-run-edge-hero.png"
    }
  ],
  "fonts": [
    { "family": "Söhne", "weight": "Buch (Regular)", "style": "normal", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-buch-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-buch-webfont.woff" },
    { "family": "Söhne", "weight": "Buch Kursiv (Italic)", "style": "italic", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-buchkursiv-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-buchkursiv-webfont.woff" },
    { "family": "Söhne", "weight": "Halbfett (Semibold)", "style": "normal", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-halbfett-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-halbfett-webfont.woff" },
    { "family": "Söhne", "weight": "Halbfett Kursiv (Semibold Italic)", "style": "italic", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-halbfettkursiv-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohne-halbfettkursiv-webfont.woff" },
    { "family": "Söhne Breit", "weight": "Kräftig (Bold)", "style": "normal", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnebreit-kraftig-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnebreit-kraftig-webfont.woff" },
    { "family": "Söhne Breit", "weight": "Kräftig Kursiv (Bold Italic)", "style": "italic", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnebreit-kraftigkursiv-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnebreit-kraftigkursiv-webfont.woff" },
    { "family": "Söhne Mono", "weight": "Kräftig", "style": "normal", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnemono-kraftig-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohnemono-kraftig-webfont.woff" },
    { "family": "Söhne Schmal", "weight": "Fett (Bold)", "style": "normal", "woff2": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohneschmal-fett-webfont.woff2", "woff": "https://cdn.shopify.com/s/files/1/0616/8195/9067/files/sohneschmal-fett-webfont.woff" }
  ]
}