
:root { --font-display:"Sora",system-ui,sans-serif; --font-sans:"Inter",system-ui,sans-serif; --font-mono:"JetBrains Mono",monospace; --color-navy-950:#050c1e; }
.animate-float{animation:float 6s ease-in-out infinite}.animate-float-slow{animation:float 8s ease-in-out infinite}.animate-float-delayed{animation:float 7s ease-in-out 1.5s infinite}.animate-marquee{animation:marquee 28s linear infinite}
@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-14px); }
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@keyframes pulseSoft {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.75; transform: scale(0.98); }
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@keyframes dash {
  to { stroke-dashoffset: -400; }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-sans);
  background: var(--color-navy-950);
  color: #0f172a;
  overflow-x: hidden;
}

.font-display {
  font-family: var(--font-display);
}

::selection {
  background: #ff6a00;
  color: white;
}

/* custom scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #0a1930; }
::-webkit-scrollbar-thumb { background: linear-gradient(#ff6a00, #ff8a3d); border-radius: 99px; }

/* utilities */
.text-balance { text-wrap: balance; }

.bg-grid-light {
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 44px 44px;
}
.bg-grid-dark {
  background-image:
    linear-gradient(to right, rgba(10,25,48,0.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(10,25,48,0.07) 1px, transparent 1px);
  background-size: 44px 44px;
}
.bg-dots {
  background-image: radial-gradient(rgba(255,255,255,0.18) 1.5px, transparent 1.5px);
  background-size: 18px 18px;
}
.bg-dots-dark {
  background-image: radial-gradient(rgba(10,25,48,0.14) 1.5px, transparent 1.5px);
  background-size: 18px 18px;
}

.glass-dark {
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.14);
}
.glass-card {
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.reveal {
  animation: fadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
}
