/* =====================================================================
   Locus — единый слой дизайн-токенов. Один источник цвета, шрифтов и
   атмосферных переменных для лендинга (landing.css), служебных
   страниц (base.css) и приложения (frontend/src/app.css — через build-time
   @import у Vite). Раньше этот слой дублировался в base.css и landing.css.
   Шрифты self-hosted (OFL): Golos Text (UI) + Lora (display). Пути к woff2
   абсолютные (/fonts/...): так их одинаково видят и статика (Go раздаёт
   /fonts), и сборка приложения (Vite оставляет абсолютные URL как есть).
   ===================================================================== */

/* ----------------------------- Шрифты (OFL) -----------------------------
   Подмножества подгружаются по unicode-range: для кириллицы тянутся только
   *-cyrillic.woff2; latin — для «Locus», email, URL, тире. */
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/golos-text-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/golos-text-cyrillic-ext.woff2') format('woff2');
  unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/golos-text-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/golos-text-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

@font-face { font-family:'Lora'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/lora-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Lora'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/lora-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Lora'; font-style:italic; font-weight:400 700; font-display:swap;
  src:url('/fonts/lora-italic-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Lora'; font-style:italic; font-weight:400 700; font-display:swap;
  src:url('/fonts/lora-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ----------------- Атмосферные переменные -----------------
   Значения атмосферного поля. Задаются один раз через initial-value —
   «предрассветная нейтраль», один и тот же кадр на всех страницах. Свойства
   зарегистрированы через @property, чтобы значения были типизированы и
   участвовали в анимациях дрейфа поля. */
@property --atm-mh { syntax:'<number>'; inherits:true; initial-value:255; }   /* main glow hue   */
@property --atm-ms { syntax:'<number>'; inherits:true; initial-value:34; }    /* main sat %      */
@property --atm-ml { syntax:'<number>'; inherits:true; initial-value:44; }    /* main light %    */
@property --atm-ma { syntax:'<number>'; inherits:true; initial-value:0.42; }  /* main alpha      */
@property --atm-mx { syntax:'<percentage>'; inherits:true; initial-value:50%; }
@property --atm-my { syntax:'<percentage>'; inherits:true; initial-value:24%; }
@property --atm-msz{ syntax:'<percentage>'; inherits:true; initial-value:72%; }
@property --atm-ph { syntax:'<number>'; inherits:true; initial-value:30; }    /* point glow hue  */
@property --atm-ps { syntax:'<number>'; inherits:true; initial-value:38; }
@property --atm-pl { syntax:'<number>'; inherits:true; initial-value:54; }
@property --atm-pa { syntax:'<number>'; inherits:true; initial-value:0.22; }
@property --atm-px { syntax:'<percentage>'; inherits:true; initial-value:50%; }
@property --atm-py { syntax:'<percentage>'; inherits:true; initial-value:60%; }
@property --atm-psz{ syntax:'<percentage>'; inherits:true; initial-value:46%; }

/* ----------------------------- Токены -----------------------------------*/
:root{
  --font-ui:'Golos Text', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --font-display:'Lora', Georgia, 'Times New Roman', serif;

  /* поверхности и текст (тёмная база) */
  --bg:#0b0d14;
  --bg-2:#0e1019;
  --ink:#ECEDF2;        /* основной текст: ~15:1 на --bg */
  --ink-soft:#C3C6D2;   /* вторичный: ~10:1 */
  --ink-dim:#9498A8;    /* третичный/лейблы: ~6:1 (для крупного/служебного) */
  --line:rgba(236,237,242,0.14);
  --line-strong:rgba(236,237,242,0.26);
  --surface:rgba(255,255,255,0.035);
  --surface-2:rgba(255,255,255,0.06);
  --scrim:rgba(7,8,13,0.66);  /* единое затемнение под блокирующими оверлеями (реконнект, онбординг) */

  /* акцент — приглушённый предрассветный янтарь (стабилен, не «светофор») */
  --accent:#E0A36B;
  --accent-bright:#EBB682;
  --accent-ink:#1c1305;   /* тёмный текст на янтарной заливке */

  --err:#E9A6A0;          /* мягкая ошибка (≥4.5:1 на --bg) */
  --warn:#E6C86B;         /* мягкое предупреждение (приглушённое золото, ≥4.5:1 на --bg) */
  --ok:#8FC7A6;           /* мягкий успех/подтверждение (приглушённый шалфей, ≥4.5:1 на --bg) */

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);

  /* микропараллакс поля за курсором: нормировано в [-1..1], JS подгоняет с инерцией */
  --px:0; --py:0;

  --radius:14px;
  /* Тот же радиус карточки под именем шкалы sm/md — так его зовут в PWA и админке.
     Алиас, а не второе значение: радиусов в системе всё ещё два. */
  --radius-md:var(--radius);
  --radius-sm:10px;
  --maxw:1120px;
  --topbar-h:60px;

  color-scheme:dark;
}
