/* ============================================================
   Launchpad · Design Tokens  (single source of truth)
   口径：产品基线 v2 · 2026-10-19 · 高保真稿唯一取值
   规则：组件与页面不得写裸 hex / 裸字号 / 裸缓动，只引用本文件 var()。
   ============================================================ */

:root {
  /* ---------- surface / text / border ---------- */
  --bg: #0E0E10;
  --surface-1: #151517;
  --surface-2: #1C1C1F;
  --surface-3: #232327;
  --surface-hover: #26262B;
  --surface-inset: #101012;

  --text-1: #F2F2F0;
  --text-2: #B9B7B0;
  --text-3: #8A8880;

  --border: rgba(255, 255, 255, 0.06);
  --border-strong: rgba(255, 255, 255, 0.12);
  --border-hover: rgba(255, 255, 255, 0.22);

  /* ---------- semantic gradients ---------- */
  /* mint = primary action / gains */
  --accent: #7FFFAD;
  --accent-from: #5AF3E3;
  --accent-to: #9CFE68;
  --on-accent: #04120A;
  --grad: linear-gradient(90deg, var(--accent-from) 0%, var(--accent) 50%, var(--accent-to) 100%);
  --up: #7FFFAD;

  /* pink = sell side / losses / refunding */
  --pink: #FF6B9E;
  --pink-from: #FF4D7E;
  --pink-to: #FF9DE2;
  --on-pink: #2A0410;
  --grad-pink: linear-gradient(90deg, var(--pink-from) 0%, var(--pink) 50%, var(--pink-to) 100%);
  --down: #FF4D5E;

  /* gold = verification / graduation / milestones / trust */
  --gold: #FFC84D;
  --gold-from: #E8A33D;
  --gold-to: #FFE08A;
  --on-gold: #1A0F02;
  --grad-gold: linear-gradient(90deg, var(--gold-from) 0%, var(--gold) 55%, var(--gold-to) 100%);
  --trust: #FFC84D;

  /* violet = auctions / bidding */
  --violet: #A855F7;
  --violet-from: #E879F9;
  --violet-to: #7C3AED;
  --on-violet: #0B0212;
  --grad-violet: linear-gradient(90deg, var(--violet-from) 0%, var(--violet) 50%, var(--violet-to) 100%);

  /* cyan = information / verification process / links */
  --cyan: #22D3EE;
  --cyan-from: #22D3EE;
  --cyan-to: #60A5FA;
  --on-cyan: #021016;
  --grad-cyan: linear-gradient(90deg, var(--cyan-from) 0%, var(--cyan-to) 100%);

  /* ---------- typography ---------- */
  --font-ui: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;

  --fs-display: 32px;  --lh-display: 40px;
  --fs-h1: 24px;       --lh-h1: 32px;
  --fs-h2: 18px;       --lh-h2: 26px;
  --fs-h3: 16px;       --lh-h3: 24px;
  --fs-body: 14px;     --lh-body: 22px;
  --fs-sm: 13px;       --lh-sm: 20px;
  --fs-xs: 12px;       --lh-xs: 18px;
  --fs-2xs: 11px;      --lh-2xs: 16px;
  --fs-num-xl: 20px;   --lh-num-xl: 28px;
  --fs-num-display: 32px; --lh-num-display: 40px;

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

  /* ---------- spacing (4px base) ---------- */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;
  --sp-8: 48px;
  --sp-9: 64px;
  --sp-10: 96px;

  /* ---------- radius ---------- */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 12px;
  --r-xl: 16px;
  --r-full: 999px;

  /* ---------- elevation / glow ---------- */
  --shadow-card-hover: 0 4px 18px rgba(0, 0, 0, 0.45);
  --shadow-modal: 0 10px 24px -6px rgba(0, 0, 0, 0.55);
  --shadow-float: 0 12px 32px -8px rgba(0, 0, 0, 0.6);

  /* the ONE strong glow: nav Launch. Nothing else may use --glow-cta. */
  --glow-cta: 0 0 18px rgba(127, 255, 173, 0.55), 0 6px 42px rgba(90, 243, 227, 0.28);
  --glow-cta-hover: 0 0 26px rgba(127, 255, 173, 0.8), 0 8px 52px rgba(90, 243, 227, 0.4);
  /* soft panel backlight: large panel CTAs only, not a halo */
  --backlight-cta: 0 0 16px rgba(127, 255, 173, 0.14), 0 4px 28px rgba(90, 243, 227, 0.06);
  --backlight-cta-hover: 0 0 22px rgba(127, 255, 173, 0.24), 0 6px 36px rgba(90, 243, 227, 0.1);

  /* ---------- motion ---------- */
  --dur-1: 150ms;   /* micro feedback */
  --dur-2: 200ms;   /* buttons, pills, border */
  --dur-3: 300ms;   /* panels, tab content */
  --dur-stroke: 480ms; /* badge rim close (documented exception) */
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-stroke: cubic-bezier(0.22, 0.61, 0.36, 1);
  --loop-heartbeat: 2800ms; /* verified badge only */

  /* ---------- layout ---------- */
  --shell: 1440px;
  --gutter: 24px;
  --nav-h: 62px;
  --rail-w: 360px;
  --anchor-w: 200px;
  --card-gap: 16px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-1: 0ms;
    --dur-2: 0ms;
    --dur-3: 0ms;
    --dur-stroke: 0ms;
    --loop-heartbeat: 0ms;
  }
}
