/* ======================== HomeView Styles ======================== */ .home { min-height: 100vh; padding: 60px 40px 80px; max-width: 1400px; margin: 0 auto; } /* Hero Section */ .hero { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; margin-bottom: 60px; } .hero-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: var(--accent-primary-muted); border: 1px solid rgba(0, 212, 255, 0.2); border-radius: 100px; font-size: 13px; color: var(--accent-primary); margin-bottom: 20px; } .badge-dot { width: 6px; height: 6px; background: var(--accent-primary); border-radius: 50%; animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } } .hero-title { font-size: 56px; font-weight: 700; line-height: 1.1; letter-spacing: -0.03em; margin-bottom: 20px; } .hero-subtitle { font-size: 18px; color: var(--text-secondary); line-height: 1.6; margin-bottom: 32px; max-width: 480px; } .hero-actions { display: flex; gap: 14px; } .btn-primary { padding: 14px 28px; font-size: 15px; border-radius: var(--radius-md); } .btn-secondary { padding: 14px 28px; font-size: 15px; border-radius: var(--radius-md); background: var(--bg-tertiary); border: 1px solid var(--border-default); color: var(--text-primary); } .btn-secondary:hover { background: var(--bg-hover); border-color: var(--border-strong); } /* ======================== Hero Visual - 全息粒子矩阵 ======================== */ .hero-visual { position: relative; height: 420px; perspective: 1000px; } /* 全息卡片基础样式 */ .hologram-card { position: absolute; width: 180px; padding: 24px 20px; background: linear-gradient(135deg, rgba(20, 20, 30, 0.9) 0%, rgba(10, 10, 18, 0.95) 100%); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 20px; backdrop-filter: blur(20px); cursor: pointer; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); transform-style: preserve-3d; animation: hologramFloat 6s ease-in-out infinite; overflow: hidden; } /* 卡片位置 */ .hologram-card.card-1 { top: 10px; right: 60px; animation-delay: 0s; } .hologram-card.card-2 { top: 130px; left: 30px; animation-delay: -2s; } .hologram-card.card-3 { bottom: 20px; right: 80px; animation-delay: -4s; } @keyframes hologramFloat { 0%, 100% { transform: translateY(0) rotateX(0) rotateY(0); } 25% { transform: translateY(-8px) rotateX(2deg) rotateY(-2deg); } 50% { transform: translateY(0) rotateX(0) rotateY(0); } 75% { transform: translateY(-5px) rotateX(-1deg) rotateY(2deg); } } /* 悬浮时的3D效果 */ .hologram-card:hover { transform: translateY(-15px) scale(1.05); border-color: rgba(0, 212, 255, 0.4); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 30px rgba(0, 212, 255, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.1); } .hologram-card:hover .scan-line { animation: scanMove 1.5s linear infinite; } .hologram-card:hover .pulse-ring { animation: pulseRing 2s ease-out infinite; } .hologram-card:hover .particle { animation: particleBurst 1s ease-out forwards; animation-delay: calc(var(--i, 0) * 0.1s); } /* 卡片背景 */ .card-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at top, rgba(0, 212, 255, 0.08) 0%, transparent 50%), radial-gradient(ellipse at bottom right, rgba(124, 58, 237, 0.08) 0%, transparent 50%); opacity: 0.8; } .card-2 .card-bg { background: radial-gradient(ellipse at top, rgba(124, 58, 237, 0.12) 0%, transparent 50%), radial-gradient(ellipse at bottom right, rgba(0, 212, 255, 0.06) 0%, transparent 50%); } .card-3 .card-bg { background: radial-gradient(ellipse at top, rgba(6, 182, 212, 0.12) 0%, transparent 50%), radial-gradient(ellipse at bottom right, rgba(124, 58, 237, 0.06) 0%, transparent 50%); } /* 扫描线效果 */ .scan-line { position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient( transparent 0%, rgba(0, 212, 255, 0.03) 50%, transparent 100% ); transform: rotate(30deg); pointer-events: none; } @keyframes scanMove { 0% { transform: translateY(-100%) rotate(30deg); } 100% { transform: translateY(100%) rotate(30deg); } } /* 粒子容器 */ .particles-container { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .particle { position: absolute; width: 3px; height: 3px; border-radius: 50%; opacity: 0; left: var(--x); top: var(--y); } .card-1 .particle { background: var(--accent-primary); box-shadow: 0 0 6px var(--accent-primary); } .card-2 .particle { background: var(--accent-secondary); box-shadow: 0 0 6px var(--accent-secondary); } .card-3 .particle { background: var(--accent-tertiary); box-shadow: 0 0 6px var(--accent-tertiary); } @keyframes particleBurst { 0% { opacity: 0; transform: scale(0); } 20% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(2); } } /* 脉动光环 */ .pulse-ring { position: absolute; top: 50%; left: 50%; width: 60px; height: 60px; transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(0, 212, 255, 0.3); opacity: 0; pointer-events: none; } .card-2 .pulse-ring { border-color: rgba(124, 58, 237, 0.3); } .card-3 .pulse-ring { border-color: rgba(6, 182, 212, 0.3); } @keyframes pulseRing { 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.5); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(2); } } /* 卡片内容 */ .card-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; } /* 图标包装器 */ .icon-wrapper { position: relative; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 18px; background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.02) 100%); border: 1px solid rgba(255,255,255,0.1); transition: all 0.3s ease; } .icon-wrapper.cyan { background: linear-gradient(135deg, rgba(0, 212, 255, 0.2) 0%, rgba(0, 212, 255, 0.05) 100%); border-color: rgba(0, 212, 255, 0.3); color: var(--accent-primary); } .icon-wrapper.violet { background: linear-gradient(135deg, rgba(124, 58, 237, 0.2) 0%, rgba(124, 58, 237, 0.05) 100%); border-color: rgba(124, 58, 237, 0.3); color: var(--accent-secondary); } .icon-wrapper.teal { background: linear-gradient(135deg, rgba(6, 182, 212, 0.2) 0%, rgba(6, 182, 212, 0.05) 100%); border-color: rgba(6, 182, 212, 0.3); color: var(--accent-tertiary); } /* 图标发光 */ .icon-glow { position: absolute; inset: -2px; border-radius: 20px; background: inherit; filter: blur(15px); opacity: 0.5; z-index: -1; } .hologram-card:hover .icon-wrapper { transform: scale(1.1); box-shadow: 0 0 30px rgba(0, 212, 255, 0.4); } .hologram-card:hover .icon-glow { opacity: 0.8; } /* 标签文字 */ .card-label { font-size: 15px; font-weight: 600; color: var(--text-primary); letter-spacing: 0.02em; } .card-sublabel { font-size: 11px; color: var(--text-muted); letter-spacing: 0.05em; text-transform: uppercase; } /* 响应式 */ @media (max-width: 1200px) { .hero-visual { display: none; } } /* Quick Actions */ .quick-actions { margin-bottom: 50px; } .action-card { display: flex; align-items: center; gap: 20px; padding: 24px; background: var(--glass-bg); backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: var(--radius-lg); cursor: pointer; transition: all var(--transition-base); } .action-card:hover { border-color: var(--accent-primary); transform: translateX(6px); } .action-icon { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: var(--accent-primary-muted); border-radius: var(--radius-md); font-size: 24px; color: var(--accent-primary); } .action-info h3 { font-size: 16px; font-weight: 600; margin-bottom: 4px; } .action-info p { font-size: 14px; color: var(--text-tertiary); } .action-arrow { margin-left: auto; font-size: 20px; color: var(--text-muted); transition: transform var(--transition-base); } .action-card:hover .action-arrow { transform: translateX(4px); color: var(--accent-primary); } /* Projects Section */ .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; } .section-title h2 { font-size: 24px; font-weight: 600; margin-bottom: 4px; } .section-title p { font-size: 14px; color: var(--text-tertiary); } .add-btn { padding: 10px 18px; border-radius: var(--radius-md); } .projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; } /* Responsive */ @media (max-width: 1024px) { .hero { grid-template-columns: 1fr; text-align: center; } .hero-subtitle { max-width: 100%; } .hero-actions { justify-content: center; } } @media (max-width: 640px) { .home { padding: 40px 20px 60px; } .hero-title { font-size: 36px; } .hero-actions { flex-direction: column; } .projects-grid { grid-template-columns: 1fr; } }