:root {
  /* Apple 风格设计系统 */
  --color-bg: #FFFFFF;
  --color-bg-soft: #F5F5F7;
  --color-primary: #0071E3;
  --color-primary-hover: #0077ED;
  --color-accent: #06C;
  --color-text: #1D1D1F;
  --color-text-soft: #6E6E73;
  --color-muted: #86868B;
  --color-border: #D2D2D7;
  --gradient-brand: linear-gradient(135deg, #0071E3 0%, #06C 100%);
  --gradient-soft: linear-gradient(180deg, #FBFBFD 0%, #F5F5F7 100%);
  --gradient-text: linear-gradient(120deg, #0A66C2 0%, #06C 60%, #0EA5E9 100%);
  --radius: 14px;
  --radius-lg: 22px;
  --radius-pill: 980px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,.06);
  --shadow-lg: 0 24px 48px -16px rgba(0,113,227,.22);
  --maxw: 1080px;
  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "PingFang TC", "Hiragino Sans GB", "Microsoft YaHei", "Heiti SC", "Segoe UI", Roboto, system-ui, sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", ui-monospace, Consolas, monospace;
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
}

h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.15; font-weight: 600; letter-spacing: -.02em; }
h1 { font-size: 2em; }
p { margin: 0 0 1em; color: var(--color-text-soft); }
a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; display: block; }
ul { margin: 0; padding: 0; list-style: none; }

.container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* 滚动渐显 */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay: var(--d, 0s); }
.reveal.revealed { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}