/* ========================================================================
   DonateTeam — TOKENS + FONTS (self-hosted, source of truth)
   ======================================================================== */

/* IBM Plex Sans (400/600/700) */
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_latin-regular.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_latin-600.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/fonts/ibm-plex-sans/ibm-plex-sans-v23-cyrillic_latin-700.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}

/* Jura (400/600/700) */
@font-face{
  font-family:"Jura";
  src:url("/fonts/jura/jura-v34-cyrillic_latin-regular.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Jura";
  src:url("/fonts/jura/jura-v34-cyrillic_latin-600.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Jura";
  src:url("/fonts/jura/jura-v34-cyrillic_latin-700.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}

/* (Опционально, под 404 заголовок) Orbitron Variable */
@font-face{
  font-family:"Orbitron";
  src:url("/fonts/Orbitron-VariableFont_wght.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}

/* ========================================================================
   TOKENS — единые дизайн-переменные проекта
   ======================================================================== */
:root{
  /* ШРИФТЫ */
  --font-body:    "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-heading: "Jura", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-accent:  "Jura", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-ui:      var(--font-body);
  --font-display: var(--font-heading);

  /* Цвета */
  --bg:#0f0f0f; --panel:#151515; --panel-2:#111111;
  --text:#fff;  --muted:#bdbdbd;
  --brand:#a75eff; --brand-2:#8a3df6;

  /* Бордеры/радиусы/тени */
  --radius:16px; --radius-sm:8px;
  --border-soft:1px solid rgba(255,255,255,.06);
  --elev-1:0 6px 14px rgba(0,0,0,.35);
  --elev-2:0 14px 34px rgba(0,0,0,.42);

  /* Типографика */
  --h1:44px; --h2:34px; --h3:22px;
  --text-lg:18px; --text-md:16px; --text-sm:14px;
  --lh-base:1.55;

  /* Отступы */
  --space-0:0px; --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-7:28px; --space-8:32px;
  --space-10:40px; --space-12:48px;

  /* Поверхности и эффекты */
  --panel-bg:var(--panel); --panel-bg-2:var(--panel-2);
  --card-shadow:0 8px 24px rgba(0,0,0,.35);
  --hover-veil:rgba(255,255,255,.05);

  /* Алиасы страницы игры */
  --game-bg:var(--bg);
  --game-panel:var(--panel);
  --game-panel-2:var(--panel-2);
  --game-text:var(--text);
  --game-muted:var(--muted);
  --game-brand:var(--brand);
  --game-brand-2:var(--brand-2);
  --game-brand-soft: color-mix(in srgb, var(--brand) 35%, transparent);
  --game-border:var(--border-soft);
  --game-shadow:var(--card-shadow);
  --game-radius:var(--radius);
  --game-h1:var(--h1); --game-h2:var(--h2); --game-h3:var(--h3);
  --game-text-lg:var(--text-lg); --game-text-md:var(--text-md); --game-text-sm:var(--text-sm);
  --game-lh-base:var(--lh-base);

  /* Прочее */
  --page-x:16px; --cart-w:300px; --card-min:240px; --logo:100px;
  --thumb:30px; --icon-text-lg:20px;
  --inner-stroke:0 0 0 1px rgba(255,255,255,.06) inset;
  --inner-stroke-strong:0 0 0 1px rgba(255,255,255,.10) inset;
  --brand-shadow-sm:0 6px 18px rgba(167,94,255,.25);
  --brand-shadow-md:0 8px 28px rgba(167,94,255,.35);
  --brand-shadow-lg:0 12px 42px rgba(167,94,255,.45);
  --grad-brand:linear-gradient(180deg, rgba(167,94,255,.25), rgba(167,94,255,0));
  --grad-neutral:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  --lift-xs:5px; --lift-sm:6px; --press-1:1px; --enter-shift:10px; --focus-ring:3px; --disabled-opacity:.5;
  --glow-radius-sm:4px; --tracking-tight:.5px;
}

/* ========================================================================
   TYPOGRAPHY BASELINE (общая)
   ======================================================================== */
html{ font-size:16px; }
body{
  background:var(--bg); color:var(--text);
  font-family:var(--font-body); line-height:var(--lh-base);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
*, *::before, *::after{ font-family: inherit; }

/* Заголовки всегда на Jura */
h1,.h1{ font-family:var(--font-heading); font-weight:700; font-size:var(--h1); letter-spacing:.3px; }
h2,.h2{ font-family:var(--font-heading); font-weight:600; font-size:var(--h2); letter-spacing:.2px; }
h3,.h3{ font-family:var(--font-heading); font-weight:600; font-size:var(--h3); }

/* Доступность/меньше движения */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
