﻿/* ============================================================
   base.css — 全站基础：变量 / Reset / Keyframes 动画
   说明：字体采用系统字体栈兜底（已去除 Google Fonts 外网依赖）
   ============================================================ */

/* ========== RESET & BASE ========== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --lake: #0CA1B8;
  --lake-light: #5DC2D2;
  --lake-dark: #087A8A;
  --lake-glow: rgba(12, 161, 184, 0.35);
  --deep: #050D1A;
  --deep-mid: #0A1628;
  --deep-soft: #0F1F38;
  --surface: #F5F7FA;
  --surface-alt: #EDF1F7;
  --text-dark: #1A2332;
  --text-body: #3A4A5E;
  --text-light: #8A9AB5;
  --white: #FFFFFF;
  --glass-bg: rgba(12, 161, 184, 0.06);
  --glass-border: rgba(12, 161, 184, 0.15);
  --font-cn: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;
  --font-en: "Segoe UI", -apple-system, BlinkMacSystemFont, Arial, sans-serif;
  --nav-h: 72px;
  --max-w: 1200px;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-cn);
  color: var(--text-dark);
  background: var(--white);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { text-decoration: none; color: inherit; }
ul { list-style: none; }
img { max-width: 100%; display: block; }

/* ========== ANIMATIONS ========== */
@keyframes float {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.1); opacity: 1; }
}
@keyframes pulse-ring {
  0% { transform: scale(0.8); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.15; }
  100% { transform: scale(0.8); opacity: 0.5; }
}
@keyframes slide-up {
  from { transform: translateY(40px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
@keyframes gradient-shift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes count-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes dash-flow {
  to { stroke-dashoffset: -20; }
}
@keyframes blink { 0%,100%{ opacity:1; } 50%{ opacity:0.3; } }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-15px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ecgDash { to { stroke-dashoffset: -1000; } }

/* ========== RESPONSIVE (base) ========== */
@media (max-width: 768px) {
  :root { --nav-h: 60px; }
}
