diff --git a/css/animations.css b/css/animations.css index 41cc9b3..a0b4152 100644 --- a/css/animations.css +++ b/css/animations.css @@ -267,2449 +267,5 @@ h1, h2, h3, h4 { margin-top: 2rem; } -.trust-indicators { - position: absolute; - bottom: 50px; - left: 50%; - transform: translateX(-50%); - display: flex; - gap: 4rem; - z-index: 3; -} -.indicator { - text-align: center; -} -.indicator-value { - font-size: 2.5rem; - font-weight: 700; - display: block; - color: var(--primary-blue); -} - -.indicator-label { - font-size: 0.9rem; - color: var(--text-dark); -} - -/* Digital Beat Section - Removed */ -.digital-beat { - display: none; -} - -.digital-beat::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: - repeating-linear-gradient( - 0deg, - transparent, - transparent 2px, - rgba(0, 212, 255, 0.03) 2px, - rgba(0, 212, 255, 0.03) 4px - ), - repeating-linear-gradient( - 90deg, - transparent, - transparent 2px, - rgba(0, 212, 255, 0.03) 2px, - rgba(0, 212, 255, 0.03) 4px - ); - pointer-events: none; -} - -.timeline { - position: relative; - padding: 50px 0; - perspective: 1000px; -} - -/* Liquid Timeline */ -.timeline::before { - content: ''; - position: absolute; - left: 50%; - top: 0; - bottom: 0; - width: 4px; - transform: translateX(-50%); - background: transparent; - filter: blur(1px); -} - -.liquid-timeline { - position: absolute; - left: 50%; - top: 0; - bottom: 0; - width: 4px; - transform: translateX(-50%); - overflow: hidden; -} - -.liquid-timeline::before { - content: ''; - position: absolute; - top: -100%; - left: 0; - right: 0; - height: 200%; - background: linear-gradient( - 180deg, - transparent 0%, - var(--accent-blue) 20%, - transparent 40%, - var(--accent-blue) 60%, - transparent 80%, - var(--accent-blue) 100% - ); - animation: liquidFlow 8s linear infinite; -} - -@keyframes liquidFlow { - to { transform: translateY(50%); } -} - -.timeline-item { - display: flex; - align-items: center; - margin-bottom: 80px; - position: relative; - opacity: 0; - transform: translateY(50px) rotateX(-10deg); - transform-style: preserve-3d; - transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); -} - -.timeline-item.visible { - opacity: 1; - transform: translateY(0) rotateX(0); -} - -.timeline-item:nth-child(even) { - flex-direction: row-reverse; -} - -/* Glitch time display */ -.timeline-item::before { - content: attr(data-time); - position: absolute; - left: 50%; - transform: translateX(-50%); - top: -40px; - font-size: 2rem; - font-weight: 700; - font-family: 'Bebas Neue', monospace; - color: var(--accent-blue); - text-shadow: - 2px 2px 0 rgba(255, 0, 128, 0.5), - -2px -2px 0 rgba(0, 255, 255, 0.5); - animation: glitchText 10s infinite; - background: rgba(0, 0, 0, 0.8); - padding: 5px 15px; - border-radius: 20px; - backdrop-filter: blur(10px); -} - -/* Alternate positioning for even items */ -.timeline-item:nth-child(even)::before { - left: calc(50% + 100px); -} - -.timeline-item:nth-child(odd)::before { - left: calc(50% - 100px); -} - -@keyframes glitchText { - 0%, 90%, 100% { - text-shadow: - 2px 2px 0 rgba(255, 0, 128, 0.5), - -2px -2px 0 rgba(0, 255, 255, 0.5); - } - 92% { - text-shadow: - -2px 2px 0 rgba(255, 0, 128, 0.8), - 2px -2px 0 rgba(0, 255, 255, 0.8); - } - 94% { - text-shadow: - 2px -2px 0 rgba(255, 0, 128, 0.5), - -2px 2px 0 rgba(0, 255, 255, 0.5); - } -} - -/* Morphing Icons */ -.timeline-icon { - width: 100px; - height: 100px; - background: rgba(0, 0, 0, 0.8); - border: 2px solid var(--accent-blue); - display: flex; - align-items: center; - justify-content: center; - position: relative; - z-index: 2; - clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); - transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); - animation: iconFloat 6s ease-in-out infinite; -} - -.timeline-item:nth-child(1) .timeline-icon { animation-delay: 0s; } -.timeline-item:nth-child(2) .timeline-icon { animation-delay: 1.5s; } -.timeline-item:nth-child(3) .timeline-icon { animation-delay: 3s; } -.timeline-item:nth-child(4) .timeline-icon { animation-delay: 4.5s; } - -@keyframes iconFloat { - 0%, 100% { transform: translateY(0) rotate(0deg); } - 50% { transform: translateY(-10px) rotate(180deg); } -} - -.timeline-icon::before { - content: ''; - position: absolute; - inset: -20px; - background: radial-gradient(circle, var(--accent-blue), transparent); - opacity: 0.3; - filter: blur(20px); - animation: pulse 2s ease-in-out infinite; -} - -.timeline-icon svg { - width: 50px; - height: 50px; - color: var(--accent-blue); - filter: drop-shadow(0 0 10px currentColor); - animation: iconMorph 4s ease-in-out infinite; -} - -@keyframes iconMorph { - 0%, 100% { transform: scale(1) rotate(0deg); } - 50% { transform: scale(1.2) rotate(90deg); } -} - -/* Holographic content */ -.timeline-content { - flex: 1; - padding: 0 80px; - position: relative; -} - -.timeline-content::before { - content: ''; - position: absolute; - top: -10px; - left: 20px; - right: 20px; - bottom: -10px; - background: linear-gradient( - 135deg, - rgba(0, 212, 255, 0.1), - rgba(255, 0, 128, 0.1) - ); - filter: blur(40px); - opacity: 0; - transition: opacity 0.6s ease; -} - -.timeline-item:hover .timeline-content::before { - opacity: 1; -} - -.timeline-item:nth-child(even) .timeline-content { - text-align: right; -} - -.timeline-content h3 { - font-size: 2.2rem; - margin-bottom: 0.5rem; - background: linear-gradient( - 45deg, - var(--white), - var(--accent-blue), - var(--white) - ); - background-size: 200% 100%; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - animation: shimmer 3s linear infinite; -} - -@keyframes shimmer { - to { background-position: -200% 0; } -} - -.timeline-content p { - opacity: 0.7; - font-size: 1.1rem; - letter-spacing: 0.5px; - position: relative; - padding: 10px 0; -} - -/* Chromatic aberration on hover */ -.timeline-item:hover .timeline-content h3 { - animation: chromaticAberration 0.3s ease-out; -} - -@keyframes chromaticAberration { - 0%, 100% { text-shadow: none; } - 50% { - text-shadow: - -3px 0 rgba(255, 0, 0, 0.5), - 3px 0 rgba(0, 255, 255, 0.5); - } -} - -/* Intelligence Visualization - Neural Network */ -.intelligence-viz { - padding: 100px 0; - background: #000; - position: relative; - overflow: hidden; - min-height: 100vh; -} - -.intelligence-viz::before { - content: ''; - position: absolute; - inset: 0; - background: - radial-gradient(circle at 20% 50%, rgba(0, 212, 255, 0.1) 0%, transparent 50%), - radial-gradient(circle at 80% 50%, rgba(255, 0, 128, 0.1) 0%, transparent 50%); - filter: blur(100px); -} - -/* Dunkler Overlay für bessere Lesbarkeit */ -.intelligence-viz .container { - position: relative; - z-index: 10; -} - -.viz-container { - position: relative; - display: flex; - align-items: center; - justify-content: center; -} - -/* 3D Neural Network Canvas */ -#neuralCanvas { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1; - pointer-events: none; -} - -/* Data Particles */ -.data-particles { - position: absolute; - width: 100%; - height: 100%; - overflow: hidden; -} - -.data-particle { - position: absolute; - width: 4px; - height: 4px; - background: var(--accent-blue); - border-radius: 50%; - filter: blur(1px); - animation: dataFlow 20s linear infinite; -} - -@keyframes dataFlow { - from { - transform: translate(-100px, -100px); - } - to { - transform: translate(calc(100vw + 100px), calc(100vh + 100px)); - } -} - -/* Feature Nodes - Clean Tech Style */ -.feature-nodes { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 60px; - position: relative; - z-index: 3; - padding: 0 40px; -} - -.node { - background: rgba(0, 0, 0, 0.8); - backdrop-filter: blur(5px); - -webkit-backdrop-filter: blur(5px); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 0; - padding: 40px; - cursor: pointer; - transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); - position: relative; - overflow: hidden; - transform-style: preserve-3d; - perspective: 1000px; - clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px)); -} - -/* Holographic Shimmer */ -.node::before { - content: ''; - position: absolute; - top: -200%; - left: -50%; - width: 200%; - height: 400%; - background: linear-gradient( - 45deg, - transparent 30%, - rgba(0, 212, 255, 0.1) 35%, - rgba(255, 0, 128, 0.1) 40%, - transparent 45% - ); - animation: holographicSweep 6s linear infinite; - pointer-events: none; -} - -@keyframes holographicSweep { - to { - transform: translateX(100%) translateY(100%); - } -} - -/* Glitch Effect on Hover */ -.node:hover { - transform: translateY(-10px) rotateX(-5deg); - box-shadow: - 0 20px 40px rgba(0, 212, 255, 0.3), - inset 0 0 20px rgba(0, 212, 255, 0.1); - animation: glitchNode 0.3s ease-out; -} - -@keyframes glitchNode { - 0%, 100% { transform: translateY(-10px) rotateX(-5deg); } - 25% { transform: translateY(-10px) rotateX(-5deg) translateX(-2px); } - 75% { transform: translateY(-10px) rotateX(-5deg) translateX(2px); } -} - -/* ASCII/Matrix Rain Background */ -.node::after { - content: '01001001 01101110 01110100 01100101 01101100'; - position: absolute; - top: 10px; - left: 10px; - right: 10px; - font-family: monospace; - font-size: 10px; - color: rgba(0, 212, 255, 0.1); - word-break: break-all; - line-height: 1.2; - pointer-events: none; - animation: matrixRain 20s linear infinite; -} - -@keyframes matrixRain { - to { transform: translateY(100%); } -} - -.node-icon { - width: 80px; - height: 80px; - margin-bottom: 1.5rem; - filter: drop-shadow(0 0 20px currentColor); - animation: iconPulse 3s ease-in-out infinite; - display: flex; - align-items: center; - justify-content: center; -} - -.node-icon svg { - width: 100%; - height: 100%; - color: var(--accent-blue); -} - -@keyframes iconPulse { - 0%, 100% { transform: scale(1); } - 50% { transform: scale(1.1); } -} - -.node-info h4 { - font-size: 1.8rem; - margin-bottom: 0.8rem; - text-transform: uppercase; - letter-spacing: 2px; - background: linear-gradient( - 90deg, - var(--white), - var(--accent-blue), - var(--white) - ); - background-size: 200% 100%; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - animation: textShimmer 4s linear infinite; -} - -@keyframes textShimmer { - to { background-position: -200% 0; } -} - -.node-info p { - opacity: 0.7; - font-size: 1.1rem; - line-height: 1.6; -} - -/* Chromatic Aberration for Icons */ -.node:hover .node-icon { - animation: chromaticIcon 0.3s ease-out forwards; -} - -@keyframes chromaticIcon { - 0%, 100% { - filter: drop-shadow(0 0 20px currentColor); - } - 50% { - filter: - drop-shadow(-2px 0 0 rgba(255, 0, 0, 0.8)) - drop-shadow(2px 0 0 rgba(0, 255, 255, 0.8)) - drop-shadow(0 0 20px currentColor); - } -} - -/* German Engineering - Matrix Style */ -.german-engineering { - padding: 100px 0; - background: #000; - position: relative; - overflow: hidden; -} - -/* Digital Grid Background */ -.german-engineering::before { - content: ''; - position: absolute; - top: -50px; /* Erweitert über die Grenzen */ - left: -50px; - right: -50px; - bottom: -50px; - background-image: - linear-gradient(rgba(0, 212, 255, 0.1) 1px, transparent 1px), - linear-gradient(90deg, rgba(0, 212, 255, 0.1) 1px, transparent 1px), - radial-gradient(circle at 25% 25%, rgba(0, 212, 255, 0.05) 0%, transparent 50%), - radial-gradient(circle at 75% 75%, rgba(255, 0, 128, 0.05) 0%, transparent 50%); - background-size: 50px 50px, 50px 50px, 100% 100%, 100% 100%; - animation: gridMove 20s linear infinite; - z-index: 0; -} - -@keyframes gridMove { - to { transform: translate(50px, 50px); } -} - -.engineering-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 60px; - position: relative; - z-index: 2; -} - -.engineering-card { - background: rgba(0, 0, 0, 0.8); - border: 1px solid var(--accent-blue); - padding: 50px 40px; - text-align: center; - position: relative; - overflow: hidden; - transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); - clip-path: polygon( - 0 0, - calc(100% - 30px) 0, - 100% 30px, - 100% 100%, - 30px 100%, - 0 calc(100% - 30px) - ); -} - -/* Scanning Line Effect */ -.engineering-card::before { - content: ''; - position: absolute; - top: -100%; - left: 0; - right: 0; - height: 100%; - background: linear-gradient( - 0deg, - transparent 0%, - rgba(0, 212, 255, 0.1) 50%, - transparent 100% - ); - animation: scanCard 6s linear infinite; -} - -@keyframes scanCard { - to { top: 100%; } -} - -.engineering-card:hover { - transform: translateY(-10px) scale(1.02); - border-color: var(--white); - background: rgba(0, 212, 255, 0.05); - box-shadow: - 0 20px 40px rgba(0, 212, 255, 0.4), - inset 0 0 60px rgba(0, 212, 255, 0.1); -} - -/* Tech Icons Container */ -.card-icon { - position: relative; - display: inline-block; - margin-bottom: 30px; - width: 120px; - height: 120px; -} - -/* Rotating Tech Circle */ -.icon-bg { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 100%; - height: 100%; - border: 2px solid rgba(0, 212, 255, 0.3); - border-radius: 50%; - animation: rotateCircle 10s linear infinite; -} - -.icon-bg::before, -.icon-bg::after { - content: ''; - position: absolute; - inset: -10px; - border: 1px solid rgba(0, 212, 255, 0.1); - border-radius: 50%; - animation: rotateCircle 15s linear infinite reverse; -} - -.icon-bg::after { - inset: -20px; - animation-duration: 20s; -} - -@keyframes rotateCircle { - to { transform: translate(-50%, -50%) rotate(360deg); } -} - -.card-icon svg { - position: relative; - z-index: 2; - width: 60px; - height: 60px; - color: var(--accent-blue); - filter: drop-shadow(0 0 20px currentColor); - animation: iconFloat 4s ease-in-out infinite; -} - -@keyframes iconFloat { - 0%, 100% { transform: translateY(0); } - 50% { transform: translateY(-10px); } -} - -.engineering-card h3 { - font-size: 2rem; - margin-bottom: 1rem; - text-transform: uppercase; - letter-spacing: 3px; - background: linear-gradient(45deg, var(--white), var(--accent-blue)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -.engineering-card p { - margin-bottom: 30px; - opacity: 0.7; - font-size: 1.1rem; - line-height: 1.6; -} - -/* Live Progress Bars */ -.stat-bar { - width: 100%; - height: 10px; - background: rgba(0, 0, 0, 0.5); - border: 1px solid rgba(0, 212, 255, 0.2); - position: relative; - overflow: hidden; -} - -.stat-fill { - height: 100%; - background: var(--accent-blue); - position: relative; - animation: fillBar 2s ease-out forwards; -} - -/* Glowing Pulse Effect */ -.stat-fill::after { - content: ''; - position: absolute; - top: 0; - right: 0; - width: 20px; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.8)); - animation: statPulse 2s linear infinite; -} - -@keyframes statPulse { - to { transform: translateX(-200px); } -} - -/* Percentage Display */ -.stat-value { - position: absolute; - right: -40px; - top: 50%; - transform: translateY(-50%); - font-family: 'Bebas Neue', monospace; - font-size: 1.2rem; - color: var(--accent-blue); - text-shadow: 0 0 10px currentColor; -} - -/* Command Center - Living Dashboard */ -.command-center { - padding: 100px 0; - background: #000; - position: relative; - overflow: hidden; -} - -/* Schwarzer Übergang am Ende */ -.command-center::after { - content: ''; - position: absolute; - bottom: -5px; - left: 0; - right: 0; - height: 10px; - background: #000; - z-index: 100; -} - -/* Scanlines Effect */ -.command-center::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: - repeating-linear-gradient( - 0deg, - transparent, - transparent 2px, - rgba(0, 212, 255, 0.03) 2px, - rgba(0, 212, 255, 0.03) 4px - ); - pointer-events: none; - animation: scanlines 8s linear infinite; -} - -@keyframes scanlines { - to { transform: translateY(10px); } -} - -.preview-container { - background: rgba(0, 0, 0, 0.6); - backdrop-filter: blur(20px) saturate(180%); - -webkit-backdrop-filter: blur(20px) saturate(180%); - border: 1px solid rgba(0, 212, 255, 0.3); - border-radius: 20px; - overflow: hidden; - box-shadow: - 0 30px 60px rgba(0, 0, 0, 0.8), - inset 0 0 100px rgba(0, 212, 255, 0.05); - position: relative; -} - -/* Holographic Effect */ -.preview-container::before { - content: ''; - position: absolute; - top: -100%; - left: -100%; - right: -100%; - bottom: -100%; - background: - linear-gradient( - 45deg, - transparent 40%, - rgba(0, 212, 255, 0.1) 50%, - transparent 60% - ); - animation: hologramSweep 4s linear infinite; -} - -@keyframes hologramSweep { - to { transform: translate(100%, 100%); } -} - -.preview-header { - background: rgba(0, 0, 0, 0.8); - padding: 20px 30px; - display: flex; - justify-content: space-between; - align-items: center; - border-bottom: 1px solid rgba(0, 212, 255, 0.2); - position: relative; -} - -/* Glitch Header */ -.preview-header::after { - content: 'COMMAND CENTER'; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - font-size: 0.8rem; - font-family: monospace; - color: rgba(0, 212, 255, 0.1); - letter-spacing: 2px; - pointer-events: none; - animation: glitchHeader 10s infinite; -} - -@keyframes glitchHeader { - 0%, 95%, 100% { opacity: 0; } - 96% { opacity: 1; transform: translate(-50%, -50%) translateX(-2px); } - 97% { opacity: 1; transform: translate(-50%, -50%) translateX(2px); } - 98% { opacity: 1; transform: translate(-50%, -50%) translateY(-2px); } -} - -.window-controls { - display: flex; - gap: 12px; - z-index: 2; -} - -.control { - width: 14px; - height: 14px; - border-radius: 50%; - position: relative; - cursor: pointer; - transition: all 0.3s ease; -} - -.control::before { - content: ''; - position: absolute; - inset: -2px; - border-radius: 50%; - opacity: 0; - transition: opacity 0.3s ease; -} - -.control:hover::before { - opacity: 1; -} - -.control.red { - background: #FF5F56; - box-shadow: 0 0 10px rgba(255, 95, 86, 0.5); -} -.control.red::before { background: rgba(255, 95, 86, 0.3); } - -.control.yellow { - background: #FFBD2E; - box-shadow: 0 0 10px rgba(255, 189, 46, 0.5); -} -.control.yellow::before { background: rgba(255, 189, 46, 0.3); } - -.control.green { - background: #27C93F; - box-shadow: 0 0 10px rgba(39, 201, 63, 0.5); -} -.control.green::before { background: rgba(39, 201, 63, 0.3); } - -.preview-tabs { - display: flex; - gap: 30px; - z-index: 2; -} - -.tab { - background: transparent; - border: none; - color: rgba(255, 255, 255, 0.6); - padding: 10px 20px; - cursor: pointer; - transition: all 0.3s ease; - border-radius: 10px; - text-transform: uppercase; - letter-spacing: 1px; - font-size: 0.9rem; - position: relative; -} - -.tab::before { - content: ''; - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 2px; - background: var(--accent-blue); - transform: scaleX(0); - transition: transform 0.3s ease; -} - -.tab.active, .tab:hover { - color: var(--white); - background: rgba(0, 212, 255, 0.1); -} - -.tab.active::before { - transform: scaleX(1); -} - -.preview-content { - padding: 50px; - position: relative; -} - -.dashboard-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 30px; -} - -/* Living Widgets */ -.widget { - background: rgba(0, 0, 0, 0.4); - backdrop-filter: blur(10px); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 30px; - transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); - position: relative; - overflow: hidden; -} - -/* Data Stream Background */ -.widget::before { - content: attr(data-value); - position: absolute; - font-size: 100px; - font-weight: 700; - top: -20px; - right: -20px; - color: rgba(0, 212, 255, 0.03); - font-family: 'Bebas Neue', monospace; - pointer-events: none; -} - -.widget:hover { - transform: translateY(-5px) scale(1.02); - border-color: var(--accent-blue); - box-shadow: - 0 10px 40px rgba(0, 212, 255, 0.3), - inset 0 0 30px rgba(0, 212, 255, 0.1); -} - -.widget h4 { - font-size: 0.9rem; - margin-bottom: 20px; - text-transform: uppercase; - letter-spacing: 2px; - color: rgba(255, 255, 255, 0.5); - font-weight: 600; -} - -/* Animated Threat Level */ -.threat-indicator { - padding: 15px 25px; - border-radius: 10px; - text-align: center; - font-weight: 700; - letter-spacing: 2px; - position: relative; - overflow: hidden; - text-transform: uppercase; -} - -.threat-indicator::before { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); - animation: threatSweep 3s infinite; -} - -@keyframes threatSweep { - to { left: 100%; } -} - -.threat-indicator.low { - background: linear-gradient(135deg, #1a5f1a, #2d7a2d); - color: #4CAF50; - text-shadow: 0 0 20px currentColor; - box-shadow: - inset 0 0 20px rgba(76, 175, 80, 0.3), - 0 0 30px rgba(76, 175, 80, 0.2); -} - -/* Live Counting Numbers */ -.case-count, .time-display { - font-size: 3rem; - font-weight: 700; - font-family: 'Bebas Neue', monospace; - background: linear-gradient(45deg, var(--accent-blue), var(--white)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - text-shadow: 0 0 30px rgba(0, 212, 255, 0.5); - display: inline-block; - min-width: 100px; -} - -/* 3D Terrain Map */ -.map-view { - position: relative; -} - -.map-placeholder { - height: 200px; - background: #000; - border-radius: 10px; - position: relative; - overflow: hidden; -} - -/* Topographic Grid */ -.map-placeholder::before { - content: ''; - position: absolute; - inset: 0; - background-image: - linear-gradient(rgba(0, 212, 255, 0.1) 1px, transparent 1px), - linear-gradient(90deg, rgba(0, 212, 255, 0.1) 1px, transparent 1px); - background-size: 20px 20px; - transform: perspective(500px) rotateX(60deg); - transform-origin: center bottom; -} - -/* Radar Sweep */ -.map-placeholder::after { - content: ''; - position: absolute; - top: 50%; - left: 50%; - width: 200%; - height: 200%; - background: conic-gradient( - from 0deg, - transparent 0deg, - rgba(0, 212, 255, 0.3) 30deg, - transparent 60deg - ); - transform: translate(-50%, -50%); - animation: radarSweep 4s linear infinite; -} - -@keyframes radarSweep { - to { transform: translate(-50%, -50%) rotate(360deg); } -} - -/* Active Points */ -.map-points { - position: absolute; - inset: 0; -} - -.map-point { - position: absolute; - width: 8px; - height: 8px; - background: var(--accent-blue); - border-radius: 50%; - box-shadow: 0 0 20px currentColor; - animation: pointPulse 2s ease-in-out infinite; -} - -@keyframes pointPulse { - 0%, 100% { - transform: scale(1); - opacity: 1; - } - 50% { - transform: scale(1.5); - opacity: 0.6; - } -} - -/* Final CTA - Futuristic Design */ -.final-cta { - padding: 150px 0; - background: #000; - text-align: center; - position: relative; - overflow: hidden; - margin-top: -10px; /* Starke Überlappung */ - z-index: 10; /* Definitiv über Command Center */ - box-shadow: 0 -10px 20px rgba(0, 0, 0, 1); /* Schatten nach oben */ -} - -/* Matrix Rain Background */ -.final-cta::before { - content: '10110101 00101011 11010010 01001101 10110101 00101011 11010010 01001101'; - position: absolute; - top: -100%; - left: 0; - right: 0; - height: 200%; - font-family: monospace; - font-size: 20px; - color: rgba(0, 212, 255, 0.05); - word-break: break-all; - line-height: 1.2; - animation: matrixFall 20s linear infinite; - pointer-events: none; -} - -@keyframes matrixFall { - to { transform: translateY(50%); } -} - -/* Holographic Grid */ -.final-cta::after { - content: ''; - position: absolute; - inset: 0; - background-image: - linear-gradient(rgba(0, 212, 255, 0.03) 1px, transparent 1px), - linear-gradient(90deg, rgba(0, 212, 255, 0.03) 1px, transparent 1px); - background-size: 100px 100px; - animation: gridShift 10s linear infinite; -} - -@keyframes gridShift { - to { transform: translate(100px, 100px); } -} - -.cta-content { - position: relative; - z-index: 2; -} - -.cta-title { - font-size: 4rem; - margin-bottom: 1.5rem; - text-transform: uppercase; - letter-spacing: 4px; - position: relative; - display: inline-block; -} - -/* Glitch Title Effect */ -.cta-title::before, -.cta-title::after { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -.cta-title::before { - animation: glitchCTA1 0.5s infinite; - color: rgba(0, 212, 255, 0.8); - z-index: -1; -} - -.cta-title::after { - animation: glitchCTA2 0.5s infinite; - color: rgba(255, 0, 128, 0.8); - z-index: -2; -} - -@keyframes glitchCTA1 { - 0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); } - 20% { clip-path: inset(20% 0 60% 0); transform: translate(-2px, 2px); } - 40% { clip-path: inset(50% 0 20% 0); transform: translate(2px, -2px); } - 60% { clip-path: inset(80% 0 0 0); transform: translate(-1px, 1px); } -} - -@keyframes glitchCTA2 { - 0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); } - 30% { clip-path: inset(10% 0 80% 0); transform: translate(2px, -1px); } - 50% { clip-path: inset(40% 0 40% 0); transform: translate(-2px, 2px); } - 70% { clip-path: inset(70% 0 10% 0); transform: translate(1px, -2px); } -} - -.cta-subtitle { - font-size: 1.5rem; - margin-bottom: 4rem; - opacity: 0.7; - letter-spacing: 2px; - animation: fadeInOut 4s ease-in-out infinite; -} - -@keyframes fadeInOut { - 0%, 100% { opacity: 0.7; } - 50% { opacity: 1; } -} - -/* Futuristic CTA Buttons */ -.cta-buttons { - display: flex; - gap: 40px; - justify-content: center; - margin-bottom: 80px; -} - -.cta-buttons .primary-button, -.cta-buttons .secondary-button { - position: relative; - padding: 20px 40px; - font-size: 1.2rem; - text-transform: uppercase; - letter-spacing: 2px; - overflow: hidden; - clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px)); -} - -.cta-buttons .primary-button::before { - content: ''; - position: absolute; - top: -2px; - left: -2px; - right: -2px; - bottom: -2px; - background: linear-gradient(45deg, var(--accent-blue), transparent, var(--accent-blue)); - animation: rotateGradient 3s linear infinite; - z-index: -1; -} - -@keyframes rotateGradient { - to { transform: rotate(360deg); } -} - -.cta-buttons .secondary-button { - background: transparent; - border: 2px solid var(--accent-blue); - position: relative; -} - -.cta-buttons .secondary-button::after { - content: ''; - position: absolute; - top: 0; - left: -100%; - width: 100%; - height: 100%; - background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.4), transparent); - animation: buttonSweep 3s infinite; -} - -@keyframes buttonSweep { - to { left: 100%; } -} - -/* Certification Cards */ -.certifications { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 30px; - max-width: 600px; - margin: 0 auto; -} - -.cert-card { - background: rgba(0, 0, 0, 0.6); - border: 1px solid rgba(0, 212, 255, 0.2); - padding: 30px; - position: relative; - overflow: hidden; - transition: all 0.3s ease; -} - - -.cert-card:hover { - transform: translateY(-5px); - border-color: var(--accent-blue); - box-shadow: 0 10px 30px rgba(0, 212, 255, 0.3); -} - -.cert-icon { - width: 60px; - height: 60px; - margin: 0 auto 15px; - display: flex; - align-items: center; - justify-content: center; -} - -.cert-icon svg { - width: 100%; - height: 100%; - color: var(--accent-blue); - filter: drop-shadow(0 0 10px currentColor); -} - -.cert-name { - font-family: 'Bebas Neue', monospace; - font-size: 1.2rem; - letter-spacing: 2px; - color: rgba(255, 255, 255, 0.8); -} - -/* Footer */ -.footer { - background: #000; - padding: 80px 0 30px; - position: relative; - overflow: hidden; -} - -/* Animated Grid Background */ -.footer::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-image: - linear-gradient(rgba(0, 212, 255, 0.05) 1px, transparent 1px), - linear-gradient(90deg, rgba(0, 212, 255, 0.05) 1px, transparent 1px); - background-size: 50px 50px; - animation: gridSlide 20s linear infinite; - pointer-events: none; -} - -/* Top Border Animation */ -.footer::after { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - height: 2px; - background: linear-gradient( - 90deg, - transparent, - var(--accent-blue) 20%, - var(--accent-blue) 80%, - transparent - ); - animation: borderGlow 3s ease-in-out infinite; -} - -@keyframes borderGlow { - 0%, 100% { opacity: 0.5; transform: scaleX(0.5); } - 50% { opacity: 1; transform: scaleX(1); } -} - -.footer-content { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 60px; - margin-bottom: 60px; - position: relative; - z-index: 2; -} - -/* Logo Section Enhancement */ -.footer-section:first-child { - position: relative; -} - -.footer-section:first-child::before { - content: ''; - position: absolute; - top: -20px; - left: -20px; - width: 100px; - height: 100px; - background: radial-gradient(circle, rgba(0, 212, 255, 0.2), transparent); - filter: blur(40px); - animation: pulse 4s ease-in-out infinite; -} - -.footer-section h4 { - font-size: 1.5rem; - margin-bottom: 25px; - text-transform: uppercase; - letter-spacing: 2px; - position: relative; - display: inline-block; - background: linear-gradient(45deg, var(--white), var(--accent-blue)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; -} - -/* Animated underline for headers */ -.footer-section h4::after { - content: ''; - position: absolute; - bottom: -5px; - left: 0; - width: 50px; - height: 2px; - background: var(--accent-blue); - box-shadow: 0 0 10px var(--accent-blue); - animation: expandWidth 2s ease-out forwards; -} - -@keyframes expandWidth { - from { width: 0; } - to { width: 50px; } -} - -.footer-section ul { - list-style: none; -} - -.footer-section ul li { - margin-bottom: 15px; - position: relative; - padding-left: 20px; -} - -/* Animated bullet points */ -.footer-section ul li::before { - content: ''; - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); - width: 6px; - height: 6px; - background: var(--accent-blue); - border-radius: 50%; - box-shadow: 0 0 10px var(--accent-blue); - animation: bulletPulse 2s ease-in-out infinite; -} - -@keyframes bulletPulse { - 0%, 100% { transform: translateY(-50%) scale(1); opacity: 0.5; } - 50% { transform: translateY(-50%) scale(1.5); opacity: 1; } -} - -.footer-section a { - color: var(--white); - text-decoration: none; - opacity: 0.7; - transition: all 0.3s ease; - position: relative; - display: inline-block; -} - -.footer-section a:hover { - opacity: 1; - color: var(--accent-blue); - transform: translateX(5px); -} - -/* Glitch effect on hover */ -.footer-section a:hover::before { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - animation: glitchText 0.3s ease-out; -} - -/* Contact info styling */ -.footer-section p { - opacity: 0.8; - margin-bottom: 10px; -} - -/* Only apply icons to contact section */ -.footer-section:last-child p { - display: flex; - align-items: center; - gap: 10px; -} - -/* Add icons for contact */ -.footer-section:last-child p::before { - content: ''; - width: 20px; - height: 20px; - display: inline-block; - background: var(--accent-blue); - mask-size: contain; - -webkit-mask-size: contain; -} - -.footer-section:last-child p:first-of-type::before { - -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); -} - -.footer-section:last-child p:last-of-type::before { - -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); - mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); -} - -/* Copyright section */ -.copyright { - margin-top: 60px; - padding-top: 40px; - border-top: 1px solid rgba(0, 212, 255, 0.1); - font-size: 0.9rem; - opacity: 0.6; - text-align: center; - position: relative; -} - -/* Bottom decoration */ -.footer-content::after { - content: ''; - position: absolute; - bottom: -50px; - right: -50px; - width: 200px; - height: 200px; - background: radial-gradient(circle, rgba(0, 212, 255, 0.1), transparent); - filter: blur(60px); - animation: float 6s ease-in-out infinite; -} - -/* Animations */ -@keyframes fadeInUp { - to { - opacity: 1; - transform: translateY(0); - } -} - -@keyframes fadeIn { - from { opacity: 0; } - to { opacity: 1; } -} - -/* Noise/Grain Effect */ -body::after { - content: ''; - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - pointer-events: none; - opacity: 0.02; - z-index: 10000; - background-image: - repeating-radial-gradient( - circle at 0 0, - transparent 0, - #000 1px, - transparent 2px, - transparent 4px - ); - animation: grain 8s steps(10) infinite; -} - -@keyframes grain { - 0%, 100% { transform: translate(0, 0); } - 10% { transform: translate(-5%, -10%); } - 20% { transform: translate(-15%, 5%); } - 30% { transform: translate(7%, -25%); } - 40% { transform: translate(-5%, 25%); } - 50% { transform: translate(-15%, 10%); } - 60% { transform: translate(15%, 0%); } - 70% { transform: translate(0%, 15%); } - 80% { transform: translate(3%, 35%); } - 90% { transform: translate(-10%, 10%); } -} - -/* Section Transitions - REMOVED */ - -/* About Section Styles */ -.about-section { - padding: 100px 0; - background: #0a0a0a; - position: relative; -} - -.about-tabs { - display: flex; - justify-content: center; - gap: 2rem; - margin-bottom: 3rem; -} - -.about-tab { - background: transparent; - border: 2px solid rgba(0, 212, 255, 0.3); - color: var(--white); - padding: 1rem 2rem; - border-radius: 30px; - cursor: pointer; - transition: all 0.3s ease; - font-weight: 600; - position: relative; - overflow: hidden; -} - -.about-tab:hover { - border-color: var(--accent-blue); - transform: translateY(-2px); -} - -.about-tab.active { - background: var(--accent-blue); - color: var(--dark-blue); - border-color: var(--accent-blue); -} - -.about-content { - max-width: 1000px; - margin: 0 auto; -} - -.about-panel { - display: none; - animation: fadeIn 0.5s ease; -} - -.about-panel.active { - display: block; -} - -.panel-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 3rem; - align-items: center; -} - -.panel-text h3 { - font-size: 2rem; - margin-bottom: 1rem; - color: var(--accent-blue); -} - -.panel-text p { - margin-bottom: 1rem; - line-height: 1.8; -} - -.location-badge { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 1rem; - background: rgba(0, 212, 255, 0.1); - border: 1px solid rgba(0, 212, 255, 0.3); - border-radius: 20px; - margin-top: 1rem; -} - -.location-badge svg { - width: 20px; - height: 20px; -} - -.shield-animation svg { - width: 100%; - height: auto; - animation: shieldPulse 3s ease-in-out infinite; -} - -@keyframes shieldPulse { - 0%, 100% { transform: scale(1); } - 50% { transform: scale(1.05); } -} - -.mission-grid { - text-align: center; -} - -.mission-statement { - margin-bottom: 3rem; -} - -.values-grid { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 2rem; - margin-bottom: 2rem; -} - -.value-card { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 2rem; - transition: all 0.3s ease; -} - -.value-card:hover { - transform: translateY(-5px); - background: rgba(0, 212, 255, 0.1); - border-color: var(--accent-blue); -} - -.value-icon { - width: 50px; - height: 50px; - margin: 0 auto 1rem; -} - -.value-icon svg { - width: 100%; - height: 100%; -} - -.principle-note { - background: rgba(0, 212, 255, 0.1); - border-left: 3px solid var(--accent-blue); - padding: 1rem 2rem; - margin-top: 2rem; -} - -.competencies-list { - display: grid; - gap: 2rem; -} - -.competency-item { - display: flex; - gap: 2rem; - align-items: center; - padding: 1.5rem; - background: rgba(0, 212, 255, 0.05); - border-radius: 10px; - transition: all 0.3s ease; -} - -.competency-item:hover { - background: rgba(0, 212, 255, 0.1); - transform: translateX(10px); -} - -.competency-number { - font-size: 3rem; - font-weight: bold; - color: var(--accent-blue); - opacity: 0.5; -} - -.competency-content h4 { - margin-bottom: 0.5rem; - color: var(--accent-blue); -} - -.why-grid { - display: grid; - grid-template-columns: repeat(2, 1fr); - gap: 2rem; -} - -.why-card { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 2rem; - transition: all 0.3s ease; -} - -.why-card:hover { - transform: translateY(-5px); - background: rgba(0, 212, 255, 0.1); - border-color: var(--accent-blue); -} - -.why-icon { - width: 60px; - height: 60px; - margin-bottom: 1rem; -} - -.why-icon svg { - width: 100%; - height: 100%; -} - -/* Products Section Styles */ -.products-section { - padding: 100px 0; - background: #000; - position: relative; -} - -.product-showcase { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 20px; - padding: 3rem; - margin-bottom: 3rem; -} - -.product-header { - text-align: center; - margin-bottom: 3rem; -} - -.product-header h3 { - font-size: 2.5rem; - color: var(--accent-blue); - margin-bottom: 1rem; -} - -.product-description { - max-width: 800px; - margin: 0 auto; - line-height: 1.8; -} - -.tools-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; - margin-bottom: 3rem; -} - -.tool-card { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 2rem; - transition: all 0.3s ease; - cursor: pointer; -} - -.tool-card:hover { - transform: translateY(-5px); - background: rgba(0, 212, 255, 0.1); - border-color: var(--accent-blue); - box-shadow: 0 10px 30px rgba(0, 212, 255, 0.3); -} - -.tool-icon { - width: 60px; - height: 60px; - margin-bottom: 1rem; -} - -.tool-icon svg { - width: 100%; - height: 100%; -} - -.tool-card h4 { - color: var(--accent-blue); - margin-bottom: 1rem; -} - -.tool-features ul { - list-style: none; -} - -.tool-features li { - position: relative; - padding-left: 25px; - margin-bottom: 0.8rem; - line-height: 1.6; -} - -.tool-features li::before { - content: '→'; - position: absolute; - left: 0; - color: var(--accent-blue); -} - -.product-cta { - text-align: center; - display: flex; - gap: 1rem; - justify-content: center; -} - -.product-protected { - background: linear-gradient(135deg, rgba(35, 45, 83, 0.1), rgba(0, 212, 255, 0.05)); - border: 2px solid var(--accent-blue); - border-radius: 20px; - padding: 3rem; - text-align: center; -} - -.protected-header { - margin-bottom: 2rem; -} - -.lock-icon { - width: 80px; - height: 80px; - margin: 0 auto 1rem; -} - -.lock-icon svg { - width: 100%; - height: 100%; - animation: lockPulse 2s ease-in-out infinite; -} - -@keyframes lockPulse { - 0%, 100% { transform: scale(1); opacity: 0.8; } - 50% { transform: scale(1.1); opacity: 1; } -} - -.protected-notice { - color: var(--accent-blue); - font-size: 1.2rem; - margin-top: 0.5rem; -} - -/* Contact Section Styles */ -.contact-section { - padding: 100px 0; - background: #0a0a0a; -} - -.contact-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 4rem; - margin-bottom: 3rem; -} - -.contact-form { - display: grid; - gap: 1.5rem; -} - -.form-group { - display: flex; - flex-direction: column; -} - -.form-group label { - margin-bottom: 0.5rem; - font-weight: 600; - color: var(--accent-blue); -} - -.form-group input, -.form-group textarea { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - color: var(--white); - padding: 1rem; - border-radius: 10px; - transition: all 0.3s ease; -} - -.form-group input:focus, -.form-group textarea:focus { - outline: none; - border-color: var(--accent-blue); - background: rgba(0, 212, 255, 0.1); -} - -.checkbox-label { - display: flex; - align-items: center; - gap: 0.5rem; - cursor: pointer; -} - -.checkbox-label input[type="checkbox"] { - width: 20px; - height: 20px; - cursor: pointer; -} - -.checkbox-label a { - color: var(--accent-blue); - text-decoration: underline; -} - -.contact-items { - display: grid; - gap: 2rem; -} - -.contact-item { - display: flex; - gap: 1rem; - align-items: start; -} - -.contact-icon { - width: 40px; - height: 40px; - flex-shrink: 0; -} - -.contact-icon svg { - width: 100%; - height: 100%; -} - -.contact-details h4 { - color: var(--accent-blue); - margin-bottom: 0.5rem; -} - -.contact-details a { - color: var(--white); - text-decoration: none; - transition: color 0.3s ease; -} - -.contact-details a:hover { - color: var(--accent-blue); -} - -.secure-note { - font-size: 0.9rem; - opacity: 0.7; - margin-top: 0.5rem; -} - -.security-notice { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 1.5rem; - display: flex; - gap: 1rem; - align-items: center; - margin-top: 2rem; -} - -.notice-icon { - width: 50px; - height: 50px; - flex-shrink: 0; -} - -.notice-icon svg { - width: 100%; - height: 100%; -} - -.notice-text h4 { - color: var(--accent-blue); - margin-bottom: 0.5rem; -} - -.cta-banner { - background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(35, 45, 83, 0.1)); - border-radius: 20px; - padding: 3rem; - text-align: center; -} - -/* Legal Section Styles */ -.legal-section { - padding: 100px 0; - background: #000; -} - -.legal-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 3rem; -} - -.legal-card { - background: rgba(0, 212, 255, 0.05); - border: 1px solid rgba(0, 212, 255, 0.2); - border-radius: 15px; - padding: 2rem; -} - -.legal-card h3 { - color: var(--accent-blue); - margin-bottom: 1.5rem; - font-size: 1.8rem; -} - -.legal-content { - line-height: 1.8; -} - -.legal-content h4 { - color: var(--accent-blue); - margin: 1.5rem 0 0.5rem; -} - -.legal-content p { - margin-bottom: 1rem; -} - -/* Section Transitions - REMOVED */ - -/* Circuit Board Transition */ -.transition-circuit { - background: #000; - position: relative; -} - -.transition-circuit::before { - content: ''; - position: absolute; - inset: 0; - background-image: - linear-gradient(90deg, transparent 45%, rgba(0, 212, 255, 0.2) 45%, rgba(0, 212, 255, 0.2) 55%, transparent 55%), - linear-gradient(0deg, transparent 45%, rgba(0, 212, 255, 0.2) 45%, rgba(0, 212, 255, 0.2) 55%, transparent 55%); - background-size: 40px 40px; - animation: circuitPulse 4s ease-in-out infinite; -} - -.transition-circuit::after { - content: ''; - position: absolute; - inset: 0; - background: - radial-gradient(circle at 20% 50%, rgba(0, 212, 255, 0.4) 0%, transparent 4%), - radial-gradient(circle at 40% 30%, rgba(0, 212, 255, 0.4) 0%, transparent 4%), - radial-gradient(circle at 60% 70%, rgba(0, 212, 255, 0.4) 0%, transparent 4%), - radial-gradient(circle at 80% 40%, rgba(0, 212, 255, 0.4) 0%, transparent 4%); - background-size: 100% 100%; - animation: nodePulse 2s ease-in-out infinite; -} - -@keyframes circuitPulse { - 0%, 100% { opacity: 0.5; } - 50% { opacity: 1; } -} - -@keyframes nodePulse { - 0%, 100% { transform: scale(1); opacity: 1; } - 50% { transform: scale(1.2); opacity: 0.6; } -} - -/* Data Flow Transition */ -.transition-dataflow { - background: #000; - position: relative; -} - -.transition-dataflow::before { - content: '0101010110101011101010101101010111010101011010101110101010110101'; - position: absolute; - top: 0; - left: -100%; - right: -100%; - bottom: 0; - font-family: monospace; - font-size: 20px; - color: rgba(0, 212, 255, 0.1); - display: flex; - align-items: center; - justify-content: center; - letter-spacing: 5px; - animation: dataStream 10s linear infinite; - white-space: nowrap; -} - -.transition-dataflow::after { - content: ''; - position: absolute; - inset: 0; - background: linear-gradient(90deg, - transparent 0%, - rgba(0, 212, 255, 0.2) 45%, - rgba(0, 212, 255, 0.4) 50%, - rgba(0, 212, 255, 0.2) 55%, - transparent 100% - ); - animation: dataWave 3s linear infinite; -} - -@keyframes dataStream { - to { transform: translateX(50%); } -} - -@keyframes dataWave { - to { transform: translateX(100%); } -} - -/* Neural Wave Transition */ -.transition-neural { - background: #000; - position: relative; -} - -.transition-neural svg { - position: absolute; - width: 100%; - height: 100%; -} - -.transition-neural path { - fill: none; - stroke: rgba(0, 212, 255, 0.3); - stroke-width: 2; - animation: waveAnimation 4s ease-in-out infinite; -} - -@keyframes waveAnimation { - 0%, 100% { - d: path("M0,100 Q250,50 500,100 T1000,100 L1000,200 L0,200 Z"); - } - 50% { - d: path("M0,100 Q250,150 500,100 T1000,100 L1000,200 L0,200 Z"); - } -} - -/* Glitch Bars Transition */ -.transition-glitch { - background: #000; - position: relative; -} - -.glitch-bar { - position: absolute; - left: 0; - right: 0; - height: 4px; - background: var(--accent-blue); - animation: glitchBar 3s linear infinite; -} - -.glitch-bar:nth-child(1) { top: 20%; animation-delay: 0s; } -.glitch-bar:nth-child(2) { top: 40%; animation-delay: 0.5s; } -.glitch-bar:nth-child(3) { top: 60%; animation-delay: 1s; } -.glitch-bar:nth-child(4) { top: 80%; animation-delay: 1.5s; } - -@keyframes glitchBar { - 0%, 10%, 90%, 100% { - transform: translateX(0) scaleX(1); - opacity: 1; - } - 45% { - transform: translateX(-10%) scaleX(0.8); - opacity: 0.5; - } - 50% { - transform: translateX(10%) scaleX(1.2); - opacity: 0.8; - } - 55% { - transform: translateX(-5%) scaleX(0.5); - opacity: 1; - } -} - -/* Tech Grid Transition */ -.transition-techgrid { - background: #000; - position: relative; - clip-path: polygon( - 0 0, 100% 0, - 100% 30%, 95% 35%, 90% 30%, 85% 35%, 80% 30%, 75% 35%, 70% 30%, 65% 35%, 60% 30%, 55% 35%, 50% 30%, 45% 35%, 40% 30%, 35% 35%, 30% 30%, 25% 35%, 20% 30%, 15% 35%, 10% 30%, 5% 35%, 0 30%, - 0 70%, 5% 65%, 10% 70%, 15% 65%, 20% 70%, 25% 65%, 30% 70%, 35% 65%, 40% 70%, 45% 65%, 50% 70%, 55% 65%, 60% 70%, 65% 65%, 70% 70%, 75% 65%, 80% 70%, 85% 65%, 90% 70%, 95% 65%, 100% 70%, - 100% 100%, 0 100% - ); -} - -.transition-techgrid::before { - content: ''; - position: absolute; - inset: 0; - background: - repeating-linear-gradient(90deg, - transparent, - transparent 10px, - rgba(0, 212, 255, 0.1) 10px, - rgba(0, 212, 255, 0.1) 11px - ), - repeating-linear-gradient(0deg, - transparent, - transparent 10px, - rgba(0, 212, 255, 0.1) 10px, - rgba(0, 212, 255, 0.1) 11px - ); - animation: gridSlide 5s linear infinite; -} - -@keyframes gridSlide { - to { transform: translate(11px, 11px); } -} - -/* Parallax Sections */ -section { - position: relative; -} - -.parallax-bg { - position: absolute; - top: -20%; - left: 0; - right: 0; - bottom: -20%; - background-attachment: fixed; - background-position: center; - background-size: cover; - opacity: 0.1; - z-index: -1; -} - -/* Responsive Design */ -@media (max-width: 768px) { - .nav-menu { - display: none; - } - - .main-title { - font-size: 3rem; - } - - .section-title { - font-size: 2.5rem; - } - - /* Video on mobile */ - .hero-video { - width: 100%; - height: 100%; - } - - .timeline::before { - left: 30px; - } - - .timeline-item { - flex-direction: row !important; - } - - .timeline-item::before { - left: 30px; - transform: translateX(0); - } - - .timeline-content { - text-align: left !important; - padding-left: 100px !important; - } - - .feature-nodes { - grid-template-columns: 1fr; - } - - .cta-buttons { - flex-direction: column; - align-items: center; - } - - .trust-indicators { - gap: 2rem; - } - - .engineering-grid { - grid-template-columns: 1fr; - } -} - -/* Accessibility - Keyboard Navigation */ -*:focus { - outline: 3px solid var(--accent-blue); - outline-offset: 2px; -} - -button:focus, -a:focus { - outline: 3px solid var(--accent-blue); - outline-offset: 2px; -} - -/* Skip Navigation Link */ -.skip-nav { - position: absolute; - top: -40px; - left: 0; - background: var(--primary-blue); - color: var(--white); - padding: 8px; - text-decoration: none; - z-index: 100; -} - -.skip-nav:focus { - top: 0; -} - -/* Additional Accessibility for Interactive Elements */ -.timeline-item:focus-within { - transform: scale(1.05); -} - -.node:focus { - transform: translateY(-5px); - box-shadow: 0 10px 40px rgba(0, 212, 255, 0.3); -} - -.node:focus .node-info { - opacity: 1; - transform: translateY(0); -} - -.tab:focus { - background: var(--accent-blue); - color: var(--dark-blue); -} - -/* Make hover effects work on focus too */ -.timeline-item:focus-within .timeline-icon, -.timeline-item:hover .timeline-icon { - transform: scale(1.1); - border-color: var(--white); -} - -.shield:focus { - transform: scale(1.1); -} - -/* Reduced Motion */ -@media (prefers-reduced-motion: reduce) { - *, - *::before, - *::after { - animation-duration: 0.01ms !important; - animation-iteration-count: 1 !important; - transition-duration: 0.01ms !important; - } - - .stream, - .hero-title span, - .shield, - .indicator-value { - animation: none !important; - } -} \ No newline at end of file diff --git a/js/animations-enhanced.js b/js/animations-enhanced.js index 9543cb2..3cb5c29 100644 --- a/js/animations-enhanced.js +++ b/js/animations-enhanced.js @@ -12,7 +12,6 @@ const EnhancedAnimations = { this.initCardTilt(); this.initSmoothScroll(); this.initCursorEffects(); - this.initNumberCounters(); this.initRevealOnScroll(); this.initNavbarEffects(); }, @@ -157,55 +156,6 @@ const EnhancedAnimations = { return; }, - // Animated number counters - initNumberCounters() { - const counters = document.querySelectorAll('.indicator-value'); - const animationDuration = 2000; - let hasAnimated = false; - - const animateCounters = () => { - if (hasAnimated) return; - - counters.forEach(counter => { - const target = parseFloat(counter.dataset.target); - const start = 0; - const increment = target / (animationDuration / 16); - let current = start; - - const updateCounter = () => { - current += increment; - if (current < target) { - counter.textContent = Math.floor(current); - requestAnimationFrame(updateCounter); - } else { - counter.textContent = target % 1 === 0 ? target : target.toFixed(1); - } - }; - - updateCounter(); - }); - - hasAnimated = true; - }; - - // Trigger on scroll into view - const observerOptions = { - threshold: 0.5 - }; - - const observer = new IntersectionObserver((entries) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - animateCounters(); - } - }); - }, observerOptions); - - const indicatorsSection = document.querySelector('.trust-indicators'); - if (indicatorsSection) { - observer.observe(indicatorsSection); - } - }, // Reveal elements on scroll initRevealOnScroll() { diff --git a/js/config.js b/js/config.js index 8033ce4..5bf322e 100644 --- a/js/config.js +++ b/js/config.js @@ -24,7 +24,6 @@ const CONFIG = { ROTATION_INTERVAL: 12000, // 12 seconds per video (slower like Palantir) FADE_DURATION: 3000, // 3 second fade transition (much slower) VIDEO_SOURCES: [ - 'assets/videos/hero-tech-pattern.mp4', 'assets/videos/hero-data-flow.mp4', 'assets/videos/hero-network-viz.mp4', 'assets/videos/hero-code-abstract.mp4' @@ -74,9 +73,6 @@ const SELECTORS = { PARTICLE_CANVAS: '#particleCanvas', SCROLL_INDICATOR: '.scroll-indicator', - // Trust Indicators - TRUST_INDICATORS: '.trust-indicators', - INDICATOR_VALUE: '.indicator-value', // About Section ABOUT_TABS: '.about-tab', diff --git a/js/translations.js b/js/translations.js index 1989a16..29e4c1c 100644 --- a/js/translations.js +++ b/js/translations.js @@ -22,9 +22,6 @@ const translations = { heroSubtitle: 'Spezialist für hochsichere, maßgeschneiderte IT-Lösungen für Behörden', // Trust Indicators - indicatorAvailability: 'Verfügbarkeit', - indicatorTrust: 'Behörden vertrauen uns', - indicatorSupport: 'Support', // Scroll Indicator scrollToExplore: 'Nach unten scrollen', @@ -171,9 +168,6 @@ const translations = { heroSubtitle: 'Specialist for highly secure, customized IT solutions for government agencies', // Trust Indicators - indicatorAvailability: 'Availability', - indicatorTrust: 'Government agencies trust us', - indicatorSupport: 'Support', // Scroll Indicator scrollToExplore: 'Scroll to Explore',