:root{--blue-brand:#154279;--blue-deep:#0a1c33;--blue-dark:#071324;--blue-royal:#1b4985;--blue-electric:#2563eb;--blue-cyan:#38bdf8;--blue-glow:#38bdf866;--bg-main:#071324;--bg-surface:#0a1c33;--bg-surface-glass:#0a1c3399;--bg-card:#15427940;--text-white:#fff;--text-ice:#f0f7ff;--text-secondary:#94a3b8;--text-muted:#64748b;--border-subtle:#ffffff26;--border-blue:#38bdf859;--font-heading:"Outfit", sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-accent:"Outfit", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-main);color:var(--text-white);font-family:var(--font-body);-webkit-font-smoothing:antialiased;width:100vw;height:100vh;line-height:1.6;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--blue-dark)}::-webkit-scrollbar-thumb{background:var(--blue-royal);border-radius:4px}.text-gradient-blue{background:linear-gradient(135deg,#fff 0%,#bae6fd 60%,#38bdf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.text-gradient-brand{background:linear-gradient(135deg,#fff 20%,#60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.project-tag{-webkit-backdrop-filter:blur(12px);color:#e0f2fe;font-family:var(--font-accent);letter-spacing:3px;text-transform:uppercase;background:#0a1c3373;border:1px solid #38bdf84d;border-radius:9999px;align-items:center;gap:10px;padding:8px 20px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 4px 20px #0003,0 0 15px #38bdf826}.pulse-dot-blue{background:#38bdf8;border-radius:50%;width:7px;height:7px;animation:2s infinite pulseBlue;box-shadow:0 0 10px #38bdf8}@keyframes pulseBlue{0%{transform:scale(.95);box-shadow:0 0 #38bdf8b3}70%{transform:scale(1);box-shadow:0 0 0 6px #38bdf800}to{transform:scale(.95);box-shadow:0 0 #38bdf800}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:1.2s cubic-bezier(.16,1,.3,1) forwards fadeInUp}
