/* roulang page: index */
:root {
      --primary-navy: #0F172A;
      --primary-slate: #1E293B;
      --gradient-sky: #0284C7;
      --gradient-teal: #0D9488;
      --accent-orange: #EA580C;
      --canvas-bg: #F8FAFC;
    }
    
    html {
      box-sizing: border-box;
      font-size: 16px;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }
    *, *:before, *:after {
      box-sizing: inherit;
    }
    
    body {
      background-color: var(--canvas-bg);
      color: #334155;
      overflow-x: hidden;
      line-height: 1.65;
    }

    /* 弥散光感背景 */
    .glow-radial {
      background: radial-gradient(circle at 50% 0%, rgba(2, 132, 199, 0.12) 0%, rgba(13, 148, 136, 0.05) 50%, transparent 80%);
    }

    .glow-card {
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.85) 100%);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(226, 232, 240, 0.8);
      transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .glow-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 20px 35px -10px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.05);
      border-color: rgba(2, 132, 199, 0.4);
    }

    /* 动态呼吸微光 */
    @keyframes pulse-slow {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.6; transform: scale(0.96); }
    }
    .pulse-dot {
      animation: pulse-slow 2.4s ease-in-out infinite;
    }

    /* 自定义数字计数样式 */
    .stat-gradient {
      background: linear-gradient(135deg, #0284C7 0%, #0D9488 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }

    /* 移动端汉堡菜单过渡 */
    #mobile-menu {
      transition: max-height 0.35s ease-in-out, opacity 0.25s ease-in-out;
    }
    #mobile-menu.hidden {
      display: none;
    }
