/* =========================================================================
   序 · Responsive
   Mobile First 断点：1024 / 860 / 640 / 420
   Timeline 在移动端重新设计，而非简单缩小。
   ========================================================================= */

/* ---------- 减少动画偏好支持 ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .hero__mark,
  .hero::before,
  .scroll-indicator,
  .pulse-soft,
  .gradient-animated {
    animation: none !important;
  }

  [data-reveal],
  [data-reveal-stagger] > *,
  .section[data-reveal-section] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ---------- ≤ 1024px ---------- */
@media (max-width: 1024px) {
  .grid-feature { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .scene { grid-template-columns: 4rem minmax(0, 18rem) minmax(0, 1fr); }
}

/* ---------- ≤ 860px：导航切换为移动菜单 ---------- */
@media (max-width: 860px) {
  :root { --header-h: 60px; }

  .nav-toggle { display: inline-flex; }

  .nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity var(--dur-2) var(--ease),
                transform var(--dur-2) var(--ease),
                visibility var(--dur-2) linear;
  }
  .nav.is-open { opacity: 1; visibility: visible; transform: none; }

  .nav__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: .25rem var(--gutter) 1.5rem;
  }
  .nav__list a {
    display: block;
    padding: .9375rem 0;
    border-bottom: 1px solid var(--line);
    font-size: 1rem;
    color: var(--ink);
  }
  .nav__list li:last-child a { border-bottom: 0; }
  .nav__cta { margin: 1.25rem 0 0; }
  .nav__cta .btn { width: 100%; height: 44px; }

  .share { grid-template-columns: minmax(0, 1fr); }
  .share__card .btn { align-self: stretch; }
  .share__link { margin-top: var(--sp-4); }

  .scene {
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: .75rem 1rem;
  }
  .scene__idx { grid-row: 1 / span 2; }
  .scene__list { grid-column: 2; }
}

/* ---------- ≤ 640px ---------- */
@media (max-width: 640px) {
  .grid-feature { grid-template-columns: minmax(0, 1fr); }
  .feature { min-height: 0; }

  /* 时间轴：移动端收窄时间列，保证不折行 */
  .tl__row { grid-template-columns: 3.5rem 1px 1fr; column-gap: .75rem; }
  .tl__time { font-size: var(--fs-xs); }

  .plan { padding: 1.25rem; }
  .plan__head { flex-direction: column; gap: var(--sp-3); }
  .plan-item { grid-template-columns: 3.75rem minmax(0, 1fr); gap: .75rem; }
  .plan-item__main { padding-left: 1rem; }
  .plan-item__time { font-size: var(--fs-xs); }
  .plan-item__media { flex-direction: column; align-items: stretch; }
  .plan-item__media .ph { width: 100%; }
  .plan-item__who { margin-top: .75rem; }

  .feed__row {
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: .625rem 1rem;
  }
  .feed__row .avatar     { grid-area: 1 / 1; }
  .feed__row .feed__who  { grid-area: 1 / 2; }
  .feed__row .feed__time { grid-area: 1 / 3; }
  .feed__row .feed__what { grid-area: 2 / 2 / 2 / 4; }

  .share__card, .share__live { padding: 1.5rem; }

  .site-footer__inner { flex-direction: column; align-items: flex-start; }
}

/* ---------- ≤ 420px ---------- */
@media (max-width: 420px) {
  .brand__series { display: none; }
  .hero__slogan { letter-spacing: .04em; }
  .caps li { padding: 0 .75rem; }
  .plan__foot, .preview__foot { letter-spacing: .04em; line-height: 1.8; }

  /* Mobile button optimizations */
  .btn--lg { height: 48px; padding: 0 1.8rem; font-size: var(--fs-sm); }
  .btn--solid:hover { transform: none; box-shadow: none; }

  /* Disable hover effects on touch devices */
  .scene:hover,
  .feed__row:hover,
  .kinds__row:hover,
  .plan-item:hover,
  .feature:hover,
  .preview:hover,
  .share__card:hover,
  .share__live:hover {
    background-color: transparent;
    padding-left: 0;
    transform: none;
    box-shadow: var(--shadow);
  }

  .scene::before,
  .feed__row::before,
  .kinds__row::before,
  .plan-item::before,
  .feature::after,
  .preview::before,
  .share__card::before,
  .share__live::after {
    display: none;
  }
}

/* ---------- 超宽屏：避免行过长 ---------- */
@media (min-width: 1600px) {
  :root { --w-page: 1280px; }
}
