@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@300;400;500;600;700&display=swap');
:root {
--bg-dark: #0a0a0a;
--text-gray: #9ca3af;
--primary-blue: #3b82f6;
--primary-green: #10b981;
--accent-purple: #8b5cf6;
--accent-orange: #f97316;
--accent-pink: #ec4899;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Inter', sans-serif;
background-color: var(--bg-dark);
color: #e5e7eb;
margin: 0;
padding: 0;
overflow-x: hidden;
line-height: 1.6;
}
::selection {
background: rgba(59, 130, 246, 0.3);
color: white;
}
::-moz-selection {
background: rgba(59, 130, 246, 0.3);
color: white;
}
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: #0f0f0f;
}
::-webkit-scrollbar-thumb {
background: #333;
border-radius: 5px;
border: 2px solid #0f0f0f;
}
::-webkit-scrollbar-thumb:hover {
background: #4b5563;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInRight {
from {
opacity: 0;
transform: translateX(-30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes fadeInLeft {
from {
opacity: 0;
transform: translateX(30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes float {
0%, 100% {
transform: translateY(0px);
}
50% {
transform: translateY(-10px);
}
}
@keyframes float-medium {
0%, 100% {
transform: translateY(0px) rotate(3deg);
}
50% {
transform: translateY(-15px) rotate(-1deg);
}
}
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
}
50% {
box-shadow: 0 0 40px rgba(59, 130, 246, 0.6);
}
}
@keyframes gradient-shift {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@keyframes shimmer {
0% {
background-position: -1000px 0;
}
100% {
background-position: 1000px 0;
}
}
@keyframes ripple-animation {
to {
transform: scale(4);
opacity: 0;
}
}
@keyframes border-glow {
0%, 100% {
border-color: rgba(59, 130, 246, 0.3);
}
50% {
border-color: rgba(59, 130, 246, 0.8);
}
}
.animate-fade-in-up {
animation: fadeInUp 0.8s ease-out forwards;
opacity: 0;
transform: translateY(20px);
}
.animate-fade-in-right {
animation: fadeInRight 0.8s ease-out forwards;
opacity: 0;
transform: translateX(-20px);
}
.animate-fade-in-left {
animation: fadeInLeft 0.8s ease-out forwards;
opacity: 0;
transform: translateX(20px);
}
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-500 { animation-delay: 0.5s; }
.float-slow {
animation: float 6s ease-in-out infinite;
}
.float-medium {
animation: float-medium 5s ease-in-out infinite;
}
.pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
}
.gradient-shift {
background-size: 200% 200%;
animation: gradient-shift 4s ease infinite;
}
.text-gradient-blue {
background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 50%, #2563eb 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.text-gradient-green {
background: linear-gradient(135deg, #34d399 0%, #10b981 50%, #059669 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.text-gradient-purple {
background: linear-gradient(135deg, #a78bfa 0%, #8b5cf6 50%, #7c3aed 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.text-gradient-orange {
background: linear-gradient(135deg, #fb923c 0%, #f97316 50%, #ea580c 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.gradient-text {
background: linear-gradient(135deg,
#60a5fa 0%,
#34d399 50%,
#2dd4bf 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
font-weight: 800;
}
.shadow-glow-blue {
box-shadow:
0 10px 40px -10px rgba(59, 130, 246, 0.25),
0 0 20px rgba(59, 130, 246, 0.15);
}
.shadow-glow-green {
box-shadow:
0 10px 40px -10px rgba(16, 185, 129, 0.25),
0 0 20px rgba(16, 185, 129, 0.15);
}
.shadow-glow-purple {
box-shadow:
0 10px 40px -10px rgba(139, 92, 246, 0.25),
0 0 20px rgba(139, 92, 246, 0.15);
}
.glass {
background: rgba(20, 20, 20, 0.7);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border: 1px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.3);
}
.glass-nav {
background: rgba(10, 10, 10, 0.85);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.bg-grid {
background-size: 50px 50px;
background-image:
linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
-webkit-mask-image: linear-gradient(to bottom, black 40%, transparent 100%);
}
.glow-blob {
position: absolute;
width: 600px;
height: 600px;
background: radial-gradient(circle, rgba(56, 189, 248, 0.08) 0%, rgba(0, 0, 0, 0) 70%);
border-radius: 50%;
pointer-events: none;
z-index: 0;
}
.hero-section {
position: relative;
background:
radial-gradient(circle at 20% 50%, rgba(59, 130, 246, 0.15) 0%, transparent 50%),
radial-gradient(circle at 80% 20%, rgba(16, 185, 129, 0.1) 0%, transparent 50%),
linear-gradient(180deg, var(--bg-dark) 0%, #0c0c0c 100%);
}
.hero-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 1px;
background: linear-gradient(90deg,
transparent,
rgba(59, 130, 246, 0.5),
transparent);
}
.hero-card {
background: linear-gradient(145deg, rgba(20, 20, 20, 0.9), rgba(15, 15, 15, 0.9));
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.08);
position: relative;
overflow: hidden;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.hero-card::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.03),
transparent
);
transition: left 0.6s ease;
}
.hero-card:hover::before {
left: 100%;
}
.hero-card:hover {
transform: translateY(-8px) scale(1.02);
border-color: rgba(59, 130, 246, 0.3);
box-shadow:
0 25px 50px -12px rgba(0, 0, 0, 0.5),
0 0 30px rgba(59, 130, 246, 0.2);
}
.feature-card-enhanced {
background: linear-gradient(145deg, #111111, #0d0d0d);
border: 1px solid #1a1a1a;
position: relative;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
overflow: hidden;
z-index: 1;
}
.feature-card-enhanced::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg,
var(--primary-blue) 0%,
var(--primary-green) 50%,
var(--accent-purple) 100%);
transform: scaleX(0);
transform-origin: left;
transition: transform 0.4s ease;
}
.feature-card-enhanced:hover::before {
transform: scaleX(1);
}
.feature-card-enhanced:hover {
transform: translateY(-8px);
border-color: rgba(59, 130, 246, 0.4);
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 30px rgba(59, 130, 246, 0.1);
}
.feature-icon-wrapper {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}
.feature-icon-wrapper::after {
content: '';
position: absolute;
inset: -5px;
background: linear-gradient(45deg, var(--primary-blue), var(--primary-green));
border-radius: inherit;
opacity: 0;
z-index: -1;
transition: opacity 0.3s ease;
}
.feature-card-enhanced:hover .feature-icon-wrapper::after {
opacity: 0.2;
}
.feature-card-enhanced:hover .feature-icon-wrapper {
transform: scale(1.1) rotate(5deg);
}
.safety-card-enhanced {
background: linear-gradient(135deg, rgba(20, 20, 20, 0.8), rgba(15, 15, 15, 0.8));
border: 1px solid rgba(255, 255, 255, 0.05);
position: relative;
overflow: hidden;
}
.safety-card-enhanced::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg,
rgba(16, 185, 129, 0.05) 0%,
rgba(59, 130, 246, 0.05) 100%);
opacity: 0;
transition: opacity 0.3s ease;
}
.safety-card-enhanced:hover::before {
opacity: 1;
}
.use-case-card-enhanced {
background: linear-gradient(145deg, #121212, #0f0f0f);
border: 1px solid #222;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.use-case-card-enhanced::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(135deg,
rgba(59, 130, 246, 0.1) 0%,
rgba(139, 92, 246, 0.1) 50%,
rgba(16, 185, 129, 0.1) 100%);
opacity: 0;
transition: opacity 0.3s ease;
z-index: 0;
}
.use-case-card-enhanced:hover::after {
opacity: 1;
}
.use-case-card-enhanced:hover {
transform: translateY(-5px);
border-color: rgba(59, 130, 246, 0.3);
}
.use-case-card-enhanced > * {
position: relative;
z-index: 1;
}
.btn-glow {
position: relative;
overflow: hidden;
z-index: 1;
transition: all 0.3s ease;
}
.btn-glow::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent
);
transition: left 0.5s ease;
z-index: -1;
}
.btn-glow:hover::before {
left: 100%;
}
.btn-glow:hover {
transform: translateY(-2px);
box-shadow: 0 10px 30px rgba(59, 130, 246, 0.3);
}
.btn-primary {
background: linear-gradient(90deg, #2563eb, #1d4ed8);
position: relative;
overflow: hidden;
transition: all 0.3s ease;
z-index: 1;
}
.btn-primary::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(90deg, #1d4ed8, #2563eb);
opacity: 0;
z-index: -1;
transition: opacity 0.3s ease;
}
.btn-primary:hover::before {
opacity: 1;
}
.btn-primary:hover {
transform: scale(1.02);
box-shadow: 0 0 20px rgba(37, 99, 235, 0.4);
}
.ripple {
position: absolute;
border-radius: 50%;
background: rgba(255, 255, 255, 0.7);
transform: scale(0);
animation: ripple-animation 0.6s linear;
pointer-events: none;
}
.cta-gradient {
background: linear-gradient(135deg,
rgba(30, 58, 138, 0.9) 0%,
rgba(29, 78, 216, 0.9) 25%,
rgba(16, 185, 129, 0.9) 50%,
rgba(5, 150, 105, 0.9) 75%,
rgba(139, 92, 246, 0.9) 100%);
background-size: 200% 200%;
animation: gradient-shift 4s ease infinite;
}
.cta-content {
position: relative;
z-index: 1;
}
.cta-content::before {
content: '';
position: absolute;
inset: -2px;
background: linear-gradient(45deg,
#60a5fa, #34d399, #8b5cf6, #fbbf24);
border-radius: inherit;
z-index: -1;
opacity: 0.3;
filter: blur(10px);
}
.scroll-indicator {
position: fixed;
right: 30px;
top: 50%;
transform: translateY(-50%);
z-index: 100;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.scroll-dot {
width: 8px;
height: 8px;
background: rgba(255, 255, 255, 0.2);
border-radius: 50%;
transition: all 0.3s ease;
cursor: pointer;
}
.scroll-dot.active {
background: var(--primary-blue);
transform: scale(1.5);
}
.scroll-dot:hover {
background: var(--primary-green);
transform: scale(1.3);
}
.loading-shimmer {
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.05) 50%,
transparent 100%
);
background-size: 1000px 100%;
animation: shimmer 2s infinite linear;
}
.code-block {
background: linear-gradient(145deg, #0f172a, #1e293b);
border: 1px solid #334155;
font-family: 'JetBrains Mono', monospace;
position: relative;
overflow: hidden;
border-radius: 12px;
}
.code-block::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 40px;
background: linear-gradient(180deg,
rgba(15, 23, 42, 0.8) 0%,
transparent 100%);
pointer-events: none;
z-index: 1;
}
.code-header {
background: rgba(15, 23, 42, 0.8);
backdrop-filter: blur(10px);
border-bottom: 1px solid #334155;
padding: 12px 20px;
display: flex;
justify-content: space-between;
align-items: center;
z-index: 2;
position: relative;
}
.code-tabs {
display: flex;
gap: 8px;
}
.code-tab {
padding: 6px 16px;
background: #2a2a3e;
border-radius: 6px;
cursor: pointer;
transition: all 0.3s ease;
font-size: 0.9rem;
color: #aaa;
}
.code-tab.active {
background: var(--primary-blue);
color: white;
}
.code-content {
font-size: 0.95rem;
line-height: 1.8;
padding: 20px;
overflow-x: auto;
}
.code-line {
margin-bottom: 8px;
display: flex;
transition: background-color 0.2s ease;
padding: 2px 0;
}
.code-line:hover {
background-color: rgba(59, 130, 246, 0.1);
}
.line-number {
color: #666;
margin-right: 15px;
min-width: 30px;
text-align: right;
font-family: 'JetBrains Mono', monospace;
user-select: none;
}
.code-keyword {
color: #ff79c6;
}
.code-string {
color: #f1fa8c;
}
.code-comment {
color: #6272a4;
}
.code-error {
color: #ff5555;
position: relative;
}
.code-error::before {
content: '→';
position: absolute;
left: -20px;
color: #ff5555;
}
a:focus,
button:focus,
input:focus,
textarea:focus {
outline: 2px solid var(--primary-blue);
outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
@media (max-width: 768px) {
.hero-section {
background:
radial-gradient(circle at 30% 20%, rgba(59, 130, 246, 0.15) 0%, transparent 40%),
radial-gradient(circle at 70% 30%, rgba(16, 185, 129, 0.1) 0%, transparent 40%),
linear-gradient(180deg, var(--bg-dark) 0%, #0c0c0c 100%);
}
.feature-card-enhanced:hover {
transform: translateY(-4px);
}
.hero-card:hover {
transform: translateY(-4px) scale(1.01);
}
.scroll-indicator {
display: none;
}
.code-block {
font-size: 0.85rem;
}
.code-content {
padding: 15px;
}
}
@media (max-width: 480px) {
.btn-glow:hover {
transform: translateY(-1px);
}
.hero-card {
transform: scale(0.95);
}
.hero-card:hover {
transform: scale(0.96) translateY(-4px);
}
.feature-card-enhanced,
.use-case-card-enhanced,
.safety-card-enhanced {
padding: 1.5rem;
}
}
@media (prefers-color-scheme: light) {
:root {
--bg-dark: #f8fafc;
--text-gray: #4b5563;
}
body {
background-color: var(--bg-dark);
color: #1f2937;
}
.feature-card-enhanced {
background: linear-gradient(145deg, #ffffff, #f9fafb);
border: 1px solid #e5e7eb;
}
.hero-card {
background: linear-gradient(145deg, rgba(248, 250, 252, 0.9), rgba(249, 250, 251, 0.9));
border: 1px solid rgba(0, 0, 0, 0.08);
}
.glass {
background: rgba(255, 255, 255, 0.7);
border: 1px solid rgba(0, 0, 0, 0.08);
}
.glass-nav {
background: rgba(255, 255, 255, 0.85);
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.scroll-dot {
background: rgba(0, 0, 0, 0.2);
}
.scroll-dot:hover {
background: var(--primary-green);
}
}
@media print {
.hero-section,
.feature-card-enhanced,
.safety-card-enhanced {
break-inside: avoid;
page-break-inside: avoid;
}
.btn-glow,
.btn-primary,
.scroll-indicator,
nav {
display: none !important;
}
body {
background: white !important;
color: black !important;
}
.gradient-text,
.text-gradient-blue,
.text-gradient-green,
.text-gradient-purple {
background: none !important;
-webkit-background-clip: initial !important;
background-clip: initial !important;
color: black !important;
}
}
.will-change-transform {
will-change: transform;
}
.will-change-opacity {
will-change: opacity;
}
section {
scroll-margin-top: 80px;
}
* {
transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.skeleton {
background: linear-gradient(90deg,
rgba(255, 255, 255, 0.06) 25%,
rgba(255, 255, 255, 0.15) 50%,
rgba(255, 255, 255, 0.06) 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 6px;
}
.skeleton-text {
height: 1em;
margin-bottom: 0.5em;
}
.skeleton-circle {
border-radius: 50%;
}
.snap-container {
scroll-snap-type: y mandatory;
overflow-y: scroll;
height: 100vh;
}
.snap-section {
scroll-snap-align: start;
min-height: 100vh;
}
.particle-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 0;
}
.particle {
position: absolute;
background: rgba(59, 130, 246, 0.3);
border-radius: 50%;
animation: float 20s infinite linear;
}
.text-stroke {
-webkit-text-stroke: 1px rgba(255, 255, 255, 0.1);
color: transparent;
}
.text-stroke-thick {
-webkit-text-stroke: 2px rgba(255, 255, 255, 0.2);
color: transparent;
}
.blur-overlay {
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
background: rgba(0, 0, 0, 0.5);
}
.gradient-border {
position: relative;
border-radius: 12px;
background: linear-gradient(var(--bg-dark), var(--bg-dark)) padding-box,
linear-gradient(45deg, var(--primary-blue), var(--primary-green), var(--accent-purple)) border-box;
border: 2px solid transparent;
}
.floating-shape {
position: absolute;
border-radius: 50%;
background: linear-gradient(45deg, var(--primary-blue), var(--accent-purple));
opacity: 0.1;
filter: blur(40px);
animation: float 15s infinite ease-in-out;
}
.shape-1 {
width: 300px;
height: 300px;
top: 10%;
left: 5%;
animation-delay: 0s;
}
.shape-2 {
width: 400px;
height: 400px;
bottom: 10%;
right: 5%;
animation-delay: 2s;
animation-duration: 20s;
}
.text-balance {
text-wrap: balance;
}
.hover-lift {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-lift:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.reveal {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
opacity: 1;
transform: translateY(0);
}