/**
 * 页面入场动效（无粉屏）
 * 一层一动：侧栏 / 主区只滑一次；价目表随侧栏走，不再叠 data-reveal 位移。
 */

:root {
  --reveal-dur: 0.64s;
  --reveal-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --reveal-distance: 22px;
  --shell-settle-dur: 0.9s;
}

/* 起始位：先把 transition 备好，避免 ready 时「突然开过渡」造成卡顿 */
html.page-enter-pending .brand-rail,
html.page-enter-ready .brand-rail {
  transition:
    opacity var(--shell-settle-dur) var(--reveal-ease),
    transform var(--shell-settle-dur) var(--reveal-ease);
}

html.page-enter-pending .paper,
html.page-enter-ready .paper {
  transition:
    opacity var(--shell-settle-dur) var(--reveal-ease),
    transform var(--shell-settle-dur) var(--reveal-ease);
  transition-delay: 0.06s;
}

html.page-enter-pending .site-footer,
html.page-enter-ready .site-footer {
  transition:
    opacity 0.55s var(--reveal-ease),
    transform 0.55s var(--reveal-ease);
  transition-delay: 0.12s;
}

html.page-enter-pending .brand-rail {
  opacity: 0;
  transform: translate3d(-28px, 0, 0);
}

html.page-enter-pending .paper {
  opacity: 0;
  transform: translate3d(0, 32px, 0);
}

html.page-enter-pending .site-footer {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
}

/* 鹿图只做透明度，禁止再叠位移（避免与侧栏 transform 打架） */
html.page-enter-pending .brand-deer-main {
  opacity: 0;
}
html.page-enter-ready .brand-deer-main {
  opacity: 1;
  transition: opacity 0.7s var(--reveal-ease) 0.18s;
}

html.page-enter-ready .brand-rail,
html.page-enter-ready .paper,
html.page-enter-ready .site-footer {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* 无品牌壳兜底 */
html.page-enter-pending body > main:not(.paper),
html.page-enter-pending .rank-paper {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  transition:
    opacity var(--shell-settle-dur) var(--reveal-ease),
    transform var(--shell-settle-dur) var(--reveal-ease);
}

html.page-enter-ready body > main:not(.paper),
html.page-enter-ready .rank-paper {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/*
 * 分批入场：仅动态卡片淡入。
 * 首屏 / 侧栏内容跟壳层走，不在此藏透明度。
 */
[data-reveal] {
  opacity: 0;
  transition:
    opacity var(--reveal-dur) var(--reveal-ease),
    transform var(--reveal-dur) var(--reveal-ease);
}

[data-reveal='up'] {
  transform: translate3d(0, var(--reveal-distance), 0);
}
[data-reveal='down'] {
  transform: translate3d(0, calc(var(--reveal-distance) * -1), 0);
}
[data-reveal='left'] {
  transform: translate3d(calc(var(--reveal-distance) * -1), 0, 0);
}
[data-reveal='right'] {
  transform: translate3d(var(--reveal-distance), 0, 0);
}
[data-reveal='fade'] {
  transform: none;
}

.brand-rail [data-reveal],
.brand-rail [data-reveal='up'],
.brand-rail [data-reveal='down'],
.brand-rail [data-reveal='left'],
.brand-rail [data-reveal='right'],
.brand-rail [data-reveal='fade'] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.brand-rail [data-reveal].is-revealed {
  opacity: 1 !important;
  transform: none !important;
}

/* 价目表随侧栏：禁止再挂入场类 */
.side-fun-cat[data-reveal],
.side-fun-dir[data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

body.is-page-leaving .shell {
  opacity: 0;
  transition: opacity 0.18s var(--reveal-ease);
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  html:not(.fx-force).page-enter-pending .brand-rail,
  html:not(.fx-force).page-enter-pending .paper,
  html:not(.fx-force).page-enter-pending .site-footer,
  html:not(.fx-force).page-enter-pending .brand-deer-main,
  html:not(.fx-force).page-enter-pending body > main:not(.paper),
  html:not(.fx-force).page-enter-pending .rank-paper {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  html:not(.fx-force) [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
