:root {
  --bg-primary: #f7f7f5;
  --bg-secondary: #ededeb;
  --bg-tertiary: #dededb;
  --bg-card: #ffffff;
  --bg-card-hover: #ffffff;
  --bg-glass: #f7f7f5;
  --text-primary: #111111;
  --text-secondary: #454545;
  --text-muted: #686868;
  --text-inverse: #ffffff;
  --accent-primary: #1557d5;
  --accent-gradient: #1557d5;
  --accent-soft: #dce7fb;
  --accent-glow: transparent;
  --border-subtle: #d5d5d2;
  --border-light: #a7a7a2;
  --border-accent: #1557d5;
  --font-sans: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'PingFang TC', 'Helvetica Neue', Arial, sans-serif;
  --font-serif: var(--font-sans);
  --site-max-width: 1280px;
  --header-height: 52px;
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-full: 999px;
  --shadow-sm: none;
  --shadow-md: 0 18px 45px rgba(32, 27, 21, .12);
  --shadow-lg: 0 30px 70px rgba(32, 27, 21, .18);
  --transition-fast: .18s ease;
  --transition-normal: .32s cubic-bezier(.22,.75,.25,1);
  --transition-slow: .65s cubic-bezier(.22,.75,.25,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; background: var(--bg-primary); color: var(--text-primary); }
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-sans);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
button { border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
img, video { display: block; max-width: 100%; height: auto; }
main, section, article, div { min-width: 0; }
table { max-width: 100%; border-collapse: collapse; }
::selection { background: var(--accent-primary); color: #fff; }

.container { width: min(100% - 48px, var(--site-max-width)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.reveal { opacity: 0; transform: translateY(18px); transition: opacity .65s ease, transform .65s cubic-bezier(.22,.75,.25,1); }
.reveal.active { opacity: 1; transform: none; }

@media (max-width: 720px) {
  :root { --header-height: 70px; }
  .container { width: min(100% - 32px, var(--site-max-width)); }
  body { overflow-wrap: anywhere; }
}

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