/* ===== PRELOADER ===== */
#preloader{
  position:fixed; inset:0;
  background:linear-gradient(180deg,#0a0f2c,#121738);
  display:flex; justify-content:center; align-items:center;
  z-index:9999;
  opacity:1; visibility:visible;
  transition:opacity .6s ease, visibility .6s ease;
}
#preloader.hidden{ opacity:0; visibility:hidden; }

.preloader-content{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:20px; text-align:center;
}
.preloader-title{
  font-size:clamp(24px,4vw,38px); font-weight:900;
  background:linear-gradient(90deg,#ffe76a,#ffbb55,#ffe76a);
  background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:title-gradient 4s linear infinite;
  margin-bottom:10px;
  text-shadow:0 0 12px rgba(255,231,106,.35), 0 4px 18px rgba(255,187,85,.25);
}
.spinner{
  width:48px; height:48px;
  border:4px solid rgba(255,255,255,.2);
  border-top-color:#ffe76a;
  border-radius:50%;
  animation:spin 1s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* уважение к системе — меньше анимаций */
@media (prefers-reduced-motion:reduce){
  .spinner{ animation:none; }
  .preloader-title{ animation:none; }
}