:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  --zeal-navy: #023366;
  --zeal-teal: #5ee0e6;
  --zeal-light: #F4F7FA;
  --zeal-soft-teal: #eafafb;
  --zeal-slate: #6B7A8D;
  --zeal-border: #D1D9E0;
  --zeal-danger: #C73B43;
  --zeal-warning: #F5C76A;
}

* {
  box-sizing: border-box;
}

html {
  background: #ffffff;
}

body {
  margin: 0;
  min-width: 320px;
  background: #ffffff;
}

::selection {
  background: rgba(94, 224, 230, 0.36);
  color: var(--zeal-navy);
}

button,
a,
input,
select,
textarea {
  font: inherit;
}

a {
  text-decoration: none;
}

.animate-rise {
  animation: rise 760ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.hero-orbit {
  animation: float-orbit 14s ease-in-out infinite alternate;
}

.hero-learning-visual img,
.hero-learning-mobile img {
  animation: learning-pan 20s ease-in-out infinite alternate;
  transform-origin: center;
}

.hero-copy {
  max-width: 620px;
}

.service-card-cta {
  background: rgba(255, 255, 255, 0.72);
}

.group:hover .service-card-cta {
  background: #5ee0e6;
}

.rail-scroll {
  scrollbar-color: rgba(94, 224, 230, 0.45) transparent;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.rail-scroll::-webkit-scrollbar {
  height: 10px;
}

.rail-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.rail-scroll::-webkit-scrollbar-thumb {
  background: rgba(94, 224, 230, 0.28);
  border: 3px solid #eafafb;
  border-radius: 999px;
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.985);
  }

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

@keyframes float-orbit {
  from {
    transform: translateX(-50%) translateY(0) scale(1);
  }

  to {
    transform: translateX(-48%) translateY(28px) scale(1.04);
  }
}

@keyframes learning-pan {
  from {
    transform: scale(1.04) translate3d(0, 0, 0);
  }

  to {
    transform: scale(1.12) translate3d(-3%, 2%, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}
