/* 所有页面共享的键盘、窄屏与动效适配。 */
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #5665d9; outline-offset: 4px; }
img, video { max-width: 100%; }
video { height: auto; }
.site-header .language, .header .language { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.language a { text-underline-offset: 3px; }
.demo-banner { min-height: 44px; padding: 10px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #eef0ff; color: #454c84; font: 13px/1.6 system-ui, sans-serif; }
.demo-banner a { white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
body:has(.demo-banner) .shell { height: calc(100dvh - 102px); min-height: 0; }
.demo-banner strong { font-weight: 650; }
.qiantu-preview { height: auto !important; min-height: 0 !important; }
.platform-summary { touch-action: manipulation; }
.platform-details .system-requirement { line-height: 1.7; }
@media (max-width: 900px) {
  body:has(.demo-banner) .shell { height: calc(100dvh - 44px); }
}
@media (max-width: 600px) {
  .demo-banner { min-height: 64px; padding: 8px 12px; gap: 8px; flex-wrap: wrap; font-size: 12px; }
  .demo-banner span { order: 3; flex-basis: 100%; text-align: center; }
  body:has(.demo-banner) .shell { height: calc(100dvh - 72px); }
  .hero-content { padding-top: 48px; }
  .hero-subtitle { font-size: 17px; }
  .hero-description { font-size: 13px; }
  .hero-links { flex-wrap: wrap; }
  .feature-arrow.prev { left: -8px; }
  .feature-arrow.next { right: -8px; }
  .package-status { line-height: 1.7; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
