:root {
  --ink: #071426;
  --navy: #0b1f3a;
  --brand: #2563eb;
  --cyan: #22d3ee;
}

html { scroll-behavior: smooth; }
body { font-family: "DM Sans", sans-serif; }
.font-display { font-family: "Manrope", sans-serif; }
.hero-grid {
  background-image:
    linear-gradient(rgba(148, 163, 184, .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, .08) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 35%, transparent 100%);
}
.page-hero {
  background:
    radial-gradient(circle at 78% 20%, rgba(34, 211, 238, .13), transparent 28rem),
    radial-gradient(circle at 12% 80%, rgba(37, 99, 235, .18), transparent 30rem),
    #071426;
}
.focus-ring:focus-visible { outline: 3px solid rgba(34, 211, 238, .55); outline-offset: 3px; }
.nav-dropdown > summary { list-style: none; cursor: pointer; }
.nav-dropdown > summary::-webkit-details-marker { display: none; }
.nav-dropdown-chevron { display: block; flex: none; width: 12px; height: 12px; transition: transform .18s ease; }
.nav-dropdown[open] .nav-dropdown-chevron { transform: rotate(180deg); }
.nav-dropdown-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  width: 31rem;
  padding-top: 1.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -6px);
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.nav-dropdown[open] .nav-dropdown-panel { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
.card-lift { transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.card-lift:hover { transform: translateY(-4px); border-color: #bfdbfe; box-shadow: 0 22px 50px -28px rgba(15, 23, 42, .32); }
.eyebrow { letter-spacing: .18em; }
.modal-open { overflow: hidden; }

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