/* ============================================================
   premium.css — детали, которые не бросаются в глаза напрямую,
   но считываются как "дорого": курсор, скроллбар, selection.
   ============================================================ */

/* ---- Диагональная стрелка "открыть" — на ссылках/кнопках, где уместно ---- */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.arrow-icon {
  display: inline-block;
  width: 10px;
  height: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A78BFA' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 L17 7 M9 7 H17 V15'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  will-change: transform;
}
.btn-primary .arrow-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315110E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 L17 7 M9 7 H17 V15'/%3E%3C/svg%3E");
}

/* ---- Выделение текста — акцентный фиолетовый, не браузерный синий ---- */
::selection {
  background: var(--c-accent);
  color: var(--c-text-on-accent);
}
::-moz-selection {
  background: var(--c-accent);
  color: var(--c-text-on-accent);
}

/* Scrolling remains available without a decorative strip at the right edge. */
html {
  scrollbar-width: none;
}
::-webkit-scrollbar { display: none; }

/* ---- Анимация загрузки страницы ---- */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-5);
  background: var(--c-bg);
  transition: opacity 0.6s var(--ease-out), visibility 0.6s var(--ease-out);
}
.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.loader-mark {
  width: 64px;
  height: 64px;
  animation: loaderPulse 1.1s ease-in-out infinite;
}
@keyframes loaderPulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50% { transform: scale(1.08); opacity: 1; }
}
.loader-bar {
  width: 120px;
  height: 2px;
  background: var(--c-line);
  border-radius: var(--r-full);
  overflow: hidden;
}
.loader-bar-fill {
  height: 100%;
  width: 0%;
  background: var(--c-accent);
  animation: loaderFill 1.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
@keyframes loaderFill {
  0% { width: 0%; }
  60% { width: 70%; }
  100% { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .loader-mark, .loader-bar-fill { animation: none; }
  .loader-bar-fill { width: 100%; }
}

