html { background-color: #0b1322; }
  ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }
  ::-webkit-scrollbar-track {
    background: #0b1322;
  }
  ::-webkit-scrollbar-thumb {
    background: #1e3a5f;
    border-radius: 4px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: #10b981;
  }
  .grid-bg {
    background-image: linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
    background-size: 54px 54px;
    animation: gridPulse 16s ease-in-out infinite;
    will-change: opacity, background-position;
  }
  @keyframes gridPulse {
    0%, 100% { opacity: .55; background-position: 0 0; }
    50% { opacity: 1; background-position: 14px 14px; }
  }
  .glow {
    background: radial-gradient(600px circle at 30% 20%,rgba(44,82,130,.45),transparent 60%),radial-gradient(500px circle at 80% 60%,rgba(200,155,60,.10),transparent 55%);
  }
  .aurora {
    position: absolute;
    inset: -15%;
    pointer-events: none;
    filter: blur(10px);
  }
  .aurora::before, .aurora::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    will-change: transform, opacity;
    mix-blend-mode: screen;
  }
  .aurora::before {
    width: 60vw;
    height: 60vw;
    left: 5%;
    top: -10%;
    background: radial-gradient(circle,rgba(44,82,130,.55),transparent 62%);
    animation: auroraA 22s ease-in-out infinite;
  }
  .aurora::after {
    width: 48vw;
    height: 48vw;
    right: 2%;
    bottom: -12%;
    background: radial-gradient(circle,rgba(200,155,60,.22),transparent 60%);
    animation: auroraB 26s ease-in-out infinite;
  }
  @keyframes auroraA {
    0%, 100% { transform: translate(0,0) scale(1); opacity: .85; }
    50% { transform: translate(7%,5%) scale(1.18); opacity: 1; }
  }
  @keyframes auroraB {
    0%, 100% { transform: translate(0,0) scale(1); opacity: .7; }
    50% { transform: translate(-6%,-7%) scale(1.22); opacity: 1; }
  }

  .glass {
    background: rgba(255, 255, 255, 0.05) !important;
    backdrop-filter: blur(24px) !important;
    -webkit-backdrop-filter: blur(24px) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 15px 45px -12px rgba(0, 0, 0, 0.3), inset 0 0 20px rgba(255, 255, 255, 0.05) !important;
    transition: all 0.3s ease;
  }
  .glass:hover {
    border-color: rgba(255, 255, 255, 0.3) !important;
    box-shadow: 0 15px 45px -12px rgba(0, 0, 0, 0.35), 0 0 25px rgba(255, 255, 255, 0.05), inset 0 0 20px rgba(255, 255, 255, 0.05) !important;
  }
  .glass-premium {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 100%) !important;
    backdrop-filter: blur(28px) !important;
    -webkit-backdrop-filter: blur(28px) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    box-shadow: 0 15px 45px -12px rgba(0, 0, 0, 0.4), inset 0 0 24px rgba(255, 255, 255, 0.06) !important;
    transition: all 0.3s ease;
  }
  .glass-premium:hover {
    border-color: rgba(245, 158, 11, 0.5) !important;
    box-shadow: 0 15px 45px -12px rgba(0, 0, 0, 0.65), 0 0 40px rgba(245, 158, 11, 0.18), inset 0 0 20px 2px rgba(255, 255, 255, 0.04) !important;
  }
  .glow-green {
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.15);
  }
  .glow-blue {
    box-shadow: 0 0 20px rgba(30, 58, 95, 0.25);
  }
  /* 呼吸动效 */
  @keyframes breathing {
    0%, 100% { opacity: 0.4; }
    50% { opacity: 1; }
  }
  .pulse-slow {
    animation: breathing 3s ease-in-out infinite;
  }