/* ============================================================
   GSAP 進場動畫 — 漸進增強
   .anim-on 由各頁 <head> 的極小腳本加上（且僅在允許動態時），
   若初始化未執行會由 failsafe 移除；因此「JS 關閉」或
   「prefers-reduced-motion」的使用者一律看到完整、可見的內容。
   這裡只預先隱藏 opacity（不動 transform），位移交給 JS，
   避免與卡片既有的 CSS hover/3D transform 衝突。
   blog-card 刻意排除（部落格列表由 blog.js 動態重繪）。
   ============================================================ */
html.anim-on .hero-copy > *,
html.anim-on .hero-surface,
html.anim-on .page-hero .container > *,
html.anim-on .section-heading > *,
html.anim-on .feature-card,
html.anim-on .service-detail-card,
html.anim-on .metric-card,
html.anim-on .capability-card,
html.anim-on .contact-card,
html.anim-on .axp-pillar-card,
html.anim-on .axp-layer-card,
html.anim-on .axp-flow-step,
html.anim-on .proof-card,
html.anim-on .faq-category,
html.anim-on .scenario-card,
html.anim-on .process-card,
html.anim-on .cta-panel {
  opacity: 0;
}

/* 安全網：即使 .anim-on 殘留，偏好減少動態者仍強制顯示 */
@media (prefers-reduced-motion: reduce) {
  html.anim-on .hero-copy > *,
  html.anim-on .hero-surface,
  html.anim-on .page-hero .container > *,
  html.anim-on .section-heading > *,
  html.anim-on .feature-card,
  html.anim-on .service-detail-card,
  html.anim-on .metric-card,
  html.anim-on .capability-card,
  html.anim-on .contact-card,
  html.anim-on .axp-pillar-card,
  html.anim-on .axp-layer-card,
  html.anim-on .axp-flow-step,
  html.anim-on .proof-card,
  html.anim-on .faq-category,
  html.anim-on .scenario-card,
  html.anim-on .process-card,
  html.anim-on .cta-panel {
    opacity: 1 !important;
  }
}
