:root {
  --primary: #1a73e8;
  --primary-dark: #1557b0;
  --primary-light: #4a9af5;
  --secondary: #34a853;
  --accent: #ea4335;
  --bg-dark: #1a1a2e;
  --bg-darker: #16213e;
  --bg-light: #f8f9fa;
  --text: #333;
  --text-light: #666;
  --text-lighter: #999;
  --white: #fff;
  --border: #e0e0e0;
  --shadow: 0 2px 12px rgba(0,0,0,0.08);
  --shadow-hover: 0 8px 30px rgba(0,0,0,0.12);
  --radius: 8px;
  --radius-lg: 12px;
  --transition: all 0.3s ease;
  --max-width: 1200px;
  --header-height: 64px;
}

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

html { scroll-behavior: smooth; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans SC', sans-serif;
  font-size: 16px; line-height: 1.6; color: var(--text); background: var(--white);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--primary); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--primary-dark); }
img { max-width: 100%; height: auto; }
ul { list-style: none; }

.container { width: 100%; max-width: var(--max-width); margin: 0 auto; padding: 0 20px; }

.btn {
  display: inline-block; padding: 12px 32px; font-size: 15px; font-weight: 600;
  border-radius: var(--radius); border: 2px solid transparent; cursor: pointer;
  transition: var(--transition); text-align: center;
}
.btn-primary { background: var(--primary); color: var(--white); }
.btn-primary:hover { background: var(--primary-dark); transform: translateY(-1px); box-shadow: var(--shadow); }
.btn-outline { background: transparent; border-color: var(--primary); color: var(--primary); }
.btn-outline:hover { background: var(--primary); color: var(--white); }

.section-title { text-align: center; margin-bottom: 40px; }
.section-title h2 { font-size: 32px; color: var(--text); margin-bottom: 12px; }
.section-title p { font-size: 16px; color: var(--text-light); max-width: 600px; margin: 0 auto; }

.loading-text { text-align: center; padding: 60px 20px; color: var(--text-light); font-size: 16px; }
.error-text { text-align: center; padding: 60px 20px; color: var(--accent); font-size: 16px; }
