/* ============================================================
   Gen ex Gen / 渐入佳境 — Reset + Design Tokens
   Apple × Active Theory fusion design system
   ============================================================ */

:root {
  /* ── Colors ─────────────────────────── */
  --bg-deep:         #020308;
  --bg-primary:      #06080f;
  --bg-card:         rgba(255, 255, 255, 0.02);
  --bg-card-hover:   rgba(255, 255, 255, 0.05);
  --bg-nav:          rgba(6, 8, 15, 0.78);
  --text-primary:    #f0f0f5;
  --text-secondary:  #8e8e93;
  --text-tertiary:   #55555a;
  --accent:          #5ea8da;
  --accent-light:     #7ec0e8;
  --accent-glow:      rgba(94, 168, 218, 0.25);
  --border:           rgba(255, 255, 255, 0.06);
  --border-hover:     rgba(255, 255, 255, 0.12);

  /* ── Typography ──────────────────────── */
  --font-cn:         "PingFang SC", "Noto Sans SC", "Microsoft YaHei", -apple-system, sans-serif;
  --font-en:         "SF Pro Display", "Inter", -apple-system, sans-serif;
  --font-mono:       "SF Mono", "JetBrains Mono", "Consolas", monospace;

  --text-hero:       clamp(3.5rem, 9vw, 6rem);
  --text-h1:         clamp(2.2rem, 5vw, 3.2rem);
  --text-h2:         clamp(1.3rem, 3vw, 1.75rem);
  --text-body:       1rem;
  --text-caption:    0.8125rem;
  --text-small:      0.6875rem;

  --leading-tight:   1.1;
  --leading-body:    1.7;
  --tracking-tight:  -0.03em;

  /* ── Spacing ────────────────────────── */
  --space-xs:   0.5rem;
  --space-sm:   1rem;
  --space-md:   1.75rem;
  --space-lg:   3.5rem;
  --space-xl:   6rem;
  --space-2xl:  9rem;

  /* ── Borders & Radius ──────────────── */
  --radius-sm:   8px;
  --radius-md:   16px;
  --radius-lg:    24px;
  --radius-xl:    32px;

  /* ── Shadows ───────────────────────── */
  --card-shadow:   0 1px 3px rgba(0,0,0,0.5), 0 8px 32px rgba(0,0,0,0.3);
  --card-glow:     0 0 80px rgba(94,168,218,0.08);

  /* ── Transitions ───────────────────── */
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring:   cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:      0.18s;
  --dur-normal:    0.4s;
  --dur-slow:      0.8s;

  /* ── Layout ────────────────────────── */
  --max-width:  1120px;
  --nav-height: 52px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
body {
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-cn);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  overflow-x: hidden;
  cursor: none;
}
@media (pointer:coarse) { body { cursor:auto; } }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button { border:none; background:none; color:inherit; font:inherit; cursor:none; }
ul,ol { list-style:none; }
::selection { background:rgba(94,168,218,0.35); color:#fff; }
