/* ============================================================
   ДАННЫЕ + ПЛЕЙСХОЛДЕР
   Под будущую CMS: каждая работа — простой объект.
   ============================================================ */

/* Placeholder: нейтральная заглушка-кадр.
   props: ratio ("3:2"|"2:3"|"1:1"|"4:5"|"5:4"|"16:9"),
          tone (0..1 сдвиг тона), label, no (номер кадра) */
function Placeholder({ ratio = "3:2", tone = 0.5, label = "", no = "", plus = false, src = "", alt = "", pos = "center", style = {} }) {
  const [w, h] = ratio.split(":").map(Number);
  // оттенок placeholder выводится из темы через CSS-переменные tile-base/tile-dir
  // tone сдвигает базовую светлоту, чтобы галерея читалась как композиция
  const css = `
    oklch(
      calc((var(--tile-base) + var(--tile-dir) * ${(tone * 0.16).toFixed(3)}) * 1)
      0.004
      90
    )`;
  if (src) {
    return (
      <div className="placeholder is-photo" style={{ aspectRatio: `${w} / ${h}`, ...style }}>
        <img className="ph-img" src={src} alt={alt || label} loading="lazy"
          style={{ width: "100%", height: "100%", objectFit: "cover", objectPosition: pos }} />
      </div>
    );
  }
  return (
    <div
      className="placeholder"
      style={{ aspectRatio: `${w} / ${h}`, "--ph-fill": css, ...style }}
      aria-hidden="true"
    >
      {plus && <span className="placeholder__plus" />}
      {no !== "" && <span className="placeholder__no">{no}</span>}
      {label && <span className="placeholder__tag">{label}</span>}
    </div>
  );
}

/* ---- Фото (плёнка) — серия «У стены», реальные работы ---- */
const PHOTO = [
  { id: "p044", src: window.__resources.p044, title: "Полдень у стены", meta: "Плёнка · Москва, 2023", ratio: "1:1", label: "6×6", pos: "center",
    desc: "Из серии «У стены». Выгоревшая штукатурка, прямой дневной свет." },
  { id: "p046", src: window.__resources.p046, title: "Красная стена", meta: "Плёнка · 2023", ratio: "1:1", label: "6×6", pos: "center",
    desc: "Из серии «У стены». Ржавый металл — единственный тёплый кадр серии." },
  { id: "p043", src: window.__resources.p043, title: "Узор", meta: "Плёнка · средний формат, 2023", ratio: "1:1", label: "6×6", pos: "center top",
    desc: "Из серии «У стены». Орнамент платья и старая кладка." },
  { id: "p048", src: window.__resources.p048, title: "Двор", meta: "Плёнка · Москва, 2023", ratio: "1:1", label: "6×6", pos: "center",
    desc: "Из серии «У стены». Старый дом, общий план, холодный свет." },
  { id: "p047", src: window.__resources.p047, title: "Холод", meta: "Плёнка · 2022", ratio: "1:1", label: "6×6", pos: "center",
    desc: "Из серии «У стены». Кирпич, мех, бледный северный свет." },
  { id: "p045", src: window.__resources.p045, title: "Окно", meta: "Плёнка · 2022", ratio: "1:1", label: "6×6", pos: "center top",
    desc: "Из серии «У стены». Спиной к кадру — решётка и синяя стена." },
];

/* ---- Арт / Рисунки ---- */
const ART = [
  { id: "a01", title: "Этюд",           meta: "Тушь на бумаге, 2024",       ratio: "4:5",  tone: 0.6,  label: "ТУШЬ",
    desc: "Быстрый набросок фигуры. Серия утренних этюдов." },
  { id: "a02", title: "Фигура",         meta: "Карандаш, 2023",             ratio: "2:3",  tone: 0.72, label: "ГРАФИТ",
    desc: "Сидящая фигура. Учебный рисунок, два часа." },
  { id: "a03", title: "Без названия",   meta: "Акварель, 2024",             ratio: "1:1",  tone: 0.5,  label: "АКВАРЕЛЬ",
    desc: "Пятно и линия. Работа по сырому." },
  { id: "a04", title: "Лист",           meta: "Тушь, перо, 2023",           ratio: "5:4",  tone: 0.38, label: "ТУШЬ",
    desc: "Гербарий. Перо и разведённая тушь." },
  { id: "a05", title: "Портрет",        meta: "Уголь, 2024",                ratio: "4:5",  tone: 0.3,  label: "УГОЛЬ",
    desc: "Портрет по памяти. Мягкий уголь, растушёвка." },
  { id: "a06", title: "Складки",        meta: "Карандаш, 2022",             ratio: "2:3",  tone: 0.66, label: "ГРАФИТ",
    desc: "Драпировка. Этюд света и тени." },
  { id: "a07", title: "Сад",            meta: "Акварель, 2024",             ratio: "5:4",  tone: 0.56, label: "АКВАРЕЛЬ",
    desc: "Из окна. Размытые формы, дождь." },
  { id: "a08", title: "Руки",           meta: "Графит, 2023",               ratio: "1:1",  tone: 0.44, label: "ГРАФИТ",
    desc: "Этюд рук. Девять минут, без отрыва." },
  { id: "a09", title: "Без названия",   meta: "Смешанная техника, 2024",    ratio: "4:5",  tone: 0.34, label: "МИКС",
    desc: "Тушь, акварель, карандаш. Поиск формы." },
];

/* ---- Блог ---- */
const NOTES = [
  { id: "n1", date: "12.03.2024", tag: "Плёнка",   title: "О зерне и тишине",
    excerpt: "Почему несовершенство плёнки кажется мне честнее резкости. Заметки о том, как зерно держит воздух в кадре.",
    body: [
      "Цифра показывает всё и сразу. Плёнка показывает ровно столько, сколько нужно, и оставляет остальное в тени. Это не недостаток — это воздух, в котором кадр может дышать.",
      "Зерно — не шум. Это фактура времени: видно, что снимок сделан в один конкретный момент, при одном конкретном свете, и второго такого не будет. Мне нравится эта честность.",
      "Поэтому я почти не правлю плёнку потом. Что случилось при съёмке — то и остаётся." ] },
  { id: "n2", date: "28.01.2024", tag: "Процесс",  title: "Из тёмной комнаты",
    excerpt: "Ручная печать как медитация. О запахе реактивов, красном свете и ожидании проявленного.",
    body: [
      "В тёмной комнате нет спешки. Красный свет, тишина, запах фиксажа — и медленное проявление отпечатка в кювете. Изображение приходит само, в своё время.",
      "Ручная печать научила меня терпению больше, чем что-либо ещё. Нельзя ускорить — можно только смотреть и ждать.",
      "Каждый отпечаток немного другой. И это, кажется, правильно." ] },
  { id: "n3", date: "05.11.2023", tag: "Рисунок",  title: "Рисование как дыхание",
    excerpt: "Утренние этюды без цели. Как ежедневная линия учит смотреть, а не изображать.",
    body: [
      "Каждое утро — короткий этюд. Десять минут тушью или карандашом, без задачи и без зрителя. Не ради результата, а ради привычки смотреть.",
      "Линия не врёт: если глаз не увидел форму, рука её не нарисует. Рисунок — это упражнение во внимании.",
      "Та же привычка потом возвращается в кадр. Я смотрю на свет так же, как смотрю на лист." ] },
  { id: "n4", date: "19.09.2023", tag: "Взгляд",   title: "Свет, который я ищу",
    excerpt: "Несколько мыслей о боковом свете, окне и о том, почему я снимаю в одни и те же часы.",
    body: [
      "Я снимаю в одни и те же часы — когда свет боковой, низкий и медленный. Он лепит форму, тянет длинную тень и держится недолго.",
      "Окно для меня — главный инструмент. Один источник, мягкий, направленный. Больше ничего не нужно.",
      "Найти такой свет — половина кадра. Остальное случается само." ] },
];

/* ---- Арт-работы друзей (приглашённые художники) ----
   Дерево по авторам. Готово под CMS: каждый автор — узел со своими работами.
   Пустой автор (works: []) показывается в дереве как «скоро». */
const FRIENDS = [
  {
    id: "stas", name: "Стас", role: "Городские зарисовки",
    note: "Скетчи города — маркер и линер, на пленэре. Быстрая линия и серая заливка, всё с натуры.",
    works: [
      { id: "st01", src: window.__resources.st01, title: "Мост", meta: "Маркер, линер · 2025", ratio: "1:1", pos: "center",
        desc: "Вантовый мост. Городская зарисовка на пленэре, маркер и линер по бумаге." },
      { id: "st02", src: window.__resources.st02, title: "Река", meta: "Маркер · 2025", ratio: "4:3", pos: "center",
        desc: "Набережная, дерево у воды. Серый маркер, быстрый скетч с натуры." },
    ],
  },
  { id: "ksenia", name: "Ксюша", role: "Скоро", works: [] },
  { id: "katya",  name: "Катя",  role: "Скоро", works: [] },
];

Object.assign(window, { Placeholder, PHOTO, ART, NOTES, FRIENDS });
