/* =============================================================
 * PAGE TRANSITIONS
 * Плавное появление страницы + fade-out при клике по ссылке.
 * ============================================================= */

/* При загрузке: страница плавно проявляется */
html.pt-enabled body {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .32s cubic-bezier(.16, 1, .3, 1),
                transform .32s cubic-bezier(.16, 1, .3, 1);
  }
  html.pt-enabled.pt-ready body {
    opacity: 1;
    transform: translateY(0);
  }
  
  /* При уходе: страница плавно уходит */
  html.pt-enabled.pt-leaving body {
    opacity: 0;
    transform: translateY(-6px);
    transition-duration: .22s;
  }
  
  /* Индикатор загрузки — тонкая полоса сверху */
  .pt-progress {
    position: fixed;
    top: 0; left: 0;
    height: 2px;
    width: 0;
    background: var(--primary, #5865F2);
    z-index: 99999;
    pointer-events: none;
    transition: width .25s ease, opacity .25s ease;
    opacity: 0;
  }
  .pt-progress.active {
    width: 80%;
    opacity: 1;
  }
  .pt-progress.done {
    width: 100%;
    opacity: 0;
  }
  
  /* Контент-анимация при переключении вкладок внутри одной страницы */
  .pt-tab-fade {
    animation: pt-tab-in .28s cubic-bezier(.16, 1, .3, 1);
  }
  @keyframes pt-tab-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  
  @media (prefers-reduced-motion: reduce) {
    html.pt-enabled body,
    html.pt-enabled.pt-ready body,
    html.pt-enabled.pt-leaving body {
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
    }
    .pt-tab-fade { animation: none; }
  }