/* ===== Базовое ===== */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body { background: #0a0a1a; }

/* ===== PRELOADER ===== */
#preloader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: #0a0a1a;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  transition: opacity .6s ease, visibility .6s ease;
}
#preloader.hidden { opacity: 0; visibility: hidden; }

.preloader-logo {
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  animation: preloaderGlow 2s ease-in-out infinite;
}
@keyframes preloaderGlow {
  0%, 100% { filter: drop-shadow(0 0 10px rgba(168,85,247,0.5)); }
  50%      { filter: drop-shadow(0 0 25px rgba(34,211,238,0.9)); }
}

.preloader-bar {
  width: 220px;
  height: 3px;
  border-radius: 3px;
  background: rgba(255,255,255,0.1);
  overflow: hidden;
  position: relative;
}
.preloader-bar::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #7c3aed, #06b6d4, #ec4899);
  animation: preloaderLoad 1.2s ease-in-out infinite;
  transform-origin: left;
}
@keyframes preloaderLoad {
  0%   { transform: scaleX(0); }
  50%  { transform: scaleX(1); }
  100% { transform: scaleX(0) translateX(100%); }
}

/* ===== MARQUEE ===== */
.marquee {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 60;
  background: linear-gradient(90deg, #7c3aed22, #06b6d422, #ec489922);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  overflow: hidden;
  height: 32px;
  display: flex;
  align-items: center;
  font-size: 13px;
  color: #d1d5db;
}
.marquee-track {
  display: inline-flex;
  gap: 48px;
  white-space: nowrap;
  animation: marqueeScroll 40s linear infinite;
  padding-left: 100%;
}
.marquee-track span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.marquee-track b { color: #a78bfa; }
@keyframes marqueeScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}

nav.navbar { top: 32px; }

/* ===== Aurora-фон ===== */
.aurora-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.aurora-blob {
  position: absolute;
  width: 60vw;
  height: 60vw;
  border-radius: 50%;
  filter: blur(140px);
  opacity: 0.35;
  animation: float 18s ease-in-out infinite;
}
.aurora-blob.b1 { background: #7c3aed; top: -10vw; left: -10vw; }
.aurora-blob.b2 { background: #06b6d4; bottom: -20vw; right: -10vw; animation-delay: -6s; }
.aurora-blob.b3 { background: #ec4899; top: 30%; left: 40%; animation-delay: -12s; width: 40vw; height: 40vw; }

@keyframes float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(6vw, -4vw) scale(1.1); }
  66%      { transform: translate(-4vw, 6vw) scale(0.95); }
}

/* ===== Aurora текст ===== */
.aurora-text {
  background: linear-gradient(90deg, #a78bfa, #22d3ee, #ec4899, #a78bfa);
  background-size: 300% auto;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: aurora 5s linear infinite;
}
@keyframes aurora {
  0%   { background-position: 0% center; }
  100% { background-position: 300% center; }
}

/* ===== Стекло ===== */
.glass {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* ===== Логотип ===== */
.logo {
  font-weight: 800;
  letter-spacing: 0.05em;
  transition: filter .3s;
}
.logo:hover { filter: drop-shadow(0 0 12px rgba(168,85,247,0.8)); }

/* ===== Кнопки ===== */
.btn-primary {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 1rem 2rem;
  border-radius: 9999px;
  background: linear-gradient(90deg, #9333ea, #ec4899, #06b6d4);
  background-size: 200% auto;
  font-weight: 700;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s, background-position .5s;
  box-shadow: 0 10px 30px -10px rgba(147,51,234,0.6);
}
.btn-primary:hover {
  transform: translateY(-2px) scale(1.03);
  background-position: 100% center;
  box-shadow: 0 15px 40px -10px rgba(236,72,153,0.7);
}
.btn-primary::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
  transition: left .6s;
}
.btn-primary:hover::after { left: 100%; }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 1rem 2rem;
  border-radius: 9999px;
  border: 1px solid rgba(255,255,255,0.2);
  font-weight: 700;
  transition: background .25s, border-color .25s, transform .25s;
}
.btn-secondary:hover {
  background: rgba(255,255,255,0.05);
  border-color: rgba(168,85,247,0.6);
  transform: translateY(-2px);
}

/* ===== Заголовки страниц ===== */
.page-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 800;
  text-align: center;
  margin-bottom: 1rem;
  line-height: 1.1;
}
.page-subtitle {
  text-align: center;
  color: #9ca3af;
  max-width: 640px;
  margin: 0 auto 4rem;
}

/* ===== Карточки новостей и команды ===== */
.news-card, .team-card {
  padding: 1.75rem;
  border-radius: 1.25rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  transition: border-color .3s, box-shadow .3s, transform .3s;
  position: relative;
  overflow: hidden;
}
.news-card::before, .team-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(168,85,247,0.18), transparent 60%);
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.news-card:hover::before, .team-card:hover::before { opacity: 1; }
.news-card:hover, .team-card:hover {
  border-color: rgba(168,85,247,0.5);
  box-shadow: 0 30px 60px -20px rgba(168,85,247,0.4);
  transform: translateY(-4px);
}

.news-card {
  border-left: 3px solid transparent;
  background-image: linear-gradient(rgba(255,255,255,0.03), rgba(255,255,255,0.03)),
                    linear-gradient(180deg, #7c3aed, #06b6d4);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  background-repeat: no-repeat;
  background-size: 100% 100%, 4px 100%;
  background-position: 0 0, 0 0;
  border: 1px solid rgba(255,255,255,0.08);
}

.news-date {
  font-size: 0.75rem;
  color: #a78bfa;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

/* ===== Команда ===== */
.team-card { text-align: center; }
.team-avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin: 0 auto 1rem;
  background: linear-gradient(135deg, #7c3aed, #06b6d4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  font-weight: 800;
  box-shadow: 0 0 30px -5px rgba(124,58,237,0.6);
  transition: transform .3s, box-shadow .3s;
}
.team-card:hover .team-avatar {
  transform: scale(1.08);
  box-shadow: 0 0 40px -5px rgba(34,211,238,0.7);
}

/* ===== Правила ===== */
.rule-item {
  padding: 1.25rem 1.5rem;
  border-radius: 0.85rem;
  background: rgba(255,255,255,0.025);
  border-left: 3px solid #7c3aed;
  margin-bottom: 0.75rem;
  transition: background .25s, border-color .25s, transform .25s;
  line-height: 1.6;
}
.rule-item:hover {
  background: rgba(124,58,237,0.08);
  border-left-color: #22d3ee;
  transform: translateX(6px);
}
.rule-item strong { color: #a78bfa; }

/* ===== Загрузка ===== */
.download-box {
  padding: 3.5rem 2rem;
  border-radius: 1.75rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.1);
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}
.download-box::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 1.75rem;
  background: linear-gradient(135deg, #7c3aed, #06b6d4, #ec4899);
  z-index: -1;
  filter: blur(28px);
  opacity: 0.35;
  animation: glowPulse 4s ease-in-out infinite;
}
@keyframes glowPulse {
  0%, 100% { opacity: 0.25; }
  50%      { opacity: 0.5; }
}

.step {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  text-align: left;
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.05);
  transition: background .25s, border-color .25s, transform .25s;
}
.step:hover {
  background: rgba(124,58,237,0.06);
  border-color: rgba(168,85,247,0.3);
  transform: translateX(4px);
}
.step-num {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7c3aed, #06b6d4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  box-shadow: 0 0 16px -4px rgba(124,58,237,0.8);
}

/* ===== Статус ===== */
.status-card {
  padding: 1.75rem;
  border-radius: 1.25rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
}
.status-row {
  display: flex;
  justify-content: space-between;
  padding: .85rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  font-size: .95rem;
}
.status-row:last-child { border-bottom: none; }
.status-label { color: #9ca3af; }
.status-value { font-weight: 700; }

/* ===== FAQ ===== */
.faq-item {
  border-radius: 1rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 12px;
  overflow: hidden;
  transition: border-color .3s, background .3s;
}
.faq-item:hover { border-color: rgba(168,85,247,0.4); }
.faq-item.open {
  border-color: rgba(168,85,247,0.6);
  background: rgba(124,58,237,0.05);
}
.faq-question {
  width: 100%;
  padding: 1.25rem 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-weight: 700;
  cursor: pointer;
  text-align: left;
  background: none;
  border: none;
  color: #fff;
  font-size: 1rem;
}
.faq-question .arrow {
  transition: transform .3s;
  color: #a78bfa;
  flex-shrink: 0;
}
.faq-item.open .faq-question .arrow { transform: rotate(180deg); }
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease, padding .3s ease;
  padding: 0 1.5rem;
  color: #9ca3af;
  font-size: .95rem;
  line-height: 1.6;
}
.faq-item.open .faq-answer {
  max-height: 400px;
  padding: 0 1.5rem 1.25rem;
}

/* ===== Скролл-анимация ===== */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===== Пульс ===== */
.status-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #22c55e;
  margin-right: 6px;
  box-shadow: 0 0 8px #22c55e;
  animation: pulse 1.5s infinite;
}
.status-dot.offline { background: #ef4444; box-shadow: 0 0 8px #ef4444; }
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.5; transform: scale(1.3); }
}

/* ===== Скроллбар ===== */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #0a0a1a; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #7c3aed, #06b6d4);
  border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #a78bfa, #22d3ee); }

/* ===== Мобильное меню ===== */
.mobile-menu { display: none; }
.mobile-menu.open { display: flex; }

/* ===== Донат-карточки ===== */
.donate-card {
  position: relative;
  padding: 2rem 1.75rem;
  border-radius: 1.25rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  text-align: center;
  overflow: hidden;
  transition: transform .3s, border-color .3s, box-shadow .3s;
}
.donate-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--accent, #a78bfa);
  box-shadow: 0 0 20px var(--accent, #a78bfa);
}
.donate-glow {
  position: absolute;
  inset: -50%;
  background: radial-gradient(circle at 50% 0%, var(--accent, #a78bfa), transparent 60%);
  opacity: 0.12;
  pointer-events: none;
}
.donate-card:hover {
  transform: translateY(-8px);
  border-color: var(--accent, #a78bfa);
  box-shadow: 0 30px 60px -20px var(--accent, #a78bfa);
}
.donate-name {
  font-size: 1.75rem;
  font-weight: 800;
  margin-bottom: .5rem;
  color: var(--accent, #a78bfa);
}
.donate-price {
  font-size: 2.25rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
}
.donate-features {
  text-align: left;
  margin-bottom: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  font-size: .9rem;
  color: #d1d5db;
}
.donate-features li {
  padding-left: .25rem;
  border-left: 2px solid var(--accent, #a78bfa);
  padding-left: .75rem;
}
.donate-btn {
  width: 100%;
  justify-content: center;
}

/* ===== Редактирование в админке ===== */
.admin-item-edit {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}
.admin-edit-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.btn-edit {
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(34,211,238,0.15);
  border: 1px solid rgba(34,211,238,0.3);
  color: #67e8f9;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s;
}
.btn-edit:hover { background: rgba(34,211,238,0.3); }

.btn-save {
  padding: 8px 14px;
  border-radius: 8px;
  background: rgba(34,197,94,0.15);
  border: 1px solid rgba(34,197,94,0.4);
  color: #86efac;
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
}
.btn-save:hover { background: rgba(34,197,94,0.3); }

/* ===== Дашборд статистики ===== */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.stat-box {
  padding: 20px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(124,58,237,0.1), rgba(34,211,238,0.05));
  border: 1px solid rgba(168,85,247,0.2);
}
.stat-box .num {
  font-size: 2rem;
  font-weight: 800;
  background: linear-gradient(90deg, #a78bfa, #22d3ee);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.stat-box .label {
  font-size: .85rem;
  color: #9ca3af;
  margin-top: 4px;
}

/* Поиск в админке */
.admin-search {
  width: 100%;
  padding: 12px 18px;
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  margin-bottom: 16px;
}
.admin-search:focus {
  outline: none;
  border-color: #a78bfa;
}