/* ============================================================
   PERFORMANCE.CSS — GPU Acceleration, оптимизация рендеринга
   Gramaton.pro — Личный кабинет
   ============================================================ */

/* ---------- GPU Acceleration (аппаратное ускорение) ---------- */
.gpu-accelerated {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  perspective: 1000;
  -webkit-perspective: 1000;
}

/* Все анимируемые элементы используют translate3d */
.lk-drawer,
.lk-drawer-backdrop,
.lk-main,
.lk-topbar,
.burger-btn .burger-line,
.drawer-item,
.lk-chat,
.lk-contacts {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* ---------- will-change управление (JS проставляет/убирает) ---------- */
.will-change-transform {
  will-change: transform;
}

.will-change-opacity {
  will-change: opacity;
}

.will-change-auto {
  will-change: auto;
}

/* ---------- Замена тяжелых box-shadow на SVG/рамки ---------- */
/* Мобильная версия: неоновые тени → статичные контурные рамки */

/* Glassmorphism-карточки (десктоп — с тенями) */
.glass-card {
  background: rgba(18, 11, 34, 0.45);
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  border: 1px solid rgba(122, 34, 166, 0.4);
  /* На десктопе — легкая неоновая тень */
  box-shadow: 0 0 20px rgba(122, 34, 166, 0.15),
              inset 0 0 20px rgba(122, 34, 166, 0.05);
}

/* Мобильная оптимизация: без box-shadow, только border */
@media (max-width: 767px) {
  .glass-card {
    box-shadow: none;
    border: 1px solid rgba(122, 34, 166, 0.3);
  }

  /* Кнопки с неоном — заменяем на SVG-рамки */
  .neon-btn {
    position: relative;
    border: none;
    background: rgba(122, 34, 166, 0.15);
  }

  .neon-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, #7A22A6, #3B1154);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
  }
}

/* ---------- Адаптивный blur ---------- */
@media (max-width: 767px) {
  .glass-card,
  .lk-drawer,
  .lk-topbar {
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
  }
}

/* Энергосбережение — снижаем blur */
@media (prefers-reduced-motion: no-preference) {
  .energy-saving .glass-card,
  .energy-saving .lk-drawer,
  .energy-saving .lk-topbar {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
}

/* ---------- Оптимизация рендеринга текста ---------- */
.lk-grid {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'kern' 1, 'liga' 1;
}

/* ---------- Containment для изоляции ---------- */
.lk-contacts,
.lk-chat,
.lk-sidebar {
  contain: content;
  content-visibility: auto;
}

/* ---------- Анимация только на композиторе ---------- */
@media (prefers-reduced-motion: no-preference) {
  .lk-drawer,
  .lk-drawer-backdrop,
  .burger-btn .burger-line,
  .drawer-item {
    /* Только transform и opacity — не триггерим layout/paint */
    transition-property: transform, opacity;
  }
}

/* ---------- Media: no-preference (не насилуем батарею) ---------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- SVG-замена неона для мобильных ---------- */
.neon-border-svg {
  position: relative;
}

.neon-border-svg::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid transparent;
  background: linear-gradient(135deg, #7A22A6, #3B1154) border-box;
  -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* ---------- Contain strict для изолированных блоков ---------- */
.drawer-item,
.sidebar-item {
  contain: strict;
}