/* ============================================================
   Alfa Business — Interactive Stand
   Базовые стили, CSS-переменные бренда, ресет
   Целевое разрешение тач-панели: 1920×1080 (landscape)
   ============================================================ */

:root {
  /* Бренд Альфа Бизнес */
  --alfa-red:        #EF3124;
  --alfa-red-dark:   #C9261B;
  --alfa-red-light:  #FF4D3F;
  --alfa-black:      #1A1A1A;
  --alfa-dark:       #0D0D0D;
  --alfa-graphite:   #2A2A2A;
  --alfa-white:      #FFFFFF;
  --alfa-gray:       #F5F5F5;
  --alfa-gray-mid:   #8A8A8A;
  --alfa-gray-dark:  #3A3A3A;

  /* Семантические */
  --bg-app:          var(--alfa-dark);
  --bg-surface:      var(--alfa-graphite);
  --fg-primary:      var(--alfa-white);
  --fg-muted:        #B8B8B8;
  --accent:          var(--alfa-red);

  /* Размеры (рассчитаны под 1920×1080) */
  --header-height:   96px;
  --switcher-gap:    16px;

  /* Анимации */
  --ease-out:        cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-in-out:     cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast:        180ms;
  --dur-base:        260ms;
  --dur-slow:        420ms;

  /* Тени */
  --shadow-glow:     0 0 80px rgba(239, 49, 36, 0.25);
  --shadow-deep:     0 30px 80px rgba(0, 0, 0, 0.6);

  /* Типографика */
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display",
               "Helvetica Neue", "Inter", "Segoe UI", system-ui, sans-serif;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--bg-app);
  color: var(--fg-primary);
  font-family: var(--font-sans);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;

  /* Тач-стенд: блокируем выделение, контекстное меню, тап-задержку */
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  overscroll-behavior: none;
}

img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }

/* ---------- Layout root ---------- */
#stand-root {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
}

/* ---------- Утилиты ---------- */
.is-hidden { display: none !important; }
.is-invisible {
  visibility: hidden;
  pointer-events: none;
  position: absolute;
}

/* Скрытая hit-зона в левом верхнем углу для принудительного запуска
   скринсейвера. Полностью прозрачная, но ловит тачи/клики.
   Поверх всех слоёв (z-index выше скринсейвера) чтобы работала везде. */
.hidden-trigger {
  position: fixed;
  top: 0;
  left: 0;
  width: 150px;
  height: 150px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: default;
  /* 999 — выше основного app (z-index 10), но НИЖЕ скринсейвера (1000).
     Когда скринсейвер активен, hit-зона перекрыта и не мешает клику по CTA. */
  z-index: 999;
  /* На всякий случай — никаких рамок при фокусе */
  outline: none;
  -webkit-tap-highlight-color: transparent;
  /* Невидимая, но принимает события */
  opacity: 0;
}
.hidden-trigger:focus { outline: none; }
