html,
body {
  margin: 0;
  min-height: 100%;
  font-family: "Inter", sans-serif;

}

body {
  /* Palette */
  --bg: #f8fafc;
  --bg-secondary: #f1f5f9;
  --surface: rgba(255, 255, 255, 0.72);
  --surface-hover: rgba(255, 255, 255, 0.82);
  --text: #0f172a;
  --text-muted: #64748b;
  --border: rgba(15, 23, 42, 0.08);
  --shadow: 0 20px 60px rgba(15, 23, 42, 0.08);
  --shadow-hover: 0 28px 80px rgba(15, 23, 42, 0.12);
  --accent: #2563eb;
  --success: #16a34a;

  position: relative;
  min-height: 100dvh;
  overflow: hidden;

  color: var(--text);

  background:
    radial-gradient(circle at top, #ffffff 0%, var(--bg) 45%, var(--bg-secondary) 100%);
}

body::before,
body::after {
  content: '';
  position: fixed;
  inset: auto;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.28;
  pointer-events: none;
}

body::before {
  width: 28rem;
  height: 28rem;
  background: rgba(37, 99, 235, 0.08);
  top: -8rem;
  left: -8rem;
}

body::after {
  width: 24rem;
  height: 24rem;
  background: rgba(14, 165, 233, 0.06);
  bottom: -8rem;
  right: -6rem;
}

.hero {
  position: relative;
  z-index: 1;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  min-height: 100dvh;


  text-align: center;
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: .55rem;

  padding: .55rem 1rem;

  border: 1px solid var(--border);
  border-radius: 999px;

  background: rgba(255, 255, 255, .75);
  backdrop-filter: blur(16px);

  font-size: .85rem;
  font-weight: 600;
  color: var(--text-muted);

  animation: fadeUp .7s ease;
}

.dot {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 12px rgba(22, 163, 74, .45);

}

h1 {
  margin: 2rem 0 1rem;

  font-size: clamp(3.5rem, 8vw, 6.5rem);
  line-height: .92;
  letter-spacing: -.06em;
  animation: fadeUp .8s ease;
}

.hero>p:first-of-type {
  margin-top: 40px;

  max-width: 40rem;

  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 500;

  color: var(--text);

  animation: fadeUp .9s ease;
}


/* ------------------------------------------------ */
/* Motion */
/* ------------------------------------------------ */

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes floating {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

/* ------------------------------------------------ */
/* Mobile */
/* ------------------------------------------------ */

@media (max-width: 768px) {

  h1 {
    line-height: 1;
  }
}

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}