* {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

:root {
  --radius-full: 9999px;

  --anim-fade-up: fadeUp 0.8s ease-out forwards;
  --anim-float: float 6s ease-in-out infinite;
  --anim-pulse: pulse 2s ease-in-out infinite;
  --anim-spin-slow: spin-slow 20s linear infinite;
}

:root[data-theme="light"] {
  /* Бренд */
  --color-primary: #01696f;
  --color-primary-hover: #014f54;
  --color-primary-accent: #0a8a92;
  --color-primary-dark: #013b3f;
  --color-primary-soft-text: #b0d4d6;

  /* Прозрачные состояния */
  --color-primary-dark-a10: rgb(1 59 63 / 10%);
  --color-primary-a05: rgb(1 105 111 / 5%);
  --color-primary-a08: rgb(1 105 111 / 8%);
  --color-primary-a10: rgb(1 105 111 / 10%);
  --color-primary-a12: rgb(1 105 111 / 12%);
  --color-primary-a15: rgb(1 105 111 / 15%);
  --color-primary-a20: rgb(1 105 111 / 20%);
  --color-primary-a30: rgb(1 105 111 / 30%);
  --color-primary-a35: rgb(1 105 111 / 35%);
  --color-primary-a50: rgb(1 105 111 / 50%);
  --color-primary-a60: rgb(1 105 111 / 60%);
  --color-primary-a65: rgb(1 105 111 / 65%);

  /* Системные статусы */
  --color-success: #437a22;
  --color-success-hover: #2e5c10;
  --color-success-active: #1e3f0a;
  --color-success-highlight: #d4dfcc;
  --color-success-highlight-text: var(--color-success);

  --color-warning: #964219;
  --color-warning-hover: #713417;
  --color-warning-active: #4b2614;
  --color-warning-highlight: #ddcfc6;

  --color-error: #a12c7b;
  --color-error-hover: #7d1e5e;
  --color-error-active: #561740;
  --color-error-highlight: #e0ced7;

  /* Нейтральная шкала */
  --color-white: #ffffff;
  --color-gray-200: #e5e7eb;
  --color-gray-400: #9ca3af;
  --color-gray-500: #6b7280;
  --color-gray-600: #4b5563;
  --color-gray-800: #1f2937;
  --color-gray-900: #111827;
  --color-inverse-a15: rgb(255 255 255 / 15%);

  /* Поверхности и текст */
  --color-page-bg: var(--color-white);
  --color-surface: var(--color-white);
  --color-text: var(--color-gray-900);
  --color-text-muted: var(--color-gray-600);
  --color-border: var(--color-gray-200);
  --color-logogram-surface: #ffffff;

  /* Семантические вариации текста */
  --color-text-strong: var(--color-text);
  --color-text-inverse: var(--color-white);
  --color-text-muted-soft: var(--color-gray-400);

  /* Тени */
  --shadow-soft-color: rgb(0 0 0 / 8%);
  --shadow-medium-color: rgb(0 0 0 / 15%);

  /* Графики */
  --chart-ai: #0a8a92;
  --chart-politics: #b45309;
  --chart-economy: #d97706;
  --chart-tech: #01696f;
  --chart-consciousness: #7c3aed;
  --chart-science: #059669;
  --chart-other: #6b7280;
}


:root[data-theme="red"] {
  /* Бренд */
  --color-primary: #e63946;
  --color-primary-hover: #c62836;
  --color-primary-accent: #f4a261;
  --color-primary-dark: #8f1f29;
  --color-primary-soft-text: #ffb7bd;

  /* Прозрачные состояния */
  --color-primary-dark-a10: rgb(143 31 41 / 10%);
  --color-primary-a05: rgb(230 57 70 / 5%);
  --color-primary-a08: rgb(230 57 70 / 8%);
  --color-primary-a10: rgb(230 57 70 / 10%);
  --color-primary-a12: rgb(230 57 70 / 12%);
  --color-primary-a15: rgb(230 57 70 / 15%);
  --color-primary-a20: rgb(230 57 70 / 20%);
  --color-primary-a30: rgb(230 57 70 / 30%);
  --color-primary-a35: rgb(230 57 70 / 35%);
  --color-primary-a50: rgb(230 57 70 / 50%);
  --color-primary-a60: rgb(230 57 70 / 60%);
  --color-primary-a65: rgb(230 57 70 / 65%);

  /* Системные статусы */
  --color-success: #34d399;
  --color-success-hover: #10b981;
  --color-success-active: #047857;
  --color-success-highlight: #064e3b;
  --color-success-highlight-text: var(--color-success);

  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-warning-active: #b45309;
  --color-warning-highlight: #78350f;

  --color-error: #fb7185;
  --color-error-hover: #e11d48;
  --color-error-active: #be123c;
  --color-error-highlight: #881337;

  /* Нейтральная шкала */
  --color-white: #ffffff;
  --color-gray-200: #dedede;
  --color-gray-400: #b0b0b0;
  --color-gray-500: #8a8a8a;
  --color-gray-600: #707070;
  --color-gray-800: #202020;
  --color-gray-900: #0a0a0a;
  --color-inverse-a15: rgb(255 255 255 / 15%);

  /* Поверхности и текст */
  --color-page-bg: #0a0a0a;
  --color-surface: #111111;
  --color-text: #ffffff;
  --color-text-muted: #b0b0b0;
  --color-border: rgb(255 255 255 / 6%);
  --color-logogram-surface: #ffffff;

  /* Семантические вариации текста */
  --color-text-strong: var(--color-text);
  --color-text-inverse: var(--color-white);
  --color-text-muted-soft: var(--color-gray-400);

  /* Тени */
  --shadow-soft-color: rgb(0 0 0 / 35%);
  --shadow-medium-color: rgb(0 0 0 / 55%);

  /* Графики */
  --chart-ai: #e63946;
  --chart-politics: #f4a261;
  --chart-economy: #e76f51;
  --chart-tech: #fb7185;
  --chart-consciousness: #c084fc;
  --chart-science: #84cc16;
  --chart-other: #b0b0b0;
}


:root[data-theme="emerald"] {
  /* Бренд */
  --color-primary: #10b981;
  --color-primary-hover: #047857;
  --color-primary-accent: #34d399;
  --color-primary-dark: #047857;
  --color-primary-soft-text: #a7f3d0;

  /* Прозрачные состояния */
  --color-primary-dark-a10: rgb(4 120 87 / 10%);
  --color-primary-a05: rgb(16 185 129 / 5%);
  --color-primary-a08: rgb(16 185 129 / 8%);
  --color-primary-a10: rgb(16 185 129 / 10%);
  --color-primary-a12: rgb(16 185 129 / 12%);
  --color-primary-a15: rgb(16 185 129 / 15%);
  --color-primary-a20: rgb(16 185 129 / 20%);
  --color-primary-a30: rgb(16 185 129 / 30%);
  --color-primary-a35: rgb(16 185 129 / 35%);
  --color-primary-a50: rgb(16 185 129 / 50%);
  --color-primary-a60: rgb(16 185 129 / 60%);
  --color-primary-a65: rgb(16 185 129 / 65%);

  /* Системные статусы */
  --color-success: #34d399;
  --color-success-hover: #10b981;
  --color-success-active: #047857;
  --color-success-highlight: #064e3b;
  --color-success-highlight-text: var(--color-success);

  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-warning-active: #b45309;
  --color-warning-highlight: #78350f;

  --color-error: #fb7185;
  --color-error-hover: #e11d48;
  --color-error-active: #be123c;
  --color-error-highlight: #881337;

  /* Нейтральная шкала */
  --color-white: #ffffff;
  --color-gray-200: #dedede;
  --color-gray-400: #b0b0b0;
  --color-gray-500: #8a8a8a;
  --color-gray-600: #707070;
  --color-gray-800: #202020;
  --color-gray-900: #0a0a0a;
  --color-inverse-a15: rgb(255 255 255 / 15%);

  /* Поверхности и текст */
  --color-page-bg: #0a0a0a;
  --color-surface: #111111;
  --color-text: #ffffff;
  --color-text-muted: #b0b0b0;
  --color-border: rgb(255 255 255 / 6%);
  --color-logogram-surface: #ffffff;

  /* Семантические вариации текста */
  --color-text-strong: var(--color-text);
  --color-text-inverse: var(--color-white);
  --color-text-muted-soft: var(--color-gray-400);

  /* Тени */
  --shadow-soft-color: rgb(0 0 0 / 35%);
  --shadow-medium-color: rgb(0 0 0 / 55%);

  /* Графики */
  --chart-ai: #10b981;
  --chart-politics: #f59e0b;
  --chart-economy: #fbbf24;
  --chart-tech: #34d399;
  --chart-consciousness: #a78bfa;
  --chart-science: #22c55e;
  --chart-other: #b0b0b0;
}

:root[data-theme="pink"] {
  /* Бренд */
  --color-primary: #ec4899;
  --color-primary-hover: #be185d;
  --color-primary-accent: #f472b6;
  --color-primary-dark: #be185d;
  --color-primary-soft-text: #f9a8d4;

  /* Прозрачные состояния */
  --color-primary-dark-a10: rgb(190 24 93 / 10%);
  --color-primary-a05: rgb(236 72 153 / 5%);
  --color-primary-a08: rgb(236 72 153 / 8%);
  --color-primary-a10: rgb(236 72 153 / 10%);
  --color-primary-a12: rgb(236 72 153 / 12%);
  --color-primary-a15: rgb(236 72 153 / 15%);
  --color-primary-a20: rgb(236 72 153 / 20%);
  --color-primary-a30: rgb(236 72 153 / 30%);
  --color-primary-a35: rgb(236 72 153 / 35%);
  --color-primary-a50: rgb(236 72 153 / 50%);
  --color-primary-a60: rgb(236 72 153 / 60%);
  --color-primary-a65: rgb(236 72 153 / 65%);

  /* Системные статусы */
  --color-success: #34d399;
  --color-success-hover: #10b981;
  --color-success-active: #047857;
  --color-success-highlight: #064e3b;
  --color-success-highlight-text: var(--color-success);

  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-warning-active: #b45309;
  --color-warning-highlight: #78350f;

  --color-error: #fb7185;
  --color-error-hover: #e11d48;
  --color-error-active: #be123c;
  --color-error-highlight: #881337;

  /* Нейтральная шкала */
  --color-white: #ffffff;
  --color-gray-200: #dedede;
  --color-gray-400: #b0b0b0;
  --color-gray-500: #8a8a8a;
  --color-gray-600: #707070;
  --color-gray-800: #202020;
  --color-gray-900: #0a0a0a;
  --color-inverse-a15: rgb(255 255 255 / 15%);

  /* Поверхности и текст */
  --color-page-bg: #0a0a0a;
  --color-surface: #111111;
  --color-text: #ffffff;
  --color-text-muted: #b0b0b0;
  --color-border: rgb(255 255 255 / 6%);
  --color-logogram-surface: #ffffff;

  /* Семантические вариации текста */
  --color-text-strong: var(--color-text);
  --color-text-inverse: var(--color-white);
  --color-text-muted-soft: var(--color-gray-400);

  /* Тени */
  --shadow-soft-color: rgb(0 0 0 / 35%);
  --shadow-medium-color: rgb(0 0 0 / 55%);

  /* Графики */
  --chart-ai: #ec4899;
  --chart-politics: #f59e0b;
  --chart-economy: #fbbf24;
  --chart-tech: #f472b6;
  --chart-consciousness: #a78bfa;
  --chart-science: #34d399;
  --chart-other: #b0b0b0;
}


:root[data-theme="violet"] {
  /* Бренд */
  --color-primary: #8b5cf6;
  --color-primary-hover: #5b21b6;
  --color-primary-accent: #a78bfa;
  --color-primary-dark: #5b21b6;
  --color-primary-soft-text: #c4b5fd;

  /* Прозрачные состояния */
  --color-primary-dark-a10: rgb(91 33 182 / 10%);
  --color-primary-a05: rgb(139 92 246 / 5%);
  --color-primary-a08: rgb(139 92 246 / 8%);
  --color-primary-a10: rgb(139 92 246 / 10%);
  --color-primary-a12: rgb(139 92 246 / 12%);
  --color-primary-a15: rgb(139 92 246 / 15%);
  --color-primary-a20: rgb(139 92 246 / 20%);
  --color-primary-a30: rgb(139 92 246 / 30%);
  --color-primary-a35: rgb(139 92 246 / 35%);
  --color-primary-a50: rgb(139 92 246 / 50%);
  --color-primary-a60: rgb(139 92 246 / 60%);
  --color-primary-a65: rgb(139 92 246 / 65%);

  /* Системные статусы */
  --color-success: #34d399;
  --color-success-hover: #10b981;
  --color-success-active: #047857;
  --color-success-highlight: #064e3b;
  --color-success-highlight-text: var(--color-success);

  --color-warning: #f59e0b;
  --color-warning-hover: #d97706;
  --color-warning-active: #b45309;
  --color-warning-highlight: #78350f;

  --color-error: #fb7185;
  --color-error-hover: #e11d48;
  --color-error-active: #be123c;
  --color-error-highlight: #881337;

  /* Нейтральная шкала */
  --color-white: #ffffff;
  --color-gray-200: #dedede;
  --color-gray-400: #b0b0b0;
  --color-gray-500: #8a8a8a;
  --color-gray-600: #707070;
  --color-gray-800: #202020;
  --color-gray-900: #0a0a0a;
  --color-inverse-a15: rgb(255 255 255 / 15%);

  /* Поверхности и текст */
  --color-page-bg: #0a0a0a;
  --color-surface: #111111;
  --color-text: #ffffff;
  --color-text-muted: #b0b0b0;
  --color-border: rgb(255 255 255 / 6%);
  --color-logogram-surface: #ffffff;

  /* Семантические вариации текста */
  --color-text-strong: var(--color-text);
  --color-text-inverse: var(--color-white);
  --color-text-muted-soft: var(--color-gray-400);

  /* Тени */
  --shadow-soft-color: rgb(0 0 0 / 35%);
  --shadow-medium-color: rgb(0 0 0 / 55%);

  /* Графики */
  --chart-ai: #8b5cf6;
  --chart-politics: #f59e0b;
  --chart-economy: #fbbf24;
  --chart-tech: #a78bfa;
  --chart-consciousness: #c4b5fd;
  --chart-science: #34d399;
  --chart-other: #b0b0b0;
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(40px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-12px);
  }
}

@keyframes pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.7;
    transform: scale(1.05);
  }
}

@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-fade-up {
  animation: var(--anim-fade-up);
}

.animate-float {
  animation: var(--anim-float);
}

.animate-pulse {
  animation: var(--anim-pulse);
}

.animate-spin-slow {
  animation: var(--anim-spin-slow);
}

.section-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}

.section-fade.visible {
  opacity: 1;
  transform: translateY(0);
}

.hero-glow {
  background: radial-gradient(ellipse at 50% 50%, var(--color-primary-a08) 0%, transparent 70%);
}

.card-hover {
  transition: all 0.3s ease;
}

.card-hover:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -12px var(--color-primary-a15);
}

.gradient-text {
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.quote-block {
  border-left: 4px solid var(--color-primary);
}

.btn-primary {
  background: var(--color-primary);
  color: var(--color-white);
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background: var(--color-primary-hover);
  transform: scale(1.02);
  box-shadow: 0 8px 24px var(--color-primary-a30);
}

.btn-outline {
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
  transition: all 0.3s ease;
}

.btn-outline:hover {
  background: var(--color-primary);
  color: var(--color-white);
  transform: scale(1.02);
}

.icon-circle {
  position: relative;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  flex-shrink: 0;
  border: 2px solid var(--color-white);
  box-shadow: 0 4px 12px var(--shadow-black-soft);
}

.icon-circle-light {
  background: var(--color-primary-a08);
  color: var(--color-primary);
}

.icon-circle-solid {
  background: var(--color-primary);
  color: var(--color-white);
}

.lottie-icon {
  width: 150px;
  height: 150px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  pointer-events: none;
  position: relative;
  z-index: 1;
}

.lottie-icon svg {
  width: 100% !important;
  height: 100% !important;
  display: block;
}

.icon-circle-light .lottie-icon {
  filter: none;
}

.icon-circle-solid .lottie-icon {
  width: 150px;
  height: 150px;
}

.icon-circle-solid .lottie-icon svg {
  opacity: 1;
}

.stat-number {
  font-weight: 800;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-accent));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.meditation-bg {
  background: radial-gradient(ellipse at 30% 50%, var(--color-primary-a08) 0%, transparent 70%);
}

.toggle-track {
  width: 56px;
  height: 32px;
  background: var(--color-gray-200);
  border-radius: var(--radius-full);
  transition: background 0.3s ease;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}

.toggle-track.active {
  background: var(--color-primary);
}

.toggle-dot {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 24px;
  height: 24px;
  background: var(--color-white);
  border-radius: 50%;
  box-shadow: 0 2px 8px var(--shadow-black-medium);
  transition: transform 0.3s ease;
}

.toggle-track.active .toggle-dot {
  transform: translateX(24px);
}

@media (max-width: 640px) {
  .icon-circle {
    width: 48px;
    height: 48px;
    font-size: 20px;
  }

  .lottie-icon {
    width: 26px;
    height: 26px;
  }

  .icon-circle-solid .lottie-icon {
    width: 28px;
    height: 28px;
  }

  .stat-number {
    font-size: 2.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .animate-float,
  .animate-pulse,
  .animate-spin-slow {
    animation: none !important;
  }
}