/* ============================================================
   TheatreAI — дизайн-токены (единая система, §5 + §7 аудита).
   Namespaced (--ta-* / --z-*), чтобы НЕ переопределять существующие
   переменные и не менять текущий рендер. Новый и мигрируемый код
   опирается на эти токены; миграция существующих правил — поэтапная.
   ============================================================ */
:root {
  /* — Цвета-роли (Codex §5): один смысл — один цвет — */
  --ta-bg:            #050d10;  /* основной тёмный нейтрально-зелёный фон */
  --ta-surface:       #07140f;  /* поверхности/карточки */
  --ta-surface-2:     #081410;  /* плотное «стекло» (модалки/строка) */
  --ta-ink:           #eafff5;  /* основной текст */
  --ta-ink-2:         #c6ecda;  /* вторичный текст */
  --ta-ink-3:         #8fbfa8;  /* метаданные/подписи */
  --ta-line:          rgba(255,255,255,.12);  /* тонкие разделители/рамки */

  --ta-accent:        #2ee6a8;  /* изумруд: ТОЛЬКО CTA и активное состояние */
  --ta-accent-2:      #15ae7a;  /* градиент CTA (второй стоп) */
  --ta-ai:            #9b8cff;  /* фиолетовый: действия ИИ */
  --ta-cost:          #f4b740;  /* янтарь: стоимость и предупреждения */
  --ta-error:         #ff6b6b;  /* красный: ИСКЛЮЧИТЕЛЬНО ошибка */

  /* — Типографика (Codex §5): читаемость, без микрошрифта — */
  --ta-fs-body:       16px;     /* основной текст (моб — без iOS-зума) */
  --ta-fs-secondary:  14px;
  --ta-fs-meta:       12px;     /* только подписи/метаданные */
  --ta-fs-h:          26px;     /* заголовок экрана (24–28) */
  --ta-lh:            1.5;
  --ta-measure:       62ch;     /* длина строки 55–65 символов */

  /* — Геометрия (8px-сетка) — */
  --ta-space-1:       8px;
  --ta-space-2:       16px;     /* боковые поля */
  --ta-space-3:       24px;     /* между смысловыми секциями (мин.) */
  --ta-pad-side:      16px;
  --ta-tap:           48px;     /* минимальная тап-зона */
  --ta-btn-h:         54px;     /* высота основных кнопок (52–56) */
  --ta-radius:        14px;     /* базовый радиус (12–16) */
  --ta-radius-lg:     16px;
  --ta-radius-pill:   999px;

  /* — Движение (Codex §6): акцент, не постоянный фон — */
  --ta-dur-fast:      160ms;    /* обычный переход 160–220 */
  --ta-dur:           220ms;
  --ta-dur-sheet:     280ms;    /* нижний лист */
  --ta-ease:          cubic-bezier(0.22, 0.8, 0.2, 1);

  /* — Единая z-шкала (Codex §7): никаких значений «~2 млрд» — */
  --z-content:        0;
  --z-sticky:         10;
  --z-nav:            20;
  --z-backdrop:       30;
  --z-drawer:         40;
  --z-modal:          50;
  --z-toast:          60;

  /* Component bridge: migrated one overlay at a time without changing its
     proven ordering against the still-legacy drawer/mixer cluster. Once that
     cluster is tokenized this value can be remapped to --z-modal centrally. */
  --ta-layer-generator: 210;
  --ta-layer-floating-menu: 200;
  --ta-layer-floating-preview: 210;
  --ta-layer-radar-modal: 200;
  --ta-layer-drawer-backdrop: 140;
  --ta-layer-drawer: 150;
  --ta-layer-drawer-over-generator-backdrop: 225;
  --ta-layer-drawer-over-generator: 230;
  --ta-layer-search-launcher: 2147482400;
  --ta-layer-search-launcher-mobile: 2147482600;

  /* Mobile/FX bridge. Values preserve the verified legacy ordering while raw
     component rules migrate to semantic names. Once every consumer is named,
     this group can move onto the compact 0/10/20/30/40/50/60 scale here. */
  --ta-layer-header: 100;
  --ta-layer-onboarding: 2147483200;
  --ta-layer-mobile-nav: 2147483000;
  --ta-layer-mobile-nav-under: 2147482500;
  --ta-layer-mobile-transition: 2147482990;
  --ta-layer-mobile-curtain: 2147483000;
  --ta-layer-mobile-particles: 2147483005;
  --ta-layer-mobile-toasts: 2147483010;
  --ta-layer-mobile-gallery: 2147483100;
  --ta-layer-mobile-tree: 2147482700;
  --ta-layer-mobile-devtools: 2147482600;
  --ta-layer-mobile-burst: 2147482997;
  --ta-layer-assistant-under: 2147482399;
  --ta-layer-quick-menu: 2147482398;
  --ta-layer-scroll-progress: 2147482300;
  --ta-layer-assistant-mobile-base: 950;
  --ta-layer-assistant-desktop-base: 980;
  --ta-layer-assistant-fullscreen: 2147483000;
  --ta-layer-fx-cursor: 2147481800;
  --ta-layer-fx-radar: 2147481600;
  --ta-layer-landing-toast: 9999;

  /* Legacy studio overlay bridge. Naming these values first makes ownership
     and ordering reviewable; their exact order remains unchanged in this
     release. Compact-scale remapping can now happen one component at a time. */
  --ta-layer-legacy-modal: 900;
  --ta-layer-legacy-lightbox: 999;
  --ta-layer-legacy-mobile-nav: 1000;
  --ta-layer-side-launcher: 1095;
  --ta-layer-side-dock: 1100;
  --ta-layer-assistant-bubble: 1190;
  --ta-layer-studio-toast: 1200;
  --ta-layer-asset-viewer: 1300;
  --ta-layer-asset-controls: 1302;
  --ta-layer-prompt-center: 120;
  --ta-layer-wallet: 130;
  --ta-layer-mixer-launcher: 140;
  --ta-layer-mixer: 155;
  --ta-layer-generation-preview: 160;
  --ta-layer-generation-dock: 220;
  --ta-layer-mixer-over-generator: 235;
  --ta-layer-mixer-launcher-over-generator: 236;
  --ta-layer-feed-fullscreen: 9500;
  --ta-layer-feed-fullscreen-controls: 9501;
  --ta-layer-reference-viewer: 9999;
  --ta-layer-reference-arcade: 10000;
  --ta-layer-media-lightbox: 10050;

  /* — Мост legacy-оси (аудит: cookie-баннер × ассистент).
       Пока fixed-слои студии не мигрированы со значений ~2.1e9,
       консент и ассистент берут слои ОТСЮДА, а не хардкодом:
       бар/панель ассистента ниже консента (сам конфликт разведён
       отступом в cookie-consent.css — оба остаются кликабельны);
       выше консента остаются toast-стек (2147482600) и
       онбординг (2147483200). — */
  --z-assistant-bar:   2147482400;
  --z-assistant-panel: 2147482401;
  /* выше mobile-nav (2147483000), ниже онбординга (2147483200) */
  --z-consent:         2147483100;
}

/* If the browser reports real startup stalls, preserve content and controls but
   retire decorative continuous motion for this tab. */
.ta-performance-calm .desktop-cursor-lamp,
.ta-performance-calm .desktop-stage-portal,
.ta-performance-calm .theatre-touch-spotlight,
.ta-performance-calm .theatre-spark {
  display: none !important;
}
.ta-performance-calm .fx-breathe,
.ta-performance-calm .theatre-reveal,
.ta-performance-calm .desktop-tilt-ready {
  animation: none !important;
  transform: none !important;
  transition-duration: .01ms !important;
}
/* Safari/Mac keeps gradients, glows and depth. Only continuous GPU layers and
   large live blurs are simplified; other devices retain the full theatre. */
.ta-performance-balanced .desktop-cursor-lamp,
.ta-performance-balanced .theatre-touch-spotlight { display:none!important; }
.ta-performance-balanced .ambient-orb,
.ta-performance-balanced .km-tile .km-ico { animation-duration:12s!important; }
.ta-performance-balanced .topbar,
.ta-performance-balanced .main-header,
.ta-performance-balanced .bottom-nav,
.ta-performance-balanced .mobile-nav,
.ta-performance-balanced .omni-shell,
.ta-performance-balanced .omni-panel { backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important; }
.ta-performance-calm .ambient-orb,
.ta-performance-calm .km-tile .km-ico,
.ta-performance-calm .gm-card::before,
.ta-performance-calm .gm-go::after { animation:none!important; }
.ta-performance-calm .topbar,
.ta-performance-calm .main-header,
.ta-performance-calm .bottom-nav,
.ta-performance-calm .mobile-nav,
.ta-performance-calm .omni-shell,
.ta-performance-calm .omni-panel,
.ta-performance-calm .gen-modal { backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background-color:rgba(4,20,15,.94)!important; }
.ta-page-hidden .ambient-orb,
.ta-page-hidden .km-tile .km-ico,
.ta-page-hidden .gm-card::before,
.ta-page-hidden .gm-go::after,
.ta-page-hidden .side-bal::after,
.ta-page-hidden .side-head b { animation-play-state:paused!important; }

/* Adaptive performance profile. It keeps the gradients and depth, but stops
   paying for full-screen repaints when Safari/Mac or runtime measurements say
   the page is struggling. Loading indicators and interaction feedback are not
   included here and continue to animate normally. */
.ta-performance-balanced body::before,
.ta-performance-balanced body::after {
  animation-duration: 90s !important;
  filter: blur(30px) saturate(125%) !important;
}
.ta-performance-balanced .gallery-track,
.ta-performance-balanced .strip-track { animation-duration: 140s !important; }
.ta-performance-balanced .lp-orb { animation-duration: 80s !important; filter: blur(34px) saturate(120%) !important; }
.ta-performance-balanced .lp-grid-lines { animation-duration: 80s !important; }
.ta-performance-balanced .main-header,
.ta-performance-balanced .main-header::before,
.ta-performance-balanced .main-header::after,
.ta-performance-balanced .main-header .logo-wrap,
.ta-performance-balanced .main-header .logo-wrap::after,
.ta-performance-balanced .hdr-stars i,
.ta-performance-balanced .hdr-stars b { animation-duration: 18s !important; }

.ta-performance-calm body::before,
.ta-performance-calm body::after,
.ta-performance-calm .gallery-track,
.ta-performance-calm .strip-track,
.ta-performance-calm .main-header,
.ta-performance-calm .main-header::before,
.ta-performance-calm .main-header::after,
.ta-performance-calm .main-header .logo-wrap,
.ta-performance-calm .main-header .logo-wrap::after,
.ta-performance-calm .main-header .logo-wrap span,
.ta-performance-calm .hdr-stars i,
.ta-performance-calm .hdr-stars b,
.ta-performance-calm .omni-fab__glow,
.ta-performance-calm .omni-tool-card::after,
.ta-performance-calm .side-bal::after,
.ta-performance-calm .side-head b,
.ta-performance-calm .lp-orb,
.ta-performance-calm .lp-grid-lines,
.ta-page-hidden body::before,
.ta-page-hidden body::after,
.ta-page-hidden .gallery-track,
.ta-page-hidden .strip-track,
.ta-page-hidden .main-header,
.ta-page-hidden .main-header::before,
.ta-page-hidden .main-header::after,
.ta-page-hidden .hdr-stars i,
.ta-page-hidden .hdr-stars b {
  animation-play-state: paused !important;
}
.ta-performance-calm body::before,
.ta-performance-calm body::after {
  filter: blur(22px) saturate(115%) !important;
}
.ta-performance-calm #cursorLight,
.ta-performance-calm .desktop-cursor-lamp,
.ta-performance-calm .theatre-touch-spotlight { display: none !important; }
.ta-page-hidden video { visibility: hidden; }

/* The home continues to look rich when reached, but below-the-fold painting is
   deferred. This is especially valuable for Retina MacBooks: layout remains
   stable through the intrinsic fallback and controls are unaffected. */
#homeBaShowcase,
.site-footer {
  content-visibility: auto;
}
#homeBaShowcase { contain-intrinsic-size: auto 760px; }
.site-footer { contain-intrinsic-size: auto 680px; }

/* A background tab should consume effectively no animation CPU. */
html.ta-page-hidden *,
body.ta-page-hidden * { animation-play-state: paused !important; }
