/* ============================================================================
   GAZDA HOUSE — токени сайту (cinematic-site) · переписано 2026-09-27, Klod
   ----------------------------------------------------------------------------
   Єдине джерело GAZDA-рішень сайту — ../references/gazda-profile.md
   (§4 описує цей файл). Бренд: ~/Fabryka/vault/skills/shared/gazda-brand/SKILL.md
   (§Кольори, §Шрифти, «Три чорнила»), Brand/color-relay/README.md + relay.py,
   Marketing/CONVEYOR-DECISIONS.md. Попередня версія файлу:
   ~/Fabryka/vault/Archive/cinematic-site-2026-09-27/gazda-tokens.css.before-rewrite-klod

   Як влаштовано
   1. :root несе лише ПРИМІТИВИ --gz-* і нічого не фарбує: на :root немає
      ні background, ні color. Тло задає клас родини (.gz-black, .gz-cream …)
      на <body> або на секції. Сторінка без класу не отримує крему.
   2. Семантика — у класах родин: --gz-canvas, --gz-surface, --gz-wordmark,
      --gz-caption, --gz-statement, --gz-body, --gz-link, --gz-focus, --gz-line.
   3. --sc-* (рушій scrollcraft) — ЛИШЕ в блоці-адаптері .gz-sc наприкінці,
      для окремого SC-лендингу. Сайт GAZDA рушій SC не використовує
      (cinematic-site/SKILL.md, рядок «Режим B»), клас .gz-sc там не ставиться.
   4. Контраст. Кожна пара «чорнило / тло» нижче виміряна
      ~/Fabryka/skills/a11y-audit/scripts/contrast_checker.py --json '<fg>' '<bg>'
      27.09.2026. Поріг бренду — AAA ≥7:1 для ВСЬОГО тексту, зокрема поверх
      відео (там — лише на суцільній плашці). Числа в коментарях — вивід
      скрипта, не з пам'яті.
   5. Секція належить РІВНО одній родині (світла або темна). Між родинами —
      жорсткий край секції, не плавний дрейф: середні тони між ними 7:1 не
      тримають (патина #5A8F82 не тримає AAA з жодним брендовим чорнилом).
   ========================================================================== */


/* ------------------------------------------------------------- шрифти ------
   Гарнітури бренду: Forum 400 (дисплей, вордмарк), Raleway (усе інше, бренд
   бере 200–600 + Italic). Marko One — лише компасні N·E·S·W; на сайті компас
   живе в растрі знака, тому @font-face для нього немає (TTF у бренд-теці теж
   немає; якщо колись знадобиться — ofl/markoone, RFN «Marko», «Marko One»).
   Третього шрифту немає, моно-лейблів теж.

   Ліцензія — SIL OFL 1.1: записано в name-таблиці кожного TTF (nameID 13 і 14,
   прочитано fontTools 4.63.0 з ~/Fabryka/tools/ComfyUI/venv). Файлу OFL.txt у
   «GAZDA HOUSE/Branding-Assets/Fonts/» НЕМАЄ — там лише 3 TTF (перевірено
   27.09). Текст ліцензії брати з Google Fonts (обидва — HTTP 200, 27.09):
     https://raw.githubusercontent.com/google/fonts/main/ofl/forum/OFL.txt
     https://raw.githubusercontent.com/google/fonts/main/ofl/raleway/OFL.txt
   і класти поруч із WOFF2 як OFL-Forum.txt та OFL-Raleway.txt.

   Обидва шрифти мають Reserved Font Name («Forum», «Raleway»). OFL-FAQ
   (openfontlicense.org/ofl-faq, прочитано 27.09):
     · 2.2.1 — WOFF2, де дані шрифту не змінені (лише стиснення, метадані
       цілі), модифікацією не є → назву можна лишити. Це варіант нижче.
     · 2.6 — сабсет = модифікація → RFN використовувати не можна. Якщо бюджет
       ваги змусить різати гліфи: перейменувати шрифт у файлі й у @font-face
       (напр. "GZ Display" / "GZ Text") і змінити лише --gz-font-display /
       --gz-font-text нижче; решта файлу не зміниться.
   Джерела TTF: Branding-Assets/Fonts/Forum-Regular.ttf,
   Raleway-VariableFont.ttf, Raleway-Italic-VariableFont.ttf (вісь wght 100–900).

   Шляхи. У темі (~/Sites/gazda-house/…) цей файл лежить у src/css/, шрифти —
   у src/fonts/. Vite переписує url("../fonts/…") на хешовані файли в dist/ і
   записує їх у manifest.json; два основні (Forum, Raleway roman) — preload
   через manifest у wp_head. Italic вантажиться лише там, де трапляється.
   WOFF2-інструмента на Маку зараз немає (27.09: woff2_compress — не знайдено;
   у venv ComfyUI є fontTools, але без brotli) → встановити лише з рядком у
   ~/Fabryka/vault/REGISTRY.md §1.1 і «так» Аліси.
   ------------------------------------------------------------------------ */
/* Preview loads Forum and Raleway through the theme's Google Fonts stylesheet.
   Restore local @font-face only after WOFF2 files and their OFL notices are bundled. */


/* ---------------------------------------------------- примітиви бренду ----
   Лише значення. Нічого не фарбують. */
:root {
  /* колесо реле — Brand/color-relay/relay.py, рядки 26–31 */
  --gz-cream:     #FBF6EC;
  --gz-sand:      #E0D3BC;   /* пісок реле: з текстом — лише через --gz-sand-text */
  --gz-patina:    #5A8F82;   /* ТІЛЬКИ декор і кадр: жодне брендове чорнило не дає 7:1
                                (#FFF4E3 3.39 · #F1D4A3 2.58 · #000B1C 5.34;
                                навіть чистий #000000 — 5.69) */
  --gz-aubergine: #46334D;
  --gz-night:     #000B1C;   /* синюватий (B = 0x1C): це НЕ «просто чорний» */
  --gz-gold:      #C9A24D;   /* текст лише на чорному/ночі (8.35 / 8.23); на світлому — декор (2.2) */

  /* тла колорвеїв — gazda-brand §Колорвеї */
  --gz-ivory:       #FFF4E3;
  --gz-mint:        #F1FBED;
  --gz-onyx:        #080808;
  --gz-patina-deep: #35544C; /* колорвей Patina Gold: під текстом лише #FFF4E3 7.65 / #FBF6EC 7.72 */

  /* зсуви тла по власному тону (gazda-brand «Три чорнила»: тло, на якому
     не працює ціла тріада, зсувається по своєму тону; місце на колесі те саме) */
  --gz-sand-text:   #E7DCC8; /* пісок слайдів бренду; світла тріада 7.48 / 7.11 / 8.2.
                                На піску реле #E0D3BC тріада падає: 6.87 / 6.54 / 7.53 */
  --gz-patina-text: #28403A; /* ПРОПОЗИЦІЯ Klod (затвердити): перший тон від #35544C
                                униз по L (HLS 164.5°, L .269 → .205), де проходить уся
                                темна тріада 7.79 / 7.1 / 10.24 */

  /* «просто чорний» — тло головної (бриф #14). Вибір: онікс #080808.
     · Аліса: «просто чорний фон». #080808 проти #000000 = 1.05:1 — оком не
       розрізнити, тобто це і є «просто чорний».
     · Він уже в палітрі бренду (колорвей Onyx Cream) — лишаємось у палітрі.
     · Ніч #000B1C відкинуто: синій відтінок; контрасту не додає (ніч/онікс 1.02).
     · Чисте #000000 на OLED вимикає піксель; на скролі темних сцен це дає
       відомий «black smear». На нашому телефоні НЕ перевірено — перевірити
       на живому телефоні разом із кроком скла нижче.
     · Усі чорнила на ониксі ≥7:1 (таблиця нижче). */
  --gz-black: var(--gz-onyx);

  /* вікна головної (signature move, бриф #14). Скло — ДЕКОР, НЕ під текст.
     «У вікнах темно, але не так чорно, як фон».
     · скло проти фону: #2E2A25 / #080808 = 1.41:1 (/ #000000 = 1.47), Y 2.37 %
       проти 0.24 % — темне, але видимо світліше. Поріг ≥1.3:1 з запасом
       на низьку яскравість телефона.
     · ґрати/рами чорні = колір фону, тож ґрати на склі = ті самі 1.41:1 —
       видимі в темряві; коли світло вмикається, вони стають силуетом.
     · межа вікна як UI-компонента: 3:1 від фону дало б скло #615C54
       (3.02:1; Y 10.84 % — середній сірий, суперечить «у вікнах темно»). Не потрібно:
       вікно-посилання ідентифікує ПІДПИС категорії, видимий завжди (≥7:1:
       #F1D4A3 14.01, #FFF4E3 18.41 на ониксі), а стан фокусу — кільце
       --gz-focus (#F1D4A3: 14.01 до фону, 9.96 до скла #2E2A25, ≥3:1 з
       запасом). Якщо підпис колись сховають — 3:1 для межі стає обов'язковим. */
  --gz-window-glass:  #2E2A25;
  --gz-window-grille: var(--gz-black);
  --gz-window-light:  #F1D4A3; /* тепле світло в кімнаті за склом — декор */
  --gz-window-glow:   #C9A24D; /* найтепліший край світла — декор */

  /* тріада чорнил бренду — gazda-brand «Три чорнила» */
  --gz-ink-wordmark-light:  #533E17; /* вордмарк на світлому */
  --gz-ink-caption-light:   #2E4A42; /* підпис і лінії на світлому */
  --gz-ink-statement-light: #43306E; /* твердження на світлому */
  --gz-ink-wordmark-dark:   #F1D4A3;
  --gz-ink-caption-dark:    #D6CEB8;
  --gz-ink-statement-dark:  #FFF4E3;
  /* інші виміряні чорнила колорвеїв (не тріада). На піску реле #E0D3BC з них проходять ніч,
     баклажан і мох; з тріади — лише твердження #43306E 7.53 */
  --gz-ink-night:     #000B1C; /* світлі тла 18.1–18.6; пісок реле 13.35 */
  --gz-ink-aubergine: #46334D; /* світлі 10.5–10.7; пісок реле 7.72 */
  --gz-ink-magenta:   #7B0975; /* Ivory Magenta: айворі 9.03; пісок реле 6.65 — НЕ текст */
  --gz-ink-moss:      #333F2F; /* Mint Moss: м'ята 10.44; пісок реле 7.51 */

  /* типографіка */
  --gz-font-display: "Forum", "Times New Roman", serif;
  --gz-font-text:    "Raleway", system-ui, sans-serif;
  --gz-track-caps:   0.12em;  /* капс 0.05–0.12em; розрядка лише додатна */
  --gz-track-nomads: 0.58em;  /* DESIGN NOMADS: еталон бренд-слайда, Raleway 300 */

  /* рух — MAKHNO (факт) і GAZDA-варіант (пропозиція). Аліса 25.09: на всіх
     сторінках, крім стартової, беремо анімації MAKHNO.
     MAKHNO: WEBSITE/makhno-teardown/02-source-css-js.md §2.5 (рядок 140:
     ease-out-main, 330 вживань; підсумок — рядок 330) і
     03-motion-home-global.md §3.B (B7–B9). */
  --gz-ease-makhno:        cubic-bezier(.15, .85, .45, 1);  /* ease-out-main: майже всі transition */
  --gz-ease-makhno-soft:   cubic-bezier(.4, 0, 0, 1);       /* поява меню й контенту, лайтбокс (11) */
  --gz-ease-makhno-quart:  cubic-bezier(.165, .84, .44, 1); /* контурні лінії головної (4) */
  --gz-ease-makhno-icon:   cubic-bezier(.77, 0, .18, 1);    /* «перебіг» стрілки в кнопках (32) */
  --gz-dur-makhno-caption: .45s; /* B9: підпис під аркою, ефект «ролика» */
  --gz-dur-makhno-frame:   .6s;  /* B7: рамка порталу проявляється */
  --gz-dur-makhno-button:  .75s; /* лінія і стрілка кнопки-посилання */
  --gz-dur-makhno-glow:    1s;   /* B8: тепла пляма за порталом; Lenis duration теж 1 с */
  --gz-dur-makhno-zoom:    1.2s; /* B6: зум сцени */

  /* GAZDA-варіант для вікон — ПРОПОЗИЦІЯ Klod, НА ЗАТВЕРДЖЕННЯ АЛІСИ.
     Та сама крива MAKHNO; довше, бо бренд — «лише повільно, плавно»
     (CONVEYOR-DECISIONS §Рух камери). Порядок: світло → стулки. */
  --gz-ease:                     var(--gz-ease-makhno);
  --gz-dur-window-light:         1.2s; /* світло вмикається: MAKHNO B8 1 с × 1.2 */
  --gz-dur-window-shutter-delay: .2s;  /* стулки рушають, коли світло ≈ на половині:
                                          крива дає 50 % на 13.6 % часу → .16 с */
  --gz-dur-window-shutter-open:  .9s;
  --gz-dur-window-shutter-close: .6s;  /* = MAKHNO B7 */
  --gz-dur-window-caption:       .45s; /* підпис світлішає: = MAKHNO B9 */
  --gz-dur-window-dark:          1.2s; /* світло гасне (до жарини чи до темряви — вибір Аліси) */
  --gz-delay-first-light:        1.2s; /* перше вікно само: момент підказки MAKHNO A9 */
}


/* ------------------------------------------------------- світла родина ----
   Роль тріади: вордмарк (назва, назви категорій) · підпис і лінії (мітки,
   мета, лінії 1px) · твердження (заголовки, головний текст).
   Виміряно (#533E17 / #2E4A42 / #43306E):
     крем   #FBF6EC  9.42 / 8.97 / 10.33
     айворі #FFF4E3  9.33 / 8.88 / 10.23
     м'ята  #F1FBED  9.55 / 9.09 / 10.47
     пісок  #E7DCC8  7.48 / 7.11 / 8.2     (пісок реле #E0D3BC — 6.87 / 6.54 / 7.53: НЕ текст)
   Фокус — вордмарк-золото #533E17 (усі ≥7.48). Золото #C9A24D на світлому — лише декор (≤2.26). */
.gz-cream, .gz-ivory, .gz-mint, .gz-sand {
  --gz-wordmark:  var(--gz-ink-wordmark-light);
  --gz-caption:   var(--gz-ink-caption-light);
  --gz-statement: var(--gz-ink-statement-light);
  --gz-body:      var(--gz-statement);
  --gz-link:      var(--gz-statement);  /* посилання в тексті — з підкресленням, не лише кольором */
  --gz-focus:     var(--gz-wordmark);
  --gz-line:      var(--gz-caption);
  color: var(--gz-body);
  background-color: var(--gz-canvas);
}
.gz-cream { --gz-canvas: var(--gz-cream); --gz-surface: var(--gz-ivory); }
.gz-ivory { --gz-canvas: var(--gz-ivory); --gz-surface: var(--gz-cream); }
.gz-mint  { --gz-canvas: var(--gz-mint);  --gz-surface: var(--gz-ivory); }
.gz-sand  { --gz-canvas: var(--gz-sand-text); --gz-surface: var(--gz-cream); }
/* Крем — не тло за замовчуванням: кремова сторінка з латунним золотом — та сама
   «premium-consumer» палітра, яку SC taste.md називає причиною однаковості
   ремісничих брендів. Тло акту обирати за почуттям через реле. */


/* -------------------------------------------------------- темна родина ----
   Виміряно (#F1D4A3 / #D6CEB8 / #FFF4E3):
     онікс «просто чорний» #080808  14.01 / 12.76 / 18.41
     ніч #000B1C                   13.79 / 12.57 / 18.13
     баклажан #46334D               7.98 /  7.27 / 10.48   (золото #C9A24D 4.76 — декор)
     патина-текст #28403A [ПРОП]    7.79 /  7.1  / 10.24
     Patina Gold #35544C            5.82 /  5.3  /  7.65   → тріада НЕ проходить, лише #FFF4E3
   Золото #C9A24D як текст — лише на ониксі 8.35 і ночі 8.23. */
.gz-black, .gz-night, .gz-aubergine, .gz-patina {
  --gz-wordmark:  var(--gz-ink-wordmark-dark);
  --gz-caption:   var(--gz-ink-caption-dark);
  --gz-statement: var(--gz-ink-statement-dark);
  --gz-body:      var(--gz-statement);
  --gz-link:      var(--gz-statement);
  --gz-focus:     var(--gz-wordmark);
  --gz-line:      var(--gz-caption);
  color: var(--gz-body);
  background-color: var(--gz-canvas);
  color-scheme: dark;
}
.gz-black     { --gz-canvas: var(--gz-black);     --gz-surface: var(--gz-night); } /* тло головної */
.gz-night     { --gz-canvas: var(--gz-night);     --gz-surface: var(--gz-onyx); }
.gz-aubergine { --gz-canvas: var(--gz-aubergine); --gz-surface: var(--gz-night); }
.gz-patina    { --gz-canvas: var(--gz-patina-text); --gz-surface: var(--gz-night); } /* [ПРОП] */
/* Patina Gold як є (#35544C): тріада не проходить → усі ролі = #FFF4E3 */
.gz-patina-deep {
  --gz-canvas: var(--gz-patina-deep); --gz-surface: var(--gz-night);
  --gz-wordmark: var(--gz-ink-statement-dark); --gz-caption: var(--gz-ink-statement-dark);
  --gz-statement: var(--gz-ink-statement-dark); --gz-body: var(--gz-ink-statement-dark);
  --gz-link: var(--gz-ink-statement-dark); --gz-focus: var(--gz-ink-statement-dark);
  --gz-line: var(--gz-ink-statement-dark);
  color: var(--gz-body); background-color: var(--gz-canvas); color-scheme: dark;
}


/* ------------------------------------------- головна: шість вікон ----------
   Лише токени компонента; розмітка й хореографія — у темі за profile §3.2.
   Підпис категорії: Forum капс, спокій --gz-wordmark (#F1D4A3 14.01),
   активний --gz-statement (#FFF4E3 18.41); під ним Raleway «Illustrative»
   --gz-caption (#D6CEB8 12.76). Підписи видно завжди, без наведення. */
.gz-home {
  --gz-window-bg:          var(--gz-window-glass);
  --gz-window-frame:       var(--gz-window-grille);
  --gz-window-label:       var(--gz-wordmark);
  --gz-window-label-on:    var(--gz-statement);
  --gz-window-label-note:  var(--gz-caption);
}


/* ------------------------------ текст поверх кадру — лише на суцільній плашці --
   Кадр змінюється під скролом, тож 7:1 поверх нього недосяжне; плашка — ні. */
.gz-plate-light { background-color: var(--gz-cream); color: var(--gz-ink-statement-light); } /* 10.33 */
.gz-plate-dark  { background-color: var(--gz-night); color: var(--gz-ink-statement-dark); }  /* 18.13 */

/* ---------------------------------------------------------- утиліти ------ */
.gz-caps   { text-transform: uppercase; letter-spacing: var(--gz-track-caps); }
.gz-nomads { font-family: var(--gz-font-text); font-weight: 300; text-transform: uppercase;
             letter-spacing: var(--gz-track-nomads); }
:where(.gz-cream, .gz-ivory, .gz-mint, .gz-sand, .gz-black, .gz-night, .gz-aubergine,
       .gz-patina, .gz-patina-deep) :focus-visible {
  outline: 2px solid var(--gz-focus); outline-offset: 3px;
}


/* ------------------------------------------------------- reduced motion ----
   Уся тривалість → 0. Вікна головної при цьому стоять ОСВІТЛЕНІ Й ВІДЧИНЕНІ
   (це правило компонента в темі, не лише нуль тривалості). */
@media (prefers-reduced-motion: reduce) {
  :root {
    --gz-dur-window-light: 0s; --gz-dur-window-shutter-delay: 0s;
    --gz-dur-window-shutter-open: 0s; --gz-dur-window-shutter-close: 0s;
    --gz-dur-window-caption: 0s; --gz-dur-window-dark: 0s; --gz-delay-first-light: 0s;
  }
}


/* ==================================================== АДАПТЕР ДЛЯ SC-ЛЕНДИНГУ ====
   ЛИШЕ для окремого лендингу на рушії scrollcraft (не сайт GAZDA). Ставиться
   класом .gz-sc на <html> того лендингу разом із класом родини; перекриває
   дефолти рушія --sc-* бренд-значеннями. Підключати ПІСЛЯ scrollcraft.css. */
.gz-sc {
  --sc-canvas:       var(--gz-canvas);
  --sc-surface:      var(--gz-surface);
  --sc-ink:          var(--gz-statement);
  --sc-ink-soft:     var(--gz-caption);
  --sc-accent:       var(--gz-focus);
  --sc-accent-ink:   var(--gz-canvas);
  --sc-font-display: var(--gz-font-display);
  --sc-font-text:    var(--gz-font-text);
  --sc-font-mono:    var(--gz-font-text);  /* рушій ставить Geist Mono — у бренді його немає */
  --sc-track-tight:  0;                   /* рушій стискає дисплей -0.035em — Forum так не набирається */
  --sc-track-snug:   0;
  --sc-track-normal: 0;
  --sc-track-wide:   var(--gz-track-caps);
}
.gz-sc .sc-label { text-transform: uppercase; letter-spacing: var(--gz-track-caps); font-weight: 500; }
