/* 首屏默认可读，入场效果不依赖 JavaScript 或外部 CDN。 */
@keyframes hero-reveal {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

[data-hero-reveal] {
  opacity: 1;
  animation: hero-reveal 1.4s cubic-bezier(.16, 1, .3, 1) backwards;
}

[data-hero-reveal="1"] { animation-delay: .15s; }
[data-hero-reveal="2"] { animation-delay: .3s; }
[data-hero-reveal="3"] { animation-delay: .45s; }
[data-hero-reveal="4"] { animation-delay: .6s; }
@keyframes hero-fade {
  from { opacity: .01; }
  to { opacity: .99; }
}

[data-hero-reveal="5"] {
  opacity: .99;
  animation: hero-fade .5s .6s backwards;
}

.faq-heading {
  margin: 0;
}

.faq-list {
  width: 100%;
}

.faq-question {
  width: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
}

.faq-question:focus-visible,
.nav-menu-button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -4px;
}

.faq-icon {
  flex-shrink: 0;
  transition: transform .2s ease;
}

.faq-question[aria-expanded="true"] .faq-icon {
  transform: rotate(45deg);
}

.faq-answer[hidden] {
  display: none;
}

.faq-answer {
  overflow-wrap: anywhere;
}

@media screen and (max-width: 991px) {
  .navigation-fallback .nav-menu[data-nav-menu-open] {
    position: absolute;
    top: 100%;
    left: 0;
    display: block;
  }
}

@media screen and (max-width: 767px) {
  .nav .hide-mobile-portrait {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-hero-reveal] {
    animation: none;
  }

  .faq-icon {
    transition: none;
  }
}
