// data.jsx — Film catalogue.
// Film 01: OMLAH — a real Saudi short by Mohammed Saad Al Badawi.
// Film 02: placeholder until user provides details for the second film.

// Video hosting: clips live on Cloudflare R2 (bucket "clacket-media", key prefix "clips/").
// Production URL — served via the "media.clacket-productions.com" custom domain on R2.
// For offline testing you can temporarily point this at the bucket's public .r2.dev URL.
const VIDEO_BASE = "https://media.clacket-productions.com/clips";

const STUDIO = {
  name: "CLACKET FILMS",
  tagline: "Saudi cinema · genre that carries weight",
  founded: "Est. 2024",
  location: "Riyadh · KSA",
  blurb:
    "A production practice working out of Imam Muhammad ibn Saud Islamic University. Genre-blending films that use fantasy as a vehicle for social reflection. One short in production, a second in development.",
};

const SPONSOR_SLOTS = [
  { tier: "PRESENTING", role: "Title sponsor", perks: "Logo on title card, end credits, poster, press release." },
  { tier: "SUPPORTING", role: "Production sponsor", perks: "Logo in end credits and poster, BTS recognition." },
  { tier: "IN-KIND", role: "Equipment, meals, locations", perks: "Credit as Technical / Hospitality / Location Partner." },
];

const FILMS = [
  {
    id: "omlah",
    index: "01",
    title: "OMLAH",
    titleArabic: "عُملة",
    titleMeaning: "Currency",
    year: "2026",
    runtime: "~20 min",
    format: "Digital · 2.39:1",
    language: "Arabic (Saudi)",
    status: "Completed",
    statusKicker: "Festival Finalist",
    award: null,
    awards: [],
    logline:
      "A young Saudi man enters a VR experience for fun and discovers he cannot leave until he wins — and every game is a mirror held up to his society.",
    synopsis:
      "Shafi, a Saudi man in his late twenties, enters a next-generation VR experience out of curiosity. What begins as entertainment turns into something stranger: he is trapped inside the world and can only leave by winning a series of games. Each world he passes into stages a question his society is still arguing about — masculinity and feminism inside a Call of Duty lobby, money laundering inside the poker tables of Liar's Bar, administrative corruption across a chessboard. As the difficulty rises, so does the weight of what he is playing for. By the time Shafi finds a way out, he understands that the line between the real and the imagined is thinner than he thought — and that victory is not an achievement, it is a return.",
    directorStatement:
      "I wanted to make a film where the games are not the point — they are the mirror. Fantasy and social drama usually live in different rooms in Saudi cinema. Omlah puts them in the same headset and asks the audience which one they were watching all along.",
    palette: ["#122130", "#9A4E12", "#5B1610", "#744418", "#BE7620", "#3E2415"],
    accentNote: "Three worlds · three palettes · one thread",
    hero: { label: "Shafi inside the headset — opening sequence", ratio: "2.39", image: "omlah-media/omlah_poster.png" },
    worlds: [
      {
        name: "The Lobby",
        subtitle: "Call of Duty · masculinity vs. feminism",
        palette: ["#8A0E00", "#5A1C12", "#0B0F0C", "#E9D298", "#7A530D"],
        note: "Pressure, dread, the fog of a dispute neither side is willing to lose.",
      },
      {
        name: "Liar's Bar",
        subtitle: "Poker · money laundering, moral gambling",
        palette: ["#9A4E12", "#122130", "#5B1610", "#4D4538", "#BE7620", "#171313"],
        note: "A room that exists between the real and the imagined — duplicity rendered in light.",
      },
      {
        name: "The Board",
        subtitle: "Chess · administrative corruption",
        palette: ["#C23C11", "#2D261C", "#C69657", "#7B4A1F"],
        note: "Stillness on the surface, a slow tension underneath. Every move carries its consequence.",
      },
    ],
    cast: [
      { name: "Abdullah Al Dossari", nameArabic: "عبدالله الدوسري", role: "Shafi", roleArabic: "شافي", age: 27, portrait: "assets/cast-shafi-v2.png",
        bio: "The protagonist. Intelligent, quiet, sometimes hesitant. A young man with a deep sense of justice who thinks before he acts and shows courage when the situation demands it." },
      { name: "Hussam Al Zahrani", nameArabic: "حسام الزهراني", role: "Nasser", roleArabic: "ناصر", age: 33, portrait: "assets/cast-nasser.png",
        bio: "Domineering, a leader by instinct. Believes in force before reason. His confidence is his weapon; his presence commands the room." },
      { name: "Abdulaziz Abdullah", nameArabic: "عبدالعزيز عبدالله", role: "Wissam", roleArabic: "وسام", age: 28, portrait: "assets/cast-wissam.png",
        bio: "Reckless, sarcastic, sociable. Draws people in easily, but rarely thinks through consequences — and occasionally abandons his own convictions." },
      { name: "Alia Mohammed", nameArabic: "علياء محمد", role: "Lujain", roleArabic: "لجين", age: 35, portrait: "assets/cast-lujain.png", portraitPosition: "center 15%",
        bio: "A feminist by nature. Volatile, driven, hates injustice. Acts from the heart more than the head. Independent and impossible to ignore." },
      { name: "Adeeba Saud", nameArabic: "أديبا سعود", role: "Noura", roleArabic: "نورة", age: 23, portrait: "assets/cast-noura.png",
        bio: "Shy, kind, sensitive. Afraid of confrontation. Loyal to those she trusts — even when their direction is wrong." },
      { name: "Maryam Abdulwahab", nameArabic: "مريم عبدالوهاب", role: "Shaden", roleArabic: "شادن", age: 29, portrait: "assets/cast-shaden.png",
        bio: "Bold, sharp, fearless. Says what she thinks even when the whole room disagrees. No forced pleasantries." },
      { name: "Udai Hazza'", nameArabic: "عدي هزاع", role: "Rakkaz", roleArabic: "ركاز", age: 31, portrait: "assets/cast-rakkaz.png",
        bio: "Calm, composed, decisive. A quiet authority with a harder edge hidden beneath the surface." },
      { name: "Abdulaziz Al Ghamdi", nameArabic: "عبدالعزيز الغامدي", role: "Mutarrif", roleArabic: "مطرف", age: 23, portrait: "assets/cast-mutarrif.png",
        bio: "Pragmatic, sarcastic, without a fixed principle. Charming on the surface, something darker underneath — proud of his cultural heritage all the same." },
      { name: "Sultan Abu Shal", nameArabic: "سلطان ابوشال", role: "The Mayor", roleArabic: "العمدة", age: 45, portrait: "assets/cast-mayor.png",
        bio: "Controlling, arrogant, cunning in his own way. Respected in his community for his steadiness, but uses that authority for personal gain. A figure of contradictions." },
    ],
    crew: [
      { role: "Director", name: "Mohammed Saad Al Badawi", nameArabic: "محمد سعد آل بدوي" },
      { role: "1st AD", name: "Mohammed Al Dhubayan", nameArabic: "محمد الضبيان" },
      { role: "Producer", name: "Abdulrahman bin Mukhaylib", nameArabic: "عبدالرحمن بن مخيلب" },
      { role: "Director of Photography", name: "Thamer Al Tuwaijri", nameArabic: "ثامر التويجري" },
      { role: "Script Supervisor", name: "Thamer Al Sulami", nameArabic: "ثامر السلمي" },
      { role: "Casting Director", name: "Ibrahim Al Mubaddal", nameArabic: "إبراهيم المبدل" },
      { role: "Production Designer", name: "Faisal Al Jumai'ah", nameArabic: "فيصل الجميعة" },
      { role: "Composer", name: "Qusai Al Ahmadi", nameArabic: "قصي الأحمدي" },
      { role: "Editor", name: "Fahad Al Jabbali", nameArabic: "فهد الجبالي" },
    ],
    press: [],
    sponsors: [
      { name: "APAD", role: "Creative Agency", logo: "omlah-media/sponsers/466d4669-c83e-4d66-838b-19c27f698f94.png" },
      { name: "EQEW", role: "Supporting Partner", logo: "omlah-media/sponsers/bd1d8745-5184-4a1b-bb82-bddaeaa87ad8.png" },
      { name: "Msahat Ebdayah", nameArabic: "المساحات الإبداعية", role: "Creative Space Partner", logo: "omlah-media/sponsers/f5d51091-66f8-46d1-8207-f52b6be7298b.png" },
    ],
    stills: [
      { label: "Liar's Bar — setup with Director Mohammed Al Badawi", ratio: "16/9", src: "assets/omlah-bts-01.png", span: 6 },
      { label: "Shafi enters the headset — cold open", ratio: "2.39" },
      { label: "The lobby — Call of Duty world", ratio: "2.39" },
      { label: "Lujain, mid-argument", ratio: "1.0" },
      { label: "The Mayor on the chessboard", ratio: "1.0" },
      { label: "Final game — decision", ratio: "2.39" },
    ],
    bts: [
      { label: "Palette tests — three worlds", duration: "1:24" },
      { label: "Rehearsal — Lobby scene", duration: "2:08" },
      { label: "Production design walk-through", duration: "1:12" },
      { label: "Day 01 — set build", duration: "0:46" },
    ],
    btsMedia: {
      videos: [
        `${VIDEO_BASE}/bts-vid-1.mp4`,
        `${VIDEO_BASE}/bts-vid-2.mp4`,
        `${VIDEO_BASE}/925D5ABA-E7E6-4BAD-AD4F-D0247C2DE0E0.mp4`,
        `${VIDEO_BASE}/DJI_20251013164544_0048_D.mp4`,
        `${VIDEO_BASE}/DJI_20251013170350_0054_D.mp4`,
        `${VIDEO_BASE}/DJI_20251014232425_0081_D.mp4`,
        `${VIDEO_BASE}/DJI_20251030142244_0098_D.mp4`,
        `${VIDEO_BASE}/DJI_20251031202209_0125_D.mp4`,
        `${VIDEO_BASE}/DJI_20251031225908_0145_D.mp4`,
        `${VIDEO_BASE}/DJI_20251031231556_0157_D.mp4`,
        `${VIDEO_BASE}/DJI_20251031231618_0158_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101191145_0204_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101191424_0210_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101191519_0212_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101192623_0222_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101192858_0224_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101202149_0247_D.mp4`,
        `${VIDEO_BASE}/DJI_20251101225800_0261_D.mp4`,
      ],
      images: [
        "omlah-media/static/bts-1.jpg",
        "omlah-media/static/bts-2.jpg",
        "omlah-media/static/bts-3.jpg",
        "omlah-media/static/07d71936-7c7c-460c-b79a-261692413994.jpg",
        "omlah-media/static/1151ebc0-6551-41ba-bb2f-e1c6c8254b10.jpg",
        "omlah-media/static/13413E42-21A0-4D1F-A99A-710FAAB463E8.JPG",
        "omlah-media/static/165fbaf8-e70e-469c-886e-7f55002281ca.jpg",
        "omlah-media/static/2447f173-21b6-4206-a670-06d04e2e248a.jpg",
        "omlah-media/static/27b4461f-f14a-4107-be65-18b7ba187bd4.jpg",
        "omlah-media/static/2814ecb1-6619-4d95-bfe1-699d7d20c232.jpg",
        "omlah-media/static/320e45a5-9a9a-4037-b14b-a74cf71661a1.jpg",
        "omlah-media/static/338A4DCA-A052-4228-BB9B-779633F511E7.jpg",
        "omlah-media/static/382b8684-c150-445d-ade0-e717b42a3f0b.jpg",
        "omlah-media/static/3e97f48b-b677-47da-9825-25077d4d49ae.jpg",
        "omlah-media/static/42a87e07-c588-4356-b5ad-71eb8bbbde8a.jpg",
        "omlah-media/static/42ec894d-aba3-4f96-9605-c8c79957fb2f.jpg",
        "omlah-media/static/43439C5A-B021-48BF-A074-9187F7947A26.jpg",
        "omlah-media/static/54735760-8f3d-4880-9b5a-af0cd10a424d.jpg",
        "omlah-media/static/5b74f7b8-662a-4835-b395-6ca7fc365fa7.jpg",
        "omlah-media/static/6c740d7c-9804-4cd2-9abd-e720d39a3a8f.jpg",
        "omlah-media/static/74b827de-af1c-4564-b455-df7303417e9d.jpg",
        "omlah-media/static/75E2FC43-D685-48FF-91BD-F8B4AB9587E5.JPG",
        "omlah-media/static/7b7447c9-0f27-44f6-82f8-d4468cc82172.jpg",
        "omlah-media/static/8334a685-1351-4251-a3bf-0c16ead3194a.jpg",
        "omlah-media/static/E61B0C7C-3601-4C58-9FBA-45BBE1681C85.JPG",
        "omlah-media/static/F2828F7F-0111-4CC5-8DA2-4E3472E821A7.jpg",
        "omlah-media/static/IMG_1469.PNG",
        "omlah-media/static/a18ff25c-7b79-4818-98c9-321c5772275f.jpg",
        "omlah-media/static/a38e5a58-4f57-4692-ba01-945616af6af3.jpg",
        "omlah-media/static/a587c19a-e964-421c-9f0c-f0475eb15316.jpg",
        "omlah-media/static/af5837d1-b680-438a-9650-b7486ec1bad6.jpg",
        "omlah-media/static/c1af255a-cc80-4384-b961-238b619ec502.jpg",
        "omlah-media/static/c1e500ad-465e-4ff1-9105-972ecd31328b.jpg",
        "omlah-media/static/e3fa570d-ae67-46dc-8ad9-3219bd8702e8.jpg",
        "omlah-media/static/e651efc4-f32e-44cf-afcd-80758c2df287.jpg",
        "omlah-media/static/efa50961-f53a-4cca-add9-75455be9e401.jpg",
        "omlah-media/static/f9fadf23-e53c-4ef1-864b-ed4d1cc0368a.jpg",
        "omlah-media/static/fe4cae7c-7509-44cb-af78-4579a2ce1417.jpg",
      ],
    },
    progress: [
      { phase: "Script", done: true },
      { phase: "Casting", done: true },
      { phase: "Pre-Production", done: true },
      { phase: "Principal Photography", done: true },
      { phase: "Post-Production", done: true },
      { phase: "Festival Submissions", done: true, current: true, note: "Selected — Finalist" },
    ],
    themes: [
      { icon: "⌖", label: "Masculinity × Feminism", game: "Call of Duty" },
      { icon: "♦", label: "Money Laundering", game: "Liar's Bar" },
      { icon: "♟", label: "Administrative Corruption", game: "Chess" },
    ],
    budget: null,
  },
  {
    id: "rehan",
    index: "02",
    title: "REHAN",
    titleArabic: "رهان",
    titleMeaning: "The Bet",
    year: "2026",
    runtime: "TBD",
    format: "TBD",
    language: "Arabic",
    status: "In Development",
    statusKicker: "Details Coming Soon",
    award: null,
    awards: [],
    logline: "Details for the second film are still being locked. Send them over and this card will fill in.",
    synopsis:
      "Placeholder. Once you share the logline, synopsis, cast and crew for the second production, we will rebuild this page to match.",
    directorStatement:
      "—",
    palette: ["#07090D", "#1A2230", "#2E4B6B", "#9AB3C9", "#E8EEF3"],
    accentNote: "Placeholder palette",
    hero: { label: "Key frame — TBD", ratio: "2.39" },
    cast: [],
    crew: [
      { role: "Director", name: "Mohammed Saad Al Badawi", nameArabic: "محمد سعد آل بدوي" },
    ],
    press: [],
    stills: [
      { label: "Still 01 — TBD", ratio: "2.39" },
      { label: "Still 02 — TBD", ratio: "1.0" },
      { label: "Still 03 — TBD", ratio: "2.39" },
      { label: "Still 04 — TBD", ratio: "1.0" },
    ],
    bts: [],
    progress: [
      { phase: "Concept", done: true, current: true },
      { phase: "Script", done: false },
      { phase: "Pre-Production", done: false },
      { phase: "Principal Photography", done: false },
      { phase: "Post-Production", done: false },
    ],
  },
  {
    id: "wds",
    index: "03",
    title: "WORLD DEFENCE SHOW",
    titleArabic: "معرض الدفاع العالمي",
    titleMeaning: "WDS",
    year: "2026",
    runtime: "TBD",
    format: "TBD",
    language: "Arabic · English",
    status: "Commissioned",
    statusKicker: "Commercial Engagement",
    award: null,
    awards: [],
    logline: "Commissioned coverage for the World Defence Show in Riyadh — brief is still being written, content will fill in once the user shares it.",
    synopsis:
      "Placeholder. Once you share the brief, scope, deliverables, and stills for the World Defence Show engagement, we will rebuild this page to match the other projects.",
    directorStatement: "—",
    palette: ["#0B0F14", "#1E2A36", "#4A5C6E", "#A6B3C0", "#E6ECF2"],
    accentNote: "Placeholder palette",
    hero: { label: "Key frame — TBD", ratio: "2.39" },
    cast: [],
    crew: [
      { role: "Director", name: "Mohammed Saad Al Badawi", nameArabic: "محمد سعد آل بدوي" },
    ],
    press: [],
    stills: [
      { label: "Still 01 — TBD", ratio: "2.39" },
      { label: "Still 02 — TBD", ratio: "1.0" },
      { label: "Still 03 — TBD", ratio: "2.39" },
      { label: "Still 04 — TBD", ratio: "1.0" },
    ],
    bts: [],
    progress: [
      { phase: "Brief", done: false, current: true },
      { phase: "Pre-Production", done: false },
      { phase: "Production", done: false },
      { phase: "Post-Production", done: false },
      { phase: "Delivery", done: false },
    ],
  },
];

const TEAM = [
  { name: "Mohammed Saad Al Badawi", role: "Director", portrait: "assets/crew-asiri.png",
    bio: "Sound designer and lighting practitioner. Graduating student in Cinematic Arts at Imam Muhammad ibn Saud Islamic University. First sound recordist on Job Interview, selected for the Red Sea International Film Festival. Assistant DP on Ekhtyar. Sound engineer on Majoor and Housha. Stage lighting designer on Life in Dreams. Works comfortably across departments — a rare crew member who understands how sound, light, and image answer to each other." },
  { name: "Mohammed Al Dhubayan", role: "1st Assistant Director", portrait: "assets/crew-Mohammed-Al-Dhubayan.png",
    bio: "Director and first assistant director. 1st AD on Morning Shift, Tarak Abu Salem, and Ekhtyar — the role that holds a set together when everything is trying to fall apart. Directed Housha. Produced Awdat Faris. Moves between the chair behind the monitor and the clipboard beside the camera without losing either perspective." },
  { name: "Abdulrahman bin Mukhaylib", role: "Producer", portrait: "assets/crew-Abdulrahman-bin-Mukhaylib.png",
    bio: "Producer, director, and on-set generalist. Producer on Ekhtyar. BTS photographer on Hukm Al Madi. Lead actor in Sayyarat Al Nakba. Drone operator and assistant producer on Awdat Faris. Director of several shorts. The crew member who ends up running the shot list, the budget, and occasionally the performance — often in the same afternoon." },
  { name: "Thamer Al Tuwaijri", role: "Director of Photography", portrait: "assets/crew-Thamer-Al-Tuwaijri.png",
    portraitAspect: "2/3",
    bio: "Director, cinematographer, and writer. Directed Majoor in the 72-hour filmmaking challenge. Lead DP, writer, and lighting designer on Ekhtyar in a 24-hour challenge — all three hats at once. Director, lead actor, and editor on the documentary Awdat Faris. Thrives under compressed timelines where decisions are made in minutes and defended in the edit." },
  { name: "Ibrahim Al Mubaddal", role: "Casting Director", portrait: "assets/crew-Ibrahim-Al-Mubaddal.png",
    bio: "Producer and editor. Producer on Majoor. Editor on Al Firasa. Assistant editor on Ashra Spite. Actor in Ekhtyar. The person who sees a film twice — once on paper during production, again in the timeline during cut — and knows how to make those two versions agree with each other." },
  { name: "Qusai Al Ahmadi", role: "Composer", portrait: "assets/crew-Qusai-Al-Ahmadi.png",
    bio: "Composer, editor, and director. Composer on Ekhtyar. Assistant editor on Shatat. Director of Al Thar Yu'khath Law Ba'd Khair. Approaches sound and picture as one craft — the score isn't laid over the film, it's constructed alongside it." },
  { name: "Raed Al Sweel", role: "Director", portrait: "assets/crew-raed-alsweel.jpg",
    bio: "— bio pending." },
  { name: "Fahad Al Odaini", role: "Collaborator", portrait: "assets/crew-fahad-alodaini.png",
    portraitAspect: "2/3", portraitPosition: "center 18%",
    bio: "— bio pending." },
];

Object.assign(window, { STUDIO, FILMS, TEAM, SPONSOR_SLOTS });
