// ─────────── East Wind Social Club — product catalog ───────────
const SIZES = ["XS", "S", "M", "L", "XL"];

const PRODUCTS = [
  {
    id: "crest", slug: "the-crest", name: "The Crest", graphic: "crest",
    sub: "Heavyweight crewneck", price: 118, category: "Flagship",
    garment: "14oz crewneck", fabric: "Loop-back French terry, garment-dyed",
    colorway: "Harbor Navy", swatch: "#0F2A44", cardBg: "#EDE6D2",
    tagline: "The club crest, under glass.",
    story: "The hero mark — a varsity society crest built around the East wind tile. Reads as a club from across the room; insiders clock the tile.",
    run: 300, badge: "Flagship",
  },
  {
    id: "wind-rose", slug: "wind-rose", name: "Wind Rose", graphic: "wind-rose",
    sub: "Combed cotton tee", price: 54, category: "The Line",
    garment: "Combed cotton tee", fabric: "6.5oz combed ringspun cotton",
    colorway: "Hydrangea", swatch: "#B6C7CC", cardBg: "#DCE5E7",
    tagline: "Four winds. East picked out in red.",
    story: "The four winds on a compass, East — the wind we're named for — picked out in signal red. The hub points the way; a script wordmark keeps it soft.",
    run: 360,
  },
  {
    id: "winning-hand", slug: "winning-hand", name: "Winning Hand", graphic: "winning-hand",
    sub: "Relaxed tee", price: 52, category: "The Line",
    garment: "Relaxed-fit tee", fabric: "6.5oz combed ringspun cotton",
    colorway: "Lavender", swatch: "#C9B8D6", cardBg: "#E4DAEC",
    tagline: "A real win, fanned across the chest.",
    story: "A genuine winning hand — flowers, winds, a red dragon. Players clock it instantly; built to stop the scroll in a feed.",
    run: 400, badge: "Best seller",
  },
  {
    id: "plum", slug: "plum-blossom", name: "Plum Blossom", graphic: "plum",
    sub: "Combed cotton tee", price: 58, category: "Ink-brush",
    garment: "Combed cotton tee", fabric: "6.5oz combed ringspun cotton",
    colorway: "Sailcloth", swatch: "#F2EAD3", cardBg: "#F4EEDA",
    tagline: "One brushed branch, the red seal.",
    story: "A single brushed plum branch in bloom, finished with the red 東 seal. Quiet, painterly, unmistakably East Wind.",
    run: 320,
  },
  {
    id: "boat", slug: "catch-the-boat", name: "Catch the Boat", graphic: "boat",
    sub: "Long-sleeve crew", price: 72, category: "Shoulder season",
    garment: "Long-sleeve crew", fabric: "7oz heavyweight jersey",
    colorway: "Periwinkle", swatch: "#B6BDD7", cardBg: "#DDE1EF",
    tagline: "The early ferry, smokestack a Red Dragon.",
    story: "Reads as coastal-weekend first, mahj second — the early boat, smokestack drawn as a Red Dragon tile. For the away game.",
    run: 280,
  },
  {
    id: "bouquet", slug: "bouquet", name: "Bouquet", graphic: "bouquet",
    sub: "Combed cotton tee", price: 58, category: "The Line",
    garment: "Combed cotton tee", fabric: "6.5oz combed ringspun cotton",
    colorway: "Sage", swatch: "#A8B89C", cardBg: "#D2DCC8",
    tagline: "A hand-tied gathering of flower tiles.",
    story: "Plum, orchid, bamboo and the seasons, bound in signal red and sealed with 東. The shower gift for the friend who plays.",
    run: 280, badge: "Gift",
  },
  {
    id: "sunset", slug: "sunset-club", name: "Sunset Club", graphic: "sunset",
    sub: "Long-sleeve crew", price: 74, category: "Shoulder season",
    garment: "Long-sleeve crew", fabric: "7oz heavyweight jersey",
    colorway: "Peach", swatch: "#F1B89E", cardBg: "#F8D8C8",
    tagline: "Nine tiles, a setting sun over the water.",
    story: "The shirt for the six o'clock game — the one that lasts until the lights come on. Nine tiles arranged as a sun setting over the water.",
    run: 260,
  },
];

const PRODUCTS_BY_ID = Object.fromEntries(PRODUCTS.map(p => [p.id, p]));

// ─────────── The cities — where the club gathers ───────────
const CITIES = [
  {
    id: "dallas", name: "Dallas", title: "Dallas Drop", region: "Texas",
    initial: "D", status: "open", season: "Spring 2026",
    date: "Saturday, April 18", venue: "The Joule · Downtown",
    seats: "12 of 40 seats remain",
    swatch: "#F1B89E", cardBg: "#F8D8C8",
    note: "Our first table on the road — an afternoon of tiles, rosé, and the full Spring line, finished with a Dallas-only colorway of The Crest.",
    cta: "Reserve a seat",
  },
  {
    id: "charleston", name: "Charleston", title: "Charleston Drop", region: "South Carolina",
    initial: "C", status: "open", season: "Spring 2026",
    date: "Saturday, May 9", venue: "The Pinch · King Street",
    seats: "Sold out · next round forming",
    swatch: "#A8B89C", cardBg: "#D2DCC8",
    note: "Low-country porch light, long tables, and a setting sun over the harbor — built around the Sunset Club piece, made for the six o'clock game.",
    cta: "Join the next round",
  },
  {
    id: "palm-beach", name: "Palm Beach", title: "Palm Beach", region: "Florida",
    initial: "P", status: "soon", season: "Summer 2026",
    date: "Coming Summer 2026", venue: "Venue to be announced",
    seats: "Waitlist open",
    swatch: "#B6C7CC", cardBg: "#DCE5E7",
    note: "Cabana stripes, palm shade, and an island breeze that — naturally — comes from the East. Add your name to be first at the table.",
    cta: "Join the waitlist",
  },
  {
    id: "naples", name: "Naples", title: "Naples", region: "Florida",
    initial: "N", status: "soon", season: "Fall 2026",
    date: "Coming Fall 2026", venue: "Venue to be announced",
    seats: "Waitlist open",
    swatch: "#C9B8D6", cardBg: "#E4DAEC",
    note: "Gulf-side evenings and a game that runs until the lights come on. We're scouting the table now — tell us you'll be there.",
    cta: "Join the waitlist",
  },
];

// Cities the club is most often asked to visit next
const REQUESTED_CITIES = ["Austin", "Nashville", "Atlanta", "Greenwich", "Newport", "Houston", "Scottsdale", "Sarasota"];

Object.assign(window, { PRODUCTS, PRODUCTS_BY_ID, SIZES, CITIES, REQUESTED_CITIES });
