#app{min-height:100vh}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #00d4ff;--primary-dark: #0099cc;--primary-glow: rgba(0, 212, 255, .3);--secondary: #7c3aed;--accent: #06b6d4;--bg-dark: #060d1a;--bg-card: #101d33;--bg-card2: #0c1525;--text-primary: #f1f5f9;--text-secondary: #bcc7d6;--text-muted: rgba(188, 199, 214, .55);--border-color: rgba(0, 212, 255, .22);--gradient-1: linear-gradient(135deg, #00d4ff, #7c3aed);--gradient-2: linear-gradient(135deg, #0d1929, #050a14);--font-main: "PingFang SC", "Microsoft YaHei", sans-serif;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-main);background:var(--bg-dark);color:var(--text-primary);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}ul,ol{list-style:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--primary-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.container{max-width:1280px;margin:0 auto;padding:0 24px}.section{padding:100px 0}.section-header{text-align:center;margin-bottom:60px}.section-tag{display:inline-block;padding:4px 16px;background:#00d4ff1a;border:1px solid rgba(0,212,255,.3);border-radius:20px;color:var(--primary);font-size:13px;letter-spacing:2px;margin-bottom:16px;text-transform:uppercase}.section-title{font-size:clamp(28px,4vw,44px);font-weight:700;color:#fff;line-height:1.2;margin-bottom:16px}.section-title span{background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-desc{font-size:16px;color:var(--text-secondary);max-width:600px;margin:0 auto}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;background:var(--gradient-1);color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px var(--primary-glow)}.btn-outline{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;background:transparent;color:var(--primary);border:1px solid var(--primary);border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;transition:var(--transition)}.btn-outline:hover{background:#00d4ff1a;transform:translateY(-2px)}.tech-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:32px;transition:var(--transition);position:relative;overflow:hidden}.tech-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--gradient-1);transform:scaleX(0);transition:var(--transition)}.tech-card:hover{border-color:#00d4ff66;transform:translateY(-4px);box-shadow:0 20px 60px #0006}.tech-card:hover:before{transform:scaleX(1)}.page-enter-active,.page-leave-active{transition:opacity .4s,transform .4s}.page-enter-from{opacity:0;transform:translateY(20px)}.page-leave-to{opacity:0;transform:translateY(-20px)}.divider{width:60px;height:3px;background:var(--gradient-1);margin:16px auto;border-radius:2px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}@media (max-width: 1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.section{padding:60px 0}.container{padding:0 16px}}@keyframes scanline{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px var(--primary-glow)}50%{box-shadow:0 0 40px var(--primary-glow),0 0 80px var(--primary-glow)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-float{animation:float 4s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}.fade-in-up{animation:fadeInUp .6s ease forwards}
