:root {
  --background: 216 47% 7%;
  --foreground: 210 33% 94%;
  --border: 215 25% 20%;
  --input: 215 25% 19%;
  --ring: 183 82% 62%;
  --card: 216 38% 11%;
  --card-foreground: 210 33% 94%;
  --card-border: 215 28% 21%;
  --primary: 183 82% 62%;
  --primary-foreground: 216 47% 7%;
  --secondary: 218 32% 16%;
  --secondary-foreground: 210 33% 94%;
  --muted: 216 30% 15%;
  --muted-foreground: 216 15% 62%;
  --accent: 225 92% 68%;
  --accent-foreground: 216 47% 7%;
  --destructive: 0 70% 62%;
  --destructive-foreground: 210 33% 94%;
  --radius: 0.75rem;
}

* { border-color: hsl(var(--border)); box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'DM Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  background-image: radial-gradient(circle at 85% 0%, rgba(39, 116, 157, 0.14), transparent 28rem);
}
button, a, input, textarea, select { font: inherit; }
a { text-decoration: none; color: inherit; }
button { cursor: pointer; background: none; border: none; color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }

.font-display { font-family: 'Space Grotesk', sans-serif; }
.font-mono-display { font-family: 'Space Grotesk', monospace; }
.section-wrap { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.hairline { border-color: rgba(151, 187, 217, 0.15); }
.border-b.hairline { border-bottom-width: 1px; border-bottom-style: solid; }
.border-t.hairline { border-top-width: 1px; border-top-style: solid; }
.border-y.hairline { border-top-width: 1px; border-bottom-width: 1px; border-style: solid; }

.site-shell { overflow: clip; position: relative; }
.noise::after {
  content: '';
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 50;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}
.grid-fade {
  background-image: linear-gradient(rgba(90, 153, 186, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(90, 153, 186, .07) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(to bottom, black 15%, transparent 90%);
  mask-image: linear-gradient(to bottom, black 15%, transparent 90%);
}
.eyebrow {
  color: hsl(var(--primary));
  font-family: 'Space Grotesk', sans-serif;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
}
.btn-primary, .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 46px;
  border-radius: 999px;
  padding: 0 1.15rem;
  font-family: 'Space Grotesk', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .01em;
  transition: transform .25s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
  white-space: nowrap;
}
.btn-primary {
  color: hsl(var(--primary-foreground));
  background: hsl(var(--primary));
  box-shadow: 0 0 0 1px rgba(116, 255, 250, .18), 0 10px 30px rgba(19, 225, 222, .16);
}
.btn-primary:hover { transform: translateY(-2px); background: #76f4ef; box-shadow: 0 14px 32px rgba(19, 225, 222, .25); }
.btn-secondary { color: hsl(var(--foreground)); border: 1px solid rgba(157, 195, 222, .25); background: rgba(18, 31, 49, .46); }
.btn-secondary:hover { transform: translateY(-2px); border-color: rgba(117, 243, 238, .7); background: rgba(29, 50, 73, .6); }
.nav-link { color: #94a9bd; font-size: .78rem; transition: color .2s ease; }
.nav-link:hover { color: hsl(var(--primary)); }

/* Mobile menu: solid, high-contrast panel so hero text never shows through */
.mobile-menu-panel {
  position: relative;
  z-index: 60;
  background: #0a1220;
  background-image: linear-gradient(160deg, #101d30 0%, #0a1220 100%);
  border: 1px solid rgba(103, 232, 249, 0.28);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(0,0,0,0.2);
}
.mobile-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 39;
  background: rgba(3, 8, 16, 0.72);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.glass-card { background: linear-gradient(135deg, rgba(18, 34, 53, .76), rgba(10, 21, 37, .84)); border: 1px solid rgba(150, 196, 224, .16); box-shadow: 0 8px 24px rgba(0, 8, 22, 0.24); border-radius: 1.5rem; }
.reveal { animation: rise-in .7s cubic-bezier(.2,.7,.2,1) both; }
.reveal-delay-1 { animation-delay: .08s; }
.reveal-delay-2 { animation-delay: .16s; }
.reveal-delay-3 { animation-delay: .24s; }
.reveal-delay-4 { animation-delay: .32s; }
.float-slow { animation: float-slow 8s ease-in-out infinite; }
@keyframes rise-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes float-slow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media (max-width: 640px) {
  .section-wrap { width: min(calc(100% - 32px), 1180px); }
}

.legal-prose { max-width: 820px; }
.legal-prose section + section { margin-top: 3.25rem; }
.legal-prose h2 {
  color: hsl(var(--foreground));
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.2;
  margin: 0;
}
.legal-prose p, .legal-prose li { color: #94a9bd; font-size: .92rem; line-height: 1.85; }
.legal-prose p { margin-top: 1rem; margin-bottom: 0; }
.legal-prose ul { display: grid; gap: .65rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.legal-prose li { position: relative; padding-left: 1.25rem; }
.legal-prose li::before {
  background: hsl(var(--primary));
  border-radius: 999px;
  content: '';
  height: .3rem;
  left: 0;
  position: absolute;
  top: .7rem;
  width: .3rem;
}
.legal-prose a { color: hsl(var(--primary)); text-decoration: underline; text-decoration-color: rgba(98, 238, 227, .35); text-underline-offset: 3px; }
.legal-prose a:hover { color: #b4fffa; }
.legal-note {
  background: rgba(13, 25, 40, .62);
  border: 1px solid rgba(151, 187, 217, .14);
  border-left: 2px solid rgba(98, 238, 227, .65);
  border-radius: 0 1rem 1rem 0;
  margin-top: 3.5rem;
  padding: 1rem 1.25rem;
}
.legal-note p { color: #71869a; font-size: .78rem; line-height: 1.7; margin: 0; }

/* utility helpers used inline */
.text-cyan-300 { color: #67e8f9; }
.text-blue-400 { color: #60a5fa; }
