// data.jsx — Saint data, journey timeline, design tokens

const TOKENS = {
  // Soft & contemporary — dusty pastels
  bg:        { light: '#FAF6F0', dark: '#0F0E13' },
  surface:   { light: '#FFFFFF', dark: '#1A1820' },
  surface2:  { light: '#F2EDE4', dark: '#23202A' },
  ink:       { light: '#2A2530', dark: '#F2EFE8' },
  inkSoft:   { light: '#615A66', dark: '#A8A2AE' },
  inkMute:   { light: '#9A93A0', dark: '#6E6876' },
  hairline:  { light: 'rgba(60,55,70,0.10)', dark: 'rgba(255,250,240,0.10)' },
  // Liturgical accents (dusty, never saturated)
  rose:      '#D9A6A0',  // dusty rose — primary brand
  roseDeep:  '#B07A7A',
  sage:      '#A8B89A',
  blush:     '#E8C8C0',
  cream:     '#F2E6D8',
  gold:      '#C9A878',
  violet:    '#9D8AA8',
  // Liturgical color theming
  liturgical: {
    W: { name: 'White',  fg: '#8A7860', bg: '#F5EFE3', tint: '#E8DFCB' },
    R: { name: 'Red',    fg: '#A85A5A', bg: '#F4E3E0', tint: '#E8C4BF' },
    G: { name: 'Green',  fg: '#6B8060', bg: '#E5EBDD', tint: '#CCD7BF' },
    V: { name: 'Violet', fg: '#7B6A8E', bg: '#E8E1ED', tint: '#D2C4DA' },
  }
};

// Saint of the day pool (week 20 = mid-May territory)
const SAINTS = {
  'gerard-majella': {
    id: 'gerard-majella',
    name: 'Saint Gerard Majella',
    short: 'Gerard Majella',
    feast: 'October 16',
    lived: '1726–1755',
    rank: 'Optional Memorial',
    color: 'W',
    patronOf: ['Expectant mothers', 'Childbirth', 'Unborn children', 'Good confessions'],
    pregnancyRelevant: true,
    bioShort: 'Italian Redemptorist lay brother known for miracles and his protection of mothers in difficult pregnancies.',
    bioLong: 'Born to a poor family in Muro Lucano, Gerard joined the Redemptorists as a lay brother in 1749. His brief life of six years in religion was marked by extraordinary mystical gifts — bilocation, prophecy, and reading consciences. He was beloved by the women of his parish, and shortly before his death gave a young woman his handkerchief, telling her to keep it as it would be useful one day. Years later, facing a life-threatening labor, she remembered the cloth, asked for it, and was delivered safely. The miracles attributed to him through this relic continue, and he was named patron of expectant mothers at his canonization in 1904.',
    image: 'rose'
  },
  'gianna': {
    id: 'gianna',
    name: 'Saint Gianna Beretta Molla',
    short: 'Gianna Molla',
    feast: 'April 28',
    lived: '1922–1962',
    rank: 'Optional Memorial',
    color: 'W',
    patronOf: ['Mothers', 'Physicians', 'Unborn children', 'Pro-life cause'],
    pregnancyRelevant: true,
    bioShort: 'Italian pediatrician who chose the life of her unborn child over her own during a complicated pregnancy.',
    bioLong: 'A wife, mother, and physician in Lombardy, Gianna learned during her fourth pregnancy that she had a uterine fibroma. She refused the surgical options that would end the pregnancy, asking that the child be saved at any cost. Gianna Emanuela was born healthy on Holy Saturday 1962; her mother died seven days later. Canonized in 2004 with her husband and surviving children present.',
    image: 'blush'
  },
  'anne': {
    id: 'anne',
    name: 'Saint Anne',
    short: 'Anne',
    feast: 'July 26',
    lived: '1st century BC',
    rank: 'Memorial',
    color: 'W',
    patronOf: ['Childless couples', 'Expectant mothers', 'Grandmothers', 'Women in labor'],
    pregnancyRelevant: true,
    bioShort: 'Mother of the Blessed Virgin Mary; long-childless before conceiving in answer to prayer.',
    bioLong: 'Tradition, recorded in the Protoevangelium of James, names Anne and Joachim as the parents of Mary. The couple were elderly and without children; an angel announced they would have a daughter. Anne is invoked by women who long for children and by those approaching childbirth.',
    image: 'cream'
  },
  'visitation': {
    id: 'visitation',
    name: 'The Visitation',
    short: 'The Visitation',
    feast: 'May 31',
    lived: 'c. 4 BC',
    rank: 'Feast',
    color: 'W',
    patronOf: ['Expectant mothers', 'Pregnant friendships'],
    pregnancyRelevant: true,
    bioShort: 'Mary, newly pregnant with Christ, visits her cousin Elizabeth, who is six months pregnant with John the Baptist.',
    bioLong: 'Luke records that the unborn John leapt in his mother\'s womb at the sound of Mary\'s greeting — the first earthly recognition of Christ. Elizabeth, filled with the Holy Spirit, calls Mary blessed among women, and Mary responds with the Magnificat. The feast celebrates the meeting of two pregnancies and the silent witness of two unborn children.',
    image: 'sage'
  },
  'annunciation': {
    id: 'annunciation',
    name: 'The Annunciation',
    short: 'Annunciation',
    feast: 'March 25',
    lived: 'c. 4 BC',
    rank: 'Solemnity',
    color: 'W',
    patronOf: ['Expectant mothers', 'The Incarnation'],
    pregnancyRelevant: true,
    bioShort: 'Nine months before Christmas: the angel Gabriel announces to Mary that she will bear the Son of God.',
    bioLong: 'On March 25 the Church celebrates the moment of the Incarnation — the conception of Christ in Mary\'s womb. Exactly nine months before Christmas, this is the pregnancy feast par excellence: the day God became an embryo. Mary\'s "fiat" — let it be done unto me — is the model of motherly consent.',
    image: 'gold'
  },
  'guadalupe': {
    id: 'guadalupe',
    name: 'Our Lady of Guadalupe',
    short: 'Guadalupe',
    feast: 'December 12',
    lived: 'apparition 1531',
    rank: 'Feast',
    color: 'W',
    patronOf: ['Pregnant women', 'Unborn children', 'The Americas'],
    pregnancyRelevant: true,
    bioShort: 'Marian apparition to St. Juan Diego on Tepeyac. The image on his tilma depicts Mary visibly pregnant.',
    bioLong: 'In December 1531 the Blessed Virgin appeared four times to the indigenous convert Juan Diego near Mexico City. She left her image imprinted on his cactus-fiber tilma — an image still preserved, depicting a young pregnant woman wearing a sash worn by Aztec mothers. She is patroness of the Americas and the unborn.',
    image: 'rose'
  },
  'monica': {
    id: 'monica',
    name: 'Saint Monica',
    short: 'Monica',
    feast: 'August 27',
    lived: '331–387',
    rank: 'Memorial',
    color: 'W',
    patronOf: ['Mothers', 'Difficult marriages', 'Conversions'],
    pregnancyRelevant: true,
    bioShort: 'North African mother who prayed for her son Augustine\'s conversion for seventeen years.',
    bioLong: 'Married young to a difficult pagan husband, Monica converted both him and her mother-in-law through patience. Her son Augustine drifted into Manichaeism and a wandering life; Monica followed him across the Mediterranean, weeping and praying. She lived to see his baptism by St. Ambrose. Patroness of mothers whose hopes for their children stretch over many years.',
    image: 'cream'
  },
  'isidore': {
    id: 'isidore',
    name: 'Saint Isidore the Farmer',
    short: 'Isidore',
    feast: 'May 15',
    lived: '1070–1130',
    rank: 'Optional Memorial',
    color: 'W',
    patronOf: ['Farmers', 'Madrid', 'Day laborers'],
    pregnancyRelevant: false,
    bioShort: 'Spanish farm laborer of great piety and charity to the poor.',
    bioLong: 'Isidore worked all his life on the same farm outside Madrid. He attended daily Mass, prayed in the fields, and shared his meals with the hungry. Tradition says angels were seen plowing alongside him while he was at prayer.',
    image: 'sage'
  },
};

// 40-week journey: each entry maps a gestational week to a feast/saint.
// `size` describes the child this week: a comparison item, length in mm, weight in g,
// and a glyph key (rendered by SizeGlyph in ui.jsx). Length values are crown-rump
// for weeks 1–20 and crown-heel from week 21 onward — standard pregnancy convention.
const JOURNEY = [
  { week: 1,  trimester: 1, date: 'Mar 25', monthName: 'March',     phase: 'Conception',     saintId: 'annunciation', note: 'Conception. The Annunciation — the Word made flesh.',
    size: { item: 'poppy seed',     mm: 0.1,  g: null,  glyph: 'poppy' } },
  { week: 2,  trimester: 1, date: 'Apr 1',  monthName: 'April',     phase: 'Implantation',   saintId: null,           note: 'Implantation week. Quiet hidden growth.',
    size: { item: 'poppy seed',     mm: 0.2,  g: null,  glyph: 'poppy' } },
  { week: 3,  trimester: 1, date: 'Apr 8',  monthName: 'April',     phase: 'Heart forming',  saintId: null,           note: 'The heart begins to form.',
    size: { item: 'sesame seed',    mm: 1,    g: null,  glyph: 'sesame' } },
  { week: 4,  trimester: 1, date: 'Apr 15', monthName: 'April',     phase: 'Neural tube',    saintId: null,           note: 'Neural tube closes. First missed period.',
    size: { item: 'mustard seed',   mm: 2,    g: null,  glyph: 'mustard' } },
  { week: 5,  trimester: 1, date: 'Apr 22', monthName: 'April',     phase: 'Tiny one',       saintId: null,           note: 'A heart begins to beat.',
    size: { item: 'apple seed',     mm: 4,    g: null,  glyph: 'appleseed' } },
  { week: 6,  trimester: 1, date: 'Apr 29', monthName: 'April',     phase: 'First flutters', saintId: 'gianna',       note: 'St. Gianna Molla — patron of mothers facing hard choices.',
    size: { item: 'sweet pea',      mm: 6,    g: null,  glyph: 'pea' } },
  { week: 7,  trimester: 1, date: 'May 6',  monthName: 'May',       phase: 'Limbs',          saintId: null,           note: 'Arm and leg buds appear.',
    size: { item: 'blueberry',      mm: 13,   g: 1,     glyph: 'blueberry' } },
  { week: 8,  trimester: 1, date: 'May 13', monthName: 'May',       phase: 'Fingers',        saintId: null,           note: 'Tiny fingers forming.',
    size: { item: 'raspberry',      mm: 16,   g: 1,     glyph: 'raspberry' } },
  { week: 9,  trimester: 1, date: 'May 20', monthName: 'May',       phase: 'Reflexes',       saintId: null,           note: 'Reflex movements begin.',
    size: { item: 'cherry',         mm: 23,   g: 2,     glyph: 'cherry' } },
  { week: 10, trimester: 1, date: 'May 27', monthName: 'May',       phase: 'Visitation',     saintId: 'visitation',   note: 'The Visitation — Mary visits pregnant Elizabeth.',
    size: { item: 'green olive',    mm: 31,   g: 4,     glyph: 'olive' } },
  { week: 11, trimester: 1, date: 'Jun 3',  monthName: 'June',      phase: 'Bones',          saintId: null,           note: 'Bones begin to harden.',
    size: { item: 'fig',            mm: 41,   g: 7,     glyph: 'fig' } },
  { week: 12, trimester: 1, date: 'Jun 10', monthName: 'June',      phase: 'End of T1',      saintId: null,           note: 'First trimester closes. A gift long-tended.',
    size: { item: 'lime',           mm: 54,   g: 14,    glyph: 'lime' } },
  { week: 13, trimester: 2, date: 'Jun 17', monthName: 'June',      phase: 'Sacred Heart',   saintId: null,           note: 'Sacred Heart of Jesus — a quiet patronage for new heartbeats.',
    size: { item: 'lemon',          mm: 74,   g: 23,    glyph: 'lemon' } },
  { week: 14, trimester: 2, date: 'Jun 24', monthName: 'June',      phase: 'John\'s birth',  saintId: null,           note: 'Nativity of John the Baptist — first to recognize Christ in utero.',
    size: { item: 'peach',          mm: 87,   g: 43,    glyph: 'peach' } },
  { week: 15, trimester: 2, date: 'Jul 1',  monthName: 'July',      phase: 'Hearing',        saintId: null,           note: 'The baby can hear your voice.',
    size: { item: 'apple',          mm: 101,  g: 70,    glyph: 'apple' } },
  { week: 16, trimester: 2, date: 'Jul 8',  monthName: 'July',      phase: 'Movement',       saintId: null,           note: 'First flutters often felt now.',
    size: { item: 'avocado',        mm: 116,  g: 100,   glyph: 'avocado' } },
  { week: 17, trimester: 2, date: 'Jul 15', monthName: 'July',      phase: 'Mt. Carmel',     saintId: null,           note: 'Our Lady of Mt. Carmel — the scapular and motherly protection.',
    size: { item: 'pomegranate',    mm: 130,  g: 140,   glyph: 'pomegranate' } },
  { week: 18, trimester: 2, date: 'Jul 22', monthName: 'July',      phase: 'Halfway',        saintId: null,           note: 'Approaching the midpoint.',
    size: { item: 'bell pepper',    mm: 144,  g: 190,   glyph: 'pepper' } },
  { week: 19, trimester: 2, date: 'Jul 29', monthName: 'July',      phase: 'Vernix',         saintId: null,           note: 'Skin protected by vernix.',
    size: { item: 'mango',          mm: 152,  g: 240,   glyph: 'mango' } },
  { week: 20, trimester: 2, date: 'Aug 5',  monthName: 'August',    phase: 'HALFWAY',        saintId: 'anne',         note: 'Halfway. St. Anne (Jul 26) just behind you — grandmother of God.',
    size: { item: 'banana',         mm: 164,  g: 300,   glyph: 'banana' } },
  { week: 21, trimester: 2, date: 'Aug 12', monthName: 'August',    phase: 'Maximilian',     saintId: null,           note: 'St. Maximilian Kolbe — a witness to giving life for another.',
    size: { item: 'carrot',         mm: 267,  g: 360,   glyph: 'carrot' } },
  { week: 22, trimester: 2, date: 'Aug 19', monthName: 'August',    phase: 'Eyes open',      saintId: null,           note: 'Eyes begin to open and respond to light.',
    size: { item: 'spaghetti squash', mm: 278, g: 430,  glyph: 'squash' } },
  { week: 23, trimester: 2, date: 'Aug 26', monthName: 'August',    phase: 'Monica',         saintId: 'monica',       note: 'St. Monica — long-suffering patroness of mothers.',
    size: { item: 'large mango',    mm: 289,  g: 500,   glyph: 'mango' } },
  { week: 24, trimester: 2, date: 'Sep 2',  monthName: 'September', phase: 'Growing',        saintId: null,           note: 'A gift long-tended — your child grows daily.',
    size: { item: 'corn cob',       mm: 300,  g: 600,   glyph: 'corn' } },
  { week: 25, trimester: 2, date: 'Sep 9',  monthName: 'September', phase: 'Mary\'s birth',  saintId: null,           note: 'Nativity of Mary (Sep 8). Mothers honor mothers.',
    size: { item: 'rutabaga',       mm: 346,  g: 660,   glyph: 'rutabaga' } },
  { week: 26, trimester: 2, date: 'Sep 16', monthName: 'September', phase: 'Sorrows',        saintId: null,           note: 'Our Lady of Sorrows — a patroness for those who carry worry.',
    size: { item: 'scallion',       mm: 356,  g: 760,   glyph: 'scallion' } },
  { week: 27, trimester: 3, date: 'Sep 23', monthName: 'September', phase: 'Padre Pio',      saintId: null,           note: 'Padre Pio — for healing and fortitude.',
    size: { item: 'cauliflower',    mm: 366,  g: 875,   glyph: 'cauliflower' } },
  { week: 28, trimester: 3, date: 'Sep 30', monthName: 'September', phase: 'Third tri',      saintId: null,           note: 'Third trimester begins.',
    size: { item: 'aubergine',      mm: 376,  g: 1005,  glyph: 'aubergine' } },
  { week: 29, trimester: 3, date: 'Oct 7',  monthName: 'October',   phase: 'Rosary',         saintId: null,           note: 'Our Lady of the Rosary — quiet prayer in the long stretch.',
    size: { item: 'butternut squash', mm: 385, g: 1153, glyph: 'butternut' } },
  { week: 30, trimester: 3, date: 'Oct 14', monthName: 'October',   phase: 'Gerard',         saintId: 'gerard-majella', note: 'St. Gerard Majella — patron of mothers in difficult pregnancies.',
    size: { item: 'cabbage',        mm: 395,  g: 1319,  glyph: 'cabbage' } },
  { week: 31, trimester: 3, date: 'Oct 21', monthName: 'October',   phase: 'JPII',           saintId: null,           note: 'St. John Paul II — Theology of the Body.',
    size: { item: 'coconut',        mm: 411,  g: 1502,  glyph: 'coconut' } },
  { week: 32, trimester: 3, date: 'Oct 28', monthName: 'October',   phase: 'All Saints',     saintId: null,           note: 'All Saints, All Souls — a wide cloud of witnesses.',
    size: { item: 'jicama',         mm: 423,  g: 1702,  glyph: 'jicama' } },
  { week: 33, trimester: 3, date: 'Nov 4',  monthName: 'November',  phase: 'Elizabeth',      saintId: null,           note: 'St. Elizabeth (Nov 5) — conceived John in old age.',
    size: { item: 'pineapple',      mm: 434,  g: 1918,  glyph: 'pineapple' } },
  { week: 34, trimester: 3, date: 'Nov 11', monthName: 'November',  phase: 'Frances',        saintId: null,           note: 'St. Frances Cabrini — mothers and migrants.',
    size: { item: 'cantaloupe',     mm: 445,  g: 2146,  glyph: 'cantaloupe' } },
  { week: 35, trimester: 3, date: 'Nov 18', monthName: 'November',  phase: 'Presentation',   saintId: null,           note: 'Presentation of Mary — the Temple welcomes a child.',
    size: { item: 'honeydew melon', mm: 452,  g: 2383,  glyph: 'honeydew' } },
  { week: 36, trimester: 3, date: 'Nov 25', monthName: 'November',  phase: 'Christ King',    saintId: null,           note: 'Christ the King — the liturgical year closes.',
    size: { item: 'romaine lettuce',mm: 466,  g: 2622,  glyph: 'romaine' } },
  { week: 37, trimester: 3, date: 'Dec 2',  monthName: 'December',  phase: 'Advent',         saintId: null,           note: 'Advent begins. Mary\'s last weeks parallel yours.',
    size: { item: 'Swiss chard',    mm: 478,  g: 2859,  glyph: 'chard' } },
  { week: 38, trimester: 3, date: 'Dec 9',  monthName: 'December',  phase: 'Immaculate',     saintId: null,           note: 'Immaculate Conception. Guadalupe (Dec 12) just ahead.',
    size: { item: 'leek',           mm: 487,  g: 3083,  glyph: 'leek' } },
  { week: 39, trimester: 3, date: 'Dec 16', monthName: 'December',  phase: 'Guadalupe',      saintId: 'guadalupe',    note: 'Our Lady of Guadalupe — patron of pregnant women.',
    size: { item: 'small pumpkin',  mm: 498,  g: 3288,  glyph: 'pumpkin' } },
  { week: 40, trimester: 3, date: 'Dec 23', monthName: 'December',  phase: 'Christmas',      saintId: null,           note: 'Due. Christmas is two days away. Your child arrives with His.',
    size: { item: 'small watermelon', mm: 511, g: 3462, glyph: 'watermelon' } },
];

// Today: the user is at week 20 → today is Aug 5, but show a recent feast as "today's saint"
// We pick Isidore the Farmer (May 15, ferial-ish) as the actual current-day saint to model
// the typical "no pregnancy-relevant feast today" case AND show how the app surfaces a
// pregnancy-relevant saint anyway via the journey week.

window.TOKENS = TOKENS;
window.SAINTS = SAINTS;
window.JOURNEY = JOURNEY;
