/* Critical CSS for above-the-fold content */
:root {
  --background: hsl(0, 0%, 100%);
  --foreground: hsl(210, 20%, 20%);
  --primary: hsl(207, 90%, 54%);
  --primary-foreground: hsl(211, 100%, 99%);
  --border: hsl(214, 32%, 91%);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-display: swap;
  background: linear-gradient(to bottom right, hsl(224, 100%, 97%), hsl(0, 0%, 100%), hsl(261, 100%, 97%));
  color: hsl(210, 20%, 20%);
  line-height: 1.5;
}

.hero-container {
  max-width: 72rem;
  margin: 0 auto;
  padding: 6rem 1rem 0;
  text-align: center;
}

.hero-title {
  font-size: 3.5rem;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 1.5rem;
}

.hero-gradient-text {
  display: block;
  background: linear-gradient(to right, hsl(222, 84%, 54%), hsl(261, 84%, 54%));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nav-header {
  background: white;
  border-bottom: 1px solid hsl(214, 32%, 91%);
  position: sticky;
  top: 0;
  z-index: 50;
  height: 4rem;
}

.nav-container {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 100%;
}

.logo-img {
  height: 2.5rem;
  width: auto;
}

/* Loading spinner */
@keyframes spin { to { transform: rotate(360deg); } }
.spinner {
  width: 3rem;
  height: 3rem;
  border: 2px solid transparent;
  border-bottom: 2px solid hsl(207, 90%, 54%);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

/* Hide scrollbar during loading */
body.loading { overflow: hidden; }