@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Sora:wght@400;500;600;700;800&display=swap');

:root { --vc-dark: #0B0F1A; --vc-surface: #151B2E; --vc-primary: #8B5CF6; --vc-cta: #A3E635; --vc-muted: #94A3B8; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { overflow-x: hidden; background: var(--vc-dark); }
.font-heading { font-family: 'Sora', sans-serif; }
.glass { background: rgba(21, 27, 46, 0.62); border: 1px solid rgba(255,255,255,.10); box-shadow: 0 20px 70px rgba(0,0,0,.20); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.glass-soft { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.gradient-text { background: linear-gradient(110deg, #c4b5fd 0%, #8B5CF6 42%, #A3E635 115%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gradient-line { background: linear-gradient(90deg, #8B5CF6, #A3E635); }
.hover-glow { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.hover-glow:hover { transform: translateY(-6px); box-shadow: 0 22px 60px rgba(139,92,246,.22); border-color: rgba(163,230,53,.35); }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-stagger > *:nth-child(2) { transition-delay: .08s; } .reveal-stagger > *:nth-child(3) { transition-delay: .16s; } .reveal-stagger > *:nth-child(4) { transition-delay: .24s; } .reveal-stagger > *:nth-child(5) { transition-delay: .32s; } .reveal-stagger > *:nth-child(6) { transition-delay: .40s; }
.hero-grid { background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to bottom, black 0%, rgba(0,0,0,.72) 55%, transparent 100%); }
.orb { position: absolute; border-radius: 999px; filter: blur(80px); opacity: .34; pointer-events: none; animation: drift 14s ease-in-out infinite alternate; }
.orb-violet { background: #8B5CF6; } .orb-lime { background: #A3E635; animation-delay: -4s; }
@keyframes drift { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(36px,-24px,0) scale(1.12); } }
.nav-link { position: relative; } .nav-link::after { content: ''; position: absolute; left: 0; bottom: -7px; height: 1px; width: 100%; background: #A3E635; transform: scaleX(0); transform-origin: left; transition: transform .3s ease; } .nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }
.project-image { transition: transform .7s cubic-bezier(.2,.8,.2,1), filter .5s ease; } .project-card:hover .project-image { transform: scale(1.05); filter: saturate(1.18); }
.marquee-track { animation: marquee 24s linear infinite; } @keyframes marquee { to { transform: translateX(-50%); } }
input, textarea { outline: none; } input:focus, textarea:focus { border-color: rgba(163,230,53,.75) !important; box-shadow: 0 0 0 4px rgba(163,230,53,.10); }
@media (max-width: 767px) { .hero-grid { background-size: 44px 44px; } .orb { filter: blur(60px); } }
