/* 全局样式重置 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--neon-blue: #00ffff;
--neon-pink: #ff00ff;
--neon-green: #00ff00;
--dark-blue: #001a33;
--text-glow: 0 0 5px rgba(0, 255, 255, 0.5);
}
body {
margin: 0;
padding: 0;
font-family: 'Noto Sans SC', sans-serif;
background: #000000;
color: #f5f5f5;
overflow: hidden;
font-size: 18px;
line-height: 1.6;
text-shadow: var(--text-glow);
}
/* 绿色代码流背景 */
.matrix-code-rain {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
pointer-events: none;
overflow: hidden;
background-color: rgba(0, 0, 0, 0.2);
}
.code-column {
position: absolute;
top: -200px;
color: var(--neon-green);
font-family: monospace;
font-size: 1.2rem;
line-height: 1.2;
text-shadow: 0 0 8px rgba(0, 255, 0, 0.8);
animation: matrixRain linear infinite;
transform-origin: top;
opacity: 0.3;
}
.code-char {
display: block;
animation: charFlicker 3s infinite alternate;
}
@keyframes charFlicker {
0%, 30%, 70% {
opacity: 1;
}
20%, 50%, 80% {
opacity: 0.8;
}
}
@keyframes matrixRain {
0% {
transform: translateY(-100%);
opacity: 0;
}
3% {
opacity: var(--opacity, 0.3);
}
95% {
opacity: var(--opacity, 0.3);
}
100% {
transform: translateY(calc(100vh + 200px));
opacity: 0;
}
}
/* 幻灯片样式 */
.presentation {
position: relative;
z-index: 5;
width: 100%;
height: 100vh;
overflow: hidden;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
opacity: 0;
transition: opacity 0.8s ease;
z-index: 1;
pointer-events: none;
}
.slide.active {
opacity: 1;
z-index: 2;
pointer-events: all;
}
/* 幻灯片过渡动画 */
.slide-in-right {
animation: slideInRight 0.8s forwards;
}
.slide-out-left {
animation: slideOutLeft 0.8s forwards;
}
.slide-in-left {
animation: slideInLeft 0.8s forwards;
}
.slide-out-right {
animation: slideOutRight 0.8s forwards;
}
@keyframes slideInRight {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideOutLeft {
from {
transform: translateX(0);
opacity: 1;
}
to {
transform: translateX(-100%);
opacity: 0;
}
}
@keyframes slideInLeft {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideOutRight {
from {
transform: translateX(0);
opacity: 1;
}
to {
transform: translateX(100%);
opacity: 0;
}
}
/* 毛玻璃效果卡片 */
.glass-card {
position: relative;
width: 85%;
max-width: 1200px;
height: 85vh;
margin: 0 auto;
background: rgba(10, 15, 25, 0.7);
border-radius: 20px;
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
padding: 20px 40px;
overflow: hidden;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 15px rgba(0, 255, 255, 0.3);
z-index: 10;
border: 1px solid rgba(0, 255, 255, 0.3);
animation: borderPulse 5s infinite alternate;
}
@keyframes borderPulse {
0% {
border-color: rgba(0, 255, 255, 0.3);
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 15px rgba(0, 255, 255, 0.3);
}
50% {
border-color: rgba(255, 0, 255, 0.3);
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 15px rgba(255, 0, 255, 0.3);
}
100% {
border-color: rgba(0, 255, 255, 0.3);
box-shadow: 0 0 30px rgba(0, 0, 0, 0.5), 0 0 15px rgba(0, 255, 255, 0.3);
}
}
/* 标题样式 */
h1, h2, h3, h4, h5, h6 {
font-family: 'Noto Sans SC', sans-serif;
margin: 0 0 20px 0;
line-height: 1.3;
}
h2 {
color: var(--neon-blue);
font-size: 2.5rem;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8), 0 0 30px rgba(0, 255, 255, 0.4);
text-transform: uppercase;
letter-spacing: 2px;
font-weight: 700;
}
h3 {
color: var(--neon-blue);
font-size: 1.8rem;
margin-bottom: 15px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.6);
}
h4 {
color: #ffffff;
font-size: 1.3rem;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
font-size: 1.1rem;
}
/* 导航按钮 */
.prev-btn {
position: fixed;
left: 20px;
top: 50%;
transform: translateY(-50%);
background-color: rgba(0, 20, 40, 0.7);
color: var(--neon-blue);
border: 1px solid var(--neon-blue);
border-radius: 50%;
width: 50px;
height: 50px;
font-size: 1.5rem;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 1000;
box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
transition: all 0.3s ease;
}
.next-btn {
position: fixed;
right: 20px;
top: 50%;
transform: translateY(-50%);
background-color: rgba(0, 20, 40, 0.7);
color: var(--neon-blue);
border: 1px solid var(--neon-blue);
border-radius: 50%;
width: 50px;
height: 50px;
font-size: 1.5rem;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 1000;
box-shadow: 0 0 15px rgba(0, 255, 255, 0.3);
transition: all 0.3s ease;
}
.prev-btn:hover, .next-btn:hover {
background-color: rgba(0, 40, 70, 0.8);
box-shadow: 0 0 20px rgba(0, 255, 255, 0.6);
transform: translateY(-50%) scale(1.1);
}
.prev-btn.disabled, .next-btn.disabled {
opacity: 0.3;
cursor: not-allowed;
}
/* 进度条 */
.progress-bar {
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
width: 300px;
height: 5px;
background: rgba(255, 255, 255, 0.1);
border-radius: 5px;
overflow: hidden;
z-index: 100;
}
.progress {
height: 100%;
width: 10%;
background: linear-gradient(90deg, var(--neon-blue), var(--neon-pink));
box-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
transition: width 0.3s ease;
}
.slide-counter {
position: absolute;
right: -30px;
top: -20px;
color: var(--neon-blue);
font-size: 0.8rem;
}
/* 封面页样式 */
.cover-content {
text-align: center;
position: relative;
padding: 20px;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.cyber-logo {
margin-bottom: 40px;
position: relative;
}
.cyber-shield {
width: 150px;
height: 150px;
position: relative;
margin: 0 auto;
}
.shield-inner {
width: 100%;
height: 100%;
background: radial-gradient(circle at center, rgba(0, 255, 255, 0.1), rgba(10, 15, 25, 0));
border: 2px solid var(--neon-blue);
border-radius: 50%;
position: relative;
overflow: hidden;
animation: shieldPulse 2s infinite alternate;
}
.shield-inner::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 80%;
height: 80%;
transform: translate(-50%, -50%);
background: url('data:image/svg+xml;utf8,');
background-repeat: no-repeat;
background-position: center;
background-size: contain;
opacity: 0.8;
filter: drop-shadow(0 0 5px var(--neon-blue));
animation: shieldRotate 10s linear infinite;
}
.shield-glow {
position: absolute;
top: -20px;
left: -20px;
right: -20px;
bottom: -20px;
border-radius: 50%;
background: radial-gradient(circle at center, rgba(0, 255, 255, 0.3), transparent 70%);
filter: blur(10px);
animation: glowPulse 4s infinite alternate;
}
@keyframes shieldPulse {
0% {
box-shadow: 0 0 10px rgba(0, 255, 255, 0.5), inset 0 0 5px rgba(0, 255, 255, 0.2);
}
100% {
box-shadow: 0 0 20px rgba(0, 255, 255, 0.8), inset 0 0 15px rgba(0, 255, 255, 0.4);
}
}
@keyframes glowPulse {
0% {
opacity: 0.3;
}
100% {
opacity: 0.8;
}
}
@keyframes shieldRotate {
0% {
transform: translate(-50%, -50%) rotate(0deg);
}
100% {
transform: translate(-50%, -50%) rotate(360deg);
}
}
.cyber-title {
font-size: 5rem;
font-weight: 800;
margin-bottom: 20px;
background: linear-gradient(90deg, var(--neon-blue), var(--neon-pink), var(--neon-blue));
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: gradientFlow 5s ease infinite;
letter-spacing: 6px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}
.cyber-subtitle {
font-size: 1.8rem;
color: #ffffff;
margin-bottom: 40px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
letter-spacing: 3px;
}
@keyframes gradientFlow {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
.cover-decoration {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: -1;
}
.tech-lines {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background:
linear-gradient(90deg, transparent 49.5%, rgba(0, 255, 255, 0.1) 50%, transparent 50.5%) 0 0 / 50px 100%,
linear-gradient(transparent 49.5%, rgba(0, 255, 255, 0.1) 50%, transparent 50.5%) 0 0 / 100% 50px;
animation: linePulse 5s infinite alternate;
}
@keyframes linePulse {
0% {
opacity: 0.3;
}
100% {
opacity: 0.6;
}
}
.candidate-info {
display: flex;
align-items: center;
justify-content: center;
margin-top: 40px;
font-size: 1.2rem;
}
.cyber-bracket {
font-size: 2.5rem;
color: var(--neon-blue);
margin: 0 10px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
animation: bracketGlow 2s ease-in-out infinite alternate;
}
.cyber-text {
color: #ffffff;
text-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
}
.highlight {
color: var(--neon-pink);
text-shadow: 0 0 10px rgba(255, 0, 255, 0.8);
font-weight: 700;
}
@keyframes bracketGlow {
0% {
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
100% {
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8), 0 0 25px rgba(0, 255, 255, 0.5);
}
}
.cover-particles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
pointer-events: none;
}
.cover-particles::before {
content: '';
position: absolute;
top: -10px;
left: -10px;
right: -10px;
bottom: -10px;
background-image: radial-gradient(circle at center, rgba(0, 255, 255, 0.1) 1px, transparent 1px);
background-size: 30px 30px;
animation: particleDrift 20s linear infinite;
}
@keyframes particleDrift {
0% {
background-position: 0 0;
}
100% {
background-position: 30px 30px;
}
}
/* 目录页样式 */
.section-title {
text-align: center;
margin-bottom: 40px;
position: relative;
}
.highlight {
color: var(--neon-pink);
text-shadow: 0 0 10px rgba(255, 0, 255, 0.7);
}
.menu-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 20px;
padding: 20px;
}
.menu-item {
position: relative;
background: rgba(0, 20, 40, 0.6);
padding: 20px;
border-radius: 10px;
transition: all 0.3s ease;
cursor: pointer;
overflow: hidden;
border: 1px solid rgba(0, 255, 255, 0.2);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
.menu-item:hover {
transform: translateY(-5px);
border-color: rgba(0, 255, 255, 0.6);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3), 0 0 30px rgba(0, 255, 255, 0.3);
}
.menu-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(45deg, rgba(0, 255, 255, 0.1), transparent);
opacity: 0;
transition: opacity 0.3s ease;
}
.menu-item:hover::before {
opacity: 1;
}
.menu-item-number {
position: absolute;
top: 10px;
left: 10px;
color: var(--neon-blue);
font-size: 3rem;
font-weight: 800;
opacity: 0.2;
}
.menu-item-icon {
font-size: 2rem;
color: var(--neon-blue);
margin-bottom: 15px;
margin-top: 30px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
}
.menu-item-title {
font-size: 1.2rem;
font-weight: 700;
margin-bottom: 5px;
color: #ffffff;
}
/* 标题装饰 */
.cyber-title-decoration {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 40px;
}
.title-line {
width: 50px;
height: 2px;
background: linear-gradient(90deg, transparent, var(--neon-blue));
animation: titleLineGlow 2s ease-in-out infinite alternate;
}
.title-line.right {
background: linear-gradient(90deg, var(--neon-blue), transparent);
}
.title-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: var(--neon-blue);
margin: 0 10px;
box-shadow: 0 0 10px var(--neon-blue);
animation: titleDotPulse 1.5s ease-in-out infinite alternate;
}
.title-bracket {
font-size: 2.5rem;
color: var(--neon-blue);
margin: 0 10px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
animation: bracketGlow 2s ease-in-out infinite alternate;
}
@keyframes titleLineGlow {
0% {
box-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
100% {
box-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
}
}
@keyframes titleDotPulse {
0% {
transform: scale(1);
box-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
100% {
transform: scale(1.5);
box-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
}
}
/* 网格背景 */
.cyber-grid {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
linear-gradient(rgba(0, 255, 255, 0.1) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 255, 255, 0.1) 1px, transparent 1px);
background-size: 30px 30px;
opacity: 0.3;
z-index: 0;
pointer-events: none;
animation: gridPulse 5s infinite;
}
@keyframes gridPulse {
0%, 100% {
opacity: 0.2;
}
50% {
opacity: 0.3;
}
}
/* 数据粒子 */
.data-particles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
pointer-events: none;
}
.data-particle {
font-size: 1.5rem;
font-family: monospace;
color: var(--neon-blue);
text-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
position: absolute;
opacity: 0.8;
animation: floatData 10s infinite linear;
}
@keyframes floatData {
0% {
transform: translateY(0) rotate(0deg);
}
25% {
transform: translateY(-10px) rotate(5deg);
}
50% {
transform: translateY(0) rotate(0deg);
}
75% {
transform: translateY(10px) rotate(-5deg);
}
100% {
transform: translateY(0) rotate(0deg);
}
}
/* 个人简介页样式 */
.profile-container {
display: flex;
align-items: flex-start;
justify-content: space-between;
position: relative;
z-index: 10;
}
.profile-left {
flex: 0 0 35%;
padding-right: 20px;
}
.profile-right {
flex: 0 0 65%;
display: flex;
flex-direction: column;
}
.profile-photo {
margin-bottom: 30px;
position: relative;
}
.photo-frame {
width: 180px;
height: 180px;
border-radius: 15px;
overflow: hidden;
position: relative;
margin: 0 auto;
border: 2px solid var(--neon-blue);
box-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
animation: framePulse 3s infinite alternate;
}
.profile-image {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 15px;
display: block;
}
@keyframes framePulse {
0% {
box-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
}
100% {
box-shadow: 0 0 25px rgba(0, 255, 255, 0.8), 0 0 35px rgba(255, 0, 255, 0.3);
}
}
.photo-placeholder {
width: 100%;
height: 100%;
background: radial-gradient(circle at center, rgba(0, 40, 60, 0.8), rgba(0, 20, 40, 0.6));
display: flex;
align-items: center;
justify-content: center;
color: var(--neon-blue);
font-size: 4rem;
}
.awards-gallery {
margin-top: 30px;
}
.award-item {
display: flex;
align-items: center;
padding: 12px;
margin-bottom: 15px;
background: rgba(0, 15, 30, 0.5);
border-radius: 8px;
transition: all 0.3s ease;
border-left: 3px solid var(--neon-blue);
overflow: hidden;
position: relative;
}
.award-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(45deg, rgba(0, 255, 255, 0.05), transparent);
z-index: 0;
}
.award-item:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 15px rgba(0, 255, 255, 0.3);
background: rgba(0, 20, 40, 0.7);
}
.award-icon {
font-size: 1.8rem;
margin-right: 15px;
color: var(--neon-blue);
text-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
z-index: 1;
}
.award-text {
font-size: 1rem;
font-weight: 500;
color: #ffffff;
z-index: 1;
}
.tag-cloud {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 25px;
}
.tag {
padding: 8px 16px;
background: rgba(0, 20, 40, 0.7);
border-radius: 20px;
color: white;
font-weight: 500;
font-size: 0.9rem;
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
border: 1px solid rgba(0, 255, 255, 0.3);
transition: all 0.3s ease;
}
.tag:hover {
transform: translateY(-3px);
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15), 0 0 10px rgba(0, 255, 255, 0.4);
background: rgba(0, 30, 50, 0.8);
border-color: var(--neon-blue);
}
.achievements {
margin-bottom: 25px;
}
.achievement-item {
display: flex;
margin-bottom: 15px;
padding: 15px;
background: rgba(0, 15, 30, 0.5);
border-radius: 10px;
transition: all 0.3s ease;
border-left: 3px solid var(--neon-blue);
}
.achievement-item:hover {
transform: translateX(5px);
background: rgba(0, 25, 45, 0.7);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15), 0 0 15px rgba(0, 255, 255, 0.2);
}
.achievement-icon {
font-size: 2rem;
color: var(--neon-blue);
margin-right: 15px;
display: flex;
align-items: center;
justify-content: center;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
}
.achievement-content {
flex: 1;
}
.achievement-content h4 {
font-size: 1.3rem;
margin-bottom: 5px;
color: #ffffff;
}
.achievement-content p {
font-size: 1rem;
color: rgba(255, 255, 255, 0.9);
line-height: 1.4;
}
.quote {
background: rgba(0, 15, 30, 0.6);
border-left: 4px solid var(--neon-blue);
padding: 15px 20px;
margin-top: 20px;
border-radius: 5px;
font-style: italic;
position: relative;
color: #f0f0f0;
font-size: 1.1rem;
line-height: 1.5;
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1), 0 0 15px rgba(0, 255, 255, 0.2);
}
.quote::before {
content: '"';
position: absolute;
top: -20px;
left: 10px;
font-size: 60px;
color: var(--neon-blue);
opacity: 0.5;
font-family: serif;
}
/* 专业能力页样式 */
.skills-container {
display: flex;
margin-top: 20px;
}
.skills-left {
flex: 1;
padding-right: 30px;
}
.skills-right {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.core-skill-item {
display: flex;
align-items: center;
margin-bottom: 30px;
padding: 20px;
background: rgba(0, 20, 40, 0.6);
border-radius: 10px;
transition: all 0.3s ease;
border-left: 3px solid var(--neon-blue);
position: relative;
overflow: hidden;
}
.core-skill-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(45deg, rgba(0, 255, 255, 0.05), transparent);
z-index: 0;
}
.core-skill-item:hover {
transform: translateX(5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 15px rgba(0, 255, 255, 0.3);
}
.skill-icon {
font-size: 2.5rem;
color: var(--neon-blue);
margin-right: 20px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
z-index: 1;
}
.skill-content {
flex: 1;
z-index: 1;
}
.skill-content h3 {
font-size: 1.5rem;
margin-bottom: 10px;
color: var(--neon-blue);
}
.skill-content p {
margin-bottom: 15px;
color: #f0f0f0;
font-size: 1rem;
}
.skill-progress {
height: 6px;
background: rgba(255, 255, 255, 0.1);
border-radius: 3px;
overflow: hidden;
}
.progress-bar-skill {
height: 100%;
background: linear-gradient(90deg, var(--neon-blue), var(--neon-pink));
border-radius: 3px;
box-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
animation: progressGrow 1.5s ease-out;
}
@keyframes progressGrow {
0% {
width: 0;
}
}
/* 技能雷达图样式 */
.radar-chart-container {
width: 100%;
height: 300px;
margin: 20px auto;
position: relative;
background: rgba(0, 20, 40, 0.3);
border-radius: 10px;
padding: 10px;
border: 1px solid rgba(0, 255, 255, 0.3);
box-shadow: 0 0 15px rgba(0, 255, 255, 0.2);
animation: glow 3s infinite alternate;
}
@keyframes glow {
0% {
box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);
}
100% {
box-shadow: 0 0 20px rgba(0, 255, 255, 0.6);
}
}
/* 技能徽章样式增强 */
.tech-badges {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
margin-top: 20px;
}
.tech-badge {
background: linear-gradient(145deg, rgba(0, 40, 70, 0.7), rgba(0, 20, 40, 0.7));
color: var(--neon-blue);
padding: 8px 15px;
border-radius: 20px;
font-size: 0.9rem;
border: 1px solid rgba(0, 255, 255, 0.3);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);
transition: all 0.3s ease;
}
.tech-badge:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0, 255, 255, 0.4);
background: linear-gradient(145deg, rgba(0, 60, 100, 0.7), rgba(0, 30, 60, 0.7));
}
/* 未来工作规划页样式 */
.strategy-container {
position: relative;
height: calc(100% - 160px);
padding: 15px 0;
margin-top: 10px;
overflow-y: auto;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE and Edge */
}
/* 隐藏滚动条 - Webkit浏览器 */
.strategy-container::-webkit-scrollbar {
display: none;
}
.strategy-title {
text-align: center;
color: #00ffdd;
font-size: 1.5rem;
margin-bottom: 20px;
text-shadow: 0 0 10px rgba(0, 255, 200, 0.8);
letter-spacing: 3px;
}
.strategy-item {
display: flex;
margin-bottom: 30px;
position: relative;
}
.strategy-number {
flex: 0 0 60px;
font-size: 2.5rem;
font-weight: 800;
color: var(--neon-blue);
opacity: 0.8;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
}
.strategy-content {
flex: 1;
padding: 20px;
background: rgba(0, 20, 40, 0.6);
border-radius: 10px;
position: relative;
border-left: 3px solid var(--neon-blue);
transition: all 0.3s ease;
}
.strategy-content:hover {
transform: translateX(5px);
background: rgba(0, 30, 50, 0.7);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 15px rgba(0, 255, 255, 0.3);
}
.strategy-content h4 {
color: var(--neon-blue);
font-size: 1.4rem;
margin-bottom: 10px;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.6);
}
.strategy-content p {
margin-bottom: 15px;
}
.strategy-content ul {
padding-left: 20px;
}
.strategy-content li {
margin-bottom: 8px;
}
/* 团队建设页样式 */
.team-container {
display: flex;
flex-direction: column;
gap: 40px;
margin-top: 20px;
padding: 20px;
}
.mechanism-container, .reward-container {
flex: 1;
}
.mechanism-container h3, .reward-container h3 {
color: var(--neon-blue);
font-size: 1.8rem;
margin-bottom: 20px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.7);
}
.mechanism-row, .reward-row {
display: flex;
gap: 20px;
}
.mechanism, .reward-item {
flex: 1;
background: rgba(0, 20, 40, 0.6);
padding: 20px;
border-radius: 10px;
position: relative;
transition: all 0.3s ease;
overflow: hidden;
border-left: 3px solid var(--neon-blue);
}
.mechanism:hover, .reward-item:hover {
transform: translateY(-5px);
background: rgba(0, 30, 50, 0.7);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 15px rgba(0, 255, 255, 0.3);
}
.mechanism-icon, .reward-icon {
font-size: 2.5rem;
color: var(--neon-blue);
margin-bottom: 15px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
}
.mechanism h4, .reward-item h4 {
color: #ffffff;
font-size: 1.4rem;
margin-bottom: 10px;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
.mechanism p, .reward-item p {
color: #f0f0f0;
font-size: 1.1rem;
}
/* 风险应对页样式 */
.risk-management {
margin-top: 20px;
padding: 20px;
}
.risk-management h3 {
color: var(--neon-blue);
font-size: 1.8rem;
margin-bottom: 25px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.7);
}
.risk-items {
display: flex;
gap: 20px;
margin-bottom: 40px;
}
.risk-item {
flex: 1;
background: rgba(0, 20, 40, 0.6);
padding: 20px;
border-radius: 10px;
position: relative;
transition: all 0.3s ease;
overflow: hidden;
border-left: 3px solid var(--neon-blue);
}
.risk-item:hover {
transform: translateY(-5px);
background: rgba(0, 30, 50, 0.7);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 0 15px rgba(0, 255, 255, 0.3);
}
.risk-icon {
font-size: 2.5rem;
color: var(--neon-blue);
margin-bottom: 15px;
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8);
}
.risk-content h4 {
color: #ffffff;
font-size: 1.4rem;
margin-bottom: 10px;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
.risk-content p {
color: #f0f0f0;
font-size: 1.1rem;
margin-bottom: 8px;
}
.vision {
margin-top: 40px;
}
.vision-content {
position: relative;
padding: 30px;
background: linear-gradient(45deg, rgba(0, 10, 30, 0.8), rgba(0, 20, 50, 0.8));
border-radius: 10px;
text-align: center;
border: 1px solid rgba(0, 255, 255, 0.3);
box-shadow: 0 0 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(0, 255, 255, 0.2);
}
.vision-content p {
font-size: 1.3rem;
color: #ffffff;
margin: 0;
text-shadow: 0 0 10px rgba(0, 255, 255, 0.6);
font-style: italic;
}
.vision-decoration {
position: absolute;
width: 30px;
height: 2px;
background: var(--neon-blue);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
}
.vision-decoration.left {
left: 20px;
top: 50%;
}
.vision-decoration.right {
right: 20px;
top: 50%;
}
/* 结束语页样式 */
.ending-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
padding: 20px;
height: 100%;
}
.ending-title {
margin-bottom: 40px;
}
.ending-title h2 {
font-size: 2.5rem;
color: var(--neon-blue);
text-shadow: 0 0 15px rgba(0, 255, 255, 0.8), 0 0 30px rgba(0, 255, 255, 0.4);
letter-spacing: 2px;
}
.ending-quote {
position: relative;
max-width: 80%;
margin: 0 auto 40px;
padding: 20px 40px;
}
.quote-mark {
position: absolute;
font-size: 6rem;
color: var(--neon-blue);
opacity: 0.4;
font-family: serif;
line-height: 0;
}
.quote-mark.left {
top: 20px;
left: 0;
}
.quote-mark.right {
bottom: 0;
right: 0;
}
.ending-quote p {
font-size: 1.4rem;
color: #ffffff;
line-height: 1.6;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
.ending-logo {
position: relative;
width: 150px;
height: 150px;
margin-top: 40px;
}
.logo-particle {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
background: radial-gradient(circle at center, rgba(0, 255, 255, 0.2), transparent 70%);
animation: logoParticle 3s infinite alternate;
}
.logo-glow {
position: absolute;
top: -20px;
left: -20px;
right: -20px;
bottom: -20px;
border-radius: 50%;
background: radial-gradient(circle at center, rgba(0, 255, 255, 0.3), transparent 70%);
filter: blur(20px);
animation: logoGlow 5s infinite alternate;
}
@keyframes logoParticle {
0% {
transform: scale(0.8);
opacity: 0.5;
}
100% {
transform: scale(1.2);
opacity: 0.8;
}
}
@keyframes logoGlow {
0% {
filter: blur(20px);
opacity: 0.3;
}
100% {
filter: blur(30px);
opacity: 0.7;
}
}
/* 优化第5页和第6页共同样式 */
#slide5 .glass-card, #slide6 .glass-card {
display: flex;
flex-direction: column;
}
/* 为进度点添加样式 */
.progress-dots {
display: flex;
position: absolute;
top: -15px;
left: 50%;
transform: translateX(-50%);
}
.progress-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.3);
margin: 0 5px;
cursor: pointer;
transition: all 0.3s ease;
}
.progress-dot.active {
background-color: var(--neon-blue);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.7);
}
@keyframes scanLine {
0% {
transform: translateX(0);
}
100% {
transform: translateX(50%);
}
}
/* 滚动粒子效果 */
.scroll-particles-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
overflow: hidden;
}
.scroll-particle {
position: absolute;
background: radial-gradient(circle at center, rgba(0, 255, 200, 0.8), rgba(0, 255, 200, 0));
border-radius: 50%;
pointer-events: none;
opacity: 0;
z-index: 10;
transform: translate(-50%, -50%);
animation: particleFade 1.5s ease-out forwards;
}
@keyframes particleFade {
0% {
opacity: 0.8;
transform: translate(-50%, -50%) scale(0);
}
60% {
opacity: 0.6;
}
100% {
opacity: 0;
transform: translate(-50%, -50%) scale(1.5);
}
}
/* 时间轴插图元素 */
.timeline-illustration {
position: absolute;
width: 80px;
height: 80px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
opacity: 0.8;
z-index: 3;
pointer-events: none;
filter: drop-shadow(0 0 8px rgba(0, 255, 200, 0.5));
animation: floatIllustration 4s ease-in-out infinite;
}
/* 左侧插图位置 */
.timeline-item:nth-child(odd) .timeline-illustration {
left: 0;
top: 15px;
}
/* 右侧插图位置 */
.timeline-item:nth-child(even) .timeline-illustration {
right: 0;
top: 15px;
}
/* 插图悬浮动画 */
@keyframes floatIllustration {
0%, 100% {
transform: translateY(0) rotate(0deg);
}
50% {
transform: translateY(-10px) rotate(5deg);
}
}
/* 渗透测试插图 */
.illustration-penetration {
background-image: url('data:image/svg+xml;utf8,');
}
/* 软件开发插图 */
.illustration-development {
background-image: url('data:image/svg+xml;utf8,');
}
/* 开源贡献插图 */
.illustration-contribution {
background-image: url('data:image/svg+xml;utf8,');
}
/* 竞选核心理念页样式 */
.principles-background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
overflow: hidden;
opacity: 0.15;
}
.floating-dots {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.floating-dots::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background-image: radial-gradient(circle at 10% 20%, rgba(0, 255, 200, 0.6) 1px, transparent 1px),
radial-gradient(circle at 30% 60%, rgba(0, 255, 200, 0.6) 1px, transparent 1px),
radial-gradient(circle at 50% 40%, rgba(0, 255, 200, 0.6) 1px, transparent 1px),
radial-gradient(circle at 70% 70%, rgba(0, 255, 200, 0.6) 1px, transparent 1px),
radial-gradient(circle at 90% 30%, rgba(0, 255, 200, 0.6) 1px, transparent 1px);
background-size: 20% 20%;
animation: floatingDots 15s linear infinite;
}
@keyframes floatingDots {
0% {
background-position: 0% 0%;
}
100% {
background-position: 100% 100%;
}
}
.connection-lines {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(45deg, rgba(0, 255, 200, 0.1) 1px, transparent 1px),
linear-gradient(135deg, rgba(0, 255, 200, 0.1) 1px, transparent 1px);
background-size: 50px 50px;
animation: connectionLines 10s linear infinite;
}
@keyframes connectionLines {
0% {
background-position: 0 0;
}
100% {
background-position: 50px 50px;
}
}
.principle-intro {
position: relative;
display: flex;
align-items: center;
justify-content: center;
margin: 20px auto 30px;
max-width: 80%;
padding: 15px;
background: rgba(0, 20, 40, 0.5);
border: 1px solid rgba(0, 255, 200, 0.3);
border-radius: 5px;
box-shadow: 0 0 15px rgba(0, 255, 200, 0.2);
z-index: 1;
transform: translateY(-5px);
transition: all 0.3s ease;
}
.principle-intro:hover {
transform: translateY(-8px);
box-shadow: 0 0 20px rgba(0, 255, 200, 0.4);
}
.principle-intro-icon {
font-size: 24px;
color: rgba(0, 255, 200, 0.8);
margin-right: 15px;
animation: iconPulse 2s ease-in-out infinite;
}
@keyframes iconPulse {
0%, 100% {
transform: scale(1);
opacity: 0.8;
}
50% {
transform: scale(1.2);
opacity: 1;
}
}
.principle-intro-text {
color: rgba(255, 255, 255, 0.9);
font-size: 16px;
font-weight: 500;
text-shadow: 0 0 5px rgba(0, 255, 200, 0.5);
margin: 0;
}
.core-values {
display: flex;
justify-content: space-around;
margin: 20px 0;
position: relative;
z-index: 1;
}
.value-card {
position: relative;
width: 30%;
background: rgba(10, 25, 47, 0.6);
border: 1px solid rgba(0, 255, 200, 0.3);
border-radius: 8px;
padding: 20px;
text-align: center;
transition: all 0.3s ease;
overflow: hidden;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
backdrop-filter: blur(5px);
transform: translateY(0);
margin-bottom: 10px;
}
.value-card:hover {
transform: translateY(-10px);
border-color: rgba(0, 255, 200, 0.8);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5),
0 0 15px rgba(0, 255, 200, 0.5);
}
.value-card:hover .value-icon {
animation: iconGlow 1.5s ease-in-out infinite;
}
@keyframes iconGlow {
0%, 100% {
color: rgba(0, 255, 200, 0.8);
text-shadow: 0 0 10px rgba(0, 255, 200, 0.5);
}
50% {
color: rgba(0, 255, 255, 1);
text-shadow: 0 0 20px rgba(0, 255, 255, 0.8),
0 0 30px rgba(0, 255, 255, 0.6);
}
}
.value-icon {
font-size: 2.5rem;
margin-bottom: 15px;
color: rgba(0, 255, 200, 0.8);
text-shadow: 0 0 10px rgba(0, 255, 200, 0.5);
transition: all 0.3s ease;
}
.value-card h3 {
font-size: 1.5rem;
margin-top: 0;
margin-bottom: 10px;
color: rgba(255, 255, 255, 0.9);
text-shadow: 0 0 5px rgba(0, 255, 200, 0.5);
}
.value-card p {
color: rgba(255, 255, 255, 0.7);
font-size: 1rem;
margin-bottom: 15px;
}
.value-details {
height: 0;
overflow: hidden;
transition: height 0.5s ease;
text-align: left;
}
.value-card:hover .value-details {
height: 115px; /* 根据内容调整 */
}
.value-details ul {
list-style-type: none;
padding: 0;
margin: 10px 0 0;
}
.value-details li {
margin-bottom: 8px;
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.8);
display: flex;
align-items: center;
}
.value-details li i {
color: rgba(0, 255, 200, 0.8);
margin-right: 8px;
font-size: 0.8rem;
}
.value-glow {
position: absolute;
bottom: -50px;
left: 0;
width: 100%;
height: 100px;
background: radial-gradient(ellipse at center, rgba(0, 255, 200, 0.3) 0%, rgba(0, 255, 200, 0) 70%);
opacity: 0;
transition: all 0.5s ease;
}
.value-card:hover .value-glow {
opacity: 1;
animation: glowPulse 2s ease-in-out infinite;
}
.card-decoration {
position: absolute;
top: 0;
right: 0;
width: 15px;
height: 15px;
border-top: 2px solid rgba(0, 255, 200, 0.5);
border-right: 2px solid rgba(0, 255, 200, 0.5);
}
.card-decoration::before {
content: '';
position: absolute;
bottom: -100%;
left: 0;
width: 2px;
height: 0;
background: linear-gradient(to bottom, rgba(0, 255, 200, 0.5), rgba(0, 255, 200, 0));
transition: height 0.3s ease;
}
.value-card:hover .card-decoration::before {
height: 50px;
}
.principles-stats {
display: flex;
justify-content: space-around;
margin: 20px auto 30px;
max-width: 80%;
position: relative;
z-index: 1;
}
.stat-item {
text-align: center;
padding: 15px;
border-radius: 5px;
background: rgba(10, 25, 47, 0.4);
border: 1px solid rgba(0, 255, 200, 0.2);
box-shadow: 0 0 10px rgba(0, 255, 200, 0.1);
transition: all 0.3s ease;
}
.stat-item:hover {
transform: translateY(-5px);
border-color: rgba(0, 255, 200, 0.6);
box-shadow: 0 5px 15px rgba(0, 255, 200, 0.3);
}
.stat-number {
font-size: 2rem;
font-weight: 700;
color: rgba(0, 255, 200, 0.9);
text-shadow: 0 0 10px rgba(0, 255, 200, 0.5);
margin-bottom: 5px;
}
.stat-label {
font-size: 0.9rem;
color: rgba(255, 255, 255, 0.7);
}
.core-slogan {
position: relative;
margin: 10px auto 50px;
padding: 15px;
text-align: center;
max-width: 80%;
z-index: 5;
background: rgba(9, 19, 33, 0.85);
border-radius: 8px;
box-shadow: 0 0 20px rgba(0, 255, 200, 0.3);
border: 1px solid rgba(0, 255, 200, 0.3);
backdrop-filter: blur(5px);
}
.core-slogan p {
font-size: 1.2rem;
font-weight: 600;
color: rgba(0, 255, 200, 1);
text-shadow: 0 0 10px rgba(0, 255, 200, 0.8), 0 0 5px rgba(0, 255, 200, 0.5);
margin: 0;
animation: textGlow 4s ease-in-out infinite;
letter-spacing: 1px;
}
@keyframes textGlow {
0%, 100% {
text-shadow: 0 0 10px rgba(0, 255, 200, 0.8), 0 0 5px rgba(0, 255, 200, 0.5);
}
50% {
text-shadow: 0 0 20px rgba(0, 255, 200, 1), 0 0 10px rgba(0, 255, 200, 0.8);
}
}
.slogan-decoration {
position: absolute;
height: 2px;
width: 80px;
background: linear-gradient(to right, rgba(0, 255, 200, 0), rgba(0, 255, 200, 0.8), rgba(0, 255, 200, 0));
top: 50%;
z-index: 6;
}
.slogan-decoration.left {
left: -60px;
animation: decorationPulseLeft 3s ease-in-out infinite;
}
.slogan-decoration.right {
right: -60px;
animation: decorationPulseRight 3s ease-in-out infinite;
}
@keyframes decorationPulseLeft {
0%, 100% {
width: 80px;
opacity: 0.7;
}
50% {
width: 120px;
opacity: 1;
}
}
@keyframes decorationPulseRight {
0%, 100% {
width: 80px;
opacity: 0.7;
}
50% {
width: 120px;
opacity: 1;
}
}
.cyberpunk-icons {
display: flex;
justify-content: center;
margin: 20px auto;
position: relative;
z-index: 1;
}
.icon-item {
position: relative;
margin: 0 15px;
width: 50px;
height: 50px;
border-radius: 50%;
background: rgba(10, 25, 47, 0.6);
border: 1px solid rgba(0, 255, 200, 0.3);
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
cursor: pointer;
}
.icon-item i {
font-size: 1.5rem;
color: rgba(0, 255, 200, 0.8);
transition: all 0.3s ease;
}
.icon-item:hover {
transform: translateY(-5px) scale(1.1);
border-color: rgba(0, 255, 200, 0.8);
box-shadow: 0 0 15px rgba(0, 255, 200, 0.5);
}
.icon-item:hover i {
color: rgba(0, 255, 255, 1);
}
.icon-item::after {
content: attr(data-tooltip);
position: absolute;
top: -40px;
left: 50%;
transform: translateX(-50%);
padding: 5px 10px;
background: rgba(10, 25, 47, 0.9);
border: 1px solid rgba(0, 255, 200, 0.5);
border-radius: 4px;
color: rgba(255, 255, 255, 0.9);
font-size: 0.8rem;
white-space: nowrap;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
}
.icon-item:hover::after {
opacity: 1;
visibility: visible;
}
/* 响应式调整 */
@media (max-width: 768px) {
.core-values {
flex-direction: column;
align-items: center;
}
.value-card {
width: 80%;
margin-bottom: 20px;
}
.principles-stats {
flex-wrap: wrap;
}
.stat-item {
margin-bottom: 15px;
}
}
/* 鼠标拖尾特效 */
.cyber-trail-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 1000;
/* 确保容器不会溢出 */
overflow: hidden;
}
.cyber-trail-particle {
position: absolute;
width: 8px;
height: 8px;
background: rgba(0, 255, 170, 0.7);
border-radius: 50%;
filter: blur(2px);
box-shadow: 0 0 6px rgba(0, 255, 170, 0.9);
pointer-events: none;
z-index: 1000;
/* 确保有过渡效果,避免突然消失 */
transition: opacity 0.2s ease;
}
.cyber-trail-sparkle {
position: absolute;
width: 6px;
height: 6px;
background: rgba(0, 255, 200, 0.9);
border-radius: 50%;
filter: blur(1px);
box-shadow: 0 0 8px rgba(0, 255, 200, 0.8);
pointer-events: none;
z-index: 1000;
transition: transform 0.8s ease, opacity 0.8s ease;
/* 确保初始可见 */
opacity: 1;
}
.cyber-trail-burst {
position: absolute;
width: 10px;
height: 10px;
background: linear-gradient(rgba(0, 255, 255, 0.9), rgba(0, 200, 255, 0.7));
border-radius: 50%;
filter: blur(1px);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
pointer-events: none;
z-index: 1000;
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
/* 确保初始可见 */
opacity: 1;
}
/* 随机粒子形状变化 */
.cyber-trail-particle:nth-child(3n) {
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
border-radius: 0;
}
.cyber-trail-particle:nth-child(3n+1) {
background: rgba(0, 255, 100, 0.6);
}
.cyber-trail-particle:nth-child(3n+2) {
background: rgba(100, 255, 0, 0.6);
}
.cyber-trail-particle:nth-child(5n) {
width: 8px;
height: 8px;
}
/* 闪光粒子效果 */
.cyber-trail-sparkle {
position: absolute;
width: 5px;
height: 5px;
background: #00ff00;
border-radius: 50%;
box-shadow:
0 0 6px #00ff00,
0 0 12px #00ff00;
pointer-events: none;
z-index: 10000;
transform-origin: center;
transition: transform 0.8s ease-out, opacity 0.8s ease-out;
will-change: transform, opacity;
mix-blend-mode: screen;
}
/* 鼠标点击爆炸效果 */
.cyber-trail-burst {
position: absolute;
width: 8px;
height: 8px;
background: #00ff00;
box-shadow:
0 0 8px #00ff00,
0 0 16px #00ff00;
border-radius: 2px;
transform: translate(0, 0) scale(1) rotate(0deg);
transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1),
opacity 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
will-change: transform, opacity;
pointer-events: none;
z-index: 10000;
mix-blend-mode: screen;
}
/* 爆炸效果随机样式 */
.cyber-trail-burst:nth-child(3n) {
background: rgba(0, 255, 100, 0.9);
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
border-radius: 0;
}
.cyber-trail-burst:nth-child(3n+1) {
background: rgba(100, 255, 0, 0.9);
clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
border-radius: 0;
}
.cyber-trail-burst:nth-child(3n+2) {
background: rgba(0, 255, 0, 0.9);
width: 3px;
height: 10px;
}
/* 最后一页增强样式 */
.matrix-background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.15;
background-image:
repeating-linear-gradient(
90deg,
rgba(0, 255, 0, 0.1) 0px,
rgba(0, 255, 0, 0.1) 1px,
transparent 1px,
transparent 20px
),
repeating-linear-gradient(
0deg,
rgba(0, 255, 0, 0.1) 0px,
rgba(0, 255, 0, 0.1) 1px,
transparent 1px,
transparent 20px
);
z-index: 1;
}
.cyber-corner {
position: absolute;
width: 50px;
height: 50px;
border: 2px solid #00ffcc;
box-shadow: 0 0 10px #00ffaa, inset 0 0 8px #00ffaa;
z-index: 2;
}
.cyber-corner.top-left {
top: 20px;
left: 20px;
border-right: none;
border-bottom: none;
}
.cyber-corner.top-right {
top: 20px;
right: 20px;
border-left: none;
border-bottom: none;
}
.cyber-corner.bottom-left {
bottom: 20px;
left: 20px;
border-right: none;
border-top: none;
}
.cyber-corner.bottom-right {
bottom: 20px;
right: 20px;
border-left: none;
border-top: none;
}
.cyber-line {
position: absolute;
background: linear-gradient(90deg, transparent, #00ffcc, transparent);
z-index: 2;
}
.cyber-line.horizontal {
height: 1px;
width: 70%;
left: 15%;
}
.cyber-line.horizontal.top {
top: 80px;
animation: horizontalLineGlow 4s infinite alternate;
}
.cyber-line.horizontal.bottom {
bottom: 80px;
animation: horizontalLineGlow 4s infinite alternate-reverse;
}
.cyber-line.vertical {
width: 1px;
height: 70%;
top: 15%;
}
.cyber-line.vertical.left {
left: 80px;
animation: verticalLineGlow 3s infinite alternate;
}
.cyber-line.vertical.right {
right: 80px;
animation: verticalLineGlow 3s infinite alternate-reverse;
}
@keyframes horizontalLineGlow {
0% {
background: linear-gradient(90deg, transparent, #00ffcc, transparent);
box-shadow: 0 0 10px #00ffaa;
}
50% {
background: linear-gradient(90deg, transparent, #00ffaa80, transparent);
box-shadow: 0 0 5px #00ffaa;
}
100% {
background: linear-gradient(90deg, transparent, #00ffcc, transparent);
box-shadow: 0 0 15px #00ffaa;
}
}
@keyframes verticalLineGlow {
0% {
background: linear-gradient(0deg, transparent, #00ffcc, transparent);
box-shadow: 0 0 10px #00ffaa;
}
50% {
background: linear-gradient(0deg, transparent, #00ffaa80, transparent);
box-shadow: 0 0 5px #00ffaa;
}
100% {
background: linear-gradient(0deg, transparent, #00ffcc, transparent);
box-shadow: 0 0 15px #00ffaa;
}
}
/* THANK文字样式 */
.thank-container {
position: absolute;
top: 140px;
left: 50%;
transform: translateX(-50%);
z-index: 5;
width: 320px;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
.thank-text {
font-family: 'Noto Sans SC', sans-serif;
font-size: 4.5rem;
font-weight: 700;
color: #00ffcc;
text-shadow:
0 0 5px #00ffaa,
0 0 10px #00ffaa,
0 0 15px #00ffaa;
letter-spacing: 10px;
position: relative;
text-transform: uppercase;
animation: thankPulse 3s infinite alternate;
z-index: 6;
}
.thank-glitch {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #00ffaa;
opacity: 0;
mix-blend-mode: overlay;
animation: thankGlitch 5s infinite;
z-index: 7;
}
.thank-scan-line {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 5px;
background: rgba(0, 255, 204, 0.3);
box-shadow: 0 0 15px #00ffaa;
z-index: 8;
animation: thankScanLine 3s infinite linear;
}
.thank-glow {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
box-shadow: inset 0 0 30px #00ffaa;
z-index: 5;
opacity: 0.5;
animation: thankGlow 4s infinite alternate;
}
@keyframes thankPulse {
0% {
opacity: 0.8;
text-shadow:
0 0 5px #00ffaa,
0 0 10px #00ffaa,
0 0 15px #00ffaa;
}
50% {
opacity: 1;
text-shadow:
0 0 10px #00ffaa,
0 0 20px #00ffaa,
0 0 30px #00ffaa,
0 0 40px #00ffaa;
}
100% {
opacity: 0.9;
text-shadow:
0 0 5px #00ffaa,
0 0 15px #00ffaa,
0 0 25px #00ffaa;
}
}
@keyframes thankGlitch {
0%, 90%, 100% {
opacity: 0;
transform: translateX(0);
}
92% {
opacity: 0.5;
transform: translateX(-5px);
}
94% {
opacity: 0.1;
transform: translateX(5px);
}
96% {
opacity: 0.5;
transform: translateX(-2px);
}
98% {
opacity: 0.2;
transform: translateX(2px);
}
}
@keyframes thankScanLine {
0% {
top: -10%;
}
100% {
top: 110%;
}
}
@keyframes thankGlow {
0% {
opacity: 0.3;
box-shadow: inset 0 0 20px #00ffaa;
}
100% {
opacity: 0.7;
box-shadow: inset 0 0 40px #00ffaa;
}
}
/* 电路和数据流样式 */
.circuit-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3;
}
.circuit-line {
position: absolute;
background: linear-gradient(90deg, transparent, #00ffaa, transparent);
height: 1px;
animation: circuitPulse 4s infinite linear;
}
.circuit-line.line1 {
width: 200px;
top: 280px;
left: 100px;
transform: rotate(30deg);
animation-delay: 0s;
}
.circuit-line.line2 {
width: 300px;
top: 420px;
right: 120px;
transform: rotate(-25deg);
animation-delay: 2s;
}
.circuit-line.line3 {
width: 250px;
bottom: 180px;
left: 150px;
transform: rotate(-15deg);
animation-delay: 1s;
}
.circuit-node {
position: absolute;
width: 10px;
height: 10px;
border-radius: 50%;
background: #00ffaa;
box-shadow: 0 0 10px #00ffaa;
animation: nodeGlow 2s infinite alternate;
}
.circuit-node.node1 {
top: 275px;
left: 300px;
animation-delay: 0.5s;
}
.circuit-node.node2 {
top: 410px;
right: 250px;
animation-delay: 1.5s;
}
.circuit-node.node3 {
bottom: 175px;
left: 250px;
animation-delay: 1s;
}
@keyframes circuitPulse {
0% {
opacity: 0;
background-position: -100% 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
background-position: 200% 0;
}
}
@keyframes nodeGlow {
0% {
transform: scale(0.8);
box-shadow: 0 0 5px #00ffaa;
}
100% {
transform: scale(1.2);
box-shadow: 0 0 15px #00ffaa;
}
}
/* 悬浮数据元素 */
.floating-data {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.data-bit {
position: absolute;
font-family: monospace;
color: #00ffaa;
font-size: 14px;
text-shadow: 0 0 5px #00ffaa;
opacity: 0.7;
animation: floatingData 10s infinite linear;
}
.data-bit:nth-child(1) {
top: 20%;
left: 15%;
animation-duration: 15s;
}
.data-bit:nth-child(2) {
top: 30%;
right: 12%;
animation-duration: 20s;
animation-delay: 2s;
}
.data-bit:nth-child(3) {
bottom: 25%;
left: 20%;
animation-duration: 18s;
animation-delay: 3s;
}
.data-bit:nth-child(4) {
bottom: 15%;
right: 25%;
animation-duration: 22s;
animation-delay: 1s;
}
.data-bit:nth-child(5) {
top: 50%;
left: 70%;
animation-duration: 25s;
animation-delay: 0.5s;
}
@keyframes floatingData {
0% {
transform: translate(0, 0);
opacity: 0.2;
}
25% {
transform: translate(20px, 10px);
opacity: 0.7;
}
50% {
transform: translate(0, 20px);
opacity: 0.5;
}
75% {
transform: translate(-20px, 10px);
opacity: 0.7;
}
100% {
transform: translate(0, 0);
opacity: 0.2;
}
}
/* 技术图标组 */
.tech-icon-group {
position: absolute;
bottom: 100px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 30px;
z-index: 3;
}
.tech-icon-item {
width: 40px;
height: 40px;
border-radius: 50%;
background: rgba(0, 0, 0, 0.5);
border: 1px solid #00ffaa;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0 0 10px #00ffaa;
position: relative;
animation: iconFloat 4s infinite ease-in-out;
}
.tech-icon-item:nth-child(1) {
animation-delay: 0s;
}
.tech-icon-item:nth-child(2) {
animation-delay: 0.8s;
}
.tech-icon-item:nth-child(3) {
animation-delay: 1.6s;
}
.tech-icon-item:nth-child(4) {
animation-delay: 2.4s;
}
.tech-icon-item:nth-child(5) {
animation-delay: 3.2s;
}
.tech-icon-item i {
color: #00ffaa;
font-size: 18px;
text-shadow: 0 0 5px #00ffaa;
}
.tech-icon-item:hover {
background: rgba(0, 255, 170, 0.3);
transform: scale(1.2);
}
.tech-icon-item:hover i {
color: #ffffff;
}
@keyframes iconFloat {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
}
/* 扫描线效果 */
.scan-effect {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
to bottom,
transparent 0%,
rgba(0, 255, 170, 0.08) 49%,
rgba(0, 255, 170, 0.08) 51%,
transparent 100%
);
background-size: 100% 8px;
animation: scanEffect 8s linear infinite;
pointer-events: none;
z-index: 10;
opacity: 0.5;
}
@keyframes scanEffect {
0% {
background-position: 0 -1000px;
}
100% {
background-position: 0 1000px;
}
}
/* 调整结束页整体布局 */
#slide10 .ending-container {
position: relative;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
height: 100%;
padding: 150px 40px 40px;
z-index: 2;
}
#slide10 .ending-title {
margin-top: 120px;
z-index: 4;
}
#slide10 .ending-title h2 {
color: #00ffcc;
text-shadow: 0 0 10px #00ffaa;
}
#slide10 .ending-quote {
margin-top: 30px;
z-index: 4;
}
#slide10 .ending-logo {
margin-top: 40px;
z-index: 4;
}
/* 响应式调整 */
@media (max-width: 768px) {
.thank-container {
top: 100px;
}
.thank-text {
font-size: 3rem;
}
.tech-icon-group {
gap: 15px;
}
}
/* 第3页底部装饰元素 - 终端与电路 */
.cyber-bottom-decor {
position: relative;
width: 100%;
margin-top: 30px;
height: 150px;
display: flex;
flex-direction: column;
align-items: center;
z-index: 5;
}
.cyber-terminal {
width: 80%;
height: 100px;
background: rgba(10, 20, 30, 0.8);
border: 1px solid #00ffaa;
border-radius: 5px;
box-shadow: 0 0 15px rgba(0, 255, 170, 0.3);
overflow: hidden;
margin-bottom: 15px;
}
.terminal-header {
height: 25px;
background: rgba(0, 255, 170, 0.2);
display: flex;
align-items: center;
padding: 0 10px;
border-bottom: 1px solid #00ffaa;
}
.terminal-buttons {
display: flex;
gap: 5px;
}
.terminal-buttons span {
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(0, 255, 170, 0.5);
}
.terminal-title {
margin-left: 15px;
color: #00ffaa;
font-size: 12px;
font-family: monospace;
}
.terminal-content {
padding: 8px;
height: calc(100% - 25px);
overflow: hidden;
}
.command-line {
color: #00ffaa;
font-family: monospace;
font-size: 12px;
margin-bottom: 5px;
white-space: nowrap;
overflow: hidden;
}
.typing-cmd {
animation: typing 3s steps(40) infinite alternate;
display: inline-block;
overflow: hidden;
white-space: nowrap;
border-right: 2px solid #00ffaa;
}
.command-line:nth-child(2) .typing-cmd {
animation-delay: 1s;
}
.command-line:nth-child(3) .typing-cmd {
animation-delay: 2s;
}
@keyframes typing {
from {
width: 0;
}
to {
width: 100%;
}
}
.cyber-circuit {
width: 90%;
height: 30px;
}
.circuit-svg {
width: 100%;
height: 100%;
}
.circuit-path {
fill: none;
stroke: #00ffaa;
stroke-width: 2;
stroke-dasharray: 5;
animation: circuit-flow 10s linear infinite;
}
.circuit-node {
fill: #00ffaa;
animation: node-pulse 2s ease-in-out infinite alternate;
}
.circuit-node:nth-child(2) {
animation-delay: 0.3s;
}
.circuit-node:nth-child(3) {
animation-delay: 0.6s;
}
.circuit-node:nth-child(4) {
animation-delay: 0.9s;
}
.circuit-node:nth-child(5) {
animation-delay: 1.2s;
}
@keyframes circuit-flow {
0% {
stroke-dashoffset: 500;
}
100% {
stroke-dashoffset: 0;
}
}
@keyframes node-pulse {
0% {
r: 2;
fill: rgba(0, 255, 170, 0.6);
}
100% {
r: 4;
fill: rgba(0, 255, 170, 1);
}
}
/* 第4页底部装饰元素 - 代码矩阵和节点 */
.skill-bottom-decor {
position: relative;
width: 100%;
margin-top: 30px;
height: 150px;
z-index: 5;
}
.skill-matrix-code {
width: 80%;
margin: 0 auto;
height: 70px;
overflow: hidden;
position: relative;
}
.matrix-code-line {
font-family: monospace;
font-size: 12px;
color: rgba(0, 255, 170, 0.8);
margin-bottom: 5px;
white-space: nowrap;
text-shadow: 0 0 5px rgba(0, 255, 170, 0.5);
animation: code-scroll 15s linear infinite;
}
.matrix-code-line:nth-child(2) {
animation-duration: 20s;
animation-direction: reverse;
}
.matrix-code-line:nth-child(3) {
animation-duration: 18s;
}
@keyframes code-scroll {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
.skill-glow-bars {
display: flex;
justify-content: space-between;
width: 90%;
margin: 15px auto;
height: 3px;
}
.glow-bar {
height: 100%;
width: 18%;
background: linear-gradient(90deg, transparent, #00ffaa, transparent);
animation: bar-pulse 2s infinite alternate;
}
.glow-bar:nth-child(2) {
animation-delay: 0.4s;
}
.glow-bar:nth-child(3) {
animation-delay: 0.8s;
}
.glow-bar:nth-child(4) {
animation-delay: 1.2s;
}
.glow-bar:nth-child(5) {
animation-delay: 1.6s;
}
@keyframes bar-pulse {
0% {
opacity: 0.3;
box-shadow: 0 0 5px #00ffaa;
}
100% {
opacity: 1;
box-shadow: 0 0 10px #00ffaa;
}
}
.skill-nodes {
display: flex;
justify-content: space-evenly;
width: 80%;
margin: 10px auto;
}
.skill-node {
width: 12px;
height: 12px;
background: #00ffaa;
border-radius: 50%;
position: relative;
box-shadow: 0 0 8px #00ffaa;
animation: node-expand 3s infinite alternate;
}
.skill-node:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 25px;
height: 25px;
border: 1px solid #00ffaa;
border-radius: 50%;
opacity: 0;
animation: ripple 2s infinite;
}
.skill-node:nth-child(2) {
animation-delay: 0.6s;
}
.skill-node:nth-child(2):before {
animation-delay: 0.6s;
}
.skill-node:nth-child(3) {
animation-delay: 1.2s;
}
.skill-node:nth-child(3):before {
animation-delay: 1.2s;
}
.skill-node:nth-child(4) {
animation-delay: 1.8s;
}
.skill-node:nth-child(4):before {
animation-delay: 1.8s;
}
.skill-node:nth-child(5) {
animation-delay: 2.4s;
}
.skill-node:nth-child(5):before {
animation-delay: 2.4s;
}
@keyframes node-expand {
0% {
transform: scale(0.8);
}
100% {
transform: scale(1.2);
}
}
@keyframes ripple {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0.5);
}
50% {
opacity: 0.5;
}
100% {
opacity: 0;
transform: translate(-50%, -50%) scale(1.5);
}
}
/* 第9页底部装饰元素 - 六边形网格和数据流 */
.vision-bottom-decor {
position: relative;
width: 100%;
margin-top: 30px;
height: 150px;
z-index: 5;
}
.hex-grid {
width: 100%;
height: 80px;
display: flex;
flex-direction: column;
align-items: center;
overflow: hidden;
}
.hex-row {
display: flex;
margin-bottom: -8px;
}
.hex-row.offset {
margin-left: 18px;
}
.hex {
width: 30px;
height: 17px;
background: rgba(0, 255, 170, 0.1);
position: relative;
margin: 0 2px;
box-shadow: 0 0 2px rgba(0, 255, 170, 0.3);
animation: hex-pulse 3s infinite alternate;
}
.hex:nth-child(odd) {
animation-delay: 1s;
}
.hex:nth-child(3n) {
animation-delay: 1.5s;
}
.hex:nth-child(3n+1) {
animation-delay: 2s;
}
.hex:before,
.hex:after {
content: "";
position: absolute;
width: 0;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
}
.hex:before {
bottom: 100%;
border-bottom: 8.7px solid rgba(0, 255, 170, 0.1);
}
.hex:after {
top: 100%;
border-top: 8.7px solid rgba(0, 255, 170, 0.1);
}
@keyframes hex-pulse {
0% {
background: rgba(0, 255, 170, 0.05);
}
100% {
background: rgba(0, 255, 170, 0.2);
}
}
.cyber-data-stream {
width: 100%;
height: 30px;
overflow: hidden;
position: relative;
margin-top: 10px;
background: rgba(0, 20, 40, 0.3);
border-top: 1px solid rgba(0, 255, 170, 0.3);
border-bottom: 1px solid rgba(0, 255, 170, 0.3);
}
.data-stream-item {
position: absolute;
font-family: monospace;
font-size: 13px;
color: #00ffaa;
white-space: nowrap;
text-shadow: 0 0 5px rgba(0, 255, 170, 0.5);
animation: data-stream 8s linear infinite;
animation-delay: var(--delay, 0s);
top: 6px;
}
@keyframes data-stream {
0% {
left: 100%;
}
100% {
left: -50%;
}
}
.future-timeline {
width: 80%;
height: 30px;
margin: 10px auto 0;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
}
.timeline-marker {
width: 30px;
height: 30px;
background: rgba(0, 30, 60, 0.6);
border: 1px solid #00ffaa;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
color: #00ffaa;
font-size: 12px;
font-weight: bold;
position: relative;
z-index: 2;
box-shadow: 0 0 10px rgba(0, 255, 170, 0.4);
}
.timeline-progress {
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
height: 3px;
width: 100%;
background: linear-gradient(90deg, #00ffaa, rgba(0, 255, 170, 0.3));
z-index: 1;
animation: timeline-grow 10s infinite alternate;
}
@keyframes timeline-grow {
0% {
width: 0%;
}
30% {
width: 33%;
}
60% {
width: 66%;
}
100% {
width: 100%;
}
}
/* 第8页底部装饰元素 - 团队网络图和协作面板 */
.team-bottom-decor {
position: absolute;
bottom: -100vh; /* 将元素放置在视口之外,非全屏模式下不可见 */
left: 0;
width: 100%;
height: 130px; /* 减小高度从180px到130px */
overflow: hidden;
z-index: 5;
transition: bottom 0.5s ease; /* 平滑过渡效果 */
}
/* 全屏模式下的样式 */
.presentation.fullscreen .team-bottom-decor {
bottom: 0; /* 全屏模式下显示在底部 */
}
/* 移除团队网络图,这是主要造成重叠的元素 */
.team-network-graph {
display: none;
}
/* 优化协作面板 */
.team-collab-panel {
position: relative;
width: 90%;
margin: 10px auto 0;
background: rgba(0, 30, 60, 0.6);
border: 1px solid rgba(0, 255, 200, 0.5);
border-radius: 6px;
padding: 8px 12px; /* 减小内边距 */
box-shadow: 0 0 15px rgba(0, 255, 200, 0.2);
z-index: 10;
backdrop-filter: blur(5px);
}
.panel-header {
display: flex;
align-items: center;
margin-bottom: 6px; /* 减小下边距 */
padding-bottom: 4px;
border-bottom: 1px solid rgba(0, 255, 200, 0.3);
}
.panel-icon {
color: rgba(0, 255, 200, 1);
margin-right: 6px;
font-size: 14px; /* 减小图标大小 */
}
.panel-title {
font-size: 14px; /* 减小字体大小 */
color: rgba(0, 255, 200, 0.9);
flex-grow: 1;
}
.panel-status {
font-size: 12px; /* 减小字体大小 */
color: rgba(0, 255, 200, 0.8);
padding-right: 15px;
position: relative;
}
/* 精简面板内容 */
.panel-content {
display: flex;
flex-direction: column;
gap: 6px; /* 减少间距 */
}
.panel-metric {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 12px; /* 减小字体大小 */
}
.metric-label {
width: 60px; /* 固定宽度 */
color: rgba(0, 255, 200, 0.9);
}
.metric-bar {
flex-grow: 1;
height: 6px; /* 减小高度 */
background: rgba(0, 255, 200, 0.2);
border-radius: 3px;
overflow: hidden;
margin: 0 8px;
}
.metric-value {
width: 30px; /* 固定宽度 */
text-align: right;
color: rgba(0, 255, 200, 1);
}
/* 移除代码片段,简化布局 */
.team-code-snippets {
display: none;
}
/* 缩小并调整徽章位置 */
.team-badges {
position: absolute;
bottom: 5px;
right: 5%;
display: flex;
gap: 12px;
z-index: 5;
}
.team-badge {
width: 24px; /* 减小尺寸 */
height: 24px;
border-radius: 50%;
background: rgba(0, 30, 60, 0.6);
border: 1px solid rgba(0, 255, 200, 0.5);
display: flex;
justify-content: center;
align-items: center;
animation: badge-glow 2s infinite alternate ease-in-out;
}
.team-badge i {
font-size: 12px; /* 减小图标大小 */
color: rgba(0, 255, 200, 0.9);
}
/* 移动端适配 */
@media (max-width: 768px) {
.team-bottom-decor {
height: 100px; /* 更小的高度 */
}
.team-collab-panel {
width: 95%;
padding: 6px 8px;
}
.team-badges {
right: 2%;
gap: 8px;
}
}
/* 团队节点样式 */
.team-node {
position: absolute;
width: 25px; /* 减小节点大小 */
height: 25px;
background: rgba(15, 30, 45, 0.8);
border: 1px solid #00ffaa;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
z-index: 2;
box-shadow: 0 0 10px rgba(0, 255, 170, 0.4);
animation: node-float 4s infinite ease-in-out;
}
.team-node i {
color: #00ffaa;
font-size: 14px;
}
.team-lead {
bottom: 30px; /* 改为从底部定位 */
left: 50%;
transform: translateX(-50%);
width: 30px;
height: 30px;
background: rgba(25, 40, 55, 0.9);
box-shadow: 0 0 15px rgba(0, 255, 170, 0.6);
}
.member-1 {
bottom: 15px;
left: 25%;
animation-delay: 0.5s;
}
.member-2 {
bottom: 25px;
left: 35%;
animation-delay: 1s;
}
.member-3 {
bottom: 25px;
left: 65%;
animation-delay: 1.5s;
}
.member-4 {
bottom: 15px;
left: 75%;
animation-delay: 2s;
}
@keyframes node-float {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-5px);
}
}
/* 团队连接线样式 */
.team-connection {
position: absolute;
height: 2px;
background: linear-gradient(90deg, rgba(0, 255, 170, 0.8), rgba(0, 255, 170, 0.3));
z-index: 1;
box-shadow: 0 0 8px rgba(0, 255, 170, 0.4);
animation: connection-pulse 3s infinite;
}
.conn-1 {
width: 60px;
bottom: 25px;
left: 32%;
transform: rotate(15deg);
animation-delay: 0.2s;
}
.conn-2 {
width: 60px;
bottom: 30px;
left: 58%;
transform: rotate(-15deg);
animation-delay: 0.4s;
}
.conn-3 {
width: 50px;
bottom: 20px;
left: 30%;
transform: rotate(-30deg);
animation-delay: 0.6s;
}
.conn-4 {
width: 50px;
bottom: 20px;
left: 70%;
transform: rotate(30deg);
animation-delay: 0.8s;
}
.conn-5 {
width: 80px;
bottom: 30px;
left: 45%;
animation-delay: 1s;
}
.conn-6 {
width: 30px;
bottom: 18px;
left: 78%;
transform: rotate(-25deg);
animation-delay: 1.2s;
}
@keyframes connection-pulse {
0%, 100% {
opacity: 0.4;
}
50% {
opacity: 1;
}
}
/* 协作面板头部样式 */
.panel-header {
height: 25px;
padding: 0 10px;
background: rgba(0, 255, 170, 0.15);
display: flex;
align-items: center;
border-bottom: 1px solid rgba(0, 255, 170, 0.5);
margin-bottom: 8px;
}
.panel-icon {
color: #00ffaa;
margin-right: 8px;
font-size: 12px;
}
.panel-title {
color: #00ffaa;
font-size: 12px;
font-weight: bold;
flex-grow: 1;
}
.panel-status {
color: #00ffaa;
font-size: 11px;
padding: 1px 6px;
background: rgba(0, 40, 20, 0.4);
border-radius: 8px;
position: relative;
}
.panel-status:after {
content: '';
position: absolute;
top: 50%;
right: 6px;
width: 6px;
height: 6px;
background: #00ffaa;
border-radius: 50%;
transform: translateY(-50%);
animation: blink 1.5s infinite;
}
@keyframes blink {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.3;
}
}
.metric-progress {
height: 100%;
background: linear-gradient(90deg, #00ffaa, #00aaff);
width: 0;
animation: progress-fill 3s forwards;
}
.panel-metric:nth-child(1) .metric-progress {
animation-delay: 0.3s;
animation-name: progress-fill;
}
.panel-metric:nth-child(2) .metric-progress {
animation-delay: 0.6s;
animation-name: progress-fill-92;
}
.panel-metric:nth-child(3) .metric-progress {
animation-delay: 0.9s;
animation-name: progress-fill-78;
}
@keyframes progress-fill {
0% {
width: 0;
}
100% {
width: 87%;
}
}
@keyframes progress-fill-92 {
0% {
width: 0;
}
100% {
width: 92%;
}
}
@keyframes progress-fill-78 {
0% {
width: 0;
}
100% {
width: 78%;
}
}
/* 代码行样式 */
.code-line {
line-height: 1.5;
white-space: nowrap;
text-shadow: 0 0 5px rgba(0, 255, 170, 0.5);
font-size: 11px;
}
/* 团队协作平台徽章样式 */
.team-badge {
width: 28px;
height: 28px;
background: rgba(10, 20, 30, 0.6);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
border: 1px solid #00ffaa;
box-shadow: 0 0 10px rgba(0, 255, 170, 0.4);
animation: badge-glow 3s infinite alternate;
}
.team-badge i {
color: #00ffaa;
font-size: 14px;
}
.team-badge:nth-child(2) {
animation-delay: 0.6s;
}
.team-badge:nth-child(3) {
animation-delay: 1.2s;
}
.team-badge:nth-child(4) {
animation-delay: 1.8s;
}
.team-badge:nth-child(5) {
animation-delay: 2.4s;
}
@keyframes badge-glow {
0% {
box-shadow: 0 0 5px rgba(0, 255, 170, 0.4);
}
100% {
box-shadow: 0 0 12px rgba(0, 255, 170, 0.8);
}
}
@keyframes fade-in {
0% {
opacity: 0;
transform: translateY(10px);
}
100% {
opacity: 0.7;
transform: translateY(0);
}
}