/* ============================================================
   Design Tokens — FAFA 商業改版
   單一資料來源，後續所有 CSS 模組都只引用這裡的變數
   ============================================================ */

:root {
  /* === 配色 === */
  --c-bg:        #0B1220;     /* 主背景：深海藍 */
  --c-surface:   #141C30;     /* 卡片/區塊：暗夜靛 */
  --c-surface-2: #1B2540;     /* 第二層 surface（hover/巢狀卡片） */
  --c-accent:    #22D3EE;     /* 強調色 / 主 CTA：電光青 */
  --c-accent-2:  #06B6D4;     /* accent hover/active */
  --c-warn:      #F59E0B;     /* 暖橙：次要 CTA、星星 */
  --c-line:      #06C755;     /* LINE 官方綠（不可變動） */
  --c-text:      #E8ECF8;     /* 主文字 */
  --c-text-2:    #C8D0E0;     /* 內文 */
  --c-muted:     #9CA3AF;     /* 次文字 / 註解 */
  --c-border:    rgba(34,211,238,0.18);
  --c-border-soft: rgba(255,255,255,0.06);

  /* 漸層 */
  --grad-hero: radial-gradient(1200px 600px at 80% -10%, rgba(34,211,238,0.18), transparent 60%),
               radial-gradient(800px 400px at 0% 100%, rgba(245,158,11,0.10), transparent 50%),
               linear-gradient(180deg, #0B1220 0%, #070B16 100%);
  --grad-card: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.0));

  /* === 字型 === */
  --ff-sans: "Inter", "Noto Sans TC", system-ui, -apple-system, "Segoe UI", "Microsoft JhengHei", "PingFang TC", sans-serif;
  --ff-display: "Sora", "Inter", "Noto Sans TC", system-ui, sans-serif;
  --ff-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* 字級（mobile-first，桌機由 base.css 在 md 以上加大） */
  --fs-display: clamp(2rem, 6vw, 3.5rem);   /* hero */
  --fs-h1:      clamp(1.5rem, 4vw, 2.25rem);
  --fs-h2:      clamp(1.375rem, 3vw, 1.75rem);
  --fs-h3:      1.25rem;
  --fs-body:    1rem;
  --fs-small:   0.875rem;
  --fs-xs:      0.75rem;

  --lh-tight:   1.15;
  --lh-snug:    1.35;
  --lh-normal:  1.6;

  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold:600;
  --fw-bold:    700;
  --fw-black:   900;

  /* === 間距（4px scale） === */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;
  --sp-12: 48px;
  --sp-16: 64px;
  --sp-20: 80px;
  --sp-24: 96px;

  /* === 圓角 === */
  --r-sm: 6px;
  --r-md: 10px;
  --r-lg: 16px;
  --r-xl: 22px;
  --r-pill: 999px;

  /* === 陰影 === */
  --sh-sm: 0 2px 8px rgba(0,0,0,0.25);
  --sh-md: 0 8px 24px rgba(0,0,0,0.30);
  --sh-lg: 0 16px 48px rgba(0,0,0,0.40);
  --sh-glow: 0 0 0 1px rgba(34,211,238,0.25), 0 0 32px rgba(34,211,238,0.18);

  /* === Layout === */
  --container: 1200px;
  --container-narrow: 880px;
  --nav-h: 64px;
  --nav-h-shrink: 56px;

  /* === 動效 === */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 150ms;
  --dur-base: 240ms;
  --dur-slow: 480ms;

  /* === Z-index === */
  --z-nav: 100;
  --z-floating: 90;
  --z-modal: 200;
}

/* 尊重使用者偏好：減少動效 */
@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;
  }
}
